IchigoJamで電子工作をするための情報です。
プログラミング教室でもぜひ作ってみよう!
工作例
LEDを点ける
オンボードのLEDと同様に、OUT端子とGND端子にLEDと電流制限抵抗をつなげると、点灯させることができます。
例えばOUT1ポートにつないだLEDは、「OUT 1,1」で点灯、「OUT 1,0」で消灯します。
※電流制限抵抗は、オンボードLEDと同じ330Ωをおすすめします。
本来はLEDのVf(順方向電圧降下)と流したい電流量に合わせて抵抗値を調整するのですが、Vfの高い青や緑のLEDでも330Ωで割と光ります。
→LED・抵抗の計算式(秋月電子)
電流制限抵抗内蔵のLEDなら、抵抗無しでそのままOUTとGNDにつなげて大丈夫です。
IchigoJamは通常の出力ポートはOUT1~OUT6、LED(OUT7)の7本ですが、IN1~IN4をOUT8~OUT11として使うことができます。
そのため、LEDを最大11個点灯させることができます。
←LEDを11個光らせた例(野球盤)
ただしIN3(OUT10)ポートだけは、左図のようにプルアップ抵抗を付けないとLEDが光りませんので注意してください。
OUT10に付けたLEDは、IchigoJamの起動時に薄暗く光ることがあります。
その場合は「OUT 0」をしても消えないので、「OUT 10,0」として消してください。その後は普通に点灯/消灯できます。
LEDテープ
LEDテープ(WS2812B)をIchigoJamにつないで、イルミネーションのように光らせることができます。
以前はマシン語サブルーチンが必要だったのですが、ファームウェア1.4βで実装された「WS.LED」コマンドで、簡単に光らせられるようになりました。
LEDテープとIchigoJamを、3本の線でつなぎます。
LEDテープ | IchigoJam |
VCC | VCC |
DIN | LED |
GND | GND |
ブレッドボードワイヤ、または0.65mm径の単芯線を使うと、そのままピンソケットに挿せるので便利です。
サンプルプログラムは以下のとおり。30個のLEDがランダムな色で光ります。
10 FOR I=0 TO 87 STEP 3
20 LET [I],RND(100),RND(100),RND(100)
30 NEXT
40 WS.LED 30
WS.LEDコマンドは、配列変数にセットされた緑(G)・赤(R)・青(B)の値を、LEDテープへ転送して光らせます。
LEDを1個点灯させるのに、配列変数が3個必要です。配列変数は[0]~[101]の102個なので、LEDを最大34個まで光らせられます。
各色の値は0~255で指定できますが、あまり明るくすると眩しくて色がわかりづらくなります。100以下の値にした方がいいでしょう。
なお、光らせるLEDの個数が多くなると電力が足りなくなって、点灯時にモニタ画面表示が乱れます。その際はLEDテープのVCCをIchigoJamのCN5の+5V端子につないでください。
光センサー
光センサーとしてはCdsやフォトトランジスタがよく使われますが、ここではフォトトランジスタを使った例を示します。
フォトトランジスタは、光が当たると電流が流れる半導体素子です。Cdsは人体に有害なカドミウムを含むため、最近はフォトトランジスタへの置き換えが進んでいます。
←可視光を検知するフォトトランジスタの例:NJL7502L(秋月電子)
このNJL7502Lを使って、下のような回路を作ります。
続いてプログラムです。
10 ?ANA(2):CONT
RUN
963
959
935
:
IN2端子のアナログ入力を読み取って、くり返し表示しています。明るい室内ならだいたい900くらいの値になります。
フォトトランジスタを指で陰にして暗くすると、100以下になります。(これだけでも子ども達に結構ウケます )
この光センサーを使った実用的なプログラム例は、以下のとおりです。
10 IF ANA(2)<300 THEN LED 1 ELSE LED 0
20 GOTO 10
RUNで実行して、フォトトランジスタを指で暗くするとオンボードLEDが光ります。明るくするとLEDが消えます。
小学校理科の「電気の効率的な利用」、あるいは中学校技術科の「計測と制御」単元のプログラミング教材として使えます。
「暗くなると自動的に点く街灯があるよね? あれと同じだよ」と説明するといいでしょう。
大人の工作のための情報
基板サイズ、回路図
シールドを設計するときに参考になる、IchigoJamの外形図。IchigoJam_outline.pdf
基板の厚みは種類・世代によって異なる(確認したものでは1.3mmや1.6mmが存在)。これから作成するなら一般的な1.6mmが良いのでは。
- GitHubIchigoJam Sのガーバーデータおよび部品表、回路図。
I/O端子
IchigoJamのI/O端子に対しての操作がまとめられているページ
OUT1から6までの端子を入力にすることもできるが、OUT 1,-2のように"-2"パラメータでプルアップ抵抗をonにすることができる。IN1,2,4はプルアップが通常でonなので、その使い方が良いかも。
その他
ブレッドボードやユニバーサル基板を用いて自分だけの拡張ができる。
はんだごてが使えない人はブレッドボードでセンサなどを追加できる。
はんだごてが使える人はユニバーサル基板の一番小さいやつを購入して、自分で回路を組んでみよう。きっと自分だけのお気に入りのマシンが手に入るはずだ。
- ブレッドボードでLEDを光らそうブレッドボードの仕組みまで解説している
- 秋月電子通商ブレッドボードの入手はこちら
- 秋月電子通商ブレッドボード用のジャンパの入手はこちら
- 距離センサアナログ電圧で距離が出てくるので、ANA()命令で距離がわかる! 自動運転車には必須のアイテム。
- サーボモータMapleSyrupシールドで使うと、サーボモータが付けられる! ロボットのアームなどに必須のアイテム。