IchigoLatte 共通仕様


このページでは言語に関係ない IchigoLatte ファームウェア共通仕様を記載しています。

言語別で異なる場合、省略上記は JS=JavaScript・R=Ruby・F=FORTH となっています。

 

表の項目「対応」はこの項目が対応されているファームウェアのバージョンです。

記載がない場合は公開された初版のファームウェア IchigoLatte 0.3 から最新版まで対応しています。

IchigoCake JavaScript は W 版(W が付いたバージョン)になります。
IchigoDake の D 版(D が付いたバージョン)はこのページでの区別はありません。


IchigoLatte の起動

 

電源を入れ、上の画面になれば正常に起動できています。

2019 年現在、JavaScript は「IchigoLatte (バージョン)」、他の言語は「IchigoLatte (言語) (バージョン)」表記です。 


シリアルで使いたい場合

 

IchigoLatte 0.8(JavaScript)より本体ボタン BTN を押すとシリアルの入出力とビデオ出力を切り替えます。

(シリアル→ビデオも本体ボタンで変更可能になりました)

他言語版は初版から対応しています。

通信速度は 115200bps 固定、データ長 8 ビット、パリティなし、ストップビット 1 ビット、

ローカルエコー ON、改行コード LF です。

動作がおかしい場合は行送信機能で送出して下さい。

現在のところシリアルの動作で vi は使用できません。代わりに cat uart > . を用いてプログラムを転送して下さい。


lash - シェル

 

シェル環境です。起動した時も lash になっています。bash から名前がきているようです。

lash では次のコマンドを使用できます。存在しないコマンドを入力すると、使用できるコマンドが表示されます。

背景の色を変えているのは W 版(含 IchigoCake JavaScript)でのコマンド動作です。

 

コマンド 対応 (言語) 解説
cat 元 [> 先]   プログラムを出力します。先 を省略した場合は画面出力です。
echo 内容 [> 先]   内容 を出力します。先 を省略した場合は画面出力です。
ls 0.9〜 (JS)
全 (R・F)

EEPROM の中身を一覧します。プログラム先頭に // プログラム名 を入れるのがおすすめ。

ls [.|@] 1.1.5W~(JS)

W 版(含 IchigoCake JS)で ls のみの場合は ls . と同じで本体の中身を一覧します。
EEPROM の表示は ls @ とします。

ms (JavaScript)

nuby (Ruby)

ts (Forth)

~0.5 (JS)

インタラクティブモード(対話モード)に移ります。0.5 以前はプログラムを実行します。

ms . (JavaScript)

nuby . (Ruby)

ts . (Forth)

0.6〜 (JS)

全 (R・F)

プログラムを実行します。
vi [@番号]   プログラムを編集します。1.1.1 よりプログラム番号指定で EEPROM の中身を編集できます。 

 

cat の 元・先、echo の先は次の指定です。Ruby・FORTH は W 版(.[番号])を除き、初版から対応しています。

 

入出力 対応 (言語) 解説
. 0.4〜 (JS) IchigoLatte 本体
.[番号] 1.1.5W~ (JS) IchigoLatte 本体、プログラム番号は .0~.3(56k)・.0~.7(64k)です。省略は 0
uart 0.4〜 (JS) シリアル。通常 USB-シリアルモジュールMixJuice が含まれます。
@番号 0.9〜 (JS) EEPROM。プログラム番号は @0〜@63 です。(1024k の場合)

 

IchigoCake JavaScript は 56k 仕様の LPC1114 なので、プログラム番号は .0~.3 になります。

 

