IchigoJam web

(IchigoJam BASIC 1.4 β 相当・随時ベータ版を反映)

Web ブラウザ上で IchigoJam BASIC が動作します。

インターネットに接続できる環境であれば、すぐに使用できます。

OS を問わずに使用できるのも大きなメリットです。

 

以前一部機能だけ動作可能だった IchigoJam.js がありましたが、

2017年4月に WebAssembly・WASM をベースとした
「IchigoJam web by WebAssembly」となって公開されました。

キー動作は一部使用できませんが、

比較的新しいベータ版の IchigoJam BASIC を随時適用し、
機能はほぼ使用可能です。

 

動作可能なブラウザは次のとおりです。

  • Mozilla Firefox
  • Google Chrome
  • Chromium (Google Chrome の派生元)
  • Apple Safari
  • Microsoft Edge

Internet Explorer は WebAssembly 非対応ですのでご注意下さい。

 

2020年4月より、画面上でキーボード表示が可能になりました。

これにより Android・iOS からブラウザで参照し、

直接 IchigoJam の画面でプログラムを入力・実行できるようになりました。

Windows タブレットなどでの使用では KEY をタップする事で、

キーボードを表示できます。

 

⇧(Shift)・CTL(Ctrl) は押しながらではなく、一度押すとキーが変化し、

入力後に戻るようになります。

ALT(Alt) は絵文字などを用いてキーボード表示を行っています。

この絵文字などは下のテキストエリアでも有効です。

