Python3で加速度センサーを使う
歌うテノリオン失敗後、Phase2でやろうとしていた加速度センサーで少々実験を試みる。
電気系統は弱いのですが、意外にPython3での情報が少なくて、しばらくはまったので備忘録。。
[使ったもの]
- 秋月電子のADXL345 - Raspberry Piの出力3.3Vであれば抵抗は不要。
- ジャンパーピン メス-メス ×4本
※他、お好みで通電確認用のLED & 抵抗330オーム ×各1
[接続]
- (赤)ピン1 <=> センサのVDD
- (緑)ピン3 <=> センサのSDA
- (青)ピン5 <=> センサのSCL
- (黒)ピン9 <=> センサのGND ※ピン6でもOK
ピンの番号は、検索「gpio raspberry pi」で確認することをおすすめします。
このような画像が色々出てくるので間違いがないです。
プレッドボードなしで、直接ピン刺した方が楽でした。
[利用ライブラリ]
- Python3でGPIOを使うのであれば、ライブラリ「PIGPIO」がおそらくベスト
- 加速度センサーであれば、公式のexamplesのリンク「I2C ADXL345 Accelerometer」のサンプルをダウンロードするのが手っとり早いです。
[サンプルファイル実行手順]
1)pigpiodデーモン起動する
$ sudo pigpiod
=> 本体起動時に、shで自動実行させるようにするのがベター
2)センサーのアドレスを確認する
$ sudo i2cdetect -y 1
=> 自分の環境では、"1d"を確認
3)サンプルファイルの10行目の変数を、上記2で取得した値"id"に置き換えて実行
#ADXL345_I2C_ADDR=0x53
ADXL345_I2C_ADDR=0x1d
[はまったところ]
- 検索「Python 加速度センサー」で調べると、Smbusというライブラリの情報が多く出てくる。
=>ただし、Python2が前提。
Smbus2を使えばPython3でもできる、とか、Python3-smbusを使えば良いという情報もありますが、うまくいきませんでした。
[テノリオンへの設置]
ハンズに売られていた「高ナット」は金属しかない&高さがありすぎたので、超低頭小ネジの6mmとプラスチックナットで軽く浮かせました。
本体側をマスキングテープで保護した上から、グルーガンで固定しようかと思います。