たんなんFMの夢レディオ編集室用の原稿としても書きました。(PDF)
プログラミングフェス2019ブログ:Day1 / Day2
小中学生が、車とプログラミングについて考えるとして・・・
- 車の加減速は車酔いにどう影響するか?
- 急ブレーキ、急発進、急ハンドルを検出し、安全運転を促すシステムとは?
- 万が一の事故を検出し、すばやく通報するには?
何かと便利な加速度センサー。I2Cで接続する加速度センサーMMA8452より150円だけ高い、500円加速度センサー「KXSC7-2050」を使うと、アナログ入力で使えるので、より手軽です。
ピンヘッダやピンソケットをはんだづけし、VCC/GND/X/Y/Zの他、通常利用にはMOD/EnableにVCCをつなぎ、ST/MOTにGNDをつなげばOKです。
一番簡単な使い方は、XをIN2につないで、次のプログラムだけでOK!左右に振ってみよう!
10 ?ANA(2):CONT
X/Y/Z、全部使ってみたい時、ピンの並びを利用して、OUT1/2/3をアナログ入力に切り替えて使ってみましょう。5ピンのピンヘッダを使ってVCC/GND/OUT1/OUT2/OUT3に挿し、GNDから4ピンをはんだづけ。
IchigoJamのVCCとモジュールのVCC/MOD/Enableをつなぎ、GNDとST/MOTをつなぎ、コンパクトなIchigoJam用加速度センサーモジュール完成。
OUT1/2/3をINに切り替え、ANA(5)/ANA(6)/ANA(7)で読み取り。Z/Y/Xの順番になっているので、順番を整えてプログラミング。縦横いろいろ振って実験!MMA8452より、プログラムがシンプルな分、高速に読み取れるのでゲームなど使うにはこちらが良いかも。
10 FOR I=1 TO 3:OUT I,-1:NEXT 20 ?ANA(7),ANA(6),ANA(5):CONT
前回同様、機械の調子が悪くなったらお知らせするデバイスにするプログラムはこちら。
5 C=0 10 FOR I=1 TO 3:OUT I,-1:NEXT 20 FOR I=0 TO 2:[I]=ANA(7-I):[I+3]=[I]:NEXT 25 @LOOP 30 FOR I=0 TO 2:[I]=ANA(7-I):NEXT 40 FOR I=0 TO 2:[I+6]=[I+3]-[I]:NEXT 50 N=ABS([5])+ABS([6])+ABS([7]) 60 ?N 65 IF N<100 C=C+1 ELSE C=0 66 IF C>100 ?"ALERT!":IOT.OUT 1:WAIT 1200 70 FOR I=0 TO 2:[I+3]=[I]:NEXT 80 GOTO @LOOP
加速度センサー、X軸だけで十分なら、もっとシンプルに書けます。
5 C=0 10 OUT 3,-1:X=ANA(7):A=X 25 @LOOP 30 X=ANA(7):D=A-X:N=ABS(D):?N 65 IF N<100 C=C+1 ELSE C=0 66 IF C>100 ?"ALERT!":IOT.OUT 1:WAIT 1200 70 A=X 80 GOTO @LOOP
必要に応じて、いろんな道具が使えると便利です。
コンピューター、電子部品、AI、オープンデータ、みんな私達のステキな仲間!
大きく見開き掲載!
何かを作る喜び知って! by PCN代表 松田
楽しいと思うものを見つけてみて! by PCN 原
まずはチャレンジしてみよう! by 福野
「小中学生プログラミングフェス2019」
主催:株式会社 福井新聞、共催:永平寺町、PCN
特別協賛:北陸電力株式会社、協賛:福井コンピューターホールディングス株式会社
後援:福井県教育委員会