◆シリアルねずみ

 シリアルねずみは、パソコンのシリアルポートを使ってねずみロボットを動かすおもちゃです。 動かすねずみロボットは青い発光ダイオードの目と3mの紅白の長い尻尾が特徴のなかなか可愛いロボットで、 この尻尾の先を回路につないでやると前と左右の3方向に割と機敏に走り回ります。
シリアルねずみ

シリアルねずみ!
 パソコンで自作回路を動かす構想自体は結構前から考えていたのですが、 パソコンと自作回路の通信についての資料を色々と見てみたところ まともな通信を行うにはPICなどのマイコンを使って、 プログラム的に制御してやらないといけないようだということが分かってきました。
 とはいっても、マイコンのプログラム設計にはかなりの時間が必要になります。 さすがに「ただ動くだけ」のねずみにそこまでの時間を割くのは無理だなぁというのが正直なところだったので パソコンとの接続は殆ど諦めていました。

 ところが、ある日ふと見たトラ技の2000年4月号に、シリアルポートを通信ポートとしてではなく 汎用ポートとして使う製作例がのっていました!

 その記事には、まともな通信ははなっから諦めてお互いの状態を確認し合うための信号線を WindowsAPIで叩けば汎用ポートとして使えるというようなことが書いてありました。 このアイデアは使うしかないと思って、めでたく今回の製作となりました。

−目次−

壁づたいねずみ

システムの構成

信号の送り出しと受け取り

回路の構成

パソコン側のプログラム

堂々完成

製作の感想



 ▼壁づたいねずみ

 ねずみロボットには田宮模型の楽しい工作シリーズ「壁づたいねずみ」を使用しています。 楽しい工作シリーズは田宮模型の小学生向けの工作キットで、大体1000円から1500円位の値段で 尺取り虫が動くものや恐竜が歩くものなど結構色々な種類が出ています。 私も小学生の時にはよく親に買ってもらって作りました。「壁づたいねずみ」は車体に取り付けられたセンサーロッドで壁を感知して壁づたいに進んでいく、という ものでした。良くできているなぁと驚いたのを覚えています。
 今回は、この壁づたいねずみに改造を施して有線操作のロボットにしました。

壁づたいねずみ
壁づたいねずみの外箱

 ▼システムの構成

製作したシリアルねずみの構成は下図のようになっています。

シリアルねずみシステム概念図

動作の流れ
1.パソコン側プログラムがシリアルポートを開く
2.パソコン側プログラムが制御信号(DTRとRTS;詳しくは後述)を送り出す
3.ロジックレベル変換部が信号を受け取って5Vレベルに変換
4.モータードライバのロジック回路に信号が到達
5.モータードライバのモーター駆動部からロジック入力に従ってねずみロボットのモーターへ電源供給
6.ねずみロボットのモーターが回転、ねずみロボットが動く
あとは2〜6の繰り返し
 この流れ図によって、ねずみロボットを動かすには「パソコン側プログラム」と 「回路基板」が必要なことが分かりました。
その他にも色々なことが分かります。例えばシリアルポートからの信号が2本しかないので、 制御信号は4種類しか送れません。そこで今回は前と左右と停止の4状態を下図のようにそれぞれ割り当てました。
ねずみの状態DTR信号RTS信号
停止00
左回転10
右回転01
前進11
 また、制御信号を全てモーター制御に持って行かれたので、シリアルポートを開いたときに目のLEDが点灯するという 格好いい演出が出来なくなってしましました。 個人的にはこのシリアルねずみで、「A10神経接続開きます!云々」という感じの一人遊び(笑)がしたかったので どうしても欲しい機能だったのですが、ねずみの動作が2値制御になるよりはましなので今回は諦めました。
 それから、上のシステム構成図に発光ダイオード用の部分が入っていないのは制御の対象ではないからです。 発光ダイオードの回路は調整抵抗と発光ダイオードが直列になっているという、 基本回路そのままのものが5VからGND(0V)へ向けて接続されています。

 ▼信号の送り出しと受け取り

シリアルポートは殆どのパソコンに取り付けられている通信ポートです。COM1、COM2、といった名前が振られているので COMポートといった方が通りがいいかも知れません。パソコンの裏に回ってみれば2cmくらいの大きさの9ピンの端子があると思います。 それがシリアルポートです。
 本来は通信用途に使うのですが今回は先述したように通信制御用のピンをWindowsAPIで叩いて汎用のポートとして使用しました。

