※このプロジェクトはIchigoJamでBASICプログラミングができる方を対象にしています。
用意する物
- カタパルト
- 紙飛行機など飛ばしたいもの
- 単三電池×2本
- IchigoJam一式(本体、ディスプレイ、キーボード、電源)
- ジャンパー線(オス-メス4本)
配線
IchigoJamをカタパルトにジャンパー線で写真のように取り付けます。ジャンパー線はオスーメスタイプを使います。
カタパルト IchigoJam
信号1 OUT2
GND GND
信号2 OUT3
GND GND
※写真はカタパルトとの接続を表しています。実際にはこれ以外にキーボード、ディスプレイ、電源のケーブルが接続されます。
プログラム
準備
カタパルトには2つのサーボがついています。1つはカタパルトの角度を上下に変えるため、もう1つは伸ばした輪ゴムの力を解放する引き金の役割をします。
キーボードの「↑」キーを押すとカタパルトが上がり、「↓」キーを押すと下がるようにします。
キーボードの「スペース」キーを押すと、飛行機が発射されるようにします。
カタパルトの角度を変えるサーボは、OUT3、引き金になるサーボはOUT2の端子につながっています。
サーボの角度を変えるには「PWM」命令を使います。
PWM[OUT端子],[回る量]という書式になります。
OUT端子は2~5のどれかを使います。
[回る量]が50のときサーボが水平(0度)、100のときサーボが45度、150のときサーボが90度になります。
例えばOUT3に接続したサーボを水平にしたければ、
PWM3,50
とプログラムします。
最初はカタパルトの角度を0度、引き金は立てておくので90度にします。
メインの処理
100~200行がメインループで、動いている間はこの中をぐるぐる回っています。
110行目は、「スペース」キーが押されたら発射する処理で、3000行目のサブルーチンへ飛びます。
120行目は「↑」キーが押されたらカタパルトを45度まで上げる処理で、1000行目に飛びます。
130行目は「↓」キーが押されたらカタパルトを水平にする処理で、2000行目に飛びます。
カタパルトを上げる処理を以下のようにします。
カタパルトの角度は1020行目のPWM3,AのAの値で決まりますので、これをFOR~NEXTループで50(水平)から1ずつ増やしています。
1030行目のWAIT6は上げるスピードの調整用です。6を好みの数に変えてみてください。
下げる処理は以下のようになります。PWM3,AのAの値を、100(45度)から1ずつ減らすことになります。
サーボが上がりきったら、「スペース」キーを押すと発射します。引き金のサーボが0度になり、輪ゴムが外れて紙飛行機が発射されます。
発射したらWAIT60で1秒待ってから、引き金を90度に戻してあげます。
遊び方
・IchigoJamを上記のようにプログラムします。
・カタパルトに単三電池2本を入れます。
・カタパルトの電源スイッチをオンにします。
・輪ゴム2本とも、引き金のサーボにひっかけます。
・紙飛行機をカタパルトに乗せます。
・前に人や動物がいないことを確かめてください。
・「↑」キーを押してカタパルトを上げます。キーは1秒くらい押してみてください。短いと反応しないことがあり、長いと動きを何度も繰り返してしまいます。
・「スペース」キーを押して発射します。
もっと楽しくしてみよう
プログラムを変えてもっと面白くしてみましょう。たとえば、
・カタパルトの上下のときに内蔵のLEDが点滅するようにする。
・発射の警告にスピーカーから音が出るようにする。
・キーを長押ししても、同じ動作を繰り返さないようにする。
紙飛行機の形や材料も工夫してみましょう。
飛んだ距離を競争したり、的あてをするなどやってみましょう。