Mana Blog Next

自宅IoT、仕事と家庭、カメラ、筋トレ生活

シェル芸でラズパイZeroをコントロールしてみた (1)

目次

これまでのあらすじ

半年前の出来事

ちょうど半年前のある日。パパは海外出張で居なかった。
長男(4才)に、「ママは不器用だから、プラレールコントローラーなんて直せないよね・・・」と言われてしまい、
「そんなこと無い。ママだってできるわよ!」

プラレールのコントローラーを自作すべく、母ちゃんは電子工作を始めたのであった。
部屋に落ちていたRaspberry Piを見付けて「これだ!ラズパイで実現させるんだ!」と誓った。


うまくいかない日もあった・・・

しかし、何度練習してもはんだ付けが不得意で、心が折れそうになりそうになった。
父ちゃんから「えええっ、それでも工学部出身なの?wwwww」と笑われた芋はんだ。
でも、息子と約束したんだ。プラレールのコントローラーを自作するって。

保育園落ちて白髪が生えた日もあった

認可保育園に落ちて、ショックの余り白髪が生えた私ですが、保活については認可外に入れることにしてようやく2月で落ち着きました。ちなみに、白髪は美容室でカラーするときにコッソリ染めてもらっていました。
ということで、3月に入ってようやく電子工作を再開でき今に至ります。

スポンサーリンク


みんな大好きシェルスクリプト

参考にした書籍

ラズパイマガジン2016年春号で、上田先生の記事「ラズパイマウスを自在に動かそう~シェルスクリプトで制御~」を読みました。

ラズパイマウスを購入するのは金銭的な負担が大きいので、「じゃあ、シェル芸を使ってラズパイZeroを動かそう!」という発想の転換をしました。
今回はシェル芸でモーターを制御するところまで紹介します。最終的にはプラレールをスマホでコントロールできるように作業を進めます。

用意するもの

手順

今回は、シェル芸でモーター制御(前進、後進、ストップ)するところまで紹介します。
なお、ラズパイZeroのピンヘッダとモータードライバーのはんだ付け作業は完了しているものとします。

(1)配線

ラズパイZeroを写真のように配線します。(Zeroじゃなくてラズパイ2でも良いです)

※ 後日、配線図に差し替えます

(2)GPIO有効化

GPIO13,19,21,26を有効化します

$ echo 13 > /sys/class/gpio/export
$ echo 19 > /sys/class/gpio/export
$ echo 21 > /sys/class/gpio/export
$ echo 26 > /sys/class/gpio/export
$ echo out > /sys/class/gpio/gpio13/direction
$ echo out > /sys/class/gpio/gpio19/direction
$ echo out > /sys/class/gpio/gpio21/direction
$ echo out > /sys/class/gpio/gpio26/direction

(3)前進スクリプトを用意

$ nano forward.sh
echo 1 > /sys/class/gpio/gpio19/value
echo 0 > /sys/class/gpio/gpio26/value

echo 1 > /sys/class/gpio/gpio13/value
sleep 1

(4)後進スクリプトを用意

$ nano backward.sh
echo 0 > /sys/class/gpio/gpio19/value
echo 1 > /sys/class/gpio/gpio26/value

echo 1 > /sys/class/gpio/gpio13/value
sleep 1

(5)ストップ用のスクリプトを用意

$ nano stop.sh
echo 0 > /sys/class/gpio/gpio13/value
sleep 1

(6)テスト用のスクリプトを用意

$ nano init.sh
echo 0 > /sys/class/gpio/gpio21/value
sleep 1
echo 1 > /sys/class/gpio/gpio21/value
sleep 1

$ nano test.sh
echo INIT
./init.sh

echo FORWARD
./forward.sh
sleep 3
echo STOP
./stop.sh
echo BACKWARD
./backward.sh
sleep 3
echo STOP
./stop.sh

シェル芸を実行してみる

作成したスクリプトに実行権を付与した後、テスト用のスクリプト(test.sh)を実行します。

$ ./test.sh
INIT
FORWARD
STOP
BACKWARD
STOP
実行時の動画

youtu.be

シェル芸で動いた・・・! .∵・(゚∀゚)・∵.
スポンサーリンク


続き「ついにこの日が来た!感動のフィナーレ」

半年間という長い道のりでしたが、ついにこの日が来ました・・・!
次回は、スマホでラズパイZeroを制御し、プラレールトーマス号を動かします。お楽しみに。

プラレール トーマス TS-01 きかんしゃトーマス

プラレール トーマス TS-01 きかんしゃトーマス

  • 発売日: 2012/06/07
  • メディア: おもちゃ&ホビー