何ができるかについての(偏った)考え方
- ADCがない
raspberry piは、一般的なマイコンに付いているADCがついていないので、何かセンサをつなげるならば、デジタル信号がでてくるようモジュール化されたセンサを使うと楽。I2CやSPIはRaspberry piのGPIOにimplementされているので使いやすいのではないか。最近は秋月でI2Cインタフェースのセンサが多く売られている。
- タイミング制御が得意でなさそう。
OSが走っているので。
上の二点のことがあるので、凝ったことをするなら、AVRなりで前処理して、AVR-raspberry pi間をUART,SPIなどで結ぶとか。
今回はraspberry piの動作確認程度を目的に、家に転がっていたI2Cインタフェースの大気圧センサ(秋月で650円, AE-LPS331、以前、液晶表示の温度・気圧計を作るときに使ったチップ)を使って大気圧と温度の履歴をグラフ化でもしてみます。
トラ技2014年7月号の3章にLPS331を使った似たような応用が紹介されていますが、センサは一緒だけどモジュール化しているメーカーが違って、ピン位置が異なるので、見ないようにする。
Raspberry piのI2Cピンは1k8Ωでプルアップされている。回路図をみると、R1,R2に相当している。GPIOピンの真横に見えるチップ抵抗。
プルアップが強すぎなので、チップ抵抗をマイナスドライバでふっ飛ばしてしまいたいが、借り物なのでそれもできず、このままやってみる。
基板を作って、LPS331をRaspberry piに載せた。
表裏と載せたところ。
i2cの設定は各所で紹介されている通り。
/etc/modprobe.d/raspi-blacklist.conf
/etc/modules
の書き換えと、i2c-toolsでの動作確認。
pi@raspberrypi ~ $ sudo 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: -- -- -- -- -- -- -- -- -- -- -- -- -- 5d -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
接続できた通信相手のアドレスの上位7ビット分が表示される。この場合は5d。
pythonでi2cポートを制御するため、python-smbusをapt-getでインストール。
ここまでできたら、あとはソフトウェアの開発。
大気圧と温度を記録してグラフにして他のPCからグラフを見る。までを作ることにする。次エントリ
次のラズパイ本が人気です。