スキップしてメイン コンテンツに移動

投稿

ラベル(PSoC)が付いた投稿を表示しています

ゆっくり音声合成ICの組み立て4 ~MSG歌えなくても演奏するよ~

まずは動作の様子を動画に。 前回MICROTALKの周りは完成したので、今回は色々と追加している。 追加したハードウェアは VS1033D breakout MP3/MidiコーデックIC LM35 温度センサ 制御線いろいろ(リセット、スリープ、アンプのシャットダウン) <コーデックIC> シールドの裏に配置。 UNOだと干渉するかも VS10 33D は千石の値引き品で、VS1053Dがある今となっては一世代前の石。 Midiを再生する分には同じ。 MP3の再生は結構配線が増えるので、昔の外部Midi音源と同じ扱いが出来るリアルタイムMidiモードを使う。  配線はMidiデータ入力のシリアル1本と、電源、音声出力、リセット端子のみ。リセットはArduinoの適当なデジタルI/Oに。あとは GPIOで動作モードをリアルタイムMIDIにセットするだけ。  はじめは全く再生しないので悩んでいたのだが、初期化時にリセット信号をかけるようにしたらあっさり動いた。 Midi再生に関しては、 SparkfunのMusic Instulmentシールドが参考になった。  http://www.sparkfun.com/products/10587 <オーディオミキサ (PSoCでアナログ加算)> アンプも載ってるからついでにMidiもつけよう、という魂胆で実装したものの、信号ソースが2つあり、アンプは1つなので、信号をミキシングしないといけない。 OPアンプで加算するといいらしい。そういえばLPFにPSoCを使っていたと言うことで、加算もできそうだ。 VS1033Dの入力を受けるPGAをもう一つ追加して、元のMICROTALKの入力PGAにRef電圧参照先として接続た。接続元PGAのゲインを1以下にすると加算が可能らしい。SCBのパラメータはまだ手強いので、こちらを試してみた。 実際書き込んだ所ちゃんと加算しているらしく、2つの出力が衝突せずにアンプで増幅されるようになった。 Midi側もLPFでカットされてしまうのと、音が単純にそれぞれ1/2になるので、Midi側の音が若干劣化している。これ以外の手法はブロックと出力ピンが足りないので無理そう。 こうしてちょっとした事ならソフトウ...

音声合成ICシールドの組み立て3 ~MSGゆっくりしすぎたけっかがこれだよ~

以前製作していたMICRO TALKの 音声合成LSIを使ったArduinoシールド だが、1年くらいほったらかしていた。 その後・・・完成させました。 外観 ArduinoUno+ゆっくりシールド シールドCPUボードを外したところ PSoC 最近PSoCを触りだしたばかりなので、練習として3.3V駆動/カットオフ周波数4kHzのLPFを作った。 (LSIからフィルタ用のクロック400kHzも出力されているので、それをつかうべきかもしれない) 去年、MicroTalkの外付けLPFをPSoCで製作した作例があって、お手軽そうだなと思ったのがPSoCに興味を持ったきっかけだったりする。 DSO QuadのWAVEOUT端子を入力につなぎ、出力波形レベルを見ると、5kはあまり変わらず,10kHzで約半分まで信号が減衰していくのが確認できた。 16kHzにD/Aのサンプリング周波数があるので、目的は達成しているようだ。 LSIの音声出力はハイインピーダンス。これをそのままアンプにつなぐとまともな音が出なかったけれど、PSoCを挟んだおかげで、出力のインピーダンスが下がってスピーカーアンプも駆動できるようになった。 出力はHOLTEKのアンプIC(秋月のキット)につないだ。ただしこのICは電流を1W近く喰うので、電池駆動だと厳しい場面も。 あとはセンサ情報や、加速度、衝撃センサに応じて声を出す饅頭システムが出来上がった。 合成音声。 人間が使う原始的で奥が深いインターフェイス。 昔のSFといえばしゃべるAIが電話越しに話しかけてくるとか定番で、けっこう人間に対してのインターフェースが充実していたとおもうけど、1チップでそこそこしゃべる手段が出てきている現在、そっち方面は流行らないのかな。 MSGゆっくりしていってね この手のモジュールはアプリケーションが大事。 何のためにつけますか?ということをネタでもいいので考えたい。  しゃべるというレベルはすぐ出来ても、その後の活用まで手が回らなかったけど、1年経って再度触ってみると、以前はスルーしていたドキュメントの内容などが読めるようになったので、長い付き合いになりそう。 あとは、音声合成電話。 手元の高性能端末...

PSoC メモ

PSoC 関係で面白そうなアプリケーションノートをいくつか。 センサ処理なんかに使おうと思ってIDEをダウンロードし、開発環境と石を触っている。 アプリケーションノートを片っ端から読んでるだけで学習になるけど、その中で面白そうなもの ・FSK 検知  AN2363  http://www.cypress.com/?rID=2735 Bell202互換とある。 パッと見mainでもCPUはほとんど使ってないようだ。 ・FSK 生成  AN67391   http://www.cypress.com/?rID=50238 上記は2006年に公開されたANよりも新しく、今年更新された物のようだ。 ・CW morse decoder  AN2124  http://www.psocdeveloper.com/docs/appnotes/an-mode/detail/an-pointer/an2124/an-file/122.html 自動レート調節付き。ただしソースがver3相当。 CWデコーダの参考になりそう。 PSoC Designer 5.1からCコンパイラも付属するけれど、古いANは以前のバージョンが必要らしくやや敷居が高い。 ところで書き込みに必要なMiniProgを失くしてしまい現在足踏み中。

PSoCを試す

PSoCマイコンスタートアップ(CQ出版) を購入。 3900円でMiniProgとPSoC基板(CY8C21434)がついてくる。   情報が少なくて二の足を踏んでいたけど、この本が出回りだしたので買ってしまった。 GUIでタイマとLEDを設定して、電源入れるだけで本当にLEDチカチカができてしまった・・・。  付属PSoCは静電容量式タッチセンサのためのCapSenseモジュールも使えるそうで、本自体はその解説もしてくれている。   手元にG4Cubeのガワがあり、これをつかってMini-ITXケースを組もうと思っているが、このセンサをつかえば、往年の手を近づけるだけで電源ONが再現できる。(勝手に電源が入る不具合も^^)  後半にPRSPWMのモジュールの解説があって、早く使ってみたい。  うるさくないモーター駆動ができたら嬉しい。 さて読み進めよう・・・。