ラズベリーパイ(Raspberry Pi Zero WH)でScratch ロボットと遊ぼう!

raspi-scratch-robot

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

\ 学会発行誌の謝辞に掲載いただきました! /

このページのURLを「電子情報通信学会」発行誌の「Raspberry PiとSCRATCHでロボットを動かそう (1)セットアップ編(2)ロボット組立編」の謝辞に掲載していただきました!!

まあちゃん

すごーい!

ままあちゃん

ありがとうございます!

Scratchの基本的な使い方は、前回のラズベリーパイ(Raspberry Pi Zero WH)でScratch Lチカ(LED点滅)してみよう!で紹介しています。

まあちゃん

Scratch? ぼくにも
できるかなぁ?

ままあちゃん

Scratchは、子ども向け
だから大丈夫だよ

まあちゃん

やったー! はやくロボット
動かしたい!!

目次

準備するもの

1ラズベリーパイ(Raspberry pi zero WH)
詳しくは、こちらです。
初期設定環境設定が済んだものを使用します。
Raspberry-Pi-Zero-WH
2microSDカード
8~32GB
詳しくは、こちらです。
Team-microSDHC-Card
3microUSB電源ケーブル
スマホの充電ケーブルでOKです。
詳しくは、こちらです。
microUSB-power-cable
4パソコン
microSDに書き込めるもの。
詳しくは、こちらです。
UX331UN-8250B
5ブレッドボード
詳しくは、こちらです。
bread-board
6ジャンパーワイヤー
詳しくは、こちらです。
Jumper-wire
7抵抗 
詳しくは、こちらです。
electrical-resistance
8モータードライバー TA7291P
詳しくは、こちらです。
moter-driver
9モバイルバッテリー
出力が2ポートあるもの 
詳しくはこちらです。
mobile-battery
10カットしたUSBケーブル 
詳しくはこちらです。
cut-usb
11チェーンプログラムロボット 
詳しくはこちらです。
robot
12ユニバーサルプレート
穴の開いた透明のプレートです。ラズベリーパイやモバイルバッテリーを固定しています。

カットしたUSBケーブル

モバイルバッテリーからモータードライバーに電源をとるためのケーブルです。

本当は、電源用マイクロUSBコネクタDIP化キット(要はんだ付け 130円)を使って、 モバイルバッテリー → ブレッドボード の接続をしたかったのですが、手元にありません。

130円の部品を買うのに送料500円かかってしまうのも困るので、次回購入したいと思います。秋月電子通商の隣に住みたいです。

近所のダイソーでUSBケーブルを購入してきました。

100-usb

ニッパーとカッターでUSBケーブルをカットして外側の黒いゴムの被覆をとりました。

モバイルバッテリーでArduinoとモーターを動かす導通チェックというサイトを参考にさせていただきました。ありがとうございます。

cut-usb

USBコネクタのGNDが黒、VSSが赤い方の電線に繋がっていることを、導通チェックで確認しました。

usb

チェック方法はこちら!

テスターをこの写真のように接続して電源をONします。

Tester-voltage
  1. まずは、赤と黒の端子の先をくっつけてピーっと鳴ることを確認
  2. USBコネクタのGNDと被覆をとったケーブルの黒い方の電線をテスターの端子にくっつけて、ピーっと鳴ることを確認
  3. USBコネクタのVSSと被覆をとったケーブルの赤い方の電線をテスターの端子にくっつけて、ピーっと鳴ることを確認

被覆をとった電線部分をねじってまっすぐにして、そのままブレッドボードに挿します。

チェーンプログラムロボット

こちらは、自分で組み立てるロボットです。腕を振りながら動きます。

付属のチェーンの組み合わせを変えることで、「前進」、「右カーブ」、「左カーブ」といった動きをプログラミングすることができます。

作るのはもちろんとっても楽しいのですが、さらに簡単に改造できるところがすばらしいです。

このロボットを少し改造して、ラズベリーパイ(Raspberry Pi Zero WH)で動かします。

