Grove 端子が使いたかったので、Grove Base HAT for Raspberry Pi Zero を購入してみました。
- D15
- D5
- PWM
- A0
- I2C
- A2
- UART
- A4
のコネクタが搭載されています。A0/A2/A4というのは何かな?
裏側。ICはバッファかと思ったら、STM32マイコンらしい。
A0/A2/A4は、RaspberryPiとは直接つながってなくて、STM32マイコンにつながっている。
STM32マイコンは、I2C で RaspberryPi と通信し、ADコンバータとして動作しているらしい。
for Raspberry Pi Zero となってますが、Raspberry Pi 3 にアタッチして使いました。
連結ピンが搭載されているので、別のHATをスタックすることができます。
資料
公式 Wiki はこちら
回路図を参照する
I2C 関係の回路図を確認したいのだけれど、オンラインビューアは何も表示されない。
Wiki の 「Resources」
Eagle とあるが、この中に pdf も入っている。
I2C を使いたい
先の回路図を見てみると、I2C と名前のついている Grove コネクタは GPIO2 と GPIO3 につながっている。標準の I2C のピンアサインですね。プルアップ抵抗もついているのでつなぐだけで使えそうです。
NeoPixel を使いたい
この HAT 経由で NeoPixel をつなぐにはどうしたらいいかな?
https://learn.adafruit.com/neopixels-on-raspberry-pi/raspberry-pi-wiring
によると、GPIOGPIO10、GPIO12、GPIO18、または GPIO21 に接続する必要があるそうです。
![image.png](https://qiita-image-store.s3.ap-nohttps://learn.adafruit.com/neopixels-on-raspberry-pi/raspberry-pi-wiring
によると、GPIOGPIO10、GPIO12、GPIO18、または GPIO21 に接続する必要があるそうです。
rtheast-1.amazonaws.com/0/139524/be6293d5-6127-ac89-a6da-08efeb915592.png)
Grove Base HAT for Raspberry Pi Zero では、 PWM のコネクタが GPIO12 に割り当てられているのでこれを使いました。
おまけ NeoPixel を Python で動かす
ライブラリインストール
$ sudo pip install --break-system-package Adafruit-Blinka
$ sudo pip install --break-system-package rpi_ws281x adafruit-circuitpython-neopixel
Looking in indexe
ソースコード
import board
import neopixel
pixels = neopixel.NeoPixel(board.D12,30)
pixels[0]=(255,0,0)
あれれ?
# python3 neopixel.py
Traceback (most recent call last):
File "/home/pi/neopixel.py", line 2, in <module>
import neopixel
File "/home/pi/neopixel.py", line 3, in <module>
pixels = neopixel.NeoPixel(board.D12,30)
^^^^^^^^^^^^^^^^^
AttributeError: partially initialized module 'neopixel' has no attribute 'NeoPixel' (most likely due to a circular import). Did you mean: 'neopixel'?
ただ単にプログラムを neopixel.py としてしまったのでモジュールと名前の競合が起きただけでした。
プログラム名を led.py にしたらうまくいきました。