作業日誌

コメントはありません。 Comments/kamibayasi

お名前:

1月11日

・第11回自主課題研究。初めに今後の予定を確認。1月24日までに最終レポートを提出、同日13:00から発表の練習をすることになった。レポートや発表用スライドなどは少しずつ進めたい。

・XBeeの送受信テストは後回しにして視力検査のプログラムを完成させることにした。冬季休業中に、プログラムのサイズを小さくすることと視力検査の結果(A、B、C、D)をディスプレイに表示する部分を作っておいたので無事動作するか確認。結果の表示は文字の大きさや表示する場所がおかしかったので動作させながら修正した。初めに予定していたゲーム要素はつけられないと思うが、視力検査の最低限の部分はこれで完成とする。

・XBeeでの送受信のテストにもどる。思い当たる部分はいろいろ試してみたが今回もうまくいかなかった。配線やプログラムはそれほど複雑ではないはずだが原因がわからない。次回の時間中にXBeeの動作がうまくいかなかったら、無線通信はあきらめなければいけないかもしれない。ジョイスティックのAD変換の結果から求めた方向の信号を直接ディスプレイ側のRX信号線と接続すれば少しプログラムを修正するだけで動作させることはできると思う。無線通信に費やした時間はもったいないが仕方がない。

12月21日

・第10回自主課題研究。引き続きXBeeでの送受信のテスト。ジョイスティックの信号をAD変換し条件によって入力方向を決定し、入力方向ごとにTX8でXBeeの信号入力ピンに信号を送る。PCとつながったXBee側でX-CTUのターミナルで受信を確認。正しく受信するときと受信できない時がある。受信ができない原因として互いのボーレートが異なっていることを考えたが、成功することもあるし計算上は9600で共通のはず。となると配線がおかしいのかもしれないがオシロで送信信号をみるとちゃんと信号は出ていたと思う。結局原因はわからなかった。X-CTUのターミナルで信号を送信しディスプレイ側のPSoCのRX8で受け取る方は一度もうまくいかなかった。ボーレートは送信側と同じはずなので大丈夫なはず。配線かプログラムがいけないのかもしれない。

・とりあえずターミナル経由で視力検査のプログラムを完成させることに。マイコンブの過去の自主課題研究のページをみているとADCの入力に何もつながないと雑音による乱数が取り出せるということで利用することにした。取り出した値を4で割った余りを上下左右4方向に割り当てる。理由はわからないが開始後初めて取り出した時の余りが毎回同じだったので、1回目に取り出した値は無視することにする。ターミナルから方向を入力することでとりあえず視力検査のプログラムはできた。無線通信が成功したらUARTの部分をTXとRXに置き換えればよさそう。ただ通信用のブロックが足りなくなったので、ディスプレイからのACK信号を受け取れなくなってしまった。delay関数で一定時間待たなければならない。

12月14日

・第9回自主課題研究。PSoC1duinoの基板を完成させ書き込みができるか確認。一つ目の基板のときは大西さんに確認してもらったので知らなかったが、初めて書き込むときには特別な方法が必要らしい。秋田先生にやってもらい、その後自分のプログラムを書き込んだら正常に動作した。

・XBeeとジョイスティックの配線に移る。XBeeはピン間隔が通常よりも狭いので、2mm用のヘッダの使うピンだけ曲げて基板に配置した。またXBeeは動作電圧が3.3Vでないといけないので入力電圧は5Vを抵抗で分圧する。これらの配線にかなり時間がかかってしまった。その後PSoC同士で通信ができるかテストしてみる。やはり一度では成功しなかった。受信側とPC、送信側とPCそれぞれで通信できるかやってみると、送信側ははじめのうちは成功したが、途中から入力してもターミナルに表示されないことがあった。AD変換の方で問題があるのかもしれないが原因は分からなかった。受信側は完全にアウトで変な文字がターミナルに表示されたり、基板を触ったらターミナルに表示されたりと明らかにおかしかった。こっちは配線に原因があるのかもしれない。

・今年中にハードの部分は何とか完成させたい。

12月7日

