先日公開されたIchigoJam BASIC 1.4の新機能を使ったプログラムを、改めてまとめます。皆さんも試してみてください。
ロゴクロック
【IchigoJam】ロゴクロック
簡易グラフィック(XOR描画)と三角関数のテストとして作りました。
10 '*Logo Clock 20 CLV:CLS 30 LET [0],5,0,0,5,0,1,0,0,0,0,0,5,0,0,0,0,0 40 LET [17],5,7,1,7,5,5,7,5,7,5,0,5,7,5,#B,#B,#B 50 LET [34],1,3,1,1,1,1,3,5,3,1,3,1,3,3,2,2,2 60 LET [51],3,3,3,3,3,1,3,1,3,3,3,3,3,3,3,3,3 70 FOR Y=0 TO 51 STEP 17 80 LC 7,Y/17+10 90 FOR X=0 TO 16 100 ? CHR$(#80+[X+Y]); 110 NEXT 120 NEXT 130 FOR T=-90 TO 269 140 X=COS(T)/11 150 Y=SIN(T)/11 160 U=COS(T+1)/11 170 V=SIN(T+1)/11 180 DRAW 31+X,23+Y,31+U,23+V 190 NEXT 200 @LOOP 210 FOR T=-90 TO 264 STEP 6 220 X=COS(T)/11 230 Y=SIN(T)/11 240 DRAW 31,23,31+X,23+Y,2 250 WAIT 60 260 DRAW 31,23,31+X,23+Y,2 270 NEXT 280 GOTO @LOOP
花火アート
- 起動すると画面下に発射台(ドット)が点滅します。カーソルキー左右で発射位置を決めてください。
- スペースキーを押すと花火を発射します。適当な高さでもう一度スペースキーを押すと、花火が炸裂します。
- 好きな大きさに花火が開いた所で、スペースキーを押して止めてください。発射台の移動へ戻ります。
- 発射台移動中にXキーを押すと、画面をクリアします。
簡易グラフィックと三角関数を使って、花火の円を描いています。また、画面クリアのXキーはBTN(88)で読み取っています。
PCN北はりま謹製「HetaPad」を使うと、操作しやすくて楽しいです(^_^)
10 '*Hanabi Art 1.4 20 CLV:CLS 30 @START 40 IF BTN(32) CONT 50 Y=47 60 @XLOOP 70 DRAW X,Y,0 80 X=X-BTN(28)*(X>0)+BTN(29)*(X<63) 90 DRAW X,Y 100 IF BTN(88) CLS 110 IF !BTN(32) GOTO @XLOOP 120 IF BTN(32) CONT 130 @YLOOP 140 BEEP 50-Y,1 150 DRAW X,Y,0 160 Y=Y-1 170 DRAW X,Y,1 180 WAIT 1 190 IF !BTN(32) && Y>0 GOTO @YLOOP 200 IF BTN(32) CONT 210 BEEP 50,10 220 R=1 230 @FIRE 240 FOR T=0 TO 330 STEP 30 250 DRAW X+R*COS(T)/256,Y+R*SIN(T)/256 260 NEXT 270 R=R+1 280 IF !BTN(32) GOTO @FIRE 290 GOTO @START
バイオリズム
www.ichigojaman.jp
先日記事にしました。誕生日(年・月・日)と、現在の年・月を入力すると、今月のバイオリズムを描きます。
簡易グラフィック、三角関数を使っています。
IchigoJamスポーツ1.4
www.ichigojaman.jp
「大なわとびさっちゃん」「ゴルフ」「PK戦チームバトル」のスポーツゲーム3本をまとめたペーパーです。
簡易グラフィック、三角関数、BTN(88)でのXキーの読み取りを使っています。
スイングスピード計測
【IchigoJam】スイングスピード計測
TICK(1)での高速TICKを利用して、バットのスイングスピードを計測してみました。
センサーはとりあえず手持ちのフォトトランジスタを2個並べて、その上でバットを振りました。
赤外線センサーを使えばもっと正確になるでしょうし、ミニ四駆の速度計測などもできそうです。
10 '*Swing Speed 20 CLV:VIDEO 3:CLS:OUT 1,-1:OUT 2,-1:L=30 30 ?"Let's Swing" 40 IF ANA(5)>500 CONT 50 CLT 60 IF ANA(6)>500 CONT 70 C=TICK(1) 80 V=L*565/C 90 ?"C=";C;" V=";V;"km/h"
速度の計算方法ですが、高速TICKのカウントが48MHzの3056分周
f=48×10^6/3056(Hz)で動いているので、1カウント当たりの秒数はその逆数
t=3056/(48×10^6)(秒)になります。
速度=距離/時間なので、2つのセンサー間の距離をL(cm)、その間のカウント数をCとすると、
V=L/(C×t)(cm/s)となります。今回のセンサー間距離Lは30cmなので、これで2バイト整数の計算に収まります。
=L÷100÷1000/(C×t÷60÷60)(km/h)
=L×108000/(C×191)(km/h)
≒L×565/C(km/h)
ちなみにプロ野球選手の平均スイングスピードは140km/hだそうです。30cmの距離を進むのにかかる時間は、
30÷100÷1000/(140÷60÷60)高速TICKでのカウント数は、
=27/3500
≒0.00771(秒)
27÷3500/{3056/(48×10^6)}ということで、プロ野球選手のスイングも何とか計測できそうです。
=27×48×10^6/(3500×3056)
≒121(カウント)