IchigoJam BASIC RPi は、「こどもパソコンIchigoJam」のソフトウェアの Raspberry Pi 版です。
オリジナル版(LPC1114版)については、https://ichigojam.net/をご覧ください。
IchigoJam は、BASIC言語によるプログラミングを手軽に楽しむために開発されました。
また、デジタル入出力, PWM, I2C, UART などの機能を使って、電子工作に活用することもできます。
利用規約に同意の上、ご利用ください。第三者への配布には別途契約が必要となります。
下記の機種で動作確認を行っております。
※ Raspberry Pi 4 以降には対応していません。
※ Zero系 と Model A+系 については 一部のキーボードで、入力の反応がよくない現象が報告されていますが、
それ以外は Model B/B+系 と同様にご利用いただけます。
下記よりダウンロードできます。
パソコンなどを使い、Raspberry Pi で使用する microSDメモリーカード を FAT16 または FAT32 でフォーマットし、
readme.txt を含むディレクトリの中身をコピーします。
最新版への更新は下記の手順で行います。
※ 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 | キーボードのキーマップの切り替え(※2) |
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/