・第8回自主課題研究。ディスプレイとジョイスティックを離したい旨を相談したら無線通信のアイデアをいただいたのでやってみることに。XBeeという近距離無線通信モジュールを使用する。川上さんが雑誌で書いた記事を参考に二台のXBeeをPCを使って通信してみる。それぞれに互いのモジュール番号を記憶させ相互に通信をする。文字データを送ってみるが受け取らない。後に川上さんに見ていただき、互いのモジュールに送るのでなく周りにあるXBee全てに信号を送るようにしたら文字を受け取った。周りでもXBee通信をしていると問題が発生するがとりあえず大丈夫だろうということで通信することはできた。

・受信側と送信側でPSoCが二ついるので秋田先生に二枚目のPSoC1duino基板を作っていただき、残りの素子をはんだづけした。二回目なので初めの基板よりはきれいにできた。ただ一つだけ素子が見つからなかった(トランジスタ?)ので次回場所を聞こうと思う。

・XBeeモジュールはピン間隔が2mmと通常の端子と違うのでそのままでははんだづけできない。今回PC通信用に使用した変換基板を使わせてもらっていいのだろうか。そのあたりをはっきりさせて次回はジョイスティック→AD変換→TX8→XBee→→XBee→RX8と、離れたところのジョイスティックの入力をディスプレイ側のRXで受け取るようにするのが目標。

11月30日

・第7回自主課題研究。ジョイスティックの傾きによって変わる電圧をPGAで受け取り1倍にしてAD変換に出力、デジタル値にして受け取る。縦方向と横方向の傾きを読み取りたいのでDualADCを使用。ジョイスティックから直接配線を伸ばし、VDD、GND、縦方向、横方向をそれぞれ対応する所にはんだ付けしてみる。仮のプログラムを記述したところでPSoC1termを起動するがポートを読み込まない。先輩たちに助けてもらい読み込みができたと思ったが、何度かやってみるとどうもシールドをPSoC1duinoと接続した状態だとポートを読み込まなくなるようだった。配線が何かおかしいらしかったので、とりあえずジョイスティックの配線を元に戻したら正常にポートを読み込んだ。

・岩崎君に情報をもらい、ジョイスティックの基板部分にピンをつけて、本体のシールドにソケットをつければ直接はんだしなくてもジョイスティックを差し込むだけでOKだそうだ。今までも同じようにやっていたのにこのことを失念していたのは痛かった。しかし視力検査の都合上ジョイスティックは離して使いたいので(3m離したい)ソケットとピンで接続するのはとりあえず保留しておいた。せっかく先輩たちがいらっしゃったので相談してみればよかった。

・とりあえずOLEDからのACKをRXで受け取ってから次のコマンドを送るようにしてみた。比べてみると明らかに動作が速くなったと思う。

・今回はAD変換の部分でかなり迷走してしまったので実際にできた作業はACKを受け取る部分だけだった。各大きさ、向きのランドルト環を表示する関数など、いつでもできる部分の作業は進めておくようにしたい。

11月16日

・第6回自主課題研究。前回に続きPSoCからOLEDにコマンドを送る所から。色々調べてみると、とりあえずディスプレイの電源が入った時からコマンドを送り始めれば大丈夫そうだったのでプログラムと配線を変更。常にVDDにしていたリセット端子をプログラムの初めでGND→VDDに設定するためにLEDモジュール(実際にはただ信号をONとOFFに変えるだけ)を追加。これによりマイコンをリセットするたびにディスプレイもリセットされる。これによりコマンドを正しく送ることに成功。

・コマンドは送れていたが連続して送ってもディスプレイが反応してくれないのでdelay関数を作りコマンドを認識するまでに時間を作る。図形の描写に比べ背景色の変更に多くの待ち時間が必要だった。今回はdelay関数で適当な時間を稼いだが、秋田先生からの助言でディスプレイから返ってくるACK信号をどこかのピンで受けとるようにして、ACKが返ってきたら次のコマンドを送るようにしたらdelayを気にする必要がなくなり最短でコマンドを送れそう。今後変更しようと思う。

・次回はADCを使いジョイスティックの傾け方によって変わる電圧を受け取るようにする。次回までにADCの使い方などを学んでおくことが課題。

11月9日

・第5回自主課題研究。 PSoCからOLEDに信号を送る。テンプレートのUARTのTXをport2_2につないでOLEDに信号を送ってもうまくいかない。オシロで調べると信号自体が出力されていなかった。詳しい原因はわからなかったが、別にTX8(8ビットの送信)を設定することで信号を送ることはできた。

