Raspberry Pi Picoを触り始めてからまずは手持ちであった部品類の動作確認的なことを行ってきた。今回は加速度センサをI2Cで接続して数値を読んでみる。
使用した機材等
- Raspberry Pi Pico
- Thonny
- 加速度センサ
- ADXL345
- 計測レンジ: +/-16g
- このICを使った製品は複数あるらしく、今回使用したモノの形状は↓のような見た目。現時点では秋月電子通商では同じ形状は見つからず。
配線
I2Cで接続。 (持っている加速度センサのパーツがFritzingで見つからなかったが、使用したピンは同じ) |
ADXL345
RPi Pico
Pin
VDD
VBUS (DC5V)
40
GND
GND
38
VSS
3V3 (OUT)
36
SCL
I2C0 SCL
22 (GP17)
SDA
I2C0 SDA
21 (GP16)
ADXL345 | RPi Pico | Pin |
---|---|---|
VDD | VBUS (DC5V) | 40 |
GND | GND | 38 |
VSS | 3V3 (OUT) | 36 |
SCL | I2C0 SCL | 22 (GP17) |
SDA | I2C0 SDA | 21 (GP16) |
コード
今回はひとまずDigikeyのWebサイトに掲載されていたコードをベースに作成。ひとまず数値を読み込むことはすぐに出来たものの、I2C通信を理解するにはもう少しゆっくり読み解いていく必要あり…。
- XYZ加速度データの変換
- 計測レンジ: +/-16g
- 分解能: 13bit (+/-12bit)
- 加速度への変換: 1g/8bit(256)
結果
とりあえずThonnyに加速度を表示させることが出来た。机に置いてある状態でZ方向は重力加速度分を読めている。ブレッドボードを傾けるとそれぞれ+/-1gの範囲では計測できることを確認できた。
少しバラつき(ノイズ(?))がある |
参考にしたサイト
- DigiKey Electronics
- Raspberry Pi Pico (RP2040) I2C Example with MicroPython and C/C++
- https://www.digikey.com/en/maker/projects/raspberry-pi-pico-rp2040-i2c-example-with-micropython-and-cc/47d0c922b79342779cdbd4b37b7eb7e2
- Analog Devices
- ADXL345データシート
- レジスタの定義など必要情報が記載されている
- https://www.analog.com/media/jp/technical-documentation/data-sheets/adxl345_jp.pdf