前回の続きのような感じ
Raspberry Pi ArduinoをADコンバータとして使う(I2C)その2

今回は、距離センサの入力を読みます。

回路

raspi
SHARPの赤外線測距センサって、コードの色がまぎらわしいよね
黒が5Vで赤がGNDとかね…

Arduino



5行目気になる人いますよね
int cmd = 1;ってなんだよって
別に0でもいいですよ。
ただ、今回はラズパイから0を送信して、cmdに代入して
A0ピンの入力を読むので
最初から0が入ってると、どこかでミスったときにわかりづらいかなと思っただけ。

6個もセンサつけるのめんどかったので、今回は距離センサ一個だけです。
でも基本的にやることは変わらないですね。

sendData関数では、mapで1byte分の範囲に直して、ラズパイに数値を返します。

Raspberry Pi


ラズパイ側のプログラムは短くて楽ですね
すごくシンプル

メインループの16~19行では、
writeCommand(0)で0をArduinoに送信
readValue()でArduinoからセンサの入力値を要求し、Shellに表示させる。
sleep(0.1)で0.1秒寝る

2つの関数についても、中身はたった2行ですね。
解説は今までの記事で書いたと思うので省略。

実際動かすとこんな感じ
IMG_3860
ラズパイから0を送信し、Arduinoからセンサ値を受信する。
これを0.1秒おきに繰り返す。

IMG_3859
Arduinoでも、0.1秒おきにやってくるコマンドに対応し、センサ値を送信する。

余談だけど
下のヤスリスティックおすすめ、使いやすい

ヤスリスティック SOFT #400 - Amazon