コメントはありません。 Comments/kamibayasi
・第八回自主課題研究。ディスプレイとジョイスティックを離したい旨を相談したら無線通信のアイデアをいただいたのでやってみることに。XBeeという近距離無線通信モジュールを使用する。川上さんが雑誌で書いた記事を参考に二台のXBeeをPCを使って通信してみる。それぞれに互いのモジュール番号を記憶させ相互に通信をする。文字データを送ってみるが受け取らない。後に川上さんに見ていただき、互いのモジュールに送るのでなく周りにあるXBee全てに信号を送るようにしたら文字を受け取った。周りでもXBee通信をしていると問題が発生するがとりあえず大丈夫だろうということで通信することはできた。
・受信側と送信側でPSoCが二ついるので秋田先生に二枚目のPSoC1duino基板を作っていただき、残りの素子をはんだづけした。二回目なので初めの基板よりはきれいにできた。ただ一つだけ素子が見つからなかった(トランジスタ?)ので次回場所を聞こうと思う。
・XBeeモジュールはピン間隔が2mmと通常の端子と違うのでそのままでははんだづけできない。今回PC通信用に使用した変換基板を使わせてもらっていいのだろうか。そのあたりをはっきりさせて次回はジョイスティック→AD変換→TX8→XBee→→XBee→RX8と、離れたところのジョイスティックの入力をディスプレイ側のRXで受け取るようにするのが目標。
・第七回自主課題研究。ジョイスティックの傾きによって変わる電圧をPGAで受け取り1倍にしてAD変換に出力、デジタル値にして受け取る。縦方向と横方向の傾きを読み取りたいのでDualADCを使用。ジョイスティックから直接配線を伸ばし、VDD、GND、縦方向、横方向をそれぞれ対応する所にはんだ付けしてみる。仮のプログラムを記述したところでPSoC1termを起動するがポートを読み込まない。先輩たちに助けてもらい読み込みができたと思ったが、何度かやってみるとどうもシールドをPSoC1duinoと接続した状態だとポートを読み込まなくなるようだった。配線が何かおかしいらしかったので、とりあえずジョイスティックの配線を元に戻したら正常にポートを読み込んだ。
・岩崎君に情報をもらい、ジョイスティックの基板部分にピンをつけて、本体のシールドにソケットをつければ直接はんだしなくてもジョイスティックを差し込むだけでOKだそうだ。今までも同じようにやっていたのにこのことを失念していたのは痛かった。しかし視力検査の都合上ジョイスティックは離して使いたいので(3m離したい)ソケットとピンで接続するのはとりあえず保留しておいた。せっかく先輩たちがいらっしゃったので相談してみればよかった。
・とりあえずOLEDからのACKをRXで受け取ってから次のコマンドを送るようにしてみた。比べてみると明らかに動作が速くなったと思う。
・今回はAD変換の部分でかなり迷走してしまったので実際にできた作業はACKを受け取る部分だけだった。各大きさ、向きのランドルト環を表示する関数など、いつでもできる部分の作業は進めておくようにしたい。
・第六回自主課題研究。前回に続きPSoCからOLEDにコマンドを送る所から。色々調べてみると、とりあえずディスプレイの電源が入った時からコマンドを送り始めれば大丈夫そうだったのでプログラムと配線を変更。常にVDDにしていたリセット端子をプログラムの初めでGND→VDDに設定するためにLEDモジュール(実際にはただ信号をONとOFFに変えるだけ)を追加。これによりマイコンをリセットするたびにディスプレイもリセットされる。これによりコマンドを正しく送ることに成功。
・コマンドは送れていたが連続して送ってもディスプレイが反応してくれないのでdelay関数を作りコマンドを認識するまでに時間を作る。図形の描写に比べ背景色の変更に多くの待ち時間が必要だった。今回はdelay関数で適当な時間を稼いだが、秋田先生からの助言でディスプレイから返ってくるACK信号をどこかのピンで受けとるようにして、ACKが返ってきたら次のコマンドを送るようにしたらdelayを気にする必要がなくなり最短でコマンドを送れそう。今後変更しようと思う。
・次回はADCを使いジョイスティックの傾け方によって変わる電圧を受け取るようにする。次回までにADCの使い方などを学んでおくことが課題。
・第五回自主課題研究。 PSoCからOLEDに信号を送る。テンプレートのUARTのTXをport2_2につないでOLEDに信号を送ってもうまくいかない。オシロで調べると信号自体が出力されていなかった。詳しい原因はわからなかったが、別にTX8(8ビットの送信)を設定することで信号を送ることはできた。
・信号はOLEDに遅れたが思い通りの動作をしてくれない。OLEDからの反応信号を調べてみるとNAK(異常)が返ってきていた。PCから直接コマンドを送ると思い通りの動作をしたがPSoCから送ると成功しない。どうも初めにボーレートを自動検知するためのコマンドを送っているのだがボーレートが正しく検出できていないらしく以降の信号もうまく検出できていないらしい。PSoCからの信号とPCからの信号で何が違うかがわかれば対処法もわかりそうだが。
・その後もいろいろと試してみるがうまくいかずほとんど進めず終了。次回は何とかPSoCから正しくコマンドを送れるようにしたい。中谷さんに遅くまで付き合ってもらったのは申し訳なかった。
・第四回自主課題研究。とりあえずパソコンからディスプレイ側にコマンドを送ってディスプレイを変化させられることを確認。
・ディスプレイ側から送られる信号を確認するためにディスプレイ側のTXとPSoC側のRXを接続。しかし信号が返ってこない。そこでTX-RX、RX-TXと接続していた所をTX-TX、RX-RXに接続し直す。やっていたときはよく分からなかったが後に回路図などを見直してみると、PSoC側のTXは「USB-シリアル変換モジュールに信号を送る」、RXは「USB-シリアル変換モジュールからの信号を受け取る」ピンで、RXピンにPCからの信号が出ていて、TXピンにはPCが受け取る信号が出ている、ということだろうか。それプラス、PSoCをはずし、途中の抵抗を短絡させる。抵抗の短絡は、抵抗の片側は信号がでていたのにもう片側は信号が出ていなかったから短絡したのだろう(と思う)。PSoCをはずしたのはよく分からなかった。ただやってみた、ではなくどうしてそうしたのか自分で考えて理解するようにしたい。
・以上の変更でついにディスプレイにコマンドを送れた。円+その内側に背景色と同じ色の一回り小さい円+円に重なるように背景色と同じ色の長方形、を表示させることでとりあえずランドルト環は表示させられた。ちょっと感動。
・次回はPSoCから信号を送り表示を変化させることがとりあえずの予定。チュートリアルでやったシリアル通信と同じようにやればできるのだろうか。
・第三回自主課題研究。作りたいものプレゼンからスタート。研究室の方たちがたくさんいらっしゃったので緊張した。作るものは「視力検査+ゲーム要素(詳しくはまだ未定)」に決定。シリアル通信について教わった。LEDディスプレイにランドルト環を表示させるのは確定なのでそのための基板(シールド?)を制作。配線のやり方を学んだ。しかしぐちゃぐちゃ・・・。ちゃんと動くか心配。
・次回までにOLEDディスプレイのデータシートを読んでおくことが課題。
☆備忘録☆
・コンピュータとマイコンの間で一本の信号線で1bitずつデータを通信するのが「シリアル通信」。複数の信号線で複数bitをまとめて通信するのが「パラレル通信」。今回はシリアル通信を使用。
・PSoCのTX(データ送信)とLEDのRX(データ受信)をつないでPSoC→LEDにデータを送る。LED→PSoCは今回は使わない。(というか使えない?)
・今回使用するLEDのリセット信号線は1(5V)につながないと絶えずリセットされてしまう。(正確にはActive lowのパルス信号が2μs以上入力されるとリセットされる)
・第二回自主課題研究。PSoC1duinoのチュートリアルを一通り実行してみる。配線、プログラム、書き込みなど一回やってしまえば流れはわかった。思ったとおりの動作をすると感動した。ただ自分で考えて一から作れるかというとまだまだだと思う。自分で勉強していきたい。
・来週は作りたいもののプレゼン。自由なアイデアを考えたい。
・第一回自主課題研究。ガイダンス後早速はんだづけの作業に取り掛かる。中学以来のはんだはやり方を完全に忘れていた。素子の足を折って位置を固定することを思いつかず抵抗とLEDがぼこぼこに。見栄えだけでなく動作の上でもあまりよくないらしい。そこが原因ではなかったが動作確認でうまくいかず。
・作りたい物の具体的なアイデアはなかなか浮かばない。日々の生活でいろいろなところにアンテナを向けておく必要がありそう。