前回はRaspberry Pi Robotを作ったところまで書いたから、今日はその続きな。
問題山積み
とりあえず、出来上がったRobotをちょこちょこ動かしてみた訳。
モーターだけ回してるときはなんの問題もなく動いていたんだが、シャーシに積んで動かしたら途中で暴走しちゃう。
車輪もついて負荷がかかるし、電流が云々で上手くいかんじゃね? と思ってるんだが、モーターにコンデンサかませてノイズを減らしてみ、という意見をもらったので、モーターに付けてみた。
それと、これは直接は関係ないと思うけど、さんざんいろんなものを詰め込んだRasbianだったので、更のSDカードにNOOBSを入れて、ScratchGPIOもVersion4を入れた。
NOOBSは落とすのにえらく時間がかかったけど、これ便利というか初心者にはこれいいね。基本コピーするだけだからね。
Raspberry Pi Robotを動かすスクリプトを書く
という訳で新しい環境を整えてからRobotを動かす側を作ったよ。
どうやって、モーターをコントロールするかはまずScratchGPIOのチュートリアルを見てね。
「Power11」と「Power12」という変数を作るんだけどこれがそれぞれGPIOの11ピンと12ピンに繋がってる。この変数の0から100までの値がそのままモーターの出力になるのね。
なのでサンプルのスクリプトは英語で書いてあるけど、日本語になおすと右の様になる。
- 緑の旗が押されたら11ピンに繋がるモーターパワーを0にする。
- 1秒待って、モーターパワーを10上げる。
- それを10回繰り返す。
ってことね。
これだけじゃまだ動かないからね。
Robotは2モーターなので、これを左右のカーソルキーに割り当てる。
右のカーソルキーを押してるときは左のモーターパワーを30にする、押してないときは0。左側はその反対。
カーソルキーを押してないときはモーターパワーを0にする、って云うのが入ってるからスペースキーを押したら〜って云うところは関係ないけどね。
ゴールはまだまだ先
こんな感じで動くのだけど、やっぱり途中で暴走したり固まったりしてる。
途中で薄々感づいていたのだけど、これ、前にしか進めんのよ。orz
Raspberry Piではじめるどきどきプログラミングにモータードライバーを使う方法が出てるので、こっちも参考にしてみよう。
道のりは険しいわ。