はじめに
この文書ではRPiCarに備わる各デバイスがRaspberry Piのどの端子と接続されているか述べています.
デバイス
各デバイスとそのデバイスで使用している端子数や通信方法について述べます.
各種LED
LEDをヘッドライトなどとして使用しています.ここではどのようなLEDがあるか箇条書きで示します.
- 下側基板
- ヘッドライト(白)[HEAD]
- ブレーキライト(赤)[BRAKE]
- 右ウィンカ(黄)[RIGHT]
- 左ウィンカ(黄)[LEFT]
- バックライト(白)[BACK]
- 上側基板
- ネットワーク接続確認用LED(緑)[LED2]
- バッテリ電圧低下警告灯(黄)[LED1]
なお,上側基板に備わるLEDはOS側で管理しているため,プログラムで制御する必要はありません.
ビーパ
クラクションとしてRPiCarにはビーパがあります.圧電スピーカと異なり,このデバイスは一定の音しか流れないしようとなっていますが,代わりに圧電スピーカのような複雑な処理(鳴らしたい音の周波数の信号を出力すること)を必要としません.[BEEP]端子をON/OFFすることで音を鳴らす/消すことができます.
距離センサ
距離センサはSTマイクロエレクトロニクスのVL53L0Xを使用しています.このモジュールはI2C([SDA][SCL])で距離を得られるようになっています.加えて距離を計測し終えたか確認するための端子として[READY]端子があります.
モータドライバ
モータドライバとしてDiodes ZetexのZXBM5210-S-13を用いています.このモータドライバでは,惰性,正転,逆転,ブレーキの4状態を切り替えるための2端子(左側が[AIN1][AIN2],右側が[BIN1][BIN2])と,速度調整を行うPWM端子(左側が[PWMA],右側が[PWMB])が行えるようになっているため,片側で3端子,両側で6端子があります.
フォトリフレクタ
下側基板の裏側に3つのフォトリフレクタがあります.フォトリフレクタには発光部と受光部が同一方向に配置されており,発光部は地面に向けて光を照射します.その照射した面が白なら反射して受光部でその反射光を検知できます.一方,照射した面が黒なら反射せず受光部で光を検知できません.フォトリフレクタはこのようにその下の状態を検知できるデバイスです.RPiCarには3つありますので,端子も3つ(右側が[PI1],真ん中が[PI2],左側が[PI3])となります.
フォトインタラプタによるモータのロータリエンコーダ
フォトインタラプタには発光部と受光部が対向した形で配置されており,発光部と受光部の間に遮蔽物がなければ発光した光を受光することができ,遮蔽物があればそれができない性質を利用し,モータの回転軸に取り付けた穴あき円盤の回転数を読み取るときに利用します.モータは同じ速度で回転させたつもりでもギアや路面状況によって本当に同じ回転数が担保できません.そこでこのデバイスにより実際の回転数を検知することで左右にある車輪の回転数を検知し,その状況に応じてモータの回転数を調整するときに用います.RPiCarには2個のモータがあり,それぞれにフォトインタラプタが備わっているため,端子数は2つ(右側が[ENC_R],左側が[ENC_L])となります.
その他のデバイス
上記以外にOSのリブートを行うプッシュスイッチ(赤)[SW1],シャットダウンを行うプッシュスイッチ(白)[SW2],バッテリ電圧が基準の電圧よりも低下したか確かめる端子[BAT]があります.いずれもOS側で管理しているため,プログラムで特に何か処理する必要はありません.
各デバイスの接続状況
下の表は各デバイスの接続状況を表しています.ここでピン番号にはBCMと物理があることに気が付くと思います.BCMとはRaspberry PiのCPUを作っている会社であるBroadcomのことで,つまりCPUの端子番号を表しています.物理とはRaspberry Piに備わる物理的は40本の端子を表しています.Pi4Jで端子を操作する場合,BCMのピン番号を使います.このため,例えばヘッドライトと接続されているHEAD端子は物理的な番号は29番ですが,BCMでは5番になるため,5番の端子を操作することでヘッドライトを点灯/消灯をさせられます.なお,LEDはすべてHighを出力すると点灯,Lowを出力すると消灯となっています.
役割 | 名称 | ピン番号 | ピン番号 | 名称 | 役割 | ||
BCM | 物理 | 物理 | BCM | ||||
3.3V | - | 1 | 2 | - | 5V | ||
I2C | SDA | 2 | 3 | 4 | - | 5V | |
I2C | SCL | 3 | 5 | 6 | - | GND | |
IN | SW2 | 4 | 7 | 8 | 14 | SW1 | IN |
GND | - | 9 | 10 | 15 | AIN2 | OUT | |
OUT | BIN1 | 17 | 11 | 12 | 18 | PWMA | PWM |
OUT | AIN1 | 27 | 13 | 14 | - | GND | |
PWM | PWMB | 22 | 15 | 16 | 23 | READY | IN |
3.3V | - | 17 | 18 | 24 | BIN2 | OUT | |
OUT | BEEP | 10 | 19 | 20 | - | GND | |
OUT | BRAKE | 9 | 21 | 22 | 25 | LED1 | OUT |
OUT | LEFT | 11 | 23 | 24 | 8 | RIGHT | OUT |
GND | - | 25 | 26 | 7 | BACK | OUT | |
RESERVE | - | 27 | 28 | - | RESERVE | ||
OUT | HEAD | 5 | 29 | 30 | - | GND | |
IN | PI1 | 6 | 31 | 32 | 12 | LED2 | OUT |
IN | PI2 | 13 | 33 | 34 | GND | ||
IN | BAT | 19 | 35 | 36 | 16 | PI3 | IN |
IN | ENC_L | 26 | 37 | 38 | 20 | ENC_R | IN |
GND | - | 39 | 40 | 21 |