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

2019/09/01

t f B! P L

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

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



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


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





まあちゃん
やったー! はやくロボット
動かしたい!!


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

準備するもの

1 ラズベリーパイ(Raspberry pi zero WH)
詳しくは、こちらです。
初期設定環境設定が済んだものを使用します。
Raspberry Pi Zero WH
2 microSDカード 8~32GB
詳しくは、こちらです。
Team microSDHCカード 32GB 高速転送UHS-1 日本国内10年保証 SD変換アダプター付属 正規品
3microUSB電源ケーブル
スマホの充電ケーブルでOKです。
詳しくは、こちらです。
microUSB電源ケーブル
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ケーブル 次で詳しく紹介しています。 
カットした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でプログラミングができました。


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



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

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

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

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

『 ラズベリーパイ(Raspberry Pi Zero WH)でScratch ロボットと遊ぼう! 』で紹介したロボットを、今度は Python と Javascript で動かしてみたいと思います。 さらにロボットの前につけたカメラで、ロボットがみている風景を見ながら...

このブログを検索

カテゴリ

プロフィール


こんにちは!
小学生の男の子 2人のママです。

ラズベリーパイを使った簡単な電子工作とプログラミングに挑戦しています。

よかったら、詳しいプロフィールも見てください。

QooQ