そのしくみを簡単に説明します。
まずシリアルポートの九つのピンの役割なのですが、注意しなければならないのは9pin全てがI/O (アイオーと読む。入出力(Input/Output)の意) できるわけではないということです。各ピンにはそれぞれ次のような役割があります。
ピン番号入出力信号名
1ICD
2IRxD
3OTxD
4ODTR
5-GND
6IDSR
7ORTS
8ICTS
9ICI
 今回の製作ではパソコンから回路への出力のみを行い、回路からパソコンへの入力は行わないことにしていたので 使用出来るピンは出力ピンである3(TxD)、4(DTR)、7(RTS)の3ピンです。 ところが、2のRxD、3のTxDは通信用のピンなので規格通りの制御を行ってやらないとうまく機能しません。 そこで今回の製作では4(DTR)、7(RTS)の2ピンを操作してねずみを動かしました。 この2つのピンはWindowsAPIのEscapeCommFunction関数をつかって簡単に状態を変更できます。

 パソコン側の信号送出は出来るようになったので、続いて回路側での信号の受け取りです。 実は、これがちょっとやっかいなのです。普通、電子回路ではデジタル信号を+5Vと0Vで扱うのですが、 シリアルポートの信号は、信頼性の確保のために+5〜15Vと-5〜15Vで入出力されているのでした。 もちろんこのレベルに変換してくれる専用のレベル変換ICも売られているのですが、 ただの有線ロボットに使うにはもったいない気がします。 そこでインターネットで検索してみたところ、 「えるむ−Electronic Lives Manufacturing」に 一般的なデジタルロジックICである74HC04を使ってシリアルポートとやりとりする方法についての記事がありました!
これでパソコン側とのインターフェースをかなり簡単なものにすることが出来ました。

最後に、参考にしたシリアル通信関係の記事のあるホームページへのリンクを張っておきます。
Electronic Lives Mfg.
「テクニカルノート」内にある「超簡単! RS-232Cインターフェース回路」という記事を参考にしました。
MAX232などの変換ICを使わずに、74HC04で実現しようという内容です。
電子工作の実験室
「PICプログラミングテクニック」内の「シリアル通信のプログラミング方法」という記事でRS232C規格が詳しく説明されています。

 ▼回路の構成

 製作に当たって使用した部品は以下のようなものです。
部品名数量役割一個当たりの購入価格買った店
モータドライバIC TA7291P2個モーターの駆動280円デジット
ロジックIC 74HC041個パソコンとのインターフェース30円シリコンハウス
3端子レギュレータIC 78L051個+9V→+5Vの変換80円シリコンハウス
D-Sub 9pin-9pin ケーブル(オス・メス)1本パソコン回路間の接続400円秋月電子通商
D-Sub 9pinはんだ付け用コネクタ(メス)1個ケーブルコネクタ50円秋月電子通商
マイコン用ピンヘッダ・ソケット少量各種コードと回路を接続50円秋月電子通商
カーボン抵抗 100kΩ、4.7kΩ各2個パソコンとのインターフェース5円ニノミヤ
カーボン抵抗 2kΩ2個発光ダイオードの調整抵抗5円ニノミヤ
青色発光ダイオード2個ねずみの目100円デジット
可変抵抗器1個TA7291のVref調整抵抗40円エレ工房さくらい
電解コンデンサ 100uF1個回路の保険(インピーダンスを下げる)30円デジット
積層セラミックコンデンサ 0.1uF3個モーターのノイズ低減2個
回路の保険1個(インピーダンスを下げる)
10円エレ工房さくらい
すずメッキ線 0.6mm少量配線用120円ニノミヤ
被覆より線30mぐらい回路ねずみ間の接続350円(10m)シリコンハウス
電池スナップ2個電池をつなぐ10円秋月電子通商
基板 ICB-901枚ねずみの目を取り付け160円ニノミヤ

