PythonでTENORI-ONを動かすblog(仮)

PythonでMIDIを作ってYAMAHAのTENORI-ONをごにょごにょするよ。

Python3で加速度センサーを使う

歌うテノリオン失敗後、Phase2でやろうとしていた加速度センサーで少々実験を試みる。


電気系統は弱いのですが、意外にPython3での情報が少なくて、しばらくはまったので備忘録。。


[使ったもの]

※他、お好みで通電確認用のLED & 抵抗330オーム ×各1

 

[接続]

  • (赤)ピン1 <=> センサのVDD
  • (緑)ピン3 <=> センサのSDA
  • (青)ピン5 <=> センサのSCL
  • (黒)ピン9 <=> センサのGND ※ピン6でもOK

ピンの番号は、検索「gpio raspberry pi」で確認することをおすすめします。

このような画像が色々出てくるので間違いがないです。

f:id:bastardeyes:20181021005857j:plain

f:id:bastardeyes:20181021005800j:plain

プレッドボードなしで、直接ピン刺した方が楽でした。

f:id:bastardeyes:20181021005827j:plain


[利用ライブラリ]

  • 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

f:id:bastardeyes:20181021010343p:plain

 

[はまったところ]

  • 検索「Python 加速度センサー」で調べると、Smbusというライブラリの情報が多く出てくる。

 =>ただし、Python2が前提。


Smbus2を使えばPython3でもできる、とか、Python3-smbusを使えば良いという情報もありますが、うまくいきませんでした。

 

[テノリオンへの設置]

ハンズに売られていた「高ナット」は金属しかない&高さがありすぎたので、超低頭小ネジの6mmとプラスチックナットで軽く浮かせました。

本体側をマスキングテープで保護した上から、グルーガンで固定しようかと思います。

 

f:id:bastardeyes:20181021011011j:plain

 

 

f:id:bastardeyes:20181021011030j:plain