ラズベリーパイ(Raspberry Pi Zero WH)で、Scratch(スクラッチ)のプログラミングをして、ロボットを動かしてみたいと思います。

まあちゃんScratch? ぼくにも
できるかなぁ?

ままあちゃんScratchは、子ども向け
だから大丈夫だよ

まあちゃんやったー! はやくロボット
動かしたい!!
Scratchの基本的な使い方は、前回のラズベリーパイ(Raspberry Pi Zero WH)でScratch Lチカ(LED点滅)してみよう!で紹介しています。
準備するもの
1 | ラズベリーパイ(Raspberry pi zero WH) 詳しくは、こちらです。 初期設定・環境設定が済んだものを使用します。 | |
---|---|---|
2 | microSDカード 8~32GB 詳しくは、こちらです。 Team microSDHCカード 32GB 高速転送UHS-1 日本国内10年保証 SD変換アダプター付属 正規品 | |
3 | microUSB電源ケーブル スマホの充電ケーブルでOKです。 詳しくは、こちらです。 | |
4 | パソコン microSDに書き込めるもの。 詳しくは、こちらです。 エイスース 13.3型ノートパソコン ASUS ZenBook UX331UN ロイヤルブルー UX331UN-8250B | |
5 | ブレッドボード 詳しくは、こちらです。 | |
6 | ジャンパーワイヤー ジャンパーワイヤ(オスーメス)を2本使用します。詳しくは、こちらです。 | |
7 | 抵抗 今回は、330Ωの抵抗を1本使います。詳しくは、こちらです。 | |
8 | モータードライバー TA7291P 詳しくは、こちらです。 | |
9 | モバイルバッテリー 出力が2ポートあるもの。詳しくはこちらです。 エレコム モバイルバッテリー 充電器 6400mAh 2.6A出力 おまかせ充電対応 ホワイトフェイス DE-M01L-6400WF | |
10 | カットしたUSBケーブル 次で詳しく紹介しています。 | |
11 | チェーンプログラムロボット 次で詳しく紹介しています。 タミヤ 楽しい工作シリーズ No.232 チェーンプログラムロボット工作セット 70232 | |
12 | ユニバーサルプレート 穴の開いた透明のプレートです。ラズベリーパイやモバイルバッテリーを固定しています。 タミヤ 特別企画商品 透明 ユニバーサルプレートセット 2枚セット 69906 |
カットしたUSBケーブル
モバイルバッテリーからモータードライバーに電源をとるためのケーブルです。
本当は、電源用マイクロUSBコネクタDIP化キット(要はんだ付け 130円)を使って、 モバイルバッテリー → ブレッドボード の接続をしたかったのですが、手元にありません。
130円の部品を買うのに送料500円かかってしまうのも困るので、次回購入したいと思います。秋月電子通商の隣に住みたいです。
近所のダイソーでUSBケーブルを購入してきました。130円の部品を買うのに送料500円かかってしまうのも困るので、次回購入したいと思います。秋月電子通商の隣に住みたいです。
ニッパーとカッターでUSBケーブルをカットして外側の黒いゴムの被覆をとりました。
モバイルバッテリーでArduinoとモーターを動かすと導通チェックというサイトを参考にさせていただきました。ありがとうございます。
USBコネクタのGNDが黒、VSSが赤い方の電線に繋がっていることを、導通チェックで確認しました。
チェック方法はこちら!
テスターをこの写真のように接続して電源をONします。
被覆をとった電線部分をねじってまっすぐにして、そのままブレッドボードに挿します。- まずは、赤と黒の端子の先をくっつけてピーっと鳴ることを確認
- USBコネクタのGNDと被覆をとったケーブルの黒い方の電線をテスターの端子にくっつけて、ピーっと鳴ることを確認
- USBコネクタのVSSと被覆をとったケーブルの赤い方の電線をテスターの端子にくっつけて、ピーっと鳴ることを確認
チェーンプログラムロボット
こちらは、自分で組み立てるロボットです。腕を振りながら動きます。付属のチェーンの組み合わせを変えることで、「前進」、「右カーブ」、「左カーブ」といった動きをプログラミングすることができます。
作るのはもちろんとっても楽しいのですが、さらに簡単に改造できるところがすばらしいです。
このロボットを少し改造して、ラズベリーパイで動かします。
変更した箇所はこちら。
- 真ん中にユニバーサルプレートをつけて、ブレッドボードとモバイルバッテリーを設置
- 頭のうしろのスイッチをとって、Raspberry Pi Zero WHを設置
- 右側の車輪を止めているパーツ(組立説明図のB8)を逆向きにする
*もともとは、右側の車輪の軸はチェーンを読み込むために後ろ向きに回転し、車輪自体は空回りするように止めます。
この車輪を止めているパーツを逆にして、空回りしないように変更します。
配線方法
回路図
回路図はこちらです。右と左のタイヤのモーター2つ分、同じ回路です。配線図
配線図はこちらです。配線の写真
写真で見るとこんなかんじです。透明のユニバーサルプレートにミニブレッドボードと、モバイルバッテリーを載せています。輪ゴムやら、ビニタイやらを駆使してなんとか固定しています。
前に積んでいるカメラは、Scratch1.4で使えませんでした。他の方法で使えるようにがんばります。
上から見た写真です。頭の後ろにRaspberry Pi Zero WHがあります。右側と左側からの写真です。ちょっと後ろに長くなってしまいました。
Scratchでプログラミング
操作画面の作成
まずは、Scratchで操作画面を作ります。「コスチューム」タブの「ペイント」ボタンをクリックします。
表示されたペイントエディタで絵を描きます。
「すとっぷ」「まえ」「うしろ」「ひだり」「みぎ」という5つのスプライトを作成しました。
前に進む
次にスクリプトを作成します。「まえ」スプライトを選択した状態で「スクリプト」タブをクリックします。
ここに「まえ」スプライトをクリックするか、上向き矢印キーを押すと前進するプログラムを作成します。
スクリプトのアップです。左右のタイヤが前に進むようにgpio2とgpio17をonします。
「config2outを送る」などの出力設定がなくても動いたので、今回は省略しています。
右に曲がる
次は「みぎ」スプライトを選択した状態で「スクリプト」タブをクリックします。「みぎ」スプライトをクリックするか、右向き矢印キーを押すと右に曲がるプログラムを作成します。
左のタイヤだけ前に進ませるようにgpio2をonします。
左に曲がる
「ひだり」スプライトをクリックするか、左向き矢印キーを押すと左に曲がるプログラムを作成します。右のタイヤだけ前に進ませるようにgpio17をonします。
バックする
「うしろ」スプライトをクリックするか、下向き矢印キーを押すと後ろに下がるプログラムを作成します。左右のタイヤが後ろに進むようにgpio3とgpio27をonします。
ストップする
「すとっぷ」スプライトをクリックするか、スペースキーを押すと止まるプログラムを作成します。全ての信号をoffにします。
Scratchでプログラム実行
まずは、GPIOサーバーを開始します。メニューバーから[編集]-[GPIOサーバーを開始]をクリックします。
操作画面の水色の三角をクリックするか、矢印キーを押すと、前後左右に動きます。
真ん中の黄色い丸をクリックするか、スペースキーをクリックすると、ストップします。
VNCを使うと、スマホからも操作することができます。でも、ちょっと操作しにくいので、パソコンからキー操作するのがおすすめです。
動作確認
前進している動画です。右にいったり、左にいったり。なかなか操作が難しいです。
うまくトンネルをくぐれるかな?
まとめ
小学生のまあちゃんとうさたんもオリジナルのコマンドを作ったりして、楽しくScratchでプログラミングができました。
まあちゃんS字に動くプログラムを作ったよ
ロボットが動くと、わぁっと歓声があがってとっても盛り上がります。
スラロームを通ったり、障害物競争をしたり、タイムを測ったり、いろんなコースで遊んでみました。
Scratchは簡単なことから始められて、思い通りに動くまで試行錯誤するのもおもしろいので、とってもおすすめです。
ちなみに、こちらではPythonでロボットを動かしています。よかったら、合わせてみてください。
『 ラズベリーパイ(Raspberry Pi Zero WH)でScratch ロボットと遊ぼう! 』で紹介したロボットを、今度は Python と Javascript で動かしてみたいと思います。 さらにロボットの前につけたカメラで、ロボットがみている風景を見ながら...