Last modified 02/12/2002
三菱製人工網膜チップ(M64270G)とCygnal製8bitマイコン(C8051F300)を使用して作った RCX用の視覚ユニットです。
下の図はVision Unitの回路図(01/06/2002版)です。
C8051F300一つではI/Oポートが足らないので二つ使ってM64270Gを制御しています。
(二つのC8051F300はSMBUSでつながっている)
M64270GやC8051F300で構成されているカメラ基板と
三端子レギュレータ(UPC29L33)や赤外線受光モジュール(CRVP1738)で構成されている
赤外線インタフェース基板の2枚構成になっています。

| 種類 | 品名 | 数量 | 記号 | 備考 |
|---|---|---|---|---|
| カメラ基板 | ||||
| IC | C8051F300 | 2 | U1,U2 | Cygnal $10.59 |
| M64270G | 1 | U3 | − | |
| 抵抗 | 1K | 4 | R3-R6 | サトー電気 \275(50個) 2012(2125) |
| 2.2K | 2 | R1,R2 | ||
| コンデンサ | 0.1U | 7 | C1-C7 | サトー電気 \160(20個) 2012(2125) |
| 10U | 3 | C8-C10 | サトー電気 \35 タンタル10V A(3216) |
|
| コネクタ | ピンヘッダ | 適量 | CN1-CN3 | − |
| 基板 | 両面スルーホール基板 | 1 | − | OLIMEX $33.6(8セット) |
| 赤外線インタフェース基板 | ||||
| IC | UPC29L33 | 1 | U4 | 若松通商 \70 |
| CRVP1738 *1 | 1 | U5 | 秋月電子通商 \200 | |
| ダイオード | 1S4 | 5 | D1-D5 | 秋月電子通商 \250(10個) |
| LED | GL538 | 1 | D6 | − |
| 抵抗 | 150 | 1 | R7 | サトー電気 \275(50個) 2012(2125) |
| コンデンサ | 0.1U | 1 | C11 | サトー電気 \160(20個) 2012(2125) |
| 47U | 1 | C12 | 千石電商 \200(10個) | |
| ケーブル | 9V Connecting Lead | 1/2 | − | − |
| 基板 | 両面スルーホール基板 | 1 | − | OLIMEX $33.6(8セット) |
Vision Unitの基板(01/08/2002版)です。
カメラ基板(PCB_A)と赤外線インタフェース基板(PCB_B)です。

基板はOLIMEXに8セット分発注しました。
(今回は急いだのでEMSを指定しましたがAirMailなら$8です)
| Items | Qty | Unit Price | Item Total |
|---|---|---|---|
| DSS(PCB_A x8, PCB_B x8) | 1 | $26.00 | $26.00 |
| Exceed 500 drill holes | 1 | $2.60 | $2.60 |
| Second silkscreen print | 1 | $5.00 | $5.00 |
| EMS shipment | $30.00 | ||
| Total | $63.60 | ||
組み立て後の基板です。この2つの基板を背中合わせにつなげて使用します。

消費電流を測定してみたところ約35mAでした。
C8051F300用のファームウェアです。
RCXとは赤外線メッセージで通信します。
| 通信方向 | コマンド/レスポンス | パラメータ | メッセージ | 備考 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | ||||
| RCX → Vision Unit | 水平位置要求 | − | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 物体の水平位置を「位置応答」で返す。 |
| − | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | |||
| 1 | 0 | 0 | 0 | 0 | 0 | 1 | - | ||||
| 1 | 0 | 0 | 0 | 0 | 1 | - | - | ||||
| 1 | 0 | 0 | 0 | 1 | - | - | - | ||||
| 識別色設定 | R選択 | 1 | 0 | 0 | 1 | - | - | 0 | 0 |
赤 = 90h(144) 緑 = 91h(145) 青 = 92h(146) 黄 = 96h(150) だいだい = 9Dh(157) 正常終了時は「正常終了応答」を返す。 |
|
| G選択 | 1 | 0 | 0 | 1 | - | - | 0 | 1 | |||
| B選択 | 1 | 0 | 0 | 1 | - | - | 1 | 0 | |||
| − | 1 | 0 | 0 | 1 | - | - | 1 | 1 | |||
| 色座標符号反転なし | 1 | 0 | 0 | 1 | - | 0 | - | - | |||
| 色座標符号反転あり | 1 | 0 | 0 | 1 | - | 1 | - | - | |||
| 色座標入れ換えなし | 1 | 0 | 0 | 1 | 0 | - | - | - | |||
| 色座標入れ換えあり | 1 | 0 | 0 | 1 | 1 | - | - | - | |||
| − | 1 | 0 | 1 | - | - | - | - | - | |||
| 1 | 1 | - | - | - | - | - | - | ||||
| Vision Unit → RCX | − | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| 正常終了応答 | − | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | ||
| − | 0 | 0 | 0 | 0 | 0 | 0 | 1 | - | |||
| 位置応答 | なし | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | ||
| 右/下 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | |||
| 左/上 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | |||
| 中 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | |||
| − | 0 | 0 | 0 | 0 | 1 | - | - | - | |||
| 0 | 0 | 0 | 1 | - | - | - | - | ||||
| 0 | 0 | 1 | - | - | - | - | - | ||||
| 0 | 1 | - | - | - | - | - | - | ||||
Vision Unitの使用例です。
ポートAには左側モータ、ポートCには右側モータを接続してあり、
ポートBからVision Unitの電源を取っています。
このRCXコードで黄色の物体を探し自動的に接近します。
(Vision Unitを上下逆さに搭載したので、左右のメッセージが逆になっています)


動画(160×120) : ball.asf(200,922byte)