SHIROのIchigoJam日記

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

Ichigo亀の子

以前にIchigoJamのIC・LPC1114を2つ重ねてスイッチで動作を切り替える実験をしたのですが、改めてシールド基板を作ってみました。スイッチで上下2個のICを切り替えて使えます。

f:id:shiro0922:20190629214808j:plain

f:id:shiro0922:20190629214931j:plain

f:id:shiro0922:20190629214448j:plain


回路は簡単で、2つのLPC1114のReset端子を、スイッチで切り替えてGNDへ落としているだけです。
リセットされたICは動作しないので、もう片方が動作するボードになります。

こちらの画面は、上のICをIchigoLatte、下のICをIchigoJam BASIC環境にした例。
スライドスイッチで「Bottom-IC」「Top-IC」を選んで、2つの環境を切り替えることができます。
f:id:shiro0922:20190629221117p:plain
f:id:shiro0922:20190629221130p:plain

有用な使い道としては、日本語キーボードと英語キーボードの環境を切り替えて使うことでしょうか。
もちろんIchigoJam BASIC/IchigoLatte/IchigonQuestなど、異なる言語環境を重ねて切り替えることもできます。
同じIchigoJam BASIC環境を2個積んで、SAVEスロットを8個使う、なんて使い方も可能です。

基板データ

LPC1114の、大きいDIP28のIC、小さいTSSOPのIC、どちらのはんだ付けにも対応しています。
本体のIchigoJamのソケットに挿す、外側の2列のピンは、写真では長い脚のピンソケットにしていますが、ソケットに外部機器やパーツを挿さないなら、普通のピンヘッダにしても構いません。ただし基板にはんだ付けするLPC1114のファームウェア書き換えは、別の手段であらかじめ行ってください。

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

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

Ichigoトランペット

現在開発中のIchigoJamファームウェアβ版(1.3b16)で、VIDEO 0(画面消去)の時のサウンド音階が改善されました。それを機に、電子トランペットを作ってみました。
ボタンを指で押さえて、マイクを口で吹くと鳴らせます。
動画はこちら。

【IchigoJam】Ichigoトランペット

本物のトランペットはピストンが3本で、同じ運指で吹き方(唇の振動)を変えて何種類もの音階を出すのですが、マイクアンプ出力をダイオードで検波した所、息の強弱まで読み取れませんでした(^_^;) そのため高音用のボタンを追加して、独自の2進法運指にしています。まあオリジナル電子楽器ですし、2進法の練習と思えば…
f:id:shiro0922:20190616222404p:plain

サウンド出力は、共立電子のエイリアンスピーカーを使っています。ボリューム調整もできて便利です。
回路もプログラムも割と簡単なので、専用基板さえ作れば、子ども向け電子工作&プログラミング教室のネタにいいかもしれません。

プログラム

10 '*Trumpet
20 CLV:VIDEO 0
30 LET [0],"R16","C16","D16","E16","F16","G16","A16","B16"
40 LET [8],"R16","<C16","<D16","<E16","<F16","<G16","<A16","<B16"
50 @LOOP
60 IF ANA(2)>900 GSB @TPLAY
70 GOTO @LOOP
80 @TPLAY
90 P=!IN(1)+!IN(3)*2+!IN(4)*4+BTN()*8
100 PLAY [P]
110 WAIT 7
120 RTN

プログラムとしては、上のシの音まで出せるようになっています。
電子回路を口で吹いていると、楽器よりもファミコンカセットフーフーを思い出してしまう私は、オジさんですか、そうですか(笑)

8/25追記

専用プリント基板を作りました。詳しくはこちら。
www.ichigojaman.jp

Ichigoクロック

以前にIchigoJamを使った時計を作ったのですが、それを応用して、時計付き大観覧車「Ichigoクロック」を作ってみました。
横浜のみなとみらい地区にある「コスモクロック21」からヒントを得ています。
動画はこちら。

【IchigoJam】Ichigoクロック


台座にあるIchigoJam+モーター基板tempeXで、時計とモーターをコントロール

f:id:shiro0922:20190613201633j:plain
時計基板は以前に作ったIchigoJam時計と同じですが、接続端子からケーブルを伸ばして台座のIchigoJamへつないでいます。
観覧車内にあるもう1個のIchigoJamで、電飾を光らせています。IchigoJamは次期ファームウェア1.4が開発中ですが、そのβ版でLEDテープ「WS2812B」を簡単に制御できるようになりました。


