FrontPage/電子工作 の変更点

TITLE:電子工作

----
//&size(20){''電子工作''};
IchigoJamで電子工作をするための情報です。
プログラミング教室でもぜひ作ってみよう! (^^) 
----

#br

* ''工作例'' [#t60f655f]
** ''LEDを点ける'' [#l1f3cda4]

#br
#ref(led1fzz.png,around)
#ref(led1.png,around)
オンボードのLEDと同様に、OUT端子とGND端子にLEDと電流制限抵抗をつなげると、点灯させることができます。
例えばOUT1ポートにつないだLEDは、「OUT 1,1」で点灯、「OUT 1,0」で消灯します。
#br
※電流制限抵抗は、オンボードLEDと同じ330Ωをおすすめします。
本来はLEDのVf(順方向電圧降下)と流したい電流量に合わせて抵抗値を調整するのですが、Vfの高い青や緑のLEDでも330Ωで割と光ります。
[[→LED・抵抗の計算式(秋月電子)>http://akizukidenshi.com/download/led-r-calc.pdf]]
電流制限抵抗内蔵のLEDなら、抵抗無しでそのままOUTとGNDにつなげて大丈夫です。
#clear
#br

#ref(baseballboard.jpg,around)
IchigoJamは通常の出力ポートはOUT1~OUT6、LED(OUT7)の7本ですが、IN1~IN4をOUT8~OUT11として使うことができます。
そのため、LEDを最大11個点灯させることができます。

←LEDを11個光らせた例(野球盤)
#clear
#br

#ref(led2.png,around)
ただしIN3(OUT10)ポートだけは、左図のようにプルアップ抵抗を付けないとLEDが光りませんので注意してください。
OUT10に付けたLEDは、IchigoJamの起動時に薄暗く光ることがあります。
その場合は「OUT 0」をしても消えないので、「OUT 10,0」として消してください。その後は普通に点灯/消灯できます。
#clear
#br
** ''LEDテープ'' [#y9937038]
LEDテープ(WS2812B)をIchigoJamにつないで、イルミネーションのように光らせることができます。
#ref(ledtapelight.jpg)
-[[WS2812Bの商品例(amazon)>https://www.amazon.co.jp/gp/product/B01MFGVNKC/]]

以前はマシン語サブルーチンが必要だったのですが、[[ファームウェア1.4β>https://github.com/IchigoJam/IchigoJam.github.io]]で実装された「WS.LED」コマンドで、簡単に光らせられるようになりました。
#ref(ledtape.png)
LEDテープとIchigoJamを、3本の線でつなぎます。
|LEDテープ|IchigoJam|h
|VCC|VCC|
|DIN|LED|
|GND|GND|
ブレッドボードワイヤ、または0.65mm径の単芯線を使うと、そのままピンソケットに挿せるので便利です。
-[[耐熱通信機器用ビニル電線 2m×10色 導体径0.65mm 単芯(秋月電子)>http://akizukidenshi.com/catalog/g/gP-08996/]]

#br

サンプルプログラムは以下のとおり。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テープへ転送して光らせます。
#ref(ledtapearray.png)
LEDを1個点灯させるのに、配列変数が3個必要です。配列変数は[0]~[101]の102個なので、LEDを最大34個まで光らせられます。
各色の値は0~255で指定できますが、あまり明るくすると眩しくて色がわかりづらくなります。100以下の値にした方がいいでしょう。
なお、光らせるLEDの個数が多くなると電力が足りなくなって、点灯時にモニタ画面表示が乱れます。その際はLEDテープのVCCをIchigoJamのCN5の+5V端子につないでください。
#clear
#br
** ''光センサー'' [#l36d8976]

#br
#ref(phototr.jpg,around)
光センサーとしてはCdsやフォトトランジスタがよく使われますが、ここではフォトトランジスタを使った例を示します。
フォトトランジスタは、光が当たると電流が流れる半導体素子です。Cdsは人体に有害なカドミウムを含むため、最近はフォトトランジスタへの置き換えが進んでいます。
[[←可視光を検知するフォトトランジスタの例:NJL7502L(秋月電子)>http://akizukidenshi.com/catalog/g/gI-02325/]]
#clear
#br
このNJL7502Lを使って、下のような回路を作ります。
#ref(phototrfzz.png,around)
#ref(phototr.png)
#clear
#br
続いてプログラムです。
>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が消えます。

小学校理科の「電気の効率的な利用」、あるいは中学校技術科の「計測と制御」単元のプログラミング教材として使えます。
「暗くなると自動的に点く街灯があるよね? あれと同じだよ」と説明するといいでしょう。

#BR
* ''大人の工作のための情報'' [#q4e0a6a2]
** ''基板サイズ、回路図'' [#u2030c8e]

シールドを設計するときに参考になる、IchigoJamの外形図。&attachref(./IchigoJam_outline.pdf);
基板の厚みは種類・世代によって異なる(確認したものでは1.3mmや1.6mmが存在)。これから作成するなら一般的な1.6mmが良いのでは。
- [[GitHub>https://github.com/yrm006/ichigojam-s/]]IchigoJam Sのガーバーデータおよび部品表、回路図。

** ''I/O端子'' [#d316ff2c]

IchigoJamのI/O端子に対しての操作がまとめられているページ

- [[IchigoJamのピン配列表>https://bokunimo.net/ichigojam/pinout.html]]

OUT1から6までの端子を入力にすることもできるが、OUT 1,-2のように"-2"パラメータでプルアップ抵抗をonにすることができる。IN1,2,4はプルアップが通常でonなので、その使い方が良いかも。

** ''その他'' [#s2bbdb55]

ブレッドボードやユニバーサル基板を用いて自分だけの拡張ができる。
はんだごてが使えない人はブレッドボードでセンサなどを追加できる。
はんだごてが使える人はユニバーサル基板の一番小さいやつを購入して、自分で回路を組んでみよう。きっと自分だけのお気に入りのマシンが手に入るはずだ。

- [[ブレッドボードでLEDを光らそう>http://www.white.umic.jp/pc/files/ichigojam-led2text.pdf]]ブレッドボードの仕組みまで解説している
- [[秋月電子通商>http://akizukidenshi.com/catalog/g/gP-05294/]]ブレッドボードの入手はこちら
- [[秋月電子通商>http://akizukidenshi.com/catalog/g/gC-05371/]]ブレッドボード用のジャンパの入手はこちら
- [[距離センサ>http://akizukidenshi.com/catalog/g/gI-02551/]]アナログ電圧で距離が出てくるので、ANA()命令で距離がわかる! 自動運転車には必須のアイテム。
- [[サーボモータ>http://akizukidenshi.com/catalog/g/gM-08761/]]MapleSyrupシールドで使うと、サーボモータが付けられる! ロボットのアームなどに必須のアイテム。

#br

*リアルタイムコメント [#i2efffc6]
リアルタイムでコメントを表示します。
チャットのような機能です。
[[リアルタイムコメントフォーム>https://wikiwiki.jp/sample/?%A5%EA%A5%A2%A5%EB%A5%BF%A5%A4%A5%E0%A5%B3%A5%E1%A5%F3%A5%C8%A5%D5%A5%A9%A1%BC%A5%E0]]
#rtcomment(,30,true)