RaspberryPi Zeroの並列化
HAT (Hardware Attached on Top) というメーカーが、RaspberryPi-Zeroを4枚並べることのできる、ボードを提供していて、恰好が良いので購入してみた。恰好は良かったのだが、実際のところどうなのかが分からなかったということもあって、人柱となってみたのだった。型名は8086-001 Cluster HATである。
到着したので眺めてみると、ボード単独では使えないようで、コネクタによってベースとなるRaspberryPiが別途必要となるらしいことが分かって、改めてRaspberryPi Zeroとコネクタのハンマリングツールを発注した。ハンマリングツールというのは、コネクタを圧入する代わりに、ハンマーで叩き込むための治具である。
で、Zeroにコネクタを取付けて、Cluster HATと接続したのだが、うまくコントロールできない。ベースのRaspberryPiのGPIOを制御することで、Zeroの電源をコントロールするようなのだが、反応しないのだ。
散々やってみて、結局Cluster HATのホームにある接続図や説明が、手持ちのボードと全く異なることが判明したのだ。ボードを虫眼鏡で見て、配線の具合を調べて、確定したのが、以下の通りだ。
alert -> GPIO 5
p1 -> GPIO 6
p2 -> GPIO 13
p3 -> GPIO 19
p4 -> GPIO 26
GPIOはbashからもコントロールできて、pin 19をHighにするには、
echo "19" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio19/direction
echo "1" > /sys/class/gpio/gpio19/value
これをLowにするには
echo "0" > /sys/class/gpio/gpio19/value
pin19から読み込むためには、
echo "in" > /sys/class/gpio/gpio19/direction
cat /sys/class/gpio/gpio19/value
とすればよいのだ。
結局のところ、ボード上に搭載するZeroのパワーは、ベースのRaspberryから供給するようになっているようで、これでは、ベースにZeroを用いたのでは容量不足になるのは明らかだ。となれば、素直にZeroをUSBハブに複数繋げればよいことになる。ただそれだと不格好になってしまうな。