勉強のモチベーションになればいいなと

ただ資格勉強するだけじゃつまらないので、資格勉強の進捗や気になったことを発信してみようかと思って始めました

Divaコン作り始めました

はじめに

初音ミク Project Diva Future Tone DXがやりたくなったのでやっているんですが、アケコンが欲しくなったので作り始めました。

先人たちの知恵を借りてとりあえずMPR121(静電容量式タッチセンサ)を2つ注文して届いたのでRaspberry Piで動作確認。

そのときに躓いたことを軽くメモしておきます。

今回作成するタッチセンサとRaspberry Piへの配線はこんな感じ。

上のブレッドボードは今手に入るMPR121の基板だと思ってください。 左からIRQ,SCL,SDA,ADDR,GND,3Vo,VINで並んでます。

今回使うのはSCL,SDA,GND,VINの4箇所のみ。

f:id:ymd330:20200513220152j:plain
配線図

Raspberry PiはI2Cを有効化したものとして話を勧めます。

接続できたらi2cdetectコマンドで認識しているか確認しましょう。 認識されていたら5aって表示されていると思います。

# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- 5a -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

手順

  • gitからAdafruitのサンプルをダウンロードする。(今回はPythonでやってます。)
git clone https://github.com/adafruit/Adafruit_Python_MPR121.git
  • setup.pyを実行する。
cd  Adafruit_Python_MPR121/
sudo python setup.py install

この後にsampleフォルダにあるsimpletest.pyを実行すればいいと思っていたんですが、エラーになってしまったので エラーメッセージでググりました。

エラーメッセージはこれ。

Adafruit MPR121 Capacitive Touch Sensor Test
chmod: '/sys/module/i2c_bcm2708/parameters/combined' にアクセスできません: そのようなファイルやディレクトリはありません
Traceback (most recent call last):
  File "simpletest.py", line 34, in <module>
    if not cap.begin():
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_MPR121/MPR121.py", line 90, in begin
    I2C.require_repeated_start()
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO/I2C.py", line 79, in require_repeated_start
    subprocess.check_call('chmod 666 /sys/module/i2c_bcm2708/parameters/combined', shell=True)
  File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'chmod 666 /sys/module/i2c_bcm2708/parameters/combined' returned non-zero exit status 1
  • モジュールを読み込む(自分はこれでエラーが治りました)
sudo modprobe i2c_bcm2708
cd example
sudo python simpletest.py
  • 触って楽しむ

以上!

この後は先人の知恵のソースを眺めつつDivaコンのタッチセンサーを作れるようにやっていきたいと思います。

知識ゼロからだったのでタッチセンサーを動作させるのにも時間がかかるかなと思っていましたがあっさり行けましたね!