今更だがIchigoJamって整数計算しかできないとは・・・
IchigoJamでロボットアームでも作ろうかと思ったのですが、三角関数どころか実数計算も出来ません。これはプログラム電卓より相当厳しいです。

IchigoJam BASIC リファレンス ver 1.1
操作 | 解説 | 例題 |
#16進数 | 16進数で数を表記します | #FF |
(数) | カッコ内は優先して計算する | PRINT 1+(1*2) |
: | コマンドを連結する | WAIT 60:LED 1 |
[数] | 配列([0]から[101]までの102コの連続した変数として使えます) LET[0],1,2,3で連続代入可能 | [3]=1 |
`2進数 | 2進数で数を表記します | `1010 |
~数 | ビット反転(ビット演算) | ?~A |
ABS | 絶対値を返す(マイナスはプラスになる) | ?ABS(-2) |
ANA | 外部入力の電圧(0V-3.3V)を0-1023の数値で返す(2:IN2、5-8:IN5-8(OUT1-4)、0,9:BTN、省略で0) | ?ANA() |
ASC | 文字に対する文字コードを返す | PRINT ASC("A") |
BEEP | BEEPを鳴らす 周期(1-255)と長さ(1/60秒単位)は省略可 ※SOUND(EX2)-GNDに圧電サウンダー接続 | BEEP |
BIN$ | 数を2進数の文字列にします(2番目の数は桁数、省略可) | ?BIN$(255,8) |
BPS | シリアル通信速度を変更する(0で初期値の115,200bps) | BPS 9600 |
BTN | ボタンが押されていれば1、そうで無いとき0を返す(数:0(付属ボタン)/UP/DOWN/RIGHT/LEFT/SPACE、省略で0) | LED BTN() |
CHR$ | 文字コードに対応する文字を返す(コンマ区切りで連続表記可) | PRINT CHR$(65) |
CLK | キーバッファとキーの状態をクリアする | CLK |
CLP | キャラクターパターン(#700-#7FF)を初期化します | CLP |
CLS | 画面を全部消す | CLS |
CLT | 時間をリセットする | CLT |
CLV | 変数、配列を全部0にする 別名:CLEAR | CLV |
CONT | 実行中の行や、中断した行を再度実行する | CONT |
DEC$ | 数を文字列にします(2番目の数は桁数、省略可) | ?DEC$(99,3) |
END | プログラムを終了する | END |
FILE() | 最後にプログラムを読み込み、書き込み行った数を返す | ?FILE() |
FILES | 数1(省略可)〜数2のプログラム一覧を表示する(EEPROM内ファイル表示に対応、0指定ですべて表示、ESCで途中停止) | FILES |
FOR | 変数に数1をいれ、数2になるまで数3ずつ増やしながらNEXTまでをくりかえす (STEPは省略可) | FOR I=0 TO 10:?I |
FREE() | プログラムの残りメモリ数を返す | ?FREE() |
GOSUB | 数または式で指定した行番号に飛び、RETURNで戻ってくる 省略形:GSB | GOSUB 100 |
GOTO | 指定した行番号へ飛ぶ(式も指定可能) | GOTO 10 |
HELP | メモリマップを表示します | HELP |
HEX$ | 数を16進数の文字列にします(2番目の数は桁数、省略可) | ?HEX$(255,2) |
I2CR | I2Cで周辺機器から読み込む I2Cアドレス、コマンド送信アドレス・長さ、受信アドレスと長さ(http://fukuno.jig.jp/989) | R=I2CR(#50,#700,2,#702,2) |
I2CW | I2Cで周辺機器に書き込む I2Cアドレス、コマンド送信アドレス・長さ、送信アドレスと長さ(http://fukuno.jig.jp/989) | R=I2CW(#50,#700,2,#702,2) |
IF | 数が0でなければ次を実行し、0であれば次2を実行する (THEN,ELSEは省略可) | IF BTN() END |
IN(数) | IN1-9から入力する(0または1) 数を省略してまとめて入力できる (IN1,4はプルアップ、IN5-8は切り替え時) | LET A,IN(1) |
INKEY() | キーボードから1文字入力する(入力がないときは0) | PRINT INKEY() |
INPUT | キーボードからの入力で数値を変数にいれる | INPUT "ANS?",A |
LED | 数が1なら光り、0なら消える | LED 1 |
LET | アルファベット1文字を変数として数の値を入れる(配列に連続代入可能) 省略形:変数=数 | LET A,1 |
LINE() | 現在実行中の行番号を返す(非実行時は0) | ?LINE() |
LIST | 行番号1以上、行番号2以下のプログラムを表示する(行番号は共に省略可、ESCで途中停止) (F4) | LIST 10,300 |
LOAD | プログラムを読み出す(0〜2の3つ、100-227 外付けEEPROM、省略で前回使用した数) | LOAD |
LOCATE | 次に文字を書く位置を横、縦の順に指定する(縦=-1で無表示) 省略形:LC | LOCATE 3,3 |
LRUN | プログラムを読み込み後、実行します | LRUN 1 |
NEW | プログラムを全部消す | NEW |
NEXT | FORコマンドに戻り、変数にSTEP指定の数だけ増やし、TOに到達していない場合くりかえす | NEXT |
NOT | 式が0の時に1、それ以外で0を返す (!でも可) | IF NOT A=1 LED 1 |
OUT | 外部出力OUT1-7に0または1を出力する 数2を省略でまとめて出力できる(OUT1-4、数2に-1指定でIN5-8へ切り替え) | OUT 1,1 |
PEEK | メモリ読み出し(キャラクターパターン0-#7FF) | ?PEEK(#700) |
PLAY | MMLで記述した音楽を再生する MML省略で停止 ※SOUND(EX2)-GNDに圧電サウンダー接続する http://fukuno.jig.jp/892 | PLAY "$CDE2CDE2" |
POKE | メモリへの書き込み(#700-#100F内が書き込み可能 http://fukuno.jig.jp/1178) | POKE #700,#FF |
文字を表示する (文字列は"で囲む、";" で連結できる) 省略形:? | PRINT "HI!" | |
PWM | 外部出力OUT2-4に数2で0.01msec単位で指定するパルスを出力する(0-2000、周期20msec、サーボ使用時100-200前後)、数3で周期を指定(省略時2000=20msec) | PWM 2,100 |
REM | これ以降の命令を実行しない(コメント機能) 省略形:' | REM START |
RENUM | プログラムの行数を指定数から数2刻みにする (数省略で10、GOTO/GOSUBの飛び先は手で変更必要) | RENUM |
RESET | IchigoJamをリセットします | RESET |
RETURN | GOSUBで呼び出された次へ戻る 省略形:RTN | RETURN |
RND(数) | 0から数未満の正数をランダムに返す | PRINT RND(6) |
RUN | プログラムを実行する (F5) | RUN |
SAVE | プログラムを保存する(0〜2の3つ、100-227 外付けEEPROM、省略で前回使用した数) ボタンを押した状態で起動すると0番を読み込み自動実行 | SAVE 1 |
SCR | 画面上の指定した位置に書かれた文字コードを所得する(指定なしで現在位置) 別名:VPEEK | PRINT SCR(0,0) |
SCROLL | 指定した方向に1キャラクター分スクロールする(0/UP:上、1/RIGHT:右、2/DOWN:下、3/LEFT:左) | SCROLL 2 |
SLEEP | プログラムを休止する (ボタンを押すと復帰する) | SLEEP |
SOUND() | 音が再生中なら1、そうで無いとき0をを返す | ?SOUND() |
SRND | 種を指定して乱数を初期化する | SRND 0 |
STOP | プログラムを中断する | STOP |
TEMPO | 再生中の音楽のテンポを変更する | TEMPO 1200 |
TICK() | 時間を返す(1/60秒で1進む) | PRINT TICK() |
UART | 数1:シリアル出力設定(0:オフ、1:PRINTのみ、2:PRINT/LC/CLS/SCROLL、3:PRINTのみ/改行コード\r\n、初期値:2)、数2:シリアル受信設定(0:オフ、1:オン 省略時) | UART 0 |
USR | マシン語呼び出し(注意!高確率でIchigoJamが停止します) | A=USR(#700,0) |
VER() | IchigoJam BASICのバージョン番号を返す | ?VER() |
VIDEO | 画面表示非表示を切り替える 0で画面表示を停止し処理高速化 (F8で表示)、省略可能な数2でVIDEO0時CPUクロックを1/数2に変更し省電力化 | VIDEO 0 |
WAIT | 数の数値フレーム分待つ 60で約1秒 | WAIT 60 |
AND | どちらの式も1の時に1、それ以外で0を返す (&&でも可) | IF A=1 AND B=1 LED 1 |
OR | どちらかの式が1の時に1、それ以外で0を返す (||でも可) | IF A=1 OR B=1 LED 1 |
- | 引き算する | PRINT 2-1 |
% | 割り算した余りを返す | PRINT 10%3 |
& | 論理積(ビット演算) | ?3&1 |
* | 掛け算する | PRINT 7*8 |
/ | 割り算する(小数点以下は切り捨てられます) | PRINT 9/3 |
^ | 排他的論理和(ビット演算) | ?A^1 |
| | 論理和(ビット演算) | ?3|1 |
+ | 足し算する | PRINT 1+1 |
< | 比較して未満の時に1、それ以外で0を返す | IF A<B LED 1 |
<< | 左シフトする(ビット演算) | ?A<<1 |
<= | 比較して以下の時に1、それ以外で0を返す | IF A<=B LED 1 |
<> | 比較して等しくない時に1、それ以外で0を返す (!=でも可) | IF A<>B LED 1 |
= | 比較して等しい時に1、それ以外で0を返す (==でも可) | IF A=B LED 1 |
> | 比較してより大きい時に1、それ以外で0を返す | IF A>B LED 1 |
>= | 比較して以上の時に1、それ以外で0を返す | IF A>=B LED 1 |
>> | 右シフトする(ビット演算) | ?A>>1 |