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

2019年10月24日

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

Raspberry Pi Zero WH ロボットと遊ぼう

Left Caption
まあちゃん
Scratch? ぼくにも
できるかなぁ?
Right Caption
ままあちゃん
Scratchは、子ども向け
だから大丈夫だよ!
Left Caption
まあちゃん
やったー! はやくロボット
動かしたい!!

 

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

準備するもの

1

ラズベリーパイ(Raspberry pi zero WH)

詳しくは、こちらです。

初期設定環境設定が済んだものを使用します。

Raspberry Pi Zero WH
2

microSDカード 8~32GB

詳しくは、こちらです。

Team microSDHCカード 32GB 高速転送UHS-1 日本国内10年保証 SD変換アダプター付属 正規品

3

microUSB電源ケーブル

スマホの充電ケーブルでOKです。
詳しくは、こちらです。

microUSB電源ケーブル
4

パソコン

microSDに書き込めるもの。
詳しくは、こちらです。

エイスース 13.3型ノートパソコン ASUS ZenBook UX331UN ロイヤルブルー UX331UN-8250B

5

ジャンパーワイヤー

ジャンパーワイヤ(オスーメス)を2本使用します。詳しくは、こちらです。

ジャンパーワイヤ
6

抵抗

詳しくは、こちらです。

抵抗
7

ブレッドボード

詳しくは、こちらです。

ブレッドボード
8

モータードライバー TA7291P

詳しくは、こちらです。

モータードライバ
9

モバイルバッテリー

出力が2ポートあるもの。詳しくはこちらです。

エレコム モバイルバッテリー 充電器 6400mAh 2.6A出力 おまかせ充電対応 ホワイトフェイス DE-M01L-6400WF
10

カットしたUSBケーブル 

次で詳しく紹介しています。 

カットしたUSBケーブル
11

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

次で詳しく紹介しています。

タミヤ 楽しい工作シリーズ No.232 チェーンプログラムロボット工作セット 70232

12

ユニバーサルプレート

穴の開いた透明のプレートです。ラズベリーパイやモバイルバッテリーを固定しています。

タミヤ 特別企画商品 透明 ユニバーサルプレートセット 2枚セット 69906

カットしたUSBケーブル

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

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

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

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

100均のUSB

 

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

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

カットしたUSBケーブル

 

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

USB

チェック方法はこちら!

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

テスター(電圧測定)

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

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

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

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

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

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

このロボットを少し改造して、ラズベリーパイから動かします。

変更した箇所はこちら。

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

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

Raspberry Pi Zero WH ロボットをカスタマイズ

配線方法

回路図

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

Raspberry Pi Zero WH モータードライバーの回路図

配線図

配線図はこちらです。

Raspberry Pi Zero WH モータードライバーの配線

配線の写真

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

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

Raspberry Pi Zero WHでロボット(前)

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

 

上から見た写真です。頭の後ろにRaspberry Pi Zero WHがあります。

Raspberry Pi Zero WHでロボット(上)

 

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

Raspberry Pi Zero WHでロボット(右)Raspberry Pi Zero WHでロボット(左)

Scratchでプログラミング

操作画面の作成

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

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

Scratchのペイントボタン

 

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

Scratchのペイントエディタ

 

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

Scratchのスプライト

 

前に進む

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

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

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

Scratchのスクリプトタブ

 

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

Scratchのスクリプト(まえ)

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

右に曲がる

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

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

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

Scratchのスクリプト(みぎ)

左に曲がる

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

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

Scratchのスクリプト(ひだり)

バックする

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

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

Scratchのスクリプト(うしろ)

ストップする

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

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

Scratchのスクリプト(すとっぷ)

Scratchでプログラム実行

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

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

 

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

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

Raspberry Pi Zero WHでScratch 操作画面

 

VNCを使うと、スマホからも操作することができます。でも、ちょっと操作しにくいので、パソコンからキー操作するのがおすすめです。

動作確認

前進している動画です。

 

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

 

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

 

まとめ

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

Left Caption
まあちゃん
S字に動くプログラムを作ったよ

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

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

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

 

 

Posted by ままあちゃん