(128・#80 の空白は全角空白で対応されています)

 

Raspberry Pi + Raspberry Pi OS + Chromium での使用

2021年12月現在、Raspberry Pi 公式の OS「Raspberry Pi OS」(旧称 Raspbian)で
標準の Web ブラウザ Chromium を用いて IchigoJam web を使用した場合、
使用しているキーボードとは異なるキーボード配列で認識されている問題が発生する事があります。

次のいずれかでこの問題を回避できます。

  • Firefox など、他の Web ブラウザをインストールして使用する
  • 他のデスクトップ OS を使用する

起動方法

Web ブラウザより次のアドレスを参照するだけです。

 

https://fukuno.jig.jp/app/IchigoJam/

 

起動画面が表示されると正常に使用できます。キーボードを入力してみて下さい。


プログラムの入力・実行

プログラムの入力は通常の IchigoJam 実機同様に IchigoJam 画面上で入力する事ができます。

 

また、下の表示枠にテキストのプログラムを貼り付け、

import ボタンで IchigoJam 画面へ反映する事ができます。

ネット上に掲載されている IchigoJam BASIC のプログラムをコピー・貼り付けして、すぐに実行可能です。

2019年1月よりカナ入力に対応しました。テキストに貼り付けるプログラムは全角カナを入れて変換できます。

また、IchigoJam 画面のキー入力は Shift+Ctrl キーでカナ切り替えできます。

 

下の入力枠にはプログラムだけではなく、任意のコマンドを入れる事もできます。

末尾に RUN を入れておくと、プログラムを入力し、実行まで行う事が可能です。


プログラムの公開

import を行った際にブラウザのアドレス(URL)部分が変化しています。

このアドレスをコピーし、Web サイトなどにリンクとして貼り付けておくと、

リンクをクリックするだけで、プログラムを入力した状態にする事ができます。

 

# 以降にプログラムが直接入っています。

RUN などのプログラムでない部分も入ります。

IchigoJam web が動作するサーバに保存されず、

GitHub Gist のような短縮 URL ではなく、

プログラムが URL に入っているのも特徴です。

 

実際に BASIC/プログラム 内の一部プログラムでこれを使用しています。

 

Facebook グループ IchigoJam-FAN でもこれでプログラム公開が見られます。



プログラムの保存

プログラムを入力した状態で(LIST で表示ができる状態)

画面表示の下にある export をクリックすると、

現在メモリ保存されているプログラムがテキストフィールドで表示されます。

すべて選択→コピー して、テキストエディタへ貼り付け、ファイル保存して下さい。

 

このテキストファイルは USB-シリアルモジュール を用いるなどして、
IchigoJam 実機へ移して動作させる事が可能です。

IchigoJam BASIC RPi では ijbconv で変換し SD カードへ入れる方法もあります。 

動作がおかしい場合は改行コードを変えてみて下さい。

 

なお、2020年5月より SAVE・LOAD・LRUN コマンドにも対応しています。

 

IchigoJam web にバーチャル拡張メモリ搭載、計132ファイル保存可能に!大作を作るコツ | 福野泰介の一日一創

 

1M の EEPROM を使用している場合と同じ保存領域です。(0~3 および 100~227)

SAVE は WebStorage API を用いてブラウザ固有のローカル領域に保存されます。



フルスクリーン(全画面)表示

full screen ボタン でフルスクリーン(全画面)表示に対応しています。

IchigoJam PC や IchigoJam BASIC RPi などに近い表示にできます。

16:10 や 16:9 の画面では縦の余白が狭く、横の余白が広くなります。

 

フルスクリーンの解除はキーボードの Esc キーです。
プログラムの実行を止めるのに使うキーは

Esc キーの代わりに Ctrl+C を使用して下さい。



LED

ページの右上には 数字 LED が表示されています。

これは OUT 1〜6・LED に該当します。(LED=OUT 7)並びは右のとおりです。

FOR I=1 TO 7:OUT I,1:NEXT または OUT `11111111 (OUT 127) で確認できます。

 

また、本体 LED が点灯している状態は IchigoJam 画面の周辺が反転するようになります。

LED 1 で確認できます。

 

なお、画面の変化だけで、物理的なピンの入出力は対応していません。

 

OUT 1 / 1  

OUT 6

/ 32

 

OUT 2

/ 2

  OUT 7・LED / 64  

OUT 5

/ 16

 

OUT 3

/ 4

  OUT 4 / 8  


バーチャル MixJuice

BASICでもっと手軽にIoTプログラミング!IchigoJam webにバーチャルMixJuiceを実装、コロナ対策データ計算サンプルプログラム | 福野泰介の一日一創

 

2020年10月より、MixJuice の動作に一部対応し、
MixJuice コンテンツ を参照できるようになりました。

画面の I/O ボタンをクリックし、MixJuice を有効にした後、
MixJuice コマンドを入れて下さい。

 

2022年9月現在、次の制限があります。

  • コマンドは GETS・POSTS 対応です。
    POSTS は Facebook グループ IchigoJam-FAN で投稿があったのをきっかけに
    2022年9月 より対応されました。
    IchigoJamを使った手軽なWebアプリづくりを!jigインターン2022夏最終日 | 福野泰介の一日一創
  • オリジン間リソース共有(CORS=Cross-Origin Resource Sharing)
    に対応されている必要があります。
    具体的には HTTP ヘッダに次のどちらかが含まれている必要があります。
     Access-Control-Allow-Origin: *
     Access-Control-Allow-Origin: https://fukuno.jig.jp
  • User Agent は使用している Web ブラウザの情報になります。
    代わりに Referer へ https://fukuno.jig.jp/ を入れているため、
    Referer にfukuno.jig.jp が含まれているかを確認する事で
    IchigoJam web からのアクセスを判別できます。

これらの制限により IchigoJam web で参照できるコンテンツは一部に限られます。

Kidspod; は 15j.in・15jm.li および m15.lt 経由で使用可能です。



処理速度

基本的に IchigoJam 実機よりも速度は遅くなります。

参考として、次のプログラムを実行してみました。FOR〜NEXT の 10000 回ループです。

 

10 CLT
20 FOR I=0 TO 9999
30 NEXT
40 PRINT TICK()
50 END

 

結果は次のとおりとなります。

 

IchigoJam バージョン TICK() 秒への換算
IchigoJam BASIC 1.2.3(IchigoJam 本体(LPC1114)) 1219 約 20.3 秒
IchigoJam BASIC 1.3.1(IchigoJam 本体(LPC1114)) 773 約 12.9 秒
IchigoJam BASIC 1.4.3(IchigoJam 本体(LPC1114)) 766 約 12.7 秒
IchigoJam BASIC 1.5.0(IchigoJam 本体(RISC-V)) 99 約 1.7 秒
IchigoJam BASIC 1.3.0web(2019年1月現在) 2500 約 41.6 秒
IchigoJam BASIC 1.4.3web(2020年12月現在) 2500 約 41.6 秒

 

なお、i5・Core Duo・Celeron と CPU の異なるパソコン、

また Chrome・Firefox・Edge と Web ブラウザを変えて試したところ、速度は変わりませんでした。

また、時期とオリジナルバージョンに関係なく、速度は変化していません。