2016-02-05 22:25 | カテゴリ:1/8モデル
制御ソフトの検討を始めました。

先日来の作業で、LED実装の部分が出来上がりました。

DSC01770.jpg

DSC01771.jpg


また、秋月さんから、音声発音モジュール(LSI)も届きましたので、ここらでLSIの動作確認を含めて、基板を製作していこうかと思います。
基板を製作し、ソフトを検討した後で、本体を塗装し、ハード基板モジュールを収納する手順で進めようと思います。

まずは、LEDの点滅(ランダム点滅と一部連続点灯を予定)と発声モジュールのテストを行う為にソフトを製作します。
言語は、C言語で、一部アセンブラを組み入れます。

ランダム点滅の考え方ですが、20個近いLEDを個別にランダムに点滅させる案として、それぞれのLEDに対して、ONかOFFかの状態を記憶する変数と、点灯時間と消灯時間をカウントして、LEDを点滅する為の変数を用意します。
それを、タイマー割り込みを利用して、一つづつカウントダウンしゼロになったら、LEDのONかOFFを反転させ、点滅します。
カウンターの変数には、1-50くらいの乱数を入れておき、タイマー割り込みを10msec毎に発生されれば、点灯と消灯の時間を10msecから500msecの間で、乱数的に調整できるはずです。

と、まぁ、計画は出来ましたが、実際のプログラミングはまだです。
とりあえず、音声LSIの動作確認をしようと思い、ブレッドボードにPICと音声LSIを接続して、PICに、RS232通信の簡単なプログラムを組んで、テストします。

DSC01772.jpg

音声LSIは、電源投入後に、指定のコマンド1文字を送信すると、規定の返信を1文字送り返しますので、これを確認して、通信の確立を判断できるようになっています。
早速、プログラムを組んで、実行!!
あれ??
なったく、うんとも、すんとも、言いません。(喋るのではなく所定の文字を返信してきません。

RS232通信は、送信がだめでも、受信がだめでも、動きません。(そこが厄介なんですが)

まずは、ちゃんと指定のコマンドがPICから送出されているかの確認です。
PICのTX端子に、RSケーブルを接続し、PCの通信ソフトを立ち上げて、所定のコマンドをPCで受信できているか確認しました。
PCで見ると、なんかゴミの様なデータがPICから送信されています。

この様な時は、だいたい、PICの通信速度の設定でなにか間違っている場合がほとんどです。
プログラムの確認をしましたが、このシリアル通信部分(XC8言語です)は、以前に製作して、ちゃんと動作確認できているはずですから、問題ないのですが。

通信速度を指定するパラメータをいろいろ変えてみて、何度もテストしましたが、うまくありません。


2時間後、あることに気が付きました。

今回のPICの出力は、PICのTX端子からRS232ケーブルを経由して、PCのRS232端子(実際にはUSB変換して)に入れています。
これではだめでした、PICの5Vレベルから、RS232レベルに変換するICを入れていませんでした!(汗)

このICを取り付けて、再度確認しなければなりません。(悪魔のネガティブ・スパイラルに入ってしまいました)

急遽、RS232レベル変換ICを取り付けて、PICと音声LSIの動作確認をしました。

まず、PICの所定のコマンドの出力状況ですが、ちゃんと、コマンド「?」のコード「3F」が出力されていました。

TX.jpg

そこで、PICからそのコードを受けて、初期化完了の返信コードが、音声LSIから出ているかの確認です。
PCから、「3F」コードを音声LSIに送信すると、音声LSIから、「BF」が返されました。

RX.jpg


おかしいです。
本来は、「3E」コードが返されなければなりません。
毎回、同じ結果なので、ノイズで誤動作しているとも思えません。

まだまだ、解決には時間がかかりそうです。

管理者のみに表示する