シリアルねずみ回路図

 本当はモーター駆動はパワートランジスタで行う予定だったのですが、 デジットでは型番を控えていったトランジスタを扱っていなかったので 仕方なくモータードライバICの中で店頭価格が一番安かった TA7291Pを選びました。TA7291は実際には4値制御が出来るフルブリッジドライバなので、 今回の回路に使うのは本当は能力過剰なのですが、まあ良しとしましょうか。

 ▼パソコン側のプログラム

 信号の送出方法については既に述べたので、続いて実際に作ったプログラムについて説明します。

 トラ技の記事では有名なVisualBasicでプログラムしていたのですが、 私は残念ながらDelphiしか使えないのでDelphiでプログラムを行いました。 ちなみに私が有名なVBでなくあえてDelphiを使っているのは、Delphiではコンポーネントが使えるというのが大きいです。 コンポーネントというのは、色々な方が公開されているプログラムの部品のことで、 これを組み合わせて簡単にプログラムを作ることが出来ます。
 ということはつまり、自分の実現したい機能のコンポーネントさえ見つかれば、 自力で複雑なコーディングをしなくてもプログラム開発が出来るわけです(^-^;

 そこで今回も楽をするべく、シリアル通信用のコンポーネントを探してみました。 色々Delphi関連のページを探してみると、TRS232C」 というシリアル通信用コンポーネントを公開されている方がおられました。

 ……で、これがその完成版です。ちょっと前に流行ったエヴァンゲリオン風の仕上がりです(^^;
ねずみ自体が手元になくてもプログラムを動かすことだけなら出来るので、 どんな感じのプログラムなのか興味のある方はダウンロードしてみてください。

操作プログラム画面 クリックすると実寸大になります

ダウンロードはこちらから。
◆プログラムのみ
NEZUMI232.EXE(NEZMI232.lzh; 195KB)
シリアルねずみの制御プログラムです。COM2ポートを使用します。

COM1版(NEZ_COM1.lzh; 195KB)
上のプログラムの使用ポートをCOM1に変更したものです。

ソースのみ(nez_srce.lzh; 41KB)
Delphi5用プログラムソースと画像ファイルだけのものです。
また、コンパイルの際はTRs232cコンポーネントをDelphiに組み込んでおかないとエラーになりますので ご注意下さい。

 ▼堂々完成

完成写真です。簡単な解説も付けてあります。

ねずみ正面 正面から見たねずみ

デジットで買った日亜化学製青色発光ダイオードの目もくらむような光が特徴です。 この発光ダイオードは何故か楕円形をしています。
ねずみ後ろ側 後ろから見たねずみ
ねずみ側面 側面から見たねずみ
カバーを取ったねずみ

プラスチックカバーを取った状態です。 ちなみに発光ダイオードの基板はセロハンテープで土台のプラスチックに取り付けられています。
モーター部露出状態

モーターに取り付けられている、ノイズ低減用コンデンサ(青い粒のようなもの)が確認できます。 DC(直流)モーターを使用するときには端子間に小容量のコンデンサを取り付けるのが定石だそうです。
モーター部拡大

コンデンサの様子です。
斜め後方から

ケーブルの引き回し方はこんな風になっています。
このケーブルは3m長の被覆線が7本 (右モーター2本、左モーター2本、発光ダイオード用3本(右1、左1、GND1))束ねられています。 2本づつ組にして編んであるのですが、これを編むのがとても大変でした。
発光ダイオード部拡大

こんな感じの発光ダイオードを使いました。
基板俯瞰

右側が空き地になっているのは、配置をろくに考えずに作り始めてしまったからです(^_^;

また線を接続しているのは秋月電子通商で扱っているマイコン用ピンヘッダ・ピンソケットです。
ピンヘッダの方は好きなピン数に折って使えるのですが、ソケットの方は20ピンでかたまりになっているので 1列分を無駄にしてPカッターで溝を付けてからラジペンで希望のピン数に折りました。(割りました、かも……(^^;)
基板拡大

手前左が3端子レギュレータ関係、手前右がシリアルポートとの接続関係、 そして奥がモータードライバ関係という配置になっています。
基板裏面

試行錯誤のあと(迷走する配線、被覆線)が丸見えで少し恥ずかしい(^_^;
まあ、アマチュア回路なんでこんなもんでOKでしょう。


 ▼製作の感想

 ようやく夢だったパソコンと回路との連携が出来ました。(^-^)
今回の製作で一番しんどかったことといえば、やっぱりコード編みでしょうか。 3mのコードを編むのはホントに大変でした。自分の部屋でコードを編んでいるところを 母に見られて笑われたりもしましたし……。

結局、慣れない作業のせいもあって編み上がるまでに一時間半ほどかかりました。

 
 それから、今回初めてピンヘッダ/ソケットを使用したのですが、とても便利でした。 各種のコードを外しておけるので、はんだ付けの時に邪魔にならないのが良かったです。

 それにしても、動くものというのはとても面白いものです。光ったり音が出たりというのもそれなりに面白いのですが、 やはり動くものの圧倒的な面白さの前にはかないませんね。ねずみがうまく動いたときには思わず小躍りしてしまいました。
家族からの評判もとても良かったです。ねずみの形で目が光る、というのも成功の一因かと思っています。 生き物の形をしていると、つい色々想像して感情移入してしまうところがあるようです。

トップページへ戻る

ご意見・ご感想等は……ntsukasa@livedoor.comまで。

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!