SHIROのIchigoJam日記

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

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