raspberry pi を使って何かするメモ。

移転しました。

何ができるかについての(偏った)考え方

  • 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からグラフを見る。までを作ることにする。次エントリ