MENU


 ※このプロジェクトはRspberryPiでScratchを使ったことがある人を対象にしています。

用意する物

  • カタパルト
  • 紙飛行機など飛ばしたいもの
  • 単三電池×2本
  • RapsberryPi3
  • USBケーブル
  • ジャンパー線(メス-メス4本)

配線

RaspberryPi(RasPi)をカタパルトにジャンパー線で写真のように取り付けます。ジャンパー線はメスーメスタイプを使います。

カタパルト   RasPi
信号1     GPIO12(32番ピン)
GND       GND(34番ピン)
信号2     GPIO26(37番ピン)
GND       GND(39番ピン)


※写真はGPIOの接続例です。これ以外に電源のUSBケーブル、モニタのHDMI、キーボード・マウスのUSBケーブルの接続が必要です。

RasPiのピンは表示が何もなくてわかりにくいのですが、公式ページの情報などを参考にしてください。

プログラム

準備

プログラムにはScratch(1.4)を使用します。RasPiには標準でScratchが用意されています。

※「Scratch 3」はサーボが動かせませんので「Scratch」を使用してください。
※「プログラミング」のメニューに「Scratch」が表示されない場合は、RasPiのマイクロSDカードに「Raspberry OS Full(32-bit)」をインストールしてください。インストールすると現在のデータが消えますので、残したい場合は新しいマイクロSDカードにインストールしてください。
パソコンにhttps://www.raspberrypi.com/software/からRaspberry Pi Imagerをインストールします。
※「Raspberry Pi OS Full(32-bit)」をインストールするマイクロSDカードには9.5GB以上の容量が必要です。16GB以上のものを使用してください。

Raspberry Pi Imagerを起動して「CHOOSE OS」→「Raspberry Pi OS(Other)」→「Raspberry Pi OS Full(32-bit)」の順に選択します。
マイクロSDカードをリーダーに入れてパソコンに接続し、「CHOOSE STRAGE」でSDカードを選択してインストールします。

 

Scratchを起動します。
RasPiのScratchでサーボを動かすには、「GPIOサーバー」を使う必要があります。
Scratchの「編集」メニューで「GPIOサーバーを開始」をクリックしてください。

カタパルトには2つのサーボがついています。1つはカタパルトの角度を上下に変えるため、もう1つは伸ばした輪ゴムの力を解放する引き金の役割をします。
Scratchに3つのスプライトを用意して、それぞれに役割をあたえることにします。

スプライトは好きなものを使ってください。ここでは
・「スプライト1」(ネコa)をカタパルトを上げる
・「スプライト2」(飛行機)を発射
・「スプライト3」(ネコb)をカタパルトを下げる
ために使っています。

「スプライト1」の「緑の旗がクリックされたとき」に以下のようにブロックをつなげます。

まずGPIO12とGPIO26を出力用に設定します。
「制御」から「を送る」ブロックを2つ用意して、「メッセージの名前」をそれぞれ「config12out」、「config26out」にしてください。

つぎにカタパルトの傾きが水平(0度)、引き金が垂直(90度)になるようにサーボを動かします。
「演算」の「[ハロー]と[ワールド]」のブロックを2つ用意して、「[servo12%]と[-100]」、「[servo26%]と[100]」にします。(英数字はすべて半角です)
このブロックをそれぞれ「を送る」ブロックに入れます。
「servo[GPIO番号]%」はScratchがRasPiのサーボを動かす専用の命令です。後ろの数字が動く大きさを表し、-100~100の範囲が指定できて、-100で0度、100で90度になります。0のとき約45度になります。

※ここで、サーボの取り付け角度を調整します。
カタパルトの角度を変えるサーボを、本体からはずします。カタパルトの電源をONにして、「緑の旗」をクリックします。
カタパルトが水平になるように、サーボホーンの取り付け位置を調整してから、本体に取り付け直します。
つぎに引き金用のサーボを本体からはずし、サーボホーンが垂直になるように調整して、本体に取り付け直します。

サーボの取り付け部品を手前に引くと外せます。白いプラスチックの部品(サーボホーン)を外して正しい角度で入れ直してください。

メインの処理

スプライト1をクリックすると、カタパルトをゆっくり上げるスクリプトを追加します。

「angle」という変数を作り、angleの値を-100から1ずつ大きくして、angle=0になるまでサーボの角度を変えていきます。
angle=0のときカタパルトの角度は45度になります。

全体はこのようになります。

同じようにスプライト3に、クリックすると、カタパルトをゆっくり下げるスクリプトを追加します。

angle=0(45度)から始めて、angle=-100(0度)になるまで-1ずつ変えていきます。

スプライト2には、クリックすると引き金をひくようにプログラムします。

引き金用のサーボを-100(0度)にするとゴムがはずれて飛行機が発射されます。
1秒待ってからサーボを100(90度)にもどします。

遊び方

・Scratchを上記のようにプログラムします。
・カタパルトに単三電池2本を入れます。
・カタパルトの電源スイッチをオンにします。
・輪ゴム2本とも、引き金のサーボにひっかけます。
・紙飛行機をカタパルトに乗せます。
・前に人や動物がいないことを確かめてください。
・緑の旗をクリックします。
・スプライト1をクリックするとカタパルトの傾きが45度になります。
・スプライト2をクリックすると発射されます。
・スプライト3をクリックするとカタパルトが元の位置に戻ります。

もっと楽しくしてみよう

プログラムを変えてもっと面白くしてみましょう。たとえば、
・発射の前に秒読みするようにする。
・GPIOを使って、発射の前にLEDが点滅するようにする。
・スプライトを動かすとカタパルトの角度が変わるようにする。
・キーボードの矢印キーでカタパルトの角度が変わるようにする。

紙飛行機の形や材料も工夫してみましょう。

飛んだ距離を競争したり、的あてをするなどやってみましょう。