いくつか例をあげます。

  • cat .
     → プログラムを表示します。
  • cat . > uart
     → プログラムをシリアルへ送出します。(IchigoLatte 0.4〜)
  • cat uart > .
     → シリアルからプログラムを受信します。(IchigoLatte 0.4〜)
  • cat . > @0
     → プログラムを EEPROM プログラム番号 0 へ保存します。(IchigoLatte 0.9〜)
  • cat @63 > .
     → EEPROM プログラム番号 63 を読み込みます。 (IchigoLatte 0.9〜)
  • echo > .
     → プログラムを消去します。
  • echo > uart;cat uart
     → PanCake・MixJuice を接続している場合、改行を送り、受信内容を表示します。
       起動後に一度これを行って下さい。(IchigoLatte 0.7~+PanCake・IchigoCake JS または MixJuice)
  • echo PANCAKE IMAGE 07> uart
     
    → PanCake を接続している場合に PanCake 内蔵画像 07 を表示します。(IchigoLatte 0.7~+PanCake・IchigoCake JS)
  • echo MJ VER> uart;cat uart
     → MixJuice を接続している場合にファームウェアのバージョンを表示します。(IchigoLatte 0.7〜+MixJuice)

vi - エディタ

 

テキストエディタ。プログラムの編集に用います。実際 vi というコマンド名のエディタが使われます。

Esc キーで vi を終了します。この時プログラムは保存されます。電源を切っても保存されています。

IchigoLatte 0.8(JavaScript)より Ctrl+D で終了することで保存されずに終了するようになりました。

IchigoLatte 1.1.1(JavaScript)より vi @0 などとして EEPROM の中身を直接参照し、編集できるようになりました。

Ruby・FORTH はここまでの機能に初版から対応しています。


ms・nuby・ts - 実行環境

 

言語によって実行環境のコマンド名が異なります。

  • JavaScript - ms
  • Ruby - nuby
  • FORTH - ts

ここでは JavaScript の ms で紹介しますが、コマンド名以外は他言語でも共通です。

lash より ms . (javaScript は IchigoLatte 0.6 より。IchigoLatte 0.5 以前は ms )でプログラムを実行します。
lash の画面に続けて出力されます。

IchigoCake JavaScript は ms .[プログラム番号] で任意のプログラムを実行可能です。

Esc キーでプログラムの動作を中断する事が可能です。

 

  

IchigoLatte 0.6(JavaScript)より ms とするとインタラクディブモード(対話モード)になります。

Ruby・FORTH は初版から対応しています。

ms> となるので、直接コマンドを入れて下さい。そのコマンドをすぐに実行します。ana なども使用できます。

IchigoJam のダイレクトモードみたいな使用が可能です。Esc キーで lash に戻ります。


キャラクターコード

バージョンによって入っているキャラクターが異なります。
現在は 32~255 が定義されています。IchigoJam BASIC に近い定義になっている事が分かります。

0~31 はバージョン・環境で異なる表示になるため、ここは使用しないで下さい。

 

IchigoLatte 1.1.0~

LattePlayer


IchigoLatte Ruby

IchigoLatte 1.0.0~1.0.1


 

IchigoLatte 1.0.0 で 32~255 のキャラクターが定まっています。一方 1 にあった ■ は削除されました。

IchigoLatte FORTH も 32~255 は上記と同じキャラクターになっていますが、プログラムでは数字のみが出力できます。

 

IchigoLatte 0.7~0.9.7

IchigoLatte 0.5~0.6


 

JavaScript 版の chr() 追加は IchigoLatte 0.9 からなので、IchigoLatte 0.8 以前の 160~255 は Alt を押しながら入力します。
また、cat uart > . でコードを入れたファイルを転送し、vi で参照する事も可能です。

(0~31・127 はコントロールコードになるので、外してあります)

 

16進数 (0x~)

16 進数 0x00~0xFF での出力です。
16 進数は言語に関係なく 0x を頭に付けます。

右は IchigoLatte 1.1 の場合で、0x00~0x1F はバージョンで違いがあります。

そのため、0x00~0x1F の使用は実用的ではなく、

0x20~0xFF(除 0x7F)がキャラクターとして使える範囲となります。

 

IchigoLatte ではどの言語 BASIC の HEX に該当する命令がありません。

そのため 16 進数を表示させたい場合は
桁毎にキャラクターコードへ変換して出力する処理が必要です。

PanCake のテキストコマンドは 16 進数で指定する必要があるため、

変数の値を入れる場合はバイナリーコマンドが実用的になります。

そこで IchigoCake JavaScript では PanCake 専用コマンドを用意する事で
容易に PanCake を操作できるようになっています。