SHIROのIchigoJam日記

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

バーコードJamカムロボ

以前からタミヤのカムロボを工作してきましたが、さらに改造して液晶で顔を付けてみました。

顔を付けるための専用基板を、Fusion PCBへ発注して作りました。

基板にaitendoのSPI液晶とピンヘッダをハンダ付け。
IchigoJam+Maplesyrupのソケットに差します。

さらにこのロボットに、以前作ったバーコードJam USB版システムを改造して搭載。
バーコードカードでカムロボの動きをプログラミングできるようにしました。

カードはこんな感じ。OUT命令を追加、WAIT命令の仕様を変更しています。

アンプラグド教材のカードと、実際にロボットを動かすプログラミングが融合。
これで小学校低学年の子どもでも楽しいプログラミングができそうです。

プログラム

顔表示(スロット0)

20〜80行の顔の表情は、いろいろ変えると面白いかも。

10 CLS
20 ?
30 ?"    **    **"
40 ?"    **    **"
50 ?
60 ?"  *          *"
70 ?"   *        *"
80 ?"    ********"
90 WAIT 120
100 LRUN FILE()+1

本体プログラム(スロット1)

カムロボ用のOUT命令に対応。細かく制御したいのでWAIT命令の仕様を変更。

1 SWITCH1:CLS:?"*Barcode Jam*"
2 CLV:F=FILE():WAIT60:CLK
3 OUT0:Z=0:L=0
4 ?"OK"
5 ?CHR$(1);:R=1
6 B=INKEY():IF!BCONT
7 GSB29
8 ?CHR$(8);:IF!CGOTO15
9 IFTGSB14 ELSEGSB12
10 GOTO23
11 GOTO5
12 Z=Z+1:[Z]=C*16+O:IFC=8L=L+1:[70+L]=Z
13 ?">";Z*10;" ";:RTN
14 [Z]=[Z]|((C*16+O)<<8):T=0:RTN
15 BEEP30,30:IFO=1?"RUN":R=0:GOTO20
16 IFO=2?"LIST":R=2:GOTO20
17 IFO=3?"NEW":GOTO3
18 IFO=4CLS:GOTO4
19 GOTO5
20 A=0
21 A=A+1:IFA>ZGOTO4
22 C=[A]&#F0/16:O=[A]&15:?A*10;" ";
23 IFC=15&&O=15LRUNF+1,150
24 IFC&12=4O=C&3*16+O:C=4
25 LRUNF+1,C*10
26 IFT&&(R!=1):C=([A]&#F000)>>12:O=([A]&#F00)>>8:T=0:GOTO23
27 B=INKEY()&#FF:IFBGSB29:IFC=15&&O=15BEEP30,30:?"ESC":GOTO4
28 GOTO21
29 I=89
30 I=I+1:[I]=B-48
31 B=INKEY():IF!BCONT
32 IFB!=10GOTO30
33 D=0:FORJ=90TOI:D=D*10+[J]:NEXT
34 C=D/16:O=D%16:BEEP:WAIT30:CLK:RTN

命令解析プログラム(スロット2)

1 '*Barcode Jam-1
10 @LED
11 ?"LED ";O:IFR=1LRUNF,11
12 IFR=2LRUNF,26
13 LEDO:LRUNF,26
20 @WAIT
21 IFO<8O=O*60ELSEO=(O&7)*10
22 ?"WAIT ";O:IFR=1LRUNF,11
23 IFR=2LRUNF,26
24 WAITO:LRUNF,26
30 @BEEP
31 ?"BEEP":IFR=1LRUNF,11
32 IFR=2LRUNF,26
33 BEEP:LRUNF,26
40 @OUT
41 ?"OUT ";O:IFR=1LRUNF,11
42 IFR=2LRUNF,26
43 OUTO:LRUNF,26
80 @LABEL
81 ?"@";O:IFR=1LRUNF,11
82 LRUNF,26
90 @GOTOL
91 ?"GOTO @";O:IFR=1LRUNF,11
92 IFR=2LRUNF,26
93 A=[70+O]-1:LRUNF,26
100 @IFBTN
101 ?"IF BTN()=";O;" THEN ";:T=1:IFR=1LRUNF,11
102 IFR=2LRUNF,26
103 T=(BTN()=O):IF!T?
104 LRUNF,26
120 @FOR
121 ?"FOR I=1 TO ";O:IFR=1LRUNF,11
122 IFR=2LRUNF,26
123 I=1:J=O:S=A:LRUNF,26
130 @NEXT
131 ?"NEXT":IFR=1LRUNF,11
132 IFR=2LRUNF,26
133 I=I+1:IFI<=JA=S
134 LRUNF,26
150 @END
151 ?"END":IFR=1LRUNF,11
152 IFR=2LRUNF,26
153 A=Z:LRUNF,26

関連ファイル

カトラリーカード(バーコード付き)PDFファイル
命令表


以前の命令表から、OUT命令を追加、WAITの仕様を変更。

Camrobo Face基板データ

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

(C) 2018 Shiro Saito (http://d.hatena.ne.jp/shiro0922/)
このファイルをそのままFusion PCBで登録すれば、基板を発注できます。