IchigoJam BASIC RPi+ は IchigoJam BASIC RPi の機能強化版であり、
Sense Hat と Touchscreen Display に対応した専用コマンドを備えています。
I-O DATA から発売のプリインストール microSDカードや入門キットを購入することにより利用できます。
IchigoJam BASIC RPi(フリー版)については、IchigoJam BASIC RPi1.2 ドキュメントをご覧ください。
利用規約に同意の上、ご利用ください。第三者への配布には別途契約が必要となります。
下記の機種で動作確認を行っております。
※ Raspberry Pi 4 以降には対応していません。
※ Zero系 と Model A+系 については 一部のキーボードで、入力の反応がよくない現象が報告されていますが、
それ以外は Model B/B+系 と同様にご利用いただけます。
また、Sense Hat および Touchscreen Display については、
こちらで動作確認済の機種は下記です。
I-O DATA から発売の下記の製品をご購入ください。
最新版への更新は下記の手順で行います。
※ ver1.2.5でEEPROMに対応するためSAVE,LOADコマンドの仕様を変更したため、アップデート時にfiles ディレクトリ内のファイル名の調整が必要になる場合があります。詳しくは 「SAVE/LOADの出力先」 をご覧ください。
microSDメモリーカード内の keymap.txt で起動時のキーボードの種類を設定できます。
keymap.txt に記入するテキスト | キーボードの種類 |
---|---|
us | USキーボード |
jp | JPキーボード |
※ キーボードの種類は起動後にKBDコマンドでも変更できます。(下記参照)
画面に左記のように表示されたら成功です!
キーボードから LED1 と入力し [Enter]キーを押します。
Raspberry Pi 本体の Activity LED (緑色) が点灯したら成功です!
キーボードから LED0 と入力し [Enter]キーを押します。
Raspberry Pi 本体の Activity LED (緑色) が消灯したら成功です!
Raspberry Pi 本体の Activity LED (緑色)がチカチカしたら成功です!
停止させるときは [Esc]キーを押します。
IchigoJam BASIC RPi は オリジナル版(LPC1114版)の 1.2.4(1.2b56)(※) を元に移植されています。
操作方法や利用可能なコマンドは基本的にオリジナル版と同じですが、下記の点が異なります。
オリジナル版のドキュメントはこちらです。
https://ichigojam.net/IchigoJam-1.2.html
※ ver1.2.5以降。ver1.2.4以前はLPC1114版の1.2.3をベースに移植。
下記のキー操作はRPi版には実装されていません
キー | オリジナル版の動作 |
---|---|
[Ctrl] + [Shift] | カナ入力モード切り替え([カタカナ]と同じ) |
[Ctrl] + [Alt] | 挿入モード切り替え([Insert]と同じ) |
下記のキー操作はRPi版にだけ実装されています
キー | RPi版の動作 |
---|---|
[Ctrl] + [Shift] + [K] | カナ入力モード切り替え([カタカナ]と同じ) |
[Ctrl] + [Alt] + [I] | 挿入モード切り替え([Insert]と同じ) |
下記のコマンドはRPi版には実装されていません
コマンド | オリジナル版の動作 | RPi版の動作 |
---|---|---|
SWITCH | ディスプレイの切り替え | なにもしない |
SLEEP | システムの休止(ボタン押下でLRUN0を実行して復帰) | なにもしない |
ANA | 外部入力の電圧を数値で返す | 常に0を返す |
下記のコマンドはRPi版にだけ実装されています(※1)
コマンド | RPi版の動作 | 使用例 |
---|---|---|
KBD | キーボードのキーマップの切り替え |
KBD 0 'USキーボードに切り替え KBD 1 'JPキーボードに切り替え |
IoT.IN |
sakura.io から I2C で数値を受信する
|
?IoT.IN() '受信した数値を表示 |
IoT.OUT |
sakura.io に I2C で数値を送信する
|
IoT.OUT 111 '111を送信 |
※1 IoT.INとIoT.OUTは、β版でLPC1114版にも実装されています。
※2 ver1.2.5以降、KBDコマンドで keymap.txt にも設定が保存されます。
※ LANG が返す数値とKBDで設定する数値は違うものです。
LANG は使用中のIchigoJamでカナ入力を有効にしたとき表示されるフォントの言語の番号を返します。
(LPC1114版 1:日本語, 2:モンゴル語, 3:ベトナム語)
SAVE, LOAD コマンドによるプログラムの保存先は下記のようになります。
ver1.2.5で EEPROMに対応するため仕様を変更しました。
ver1.2.4以前からver1.2.5以降にアップデートするとき、
作成済みのプログラムを引き継ぐには microSDメモリーカードの files ディレクトリ内のファイル名を調整してください。
microSDメモリーカード(filesディレクトリ内) | EEPROM | |
---|---|---|
ver1.2.4以前 | 0 ~ 3, 100 ~ 227 (*.bin) | なし |
ver1.2.5以降 | 0 ~ 99 (*.bin) | 100 ~ 227 |
その他、下記の相違点があります。
IN/OUT/PWM コマンドで実際に電流が入出力される物理PINは下記のようになります。
物理PIN | 入力 | 出力 | PWM | 初期状態 |
---|---|---|---|---|
15 | IN1 | (OUT8) | 入力(プルアップ) | |
13 | IN2 | (OUT9) | 入力(オープン) | |
11 | IN3 | (OUT10) | 入力(オープン) | |
7 | IN4 | (OUT11) | 入力(プルアップ) | |
35 | IN9 | 入力(オープン,固定) | ||
37 | (IN5) | OUT1 | 出力 | |
36 | (IN6) | OUT2 | 出力 | |
33 | (IN7) | OUT3 | PWM3 | 出力 |
32 | (IN8) | OUT4 | PWM4 | 出力 |
38 | (IN10) | OUT5 | 出力 | |
40 | (IN11) | OUT6 | 出力 | |
26 | OUT7 | 出力(固定) |
I2CW/I2CR コマンドで実際に電気信号が入出力される物理PINは下記のようになります。
物理PIN | 機能 |
---|---|
3 | SDA |
5 | SCL |
UART接続時に実際に電気信号が入出力される物理PINは下記のようになります。
物理PIN | 機能 |
---|---|
8 | TXD |
10 | RXD |
BEEP/PLAY コマンドで実際に電気信号が入出力される物理PINは下記のようになります。
物理PIN | 機能 |
---|---|
29 | SND |
技術的な情報の共有や質問等については下記のFacebookグループをご活用ください。
https://www.facebook.com/groups/ichigojam/
IchigoJam BASIC RPi+ は Sense HAT および Touchscreen Display に対応した下記の専用コマンドを備えています。
これらのコマンドはIchigoJam BASIC RPi(フリー版)ではご利用になれません。
コマンド | RPi+の動作 | 使用例 |
---|---|---|
SH.CLS |
Sense HAT の LED を全て消灯する SH.CLS |
SH.CLS '全消灯 |
SH.PUT |
Sense HAT の LED の色を設定する SH.PUT {横位置}, {縦位置}, {色:0-4095} 色の例(白:#FFF, 赤:#F00, 緑:#F0, 青:#F) |
'左から4番目,上から4番目のLEDを緑に SH.PUT 3, 3, #F0 |
SH.SCR |
Sense HAT の LED の色を取得する SH.SCR({横位置}, {縦位置}) |
'左から4番目,上から4番目のLEDの色を表示 ?SH.SCR(3, 3) |
SH.SCROLL |
Sense HAT の LED をスクロールする SH.SCROLL {方向} 方向の例(上:0, 右:1, 下:2, 左:3) |
SH.SCROLL 0 '上方向にスクロール SH.SCROLL 1 '右方向にスクロール |
SH.AX SH.AY SH.AZ |
加速度センサーから各軸方向の加速度を取得する SH.AX() SH.AY() SH.AZ() |
?SH.AX() 'X軸方向の加速度を表示 ?SH.AY() 'Y軸方向の加速度を表示 ?SH.AZ() 'Z軸方向の加速度を表示 |
SH.BTN |
ジョイスティックの状態を取得する SH.BTN() 右から0bit: 下選択 右から1bit: 右選択 右から2bit: 上選択 右から3bit: 押下 右から4bit: 左選択 |
'ジョイスティックの状態を2進数でまとめて表示 ?BIN$(SH.BTN(),5) |
SH.BUP |
ジョイスティックの上選択状態を取得する SH.BUP() |
'ジョイスティックが上選択のとき1を表示 ?SH.BUP() |
SH.BDOWN |
ジョイスティックの下選択状態を取得する SH.BDOWN() |
'ジョイスティックが下選択のとき1を表示 ?SH.BDOWN() |
SH.BLEFT |
ジョイスティックの左選択状態を取得する SH.BLEFT() |
'ジョイスティックが左選択のとき1を表示 ?SH.BLEFT() |
SH.BRIGHT |
ジョイスティックの右選択状態を取得する SH.BRIGHT() |
'ジョイスティックが右選択のとき1を表示 ?SH.BRIGHT() |
SH.BPRESS |
ジョイスティックの押下状態を取得する SH.BPRESS() |
'ジョイスティックが押下のとき1を表示 ?SH.BPRESS() |
SH.GX SH.GY SH.GZ (ver1.2.5以降) |
ジャイロセンサーから各軸の角速度を取得する SH.GX() SH.GY() SH.GZ() |
?SH.GX() 'X軸の角速度を表示 ?SH.GY() 'Y軸の角速度を表示 ?SH.GZ() 'Z軸の角速度を表示 |
SH.MX SH.MY SH.MZ (ver1.2.5以降) |
磁気センサーから各軸方向の磁束密度を取得する SH.MX() SH.MY() SH.MZ() |
?SH.MX() 'X軸方向の磁束密度を表示 ?SH.MY() 'Y軸方向の磁束密度を表示 ?SH.MZ() 'Z軸方向の磁束密度を表示 |
SH.APRESS (ver1.2.5以降) |
気圧(ヘクトパスカル)の10倍の値を取得する SH.APRESSS() |
'ヘクトパスカル単位で気圧を表示 ?SH.APRESS()/10 |
SH.HUMID (ver1.2.5以降) |
湿度(パーセント)の100倍の値を取得する SH.HUMID() |
'パーセント単位で湿度を表示 ?SH.HUMID()/100 |
SH.TEMP (ver1.2.5以降) |
湿度センサーから気温(摂氏)の100倍の値を取得する SH.TEMP(), SH.TEMP(1) 気圧センサーから気温(摂氏)の100倍の値を取得する SH.TEMP(2) |
'摂氏で気温を表示 ?SH.TEMP()/100 |
コマンド | RPi+の動作 | 使用例 |
---|---|---|
TS.X TS.Y |
Touchscreen の タッチされている場所を取得する TS.X() 横位置 (0-799, タッチされていない:-1) TS.Y() 縦位置 (0-479, タッチされていない:-1) |
?TS.X() '横位置を表示 ?TS.Y() '縦位置を表示 |
TS.GET |
Touchscreen の タッチされている場所を取得する TS.GET() 上位8bit: 横位置 (0-199, タッチされていない:0) 下位8bit: 縦位置 (0-119, タッチされていない:0) |
'タッチされている場所を繰り返し表示 10 P=TS.GET() 20 ?(P>>8);" ";(P&#FF) 30 WAIT10: GOTO10 |
ver1.2.5 で Touchscreen Display の接続方法を簡素化するために仕様を変更しました。
各バージョンでの接続方法と、各コマンドで取得される座標の原点の定義は下記のようになります。
接続方法 | 座標の原点 | |
---|---|---|
ver1.2.5以降 |
リボンケーブルと電源を接続 ※ 詳細は IchigoJam BASIC RPi+ での Touchscreen Display 使用方法 2.0.0 を参照 |
左上原点 |
ver1.2.4以前 |
下記を接続
|
右下原点 |