SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

鹿よけフラッシュライト基板

情報センターの周辺に立てている「鹿よけフラッシュライト」。
www.ichigojaman.jp
これまでIchigoLatte基板の中央部のパターンに配線して作っていましたが、古いIchigoJamを再利用しようと、専用の拡張基板を作りました。
f:id:shiro0922:20210129132432j:plain
部品点数も少なくて簡単に工作できるので、教室のネタにもいかがでしょうか。


農業・園芸用のポールに両面テープで貼り付けて、地面に立てています。

基板データ

f:id:shiro0922:20210312205027p:plain
f:id:shiro0922:20210312205040p:plain

*この基板データは、CC BYライセンスとします。どうぞご利用ください。

(C) 2021 Shiro Saito (https://www.ichigojaman.jp)

プログラム

フォトトランジスタで明るさを読み取って、暗くなると青色LEDがフラッシュ点灯します。
動物が慣れないように、ランダムなタイミングで光ります。
クロックを落として省電力にしていて、アルカリ単3電池×4本で半年くらい保ちます。

10 '*Flash Light 3
20 VIDEO 0,30
30 WAIT 1+RND(10),0
40 IF ANA(2)>300 GOTO 30
50 LED 1:WAIT 0,0:LED 0
60 GOTO 30

IchigoJamでキーボード自動入力

IchigoJamにUSB-UART変換ボードをつないで、PCのキーボードとして自動入力してみました。
動画はこちら。

【IchigoJam】キーボード自動入力


f:id:shiro0922:20210306162852j:plain
今回使ったUSB-UART変換ボードは、マイクロテクニカ社の「USBKBD-50」です。
www.microtechnica-shop.jp
amazonではこちら。

IchigoJamのシリアル出力を、キーボード入力に変換できます。
IchigoJamとは、TX-RX、GND-GNDの2本をつなぎます。

IchigoJam USBKBD-50
TXD - RX
GND - GND


f:id:shiro0922:20210306184202p:plain
Windows PCからは「HIDキーボードデバイス」として認識されます。


f:id:shiro0922:20210306174845j:plain
Excelに自動入力できるので、例えばセンサーの値を一定時間ごとに入力するなど、いろいろ使い道がありそうです。


f:id:shiro0922:20210306162839j:plain
本当はIchigoJam Rのキーボード端子につないで、プログラムのコピーや自動入力をしたかったのですが、そちらは全く入力できませんでした。どうもキーボードとして認識してくれないようです。

テストプログラム

最初に「BPS 9600」で、転送レートを9600bpsに設定する必要があります。
また、1文字ごとにWAITを入れないと文字を取りこぼします。(WAIT無しで一度に読み取れるのは3文字まででした)
転送レートを下げればいいのではないかと思ったのですが、ボードが9600bps固定の仕様で、下げるとうまく動きませんでした。
なおボードのマニュアルによると、「各キー入力ごとに20msの間隔を空けること」とのことです。

10 FOR C=65 TO 90
20 ?CHR$(C)
30 WAIT 3
40 NEXT

ローリングシャッター現象

高速で移動する物を撮影すると斜めに写る「ローリングシャッター現象」を、IchigoJamの画面で再現してみました。
IchigoJam Sだと表示が遅いのであまり傾きませんが、IchigoJam R β版だと面白い表示になります。
動画はこちら。

【IchigoJam】ローリングシャッター現象

IchigoJam S


「WAIT -128」辺りで傾き始めます。が、表示が遅いのでこれ以上傾きません。

IchigoJam R


Sと同様に「WAIT -128」辺りで傾き始めます。


「WAIT -32」。


「WAIT -8」。


「WAIT -2」で、画面スキャンと釣り合ってほぼ固定の斜め線になります。


最高速の「WAIT -1」でこのくらい。

プログラム

カーソルキーの↑を押すと高速(WAIT減少)に、↓を押すと低速(WAIT増加)になります。「WAIT -1」が最高速です。

10 '*Rolling Shutter
20 CLV:CLS
30 W=8
40 @LOOP
50 FOR I=1 TO 10
60 LC 0
70 FOR Y=0 TO 22:?CHR$(133):NEXT
80 ?W;
90 FOR X=0 TO 31
100 SCROLL 29
110 WAIT W
120 NEXT
130 K=INKEY()
140 IF K=30 IF W=1 W=-128 ELSE W=W/2
150 IF K=31 IF W=-128 W=1 ELSE W=W*2
160 IF W=0 W=-1
170 NEXT
180 GOTO @LOOP