コメントはありません。 Comments/iwasaki
前回までは、OLEDに命令を送るとき命令毎にdelay関数で待機させていたが、ACKを受け取るまで待機させ次の命令を送るようにして、高速に命令を実行できるようにすることにした。8bitシリアル通信の受信専用モジュールRX8を使ってACKを受け取ってみた。データシートのサンプルプログラムを流用して、読み取りエラーが無ければ、受け取った8bitを返すプログラムを書いてみたが、読み取りエラーが出続け値が返って来なかった。次回は、読み取りエラーであっても値を返し、繰り返し実行させてみる。
次に、ジョイスティックのAD変換を行なってみた。はじめは水平方向だけを分解能8bitで変換し(0~255)、それをさらに4分割してそれぞれ-5,-1,1,5を割り当ててみた。さらに中間の値124~131は0に割り当てた。端末に出力して確認してみると、ニュートラルの位置がずれているからか、ジョイスティックに触れない状態でも-1が出力され続けた。また、少し傾けて-1と1を出力させるのが難しかったので、分割の範囲を調節したら思い通りに出力させることができた。
次回からは、垂直方向のAD変換を行い、OLEDとジョイスティックを対応させてみる。
2進数では演算ができないので、16進数で行うのだろうか。
先生の助言で、はじめは信号をUART経由で送信してOLEDに出力してみることにした。
しかし反応がなく、オシロスコープで見てみると、ACKが返ってきていなかった。
先生が色々試して下さった結果、OLEDを抜き差しするとACKが返ってくることがわかり、mainの最初でOLEDをリセットすることにした。再び試してみるとOLEDを操作することができた。
次はUARTを経由せず、TX8から直接信号を送信してOLEDに表示してみることに。
delay関数を作り、命令のたびに時間を置いて実行させてみると、複数の命令も順次実行することができた。
次にジョイスティックを扱うためAD変換を行なってみる事にした。理由はよく分からなかったが、PGAを通してから、DUALADCにジョイスティックのx軸, y軸方向の電圧(0~5V)を送り、それをデジタル信号に変換する。次回からは、DUALADCのデータシートを読んでプログラムを書いてみようと思う。
モジュールUART1やTX8を追加して、PSoCとディスプレイとのシリアル通信を試みたが、うまくいかなかった。
プログラムを書き込んだあと反応はあったが、思い通りの動作をしなかった。
そこで、シリアル通信はひとまず保留とし、インターフェイスの構想に移った。
はじめはジョイスティックで試し、もし余裕があったら加速度センサなどを扱って見ることにした。今日は、ジョイスティックのハンダ付けを行った。
ジョイスティックで扱えるのはアナログ値のみなので、来週からはA/D変換にとりかかろうと思う。
PCとディスプレイでシリアル通信を行い、図形などを映しだした。
黒い背景に白い点という単純なものだが、星座をひとつ(オリオン座)を表示させることができた。
次回は、マイコンを使ってPCを介さずに映し出すことが目標。
PSoCの基本的な使い方を復習しておく。
それぞれが作りたいもののアイデア出しを行った。
いくつか意見をいただき、今回は宇宙生成機を作ることになった。
有機ELディスプレイに星空の画像を映し、複数のインターフェイスにより、時間, 場所, 見る方向を変更できるようにする予定。
その後、ディスプレイとマイコンをつなぐ基板を作った。
次回は、データシートを読み、マイコンに画像を表示させる予定。
PSoC1duinoの基本的な使い方を学んだ。
プログラムは、難しいところもあったが概ね理解できた。
オリジナルのプログラムも動かせるようにしたい。
来週までにできるだけアイデアを出しておく。
マイコン回路の基板を作成した。
素子をまっすぐハンダ付けするのが難しかった。
作りたいもののおおまかなアイデアを考えておきたい。