観覧車の背面にタミヤ6速ギヤーボックスを置いて回転させています。1300:1の最大ギヤ比で組んでいます。回すと意外にうるさいです。
回転軸は、ホームセンターで買った6mm径の木の丸棒を軸にして、タミヤのプーリーを付けました。

f:id:shiro0922:20190529215616j:plain
木製の観覧車は組み立て式ですが、作るのに3時間以上かかりました。「対象年齢は15歳~」なので、小さい子どもが作るにはちょっと難しいかも知れません。夏休みの工作なら挑戦できるかも。
かく言う私も、所々失敗して部品を折ってしまったので、修復の木工用ボンドは必須です。
金属製の大観覧車だともっとカッコいいんですが、2万円以上します(^_^;)

プログラム

プログラム1:時計表示+モーターコントロール

基本的に以前の時計プログラムと同じですが、tempeXのモーターはOUT2で制御するので、時計の表示をOUT1,3,4ポートに変えています。

10 '*CLOCK RTC
20 CLV:VIDEO 0
30 OUT 2,1
40 GSB @TIMEREAD
50 [0]=`0111111
60 [1]=`0000110
70 [2]=`1011011
80 [3]=`1001111
90 [4]=`1100110
100 [5]=`1101101
110 [6]=`1111101
120 [7]=`0100111
130 [8]=`1111111
140 [9]=`1101111
150 @LOOP
160 GSB @PRT
170 CLT
180 @COLON
190 T=TICK()
200 OUT 6,T%60<30
210 J=M
220 GSB @TIMEREAD
230 IF J=M GOTO @COLON
240 GOTO @LOOP
250 @PRT
260 N=H/10:GSB @SENDN
270 N=H%10:GSB @SENDN
280 N=M/10:GSB @SENDN
290 N=M%10:GSB @SENDN
300 OUT 4,1:OUT 4,0
310 RTN
320 @SENDN
330 F=[N]
340 FOR I=0 TO 7
350 OUT 1,F&#80
360 OUT 3,1:OUT 3,0
370 F=F*2
380 NEXT
390 RTN
400 @TIMEREAD
410 POKE #700,0
420 IF I2CR(#68,#700,1,#701,7) ERR
430 X=PEEK(#703)
440 H=X>>4*10+X&15
450 X=PEEK(#702)
460 M=X>>4*10+X&15
470 RTN

プログラム2:電飾コントロール

観覧車内のIchigoJamファームウェアは1.4β版)で動かしています。LEDテープは5個×6方向=合計30個のLEDがあるのですが、「0~4」→「9~5」→「10~14」→「19~15」→「20~24」→「29~25」と互い違いに配線されているので、中心から放射状に光らせるために少し変なプログラムになっています。

1 '*IchigoClock Illumination
2 VIDEO 0
3 @LOOP
4 '
5 CLV
6 WS.LED 30
7 WAIT 30
8 '
9 '---RGB---
10 '
11 FOR C=0 TO 2
12 '
13 FOR T=0 TO 4 STEP 2
14 [T*15+C]=192
15 [T*15+27+C]=192
16 NEXT
17 WS.LED 30
18 WAIT 30
19 '
20 FOR I=1 TO 5
21 GSB @SHIFT
22 FOR T=0 TO 4 STEP 2
23 [T*15+C]=0
24 [T*15+27+C]=0
25 NEXT
26 WS.LED 30
27 WAIT 30
28 NEXT
29 '
30 NEXT
31 '
32 '---RND---
33 '
34 FOR L=0 TO 4
35 GSB @SETRND
36 NEXT
37 WS.LED 30
38 WAIT 30
39 '
40 FOR I=1 TO 15
41 GSB @SHIFT
42 L=0:GSB @SETRND
43 WS.LED 30
44 WAIT 30
45 NEXT
46 '
47 GOTO @LOOP
48 '
49 '---SUB---
50 '
51 @SHIFT
52 FOR T=0 TO 4 STEP 2
53 A=#81D+T*30
54 COPY A,A-6,-24
55 A=#81E+T*30
56 COPY A,A+6,24
57 NEXT
58 RTN
59 '
60 @SETRND
61 A=RND(192)
62 B=RND(192)
63 C=RND(192)
64 FOR T=0 TO 4 STEP 2
65 [T*15+L*3]=A
66 [T*15+27-L*3]=A
67 [T*15+L*3+1]=B
68 [T*15+27-L*3+1]=B
69 [T*15+L*3+2]=C
70 [T*15+27-L*3+2]=C
71 NEXT
72 RTN