EASY84シリーズとは、PIC16F84を使って簡単な電子工作を楽しもうという企画である。
5回目はパソコンとの接続がテーマである。
パソコンの周辺機器のインターフェースは、今USBがいちばんポピュラーではないだろうか?
とフっておきながら、USBを使うわけではない。
もっと簡単にお手軽に使用できるRS232Cシリアルインターフェースを使おう。
特別なハードも要らず、一方向なら信号線1本で構成することも可能である。
というわけで、その最もシンプルな構成でパソコンと接続してみる。
パソコンからのデータをPICに読み込む。
アプリケーションノートによれば、RS232Cからのデータを抵抗を介してPICの入力ポートに接続すればいい。
厳密に言うならば、PICの入力電圧レベルは0〜Vccに対し、 RS232Cの規格電圧レベルは−12〜+5Vなので、本来はレベル変換をしなくてはいけない。
このレベルの違いを、PIC内部の保護用ダイオードでクランプして吸収してしまうというわけだ。
22kの抵抗をつけることで、電流制限し、ダイオードを破壊しないようにする。
推奨されるべき回路ではないが、趣味で楽しむ分にはよしとしよう。
パソコンからデータが決まった間隔で送られてくるので、そのタイミングに合わせてPICで読み込む。
データ通信の方法には、データが確実に受信されているかを確認しながら通信する方式もある。その場合は、データ線以外に制御線が必要になる。
今回は、データはパソコンからスタート信号とともに一定速度で送信する。
受信側(PIC側)では、スタート信号を検出したら一定速度で受信する。
送信側は受信側が受け取っているかどうかは関知しない。信頼度は低いが、とてもシンプルなのである。
作るモノは、LED35シアターである。
LED35シアターとはLEDを5×7のマトリクスに並べた1画面35画素のミニミニスクリーンに図形や文字を 表示するイルミネーションである。
16F84には64バイトのEEPROMデータ領域があるので、ここにパソコンから送られてきた表示パターンデータを記録し、電源を切っても繰り返し表示 できるようにしよう。
この手のアプリケーションでは、表示がスクロールするものがほとんどであるが、このLED35シアターでは、画面切換えが可能である。
従ってアニメーション表示もできる。とはいえ、メモリデータ領域が64バイトしかないので、たいしたことはできないが。
ハードウェア
製作した基板
ケースに入れた状態。電池収納用と2段重ねである。
インタフェースケーブルを接続した状態。
ソフトウェア
表示パターン編集と転送用のツールを作成した。
開発言語はVisualBasic6.0である。
サンプルムービー
ドライブゴーゴー!(MPEG 1.01Mbyte)
GOO(MPEG 846Kbyte)
データ転送中のようす (MPEG 201Kbyte)
うーむ、35画素ではやはり表現力に乏しい・・・
そんでもってデータ領域も少ないときている。
これをベースにもう少し表現力のあるメッセージイルミネーションを作りたいものだ。
この製作記事については、また機会を見て詳しく紹介することにしよう。