前回のRaspberry Pi Arduinoをサーボドライバとして使う(I2C)は、1個のサーボしか動かしていないが、今回は複数のサーボを動かしていく。

といっても2個だけだが、今回のやり方なら2個以上になっても少し書き加えるだけで対応できる。

回路

キャプチャ
前回と違うのはサーボが増えたという点だけ

Arduino


前回との違いに着目して解説すると、
まず変数としてservoNumber、servoAngleが加わったこと

次に、ラズパイからのコマンドを受け取ったあとの処理
最初に送られてきた数値が
200以上なら、そこから200引いた数をservoNumberとして代入し
次に送られてきた0~180の間の数値を
servoAngleとして代入し、サーボの角度変更を行う。

Raspberry Pi


こちらも前回との違いに着目してみる。
前回と同様にユーザーからのコマンド入力を待つ
ただしこちらは2回入力してもらう

最初に0か1を入力、これはサーボNo.0、サーボNo.1のどちらを選択するかを選ぶ。
入力された数値に200を足す。
なぜ足すの?
サーボの角度指示(0~180)と区別しやすくするためです。

次に、0~180の数値を入力、こちらはサーボの角度指示。

入力し終わると
writeCommand関数で、 それぞれをArduinoへ送信する。


実際の画面
IMG_3854
ラズパイで、サーボNoとサーボ角度を入力し送信。

IMG_3855
Arduinoでそれらを受け取り、サーボを動かす。


実例で学ぶRaspberry Pi電子工作 作りながら応用力を身につける (ブルーバックス) - Amazon