SHIROのIchigoJam日記

IchigoJamの電子工作とプログラミングをメインに

バーコードJamカムロボ

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

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

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

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

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

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

顔表示プログラム

20〜70行のカムロボ動作部分はサンプルです。動きによって顔の表情を変えると面白いかも。

10 GSB 80
20 '@LOOP
30 OUT 33
40 WAIT 120
50 OUT 17
60 WAIT 40
70 GOTO 20
80 '@FACE
90 CLS
100 ?
110 ?"    **    **"
120 ?"    **    **"
130 ?
140 ?"  *          *"
150 ?"   *        *"
160 ?"    ********"
170 RTN

バーコードJamカムロボ版

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

◇プログラム0(本体)
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
◇プログラム1(命令解析部)
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で登録すれば、基板を発注できます。