GP基板とSqueak

現代GP「創発的なものづくりリテラシー教育活動」で利用したGP基板と Squeakに関するページです。

GP基板

Squeak





Squeak <-> ADuC Protocol v1.0


命令語処理内容
1バイト目(A)2バイト目(B)16進表現
上位4ビット下位4ビット上位4ビット下位4ビット上位下位 概要 詳細
00010001対象モータ 0x110xXX モータ制御前転
0010対象モータ 0x12 0xXX   後転
0011対象モータ 0x13 0xXX モータは各ビットが立っているか ブレーキ
0100対象モータ 0x14 0xXX で判断する(0はすべてを意味する) 停止
0101any 0x15 モータ連動動作前進
0110 0x16 後退
0111 0x17 右折
1000 0x18 左折
1001 0x19 右回転
1010 0x1A 左回転
1011 0x1B 右後ろ
1100 0x1C 左後ろ
0010センサ番号 オプション (0〜8) 0x2X0xXX A/D入力 (2^オプション)回平均をとる.通常は4(16回) バッチ処理中は値を返さない
0100出力する値(12ビット) 0x4X 0xXX D/A出力 D/A出力1(DAC0)
0101出力する値(12ビット) 0x5X 0xXX D/A出力2(DAC1)
01100001オフにするポート 0x610xXX D/A出力OFFポートはビット指定(0は全て)
0111any 0x7X0xXX halt(現在実行中の処理を強制終了) 命令の間に割り込んで停止させる
 
1000バッチ番号必要ページ数(0〜160) 0x8X 0xXX バッチ処理登録開始 B=0は未定義メモリに書き込む(足りない場合不可能)。ページ数はターミネータを含む。1ページは2命令。
10010001バッチ番号 0x910xXX バッチ処理開始1リターンする(Call)
0010バッチ番号 0x920xXX バッチ処理開始2 リターンしない
0011バッチ番号 0x930xXX バッチ処理一回だけ実行現在使用不可
0100バッチ番号 0x940xXX バッチが登録されているか確認する実際はサイズの確認(0なら未登録)
0101バッチ番号 0x950xXX バッチ処理削除 バッチ処理中は削除できない(0は全削除)
0110any 0x96 バッチ繰り返し停止ポーズ送信(その場で強制終了はhaltを使用)
1010any 0x9A バッチ終了現在実行中のバッチから抜ける
1011any 0x9B バッチのターミネータバッチの最後に入力する。バッチ処理中に現れたら終了する
1111持続時間(0〜22.5s) 0x9F0xXX waitバッチに使う。それ以外はsqueakで。引数Bはおよそ0.1[秒/1]

バッチの書き込み時は、一命令送るごとに若干のwaitを掛ける必要がある(Flashメモリの書き込み中に割り込みが効かないから)。
waitは0.1秒で十分


1010比較したい値 0xAX 0xXX Accの値と大小比較する結果に応じてフラグの値を変化させる(ビットを立てる。)「Acc(比較記号)値」
1011 比較演算子 ジャンプする命令数 0xBX 0xXX 比較演算子とフラグが成立する場合素通しする。それ以外のときジャンプ
    0xBX 0xXX 「=」→1ビット目を立てる(0001) 比較演算子とフラグのANDをとってTRUE(=0以外)なら素通しする
    0xBX 0xXX 「<」→2ビット目を立てる(0010) FALSE(=0)ならジャンプする。
    0xBX 0xXX 「>」→3ビット目を立てる(0100) 2ビット目と3ビット目が立っている場合など、ありえない組み合わせでは
    0xBX 0xXX 「!=」→4ビット目を立てる(1000) 正常に動かない(ジャンプしない)。無条件ジャンプは0を代入。
    0xBX 0xXX 複数ビットを立てるとORをとれる(<=などが表現できる)

たとえば,こうなります

ADuC Program for GP-Board V2 (Version 2.0): gp2-2.0.hex

最新の SerialPortMorph は,送/受信とも2バイト非負整数です。
Squeak SerialPortMorph(2 Byte) for ADuC: SerialPortMorph_TEXT.002.pr (Project), SerialPortMorph_TEXT.2.cs (Change Set)

使い方の例
バッチコマンドの使用例

MacOSX/Linux Download Program: aduc814.tar.gz

Windows Download Program: aduc8xx_win.zip

MacOSX の squeak について