IchigoJamで電子工作して遊ぼう
https://ichigojam.net/presskit/logo_ichigojam_color.png
https://gyazo.com/c95c717f5691fe4d8f1ca491a94ebf15
はじめに
ここでは、IchigoJamと色々な電子工作をして遊んでみます。
IchigoJam
https://gyazo.com/3085a539062f7dfa74252aad5595a1bd
IchigoJamは、キーボードとTVをつなぐことで、BASICというプログラミング言語でプログラミングできるパソコンです。
1970年代に生まれた世代には、懐かしい香りもします。
手のひらサイズのプログラミング専用こどもパソコン
キーボードとAV端子のTVをつなげれば、すぐに使える
電子工作しやすくなっている: デジタル入出力, アナログ入力, PWM(アナログ出力)
様々な拡張ボードも提供されている
データ保存、グラフィックス、無線ネットワーク、モータ用、…
https://gyazo.com/c45bfab1dee7434d3bf6e30fa1a3dfe3
IchigoJamの入出力
IchigoJamには、デジタル入出力(GPIO)、アナログ入出力などが提供されています。
I/O=Input/Output: コンピュータへのデータの入出力
table: I/O
説明 IchigoJam端子 説明 部品
デジタル入力 IN1-8,10-11 0/1の入力 スイッチなど
アナログ入力 ANA0,2,5-8 連続した可変値の入力(0-1023) 可変抵抗、光センサー(CdS)など
デジタル出力 OUT1-12 0/1の出力 LEDなど
アナログ出力 (PWM) PWM2-5 パルスの幅を変えて出力 サーボ、LEDなど
IchigoJam ショーケース
https://gyazo.com/e695b1ca0c291aa4bcee313b7630163b
今回の発表用に作ったデモ環境は、上の写真の通りです。
利用した電子部品は、以下の通りです。
4連LED
ジョイスティック(ボタン付き)
サーボモーター
モーター
IchigoJamでLED(デジタル出力)
https://gyazo.com/dd42d024d8a5ffa9fad1bbb9c9f3d23f
LEDは、電圧をかけると光る電子部品です。
LEDの中には、複数のLEDを光らせることが簡単にできるものや、フルカラーで光るものもあります。
基板のLEDは、led命令で点灯(led 1)、消灯(led 0)が可能
外付けのLEDは、OUT 1-4に接続
この接続方法なら、out 数字で4ビット分のLED点灯・消灯が可能
ポートを個別に操作する場合は、out 1,1などとする
内蔵LEDは点滅、変数iの値に従って外付けLEDに表示
code: led.bas
100 @start
110 for i=1 to 16
140 led i&1
150 out i
190 wait 10
200 next
210 goto @start
IchigoJamでジョイスティック(デジタル,アナログ入力)
https://gyazo.com/827d53b37c51094c2c4417f6a51d98f2
ジョイスティックの本体は、可変抵抗という抵抗を変化することができる電子部品からできています。
ボタンがついている場合は、スイッチとして実現されています。
スティックの上下用と左右用の二つの可変抵抗と、ボタンがある場合はプッシュスイッチ
ジョイスティックは、アナログx=ana(2)(ANA2, IN2), y=ana(0)(ANA0,BTN)に接続
可変抵抗で電圧を変えて、その電圧値を見る
アナログ値は0-1023 (0-5V)
ボタン(スティック押し込み)は、デジタル IN1入力(b=in()&1 または b=in(1))
ジョイスティックの左右をxに、上下をyに、ボタンの状態をbに入れる
code: joystick.bas
120 x=ana(2):y=ana(0):b=in()&1
IchigoJamで音を出す
https://gyazo.com/a825811a5190fac325cef92cb25a02de
音を出すには、圧電サウンダーが利用できます。
圧電サウンダーでは、音階も出せるため、演奏することもできます。
SOUNDとGNDの間に、圧電サウンダーを刺す
beep命令で音を出す
play命令を使うと、音階を出して演奏することもできる
ジョイスティックのボタンbが押されていれば、音を出す
code: sound.bas
180 if b=0 beep
IchigoJamでサーボモーター(PWM,アナログ出力)
https://gyazo.com/f666dc34c64a4b9b5a9b288e5fe40d66
サーボモーターは、PWMという信号を与えることで、所定の位置にモーターを回転させることができる電子部品です。
PWM(パルスの幅に応じて動作(サーボの角度)が変わる)で制御
出力値は、0-1023で指定
PWM5(OUT5)に接続
ジョイスティックのxの値に応じて、サーボの角度を変える
code: servo.bas
160 pwm5,x/2
IchigoJamでモーター(デジタル出力制御)
https://gyazo.com/76ead85c3c5debcb0e13dbcaaee14077
モーターをIchigoJamで使うためには、モータードライバと呼ばれるICを使う必要があります。
https://gyazo.com/985e305b8f7e6069bb8bcfc9c2887a8b
(c)PCN金沢 CC BY
ポートOUT6,11(OUT6,IN4)で制御
table: TA7291Pのモータ制御方法
入力1(IN1) 入力2(IN2) 出力1(OUT1) 出力2(OUT2) モード
0 0 ∞ ∞ ストップ
1 0 H L 時計回り/反時計回り
0 1 L H 反時計回り/時計回り
1 1 L L ブレーキ
ジョイスティックのyの値でモータの回る方向を変える
code: motor.bas
170 if y<100 out 6,0:out 11,1 else if y>900 out 6,1:out 11,0 else out 6,0:out 11,0
全プログラム
code: demo.bas
100 @start
110 for i=1 to 16
120 x=ana(2):y=ana(0):b=in()&1:rem Input from Joystick and Button
130 ?x,y,b
140 led i&1:rem Blink LED on board
150 out i:rem LEDx4
160 pwm5,x/2:rem Servo
170 if y<100 out 6,0:out 11,1 else if y>900 out 6,1:out 11,0 else out 6,0:out 11,0:rem Motor
180 if b=0 beep:rem Beep when button pushed
190 wait 10
200 next
210 goto @start
デモの動作の様子
https://www.youtube.com/watch?v=7-CHdtkXWUc
今回のデモのピン接続表
今回のデモでは、以下のようにピンに接続しました。
table: 今回のデモの接続表
接続機器 接続ポート役割名 接続ポートラベル
LED1-4 OUT1-4 OUT1-4
ジョイスティックx ANA2 IN2
ジョイスティックy ANA0 BTN
ジョイスティックボタン IN1 IN1
サーボモーター PWM5 OUT5
モーター OUT6,11 OUT6,IN4
圧電サウンダー SOUND SOUND
おわりに
IchigoJamは、簡単に電子工作ができて、楽しいです
夏休みの自由研究にいかがでしょうか?