変更した箇所はこちら。

  • 真ん中にユニバーサルプレートをつけて、ブレッドボードモバイルバッテリーを設置
  • 頭のうしろのスイッチをとって、ラズベリーパイ(Raspberry Pi Zero WH)を設置
  • 右側の車輪を止めているパーツ(組立説明図のB8)を逆向きにする

*もともとは、右側の車輪の軸はチェーンを読み込むために後ろ向きに回転し、車輪自体は空回りするように止めます。

この車輪を止めているパーツを逆にして、空回りしないように変更します。

raspi-robot-customize

配線方法

回路図

回路図はこちらです。右と左のタイヤのモーター2つ分、同じ回路です。

raspi-robot-circuit

配線図

配線図はこちらです。

raspi-robot-wiring

配線の写真

写真で見るとこんなかんじです。透明のユニバーサルプレートミニブレッドボードと、モバイルバッテリーを載せています。

輪ゴムやら、ビニタイやらを駆使してなんとか固定しています。

raspi-robot-front

前に積んでいるカメラは、Scratch1.4で使えませんでした。他の方法で使えるようにがんばります。

上から見た写真です。頭の後ろにラズベリーパイ(Raspberry Pi Zero WH)があります。

raspi-robot-up

右側と左側からの写真です。ちょっと後ろに長くなってしまいました。

raspi-robot-right
raspi-robot-left

Scratchでプログラミング

操作画面の作成

まずは、Scratchで操作画面を作ります。

「コスチューム」タブの「ペイント」ボタンをクリックします。

scratch-paint-button

表示されたペイントエディタで絵を描きます。

scratch-paint-editor

「すとっぷ」「まえ」「うしろ」「ひだり」「みぎ」という5つのスプライトを作成しました。

scratch-sprite

前に進む

次にスクリプトを作成します。

まえ」スプライトを選択した状態で「スクリプト」タブをクリックします。

ここに「まえ」スプライトをクリックするか、上向き矢印キーを押すと前進するプログラムを作成します。

script-tab

スクリプトのアップです。左右のタイヤが前に進むようにgpio2とgpio17をonします。

script-front

「config2outを送る」などの出力設定がなくても動いたので、今回は省略しています。

右に曲がる

次は「みぎ」スプライトを選択した状態で「スクリプト」タブをクリックします。

みぎ」スプライトをクリックするか、右向き矢印キーを押すと右に曲がるプログラムを作成します。

左のタイヤだけ前に進ませるようにgpio2をonします。

script-right

左に曲がる

ひだり」スプライトをクリックするか、左向き矢印キーを押すと左に曲がるプログラムを作成します。

右のタイヤだけ前に進ませるようにgpio17をonします。

script-left

バックする

うしろ」スプライトをクリックするか、下向き矢印キーを押すと後ろに下がるプログラムを作成します。

左右のタイヤが後ろに進むようにgpio3とgpio27をonします。

script-back

ストップする

すとっぷ」スプライトをクリックするか、スペースキーを押すと止まるプログラムを作成します。

全ての信号をoffにします。

script-stop

Scratchでプログラム実行

まずは、GPIOサーバーを開始します。

メニューバーから[編集]-[GPIOサーバーを開始]をクリックします。

操作画面の水色の三角をクリックするか、矢印キーを押すと、前後左右に動きます。

真ん中の黄色い丸をクリックするか、スペースキーをクリックすると、ストップします。

operation-screen

VNCを使うと、スマホからも操作することができます。

でも、ちょっと操作しにくいので、パソコンからキー操作するのがおすすめです。

動作確認

前進している動画です。

右にいったり、左にいったり。なかなか操作が難しいです。

うまくトンネルをくぐれるかな?

まとめ

小学生のまあちゃんうさたんもオリジナルのコマンドを作ったりして、楽しくScratchでプログラミングができました。

まあちゃん

S字に動くプログラムを作ったよ

ロボットが動くと、わぁっと歓声があがってとっても盛り上がります。

スラロームを通ったり、障害物競争をしたり、タイムを測ったり、いろんなコースで遊んでみました。

Scratchは簡単なことから始められて、思い通りに動くまで試行錯誤するのもおもしろいので、とってもおすすめです。

ちなみに、こちらではPythonでロボットを動かしています。よかったら、合わせてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次