・信号はOLEDに遅れたが思い通りの動作をしてくれない。OLEDからの反応信号を調べてみるとNAK(異常)が返ってきていた。PCから直接コマンドを送ると思い通りの動作をしたがPSoCから送ると成功しない。どうも初めにボーレートを自動検知するためのコマンドを送っているのだがボーレートが正しく検出できていないらしく以降の信号もうまく検出できていないらしい。PSoCからの信号とPCからの信号で何が違うかがわかれば対処法もわかりそうだが。

・その後もいろいろと試してみるがうまくいかずほとんど進めず終了。次回は何とかPSoCから正しくコマンドを送れるようにしたい。中谷さんに遅くまで付き合ってもらったのは申し訳なかった。

10月31日

・第4回自主課題研究。とりあえずパソコンからディスプレイ側にコマンドを送ってディスプレイを変化させられることを確認。
・ディスプレイ側から送られる信号を確認するためにディスプレイ側のTXとPSoC側のRXを接続。しかし信号が返ってこない。そこでTX-RX、RX-TXと接続していた所をTX-TX、RX-RXに接続し直す。やっていたときはよく分からなかったが後に回路図などを見直してみると、PSoC側のTXは「USB-シリアル変換モジュールに信号を送る」、RXは「USB-シリアル変換モジュールからの信号を受け取る」ピンで、RXピンにPCからの信号が出ていて、TXピンにはPCが受け取る信号が出ている、ということだろうか。それプラス、PSoCをはずし、途中の抵抗を短絡させる。抵抗の短絡は、抵抗の片側は信号がでていたのにもう片側は信号が出ていなかったから短絡したのだろう(と思う)。PSoCをはずしたのはよく分からなかった。ただやってみた、ではなくどうしてそうしたのか自分で考えて理解するようにしたい。
・以上の変更でついにディスプレイにコマンドを送れた。円+その内側に背景色と同じ色の一回り小さい円+円に重なるように背景色と同じ色の長方形、を表示させることでとりあえずランドルト環は表示させられた。ちょっと感動。

・次回はPSoCから信号を送り表示を変化させることがとりあえずの予定。チュートリアルでやったシリアル通信と同じようにやればできるのだろうか。

10月26日

・第3回自主課題研究。作りたいものプレゼンからスタート。研究室の方たちがたくさんいらっしゃったので緊張した。作るものは「視力検査+ゲーム要素(詳しくはまだ未定)」に決定。シリアル通信について教わった。LEDディスプレイにランドルト環を表示させるのは確定なのでそのための基板(シールド?)を制作。配線のやり方を学んだ。しかしぐちゃぐちゃ・・・。ちゃんと動くか心配。

・次回までにOLEDディスプレイのデータシートを読んでおくことが課題。

☆備忘録☆
・コンピュータとマイコンの間で一本の信号線で1bitずつデータを通信するのが「シリアル通信」。複数の信号線で複数bitをまとめて通信するのが「パラレル通信」。今回はシリアル通信を使用。
・PSoCのTX(データ送信)とLEDのRX(データ受信)をつないでPSoC→LEDにデータを送る。LED→PSoCは今回は使わない。(というか使えない?)
・今回使用するLEDのリセット信号線は1(5V)につながないと絶えずリセットされてしまう。(正確にはActive lowのパルス信号が2μs以上入力されるとリセットされる)

10月19日

・第2回自主課題研究。PSoC1duinoのチュートリアルを一通り実行してみる。配線、プログラム、書き込みなど一回やってしまえば流れはわかった。思ったとおりの動作をすると感動した。ただ自分で考えて一から作れるかというとまだまだだと思う。自分で勉強していきたい。

・来週は作りたいもののプレゼン。自由なアイデアを考えたい。

10月12日

・第1回自主課題研究。ガイダンス後早速はんだづけの作業に取り掛かる。中学以来のはんだはやり方を完全に忘れていた。素子の足を折って位置を固定することを思いつかず抵抗とLEDがぼこぼこに。見栄えだけでなく動作の上でもあまりよくないらしい。そこが原因ではなかったが動作確認でうまくいかず。

・作りたい物の具体的なアイデアはなかなか浮かばない。日々の生活でいろいろなところにアンテナを向けておく必要がありそう。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS