SHIROのIchigoJam日記

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

立形信号機

IchigoJamの14ピンソケットに立てるタイプの信号機です。
動かしてみた動画はこちら。

【IchigoJam】立形信号機

f:id:shiro0922:20181223112129j:plain

車用・歩行者用それぞれの専用基板を作りました。
車用には光センサー(フォトトランジスタ)、歩行者用には圧電ブザーが付いています。
(PCN三重・チーム伊勢さんが販売する信号機と差別化 ^_^; )
f:id:shiro0922:20181223225602p:plain

f:id:shiro0922:20181223225616p:plain

f:id:shiro0922:20181223225533p:plain

f:id:shiro0922:20181223225546p:plain

f:id:shiro0922:20181222165750j:plain

f:id:shiro0922:20181223112448j:plain

プログラム

動かし方はプログラム次第ですが、動画のプログラムはこちら。

10 'TRAFFIC LIGHT MELODY
20 VIDEO 0,30:OUT 0
30 OUT 1,1
40 OUT 5,1
45 IF ANA(2)<300 GSB 300:GOTO 60
50 IF !BTN() GOTO 45
60 OUT 1,0
70 OUT 2,1
80 WAIT 4
90 OUT 2,0
100 OUT 3,1
110 WAIT 4
120 OUT 5,0
130 OUT 6,1
140 VIDEO 0,1
150 PLAY "O4L8 E2E4D4E4ED>B2 <F4FFA4FEFEDDE2 FFFF4AFEFEDDE2"
160 WAIT 720
170 FOR I=1 TO 3
180 OUT 6,1
190 PLAY "F4"
200 WAIT 30
210 OUT 6,0
220 PLAY "B4"
230 WAIT 30
240 NEXT
250 VIDEO 0,30
260 OUT 5,1
270 WAIT 4
280 OUT 3,0
290 GOTO 30
300 OUT 1,0
310 OUT 2,1
320 WAIT 1
330 OUT 2,0
340 WAIT 1
350 IF ANA(2)<300 GOTO 300
360 RTN

プログラミングテキスト

十勇士パソコンクラブのページで、プログラミングテキストを公開しています。www.white.umic.jp

Ichigo鉄琴

※この記事は「IchigoJam Advent Calendar 2018」にエントリーしています。

12/15~16の上田市マルチメディア情報センターのクリスマスイベント「St. Media Xmas 2018」でのライブ放送「Xmas TV」で、IchigoJamで演奏する鉄琴作りをやりました。
(前作「Ichigoチャイム」の発展形です)
www.ichigojaman.jp
ライブではとりあえずド~上のドまでの8音階を叩く所までできたのですが、その後手直しや作り込みをして、無事に完成しました(^_^)v
動画はこちら。

【IchigoJam】Ichigo鉄琴


f:id:shiro0922:20181220225835j:plain

前作と同じく、鉄琴工作キットをベースに、8個のサーボモーターを配置して、マレット(バチ)を制御します。
f:id:shiro0922:20181220225856j:plain

マレットは途中で切断してスプリングで接続。
叩く時に鉄琴上のストッパーで柄が止まり、ヘッドがしなって鉄琴のキーを叩きます。
この機構のお陰で、大人気だったウォームアップ動作は不要になりました(笑)
f:id:shiro0922:20181220225924j:plain

ストッパーは、ホームセンターで買った6mm径のアクリル棒に、ゴムバンドを貼り付けて作りました。
f:id:shiro0922:20181219000634j:plain

IchigoJamは親子2台で、サーボモーターを4個ずつ制御。
TX/RXを接続して、選曲No.と、演奏スタートのタイミングを、親機→子機へ送っています。
電源はお馴染みのIoT用モバイルバッテリ「Cheero Canvas」。
f:id:shiro0922:20181220231456j:plain

基板データ「Servo Base 4」

IchigoJamのOUT2~5で、サーボモーター4個を制御するシールド基板です。

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

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

基板の回路図は以下のとおりです。
IchigoJamのOUT2~5でサーボモーターを計4個制御します。
f:id:shiro0922:20181230195043p:plain

プログラム

IchigoJam親機と子機に、下記のメインプログラムをスロット0、曲データをスロット1~3に配置しています。
親機と子機をボタンを押しながら電源ONしてメインプログラムを自動起動し、親機の有機EL画面で曲1~3をボタンを押して選択します。

メインプログラム(親機)

1 '*Tekkin P
2 CLV:LED1:WAIT60:UART0:GSB26
3 LET[90],200,110,205,120,210,120,220,125
4 FORP=2TO5:PWMP,[86+P*2]:NEXT
5 OUT0:CLS:S=0
6 IFTICK()>59GSB23
7 IF!BTN()GOTO6
8 CLK:UART1:?S:UART0:G=9:LRUNS
9 IFBTN()CONT
10 LC0,2:?"Push BTN":GSB34
11 IF!BTN()CONT
12 LED1:CLK:UART1:?"*":UART0
13 FORI=0TOL
14 X=[I]&15:Y=[I]&240/16:Z=[I]&768/256
15 B=1:A=X:IFA%2GSB25
16 A=Y:IFA%2GSB25
17 WAIT14
18 B=0:A=X:IFA%2GSB25
19 A=Y:IFA%2GSB25
20 WAIT1:IFZ=1WAIT15
21 NEXT
22 GOTO4
23 CLT:S=S+1:IFS=4S=1:CLS
24 ?CHR$(233);:GSB34:RTN
25 P=A/2+2:PWMP,[86+P*2+B]:RTN
26 poke#780,#00,#40,#21,#00,#7F,#22,#00,#07,#AE,#D5,#80,#8D,#14,#20,#00,#DA,#12,#81,#CF,#D9,#F1,#DB,#40,#A4,#A6,#AF
27 forP=#788to#799:i=i2cw(60,#780,1,P,1)
28 next
29 poke #79a,#70,#b5,#40,#18,#07,#23,#1b,#02
30 poke #7a2,#c9,#18,#10,#24,#03,#78,#db,#00
31 poke #7aa,#d3,#18,#1d,#68,#0d,#60,#5d,#68
32 poke #7b2,#4d,#60,#20,#30,#08,#31,#01,#3c
33 poke #7ba,#f4,#d1,#70,#bd
34 fork=0to7:j=usr(#79A,#907-k):j=i2cw(60,#781,1,#700,128):next:rtn

メインプログラム(子機)

1 '*Tekkin C
2 CLV:CLK:LED 1:WAIT 60:UART 1,1
3 LET[90],60,155,75,170,62,160,70,167
4 FOR P=2 TO 5:PWM P,[86+P*2]:NEXT
5 OUT 0:CLK
6 S=INKEY()-48:IF S<1 OR S>3 CONT
7 CLK:G=8:LRUNS
8 IF INKEY()!=42 CONT
9 CLK:LED 1
10 FOR I=0 TO L
11 X=[I]&15:Y=[I]&240/16:Z=[I]&768/256
12 B=1:A=X:IFA&&A%2=0GSB20
13 A=Y:IFA&&A%2=0GSB20
14 WAIT14
15 B=0:A=X:IFA&&A%2=0GSB20
16 A=Y:IFA&&A%2=0GSB20
17 WAIT1:IFZ=1WAIT15
18 NEXT
19 GOTO 4
20 P=A/2+1:PWMP,[86+P*2+B]:RTN

※3行目のデータは、4個のサーボモーターの真上/下ろした時の値です。これはマレットの作り方や各サーボモーターの個体差によって変わるので、実際に動かして調整する必要があります。
なお、マレットを真上で止めているのは、斜めで止めるとハンチング(振動)を起こしてしまうからです。実はハンチング抑制のために、マレットの長さの短縮、サーボモーターのアームの取り付け角やプログラムのパラメータ調整など、かなり試行錯誤しています。もっとトルクが大きいサーボモーターを使えば解決しますが、とても高価なので(^_^;)

曲データ「学校チャイム」(ウェストミンスターチャイム)

10 '*Tekkin - Chime
20 LET [ 0],#105,#107,#106,#102,#100,#100
30 LET [ 6],#105,#106,#107,#105,#100,#100
40 LET [12],#107,#105,#106,#102,#100,#100
50 LET [18],#102,#106,#107,#105,#100,#100
60 L=23
70 LRUN 0,G

曲データ「かえるのうた 輪唱」

10 '*Tekkin - Kaeru Rinsho
20 LET [ 0],#101,#102,#103,#104,#103,#102,#101,#100
30 LET [ 8],#113,#124,#135,#146,#135,#124,#113,#100
40 LET [16],#131,#140,#151,#160,#151,#140,#131,#100
50 LET [24],#201,#201,#202,#202,#213,#203,#204,#204
60 LET [32],#113,#102,#101,#100
70 LET [36],#201,#201,#202,#202,#203,#203,#204,#204
80 LET [44],#103,#102,#101,#100
90 L=47
100 LRUN 0,G

曲データ「もろびとこぞりて」(Joy to the World)

10 '*Tekkin - Morobito Kozorite
20 LET [ 0],#108,#100,#107,#200,#206,#105,#100,#100
30 LET [ 8],#104,#103,#100,#102,#100,#101,#100,#100
40 LET [16],#105,#106,#100,#100,#106,#107,#100,#100
50 LET [24],#107,#108,#100,#100,#100,#100,#100,#100
60 LET [32],#108,#108,#107,#106,#105,#105,#200,#204,#103
70 LET [41],#108,#108,#107,#106,#105,#105,#200,#204,#103
80 LET [50],#103,#103,#103,#103,#203,#204,#105,#100,#100
90 LET [59],#204,#203,#102,#102,#102,#202,#203,#104,#100,#100
100 LET [69],#203,#202,#101,#108,#100,#106,#105,#200,#204,#103
110 LET [79],#104,#103,#100,#102,#100,#101,#100,#100
120 L=86
130 LRUN 0,G

曲データの各音は16進数3桁です。

  • 1桁目=音の長さ(1=四分音符、2=八分音符)
  • 2桁目=音階2(1=ド、2=レ、…8=上のド、0=休符)
  • 3桁目=音階1(1=ド、2=レ、…8=上のド、0=休符)
  • 音階1と2を同時に指定すると、重音で叩きます。
  • 二分音符など長い音を出したい時は、四分音符+四分休符にすれば、叩いた音がそのまま響きます。

USBシリアル変換基板

※この記事は「IchigoJam Advent Calendar 2018」にエントリーしています。

PCからIchigoJamへプログラムを転送するのに、USBシリアルモジュールがよく使われます。「イチゴジャムレシピ」の情報ページはこちら。
USB-シリアル - イチゴジャム レシピ

私もこれまでいろいろ使ってきました。IchigoJamとなるべく簡単に接続したいので、ユニバーサル基板で変換基板を作ったり。
f:id:shiro0922:20181213051429j:plain
もっと小型のモジュール
FT232RQ USBシリアル変換キット: 半導体 秋月電子通商-電子部品・ネット通販
と、aitendoの変換基板
ジャムISP書き込み変換基板 - aitendo
を使って、こんなものも作りました。
f:id:shiro0922:20181213051521j:plain
ところがこれ、シリアル通信は問題無いのですが、中央のジャンパーを繋いで3.3V電源も供給しようとすると、IchigoJamが起動しません(^_^;) どうやら供給電力不足の様子。

それを解決するために、変換プリント基板を新たに作ってみました。
使うUSBシリアルモジュールは、秋月電子で売っているFT-231X。
akizukidenshi.com
過去に、
www.ichigojaman.jp
www.ichigojaman.jp
などで組み込みに使っていて、かなりの供給電力があることは実証済み。

あらたに設計した変換プリント基板はこんな感じです。
f:id:shiro0922:20181213054222p:plain

f:id:shiro0922:20181214002251p:plain
基板を組み立てた様子。
f:id:shiro0922:20181214001057j:plain
コマンド・プログラム転送やファームウェア書き換えも、無事にできました。

基板データ

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

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