IchigoJam Advent Calendar 2020 - Day 1

2020年12月1日、今年も Qiita で Advent Calendar がはじまりました。
今年は IchigoJam Advent Calendar 2020 の 1 日目、
ふうせん🎈 FU-SEN が行わせていただきます。

そういえば、このブログから Qiita と Qiita Advent Calendar へのリンクって、
行ってみた事がなかったので、リンクしておきますね。


IchigoJam の 2020 年

さて、IchigoJam の 2020 年、前半は IchigoDyhook が大きなイベントでしたが、
IchigoJam BASIC などはマイナーアップデートにとどまっています。
SkyBerryJAM の特別版が発売中とか、その位ですね。
コロナの影響で、動けていない関連プロジェクトもあるように思っています。
イチゴジャム レシピ も今年は大きな更新をしませんでした。

そんな中でも話題にすべきなのが……

IchigoJam web の画面

IchigoJam web。IchigoJam 実機がなくても、Raspberry Pi がなくても、
Web が使えるパソコン、スマートフォン、タブレット端末で、
いつでも IchigoJam BASIC が使えてしまう素晴らしいアイテムです。

今年 2020 年この IchigoJam web に新機能が加わっています。
「バーチャル MixJuice」です。

MixJuice は元々 IchigoJam のネットワークボードとして
2016年10月に発売が開始された周辺機器です。
Wi-Fi を使ってインターネット接続し通信できてしまうのです。

このうち基本的な MJ GETS を IchigoJam web で実装したのです。
MJ GETS コマンドは、https 通信でサーバから読み込みます。
ごく普通の Web サイトのサーバです。
ただし GETS なので、SSL が有効になっている環境が必須です。
これは Ichigojam web そのものが https になっている影響で、
セキュリティ的な考慮上、ブラウザの制限があります。


とりあえず使ってみる

IchigoJam web を参照します。
IchigoJam をよく使っている人なら、
Web ブラウザの ブックマーク に登録しておきたいところ。

IchigoJam web

上の黒い画面は IchigoJam 実機と同じ画面です。
その下にいくつかのボタンが並んでいます。

バーチャル MixJuice を有効にする

まずはその下のボタンより I/O を選ぶと、
下に表示がありますが、ここで MixJuice に を入れます。
これでバーチャル MixJuice が有効になります。

運営者が公開している イチゴジャム レシピ MixJuice コンテンツ を見てみましょう。
IchigoJam の画面(黒い画面)上で次を入力します。

?"MJ GETS 15J.RUN/

IchigoJam web では GET ではなく、必ず GETS を使って下さい。
すると……

イチゴジャム レシピ MixJuice コンテンツを表示

表示されました! あとは表示されているように操作をしていくだけです。

MixJuice・IchigoJam

従来は IchigoJam に MixJuice を接続した状態で使用する必要がありましたが、
これが Web ブラウザ上で表示できるようになりました。


IchigoJam BASIC、MixJuice コマンドと実行結果

MixJuice の GETS(GET)の仕組みはとても簡単。
Web サーバから URL を実行し、その内のヘッダを外したファイル本体を
そのままシリアル送出します。あとは IchigoJam 側の OS で処理されます。
IchigoJam BASIC だとダイレクトコマンド実行だったり、プログラム入力だったり。
?"MJ GETS ~ で更に MixJuice コマンドを実行する事もできます。

ここでは Qiita を使用している開発者らしく、GitHub の一サービス
GitHub Gist を使って試してみましょう。

とりあえずサンプルを……

簡単ですね。頭に ' が付いている事で BASIC ではコメント( REM )となります。
コマンド実行やプログラムとして入力される事なく、任意の文字を表示できます。

ファイル名 mixjuice-test.bas をクリックすると、次の画面になります。

GitHub Gist の表示

ここで右下の Raw を選択します。

上のブログへ貼り付けた Gist(ソース)表示にある view raw でも表示可能です。

GitHub Gist の表示

シンプルなテキスト表示になりました。URL も変わっています。
この URL 部分をコピーし……

URL をコピー

IchigoJam web の画面へ変更して、ボタンの下にあるテキストエリアに貼り付けます。
頭の https:// を消して ?"MJ GETS に変更します。(選択・反転している部分)

Ichigojam web に貼り付けて ?“MJ GETS に変更

IMPORT ボタンを押すと、IchigoJam 画面にコピーされます。
しかし、バーチャル MixJuice は実行されないので、
その行に 矢印 キーで移動し……

矢印キーで移動

Enter(return) キーを押して下さい。

Enter でコマンドを実行

'ichigoJam

表示されました~~~! 👏👏👏パチパチ…

この方法でプログラムを転送して RUN で実行できます。

Enter でコマンドを実行

GitHub にログインしているならアドレス部分に gist.new で
素早く GitHub Gist の新規画面になります。お試しあれ。

テキストをダイレクトに出力できる環境であれば、
GitHub Gist 以外の Web サービスを使用できます。レンタルサーバとかですね。

MixJuice に対応しているサービスとして Kidspod; があるのですが、
Kidspod; は SSL がまだ未対応なので、IchigoJam web から使用できません。
(2020/12/01 現在)
うむ……これもコロナの影響という事にしておきましょう。そうしておきましょう……


MixJuice コンテンツ サンプル

もう少し複雑な事をしたくなると思います。そのためのサンプルを紹介しています。

?"MJ GETS MJ.15J.RUN/

ソースと実際の実行結果を見比べて下さい。

省略表記も使用できますが、
IchigoJam web ではこの場合も GET ではなく GETS です。

?"MJ GETS 15J.RUN/M

簡単に IchioJam web によるバーチャル MixJuice の使用方法をご紹介しました。
4 日目(12月4日)は、この機能を生かしてある情報を IchigoJam で表示してみます。
さあ、何の情報でしょう? 🌏 🍙(・~・)mogmog


追加 2020/12/07

IchigoJam web で 15jm.li/k/3 を実行

短縮 URL 15JM.LI で Kidspod; の取得に対応しました。
15JM.LI そのものは IchigoJam web 対応済で、経由して出力するようにしました。
これにより IchigoJam web で Kidspod; のプログラムダウンロードなどが可能です。

?"MJ GET kidspod.club/mj/(ID)

の代わりに次を使用して下さい。

?"MJ GETS 15JM.LI/K/(ID)

追加 2020/12/12

IchigoJam web で 15jm.li/3 を実行

よく考えたら 15JM.LI/● の ● は英字しか使っていなかったので、
数字の場合に Kidspod; からのダウンロードとしてみました。

?"MJ GETS 15JM.LI/(ID)

さらに IchigoLatte 向けの m15.lt も同じ状態だったので、
数字のみの場合は Kidspod; からのダウンロード対応しました。
終了コードを付加しているので、転送終了後は lash へ戻ります。

lash>echo MJ GET m15.lt/(ID)> uart;cat uart > .

15JM.LI は IchigoJam BASIC(IchigoJam web を含む)、
m15.lt は IchigoLatte での使用を想定して対応しているため、
必ず OS に合わせてコマンドを使用して下さい。


追加 2020/12/18

IchigoJam web で 15j.in/3 を実行

イチゴジャム レシピ MixJuice コンテンツ で短縮 URL を 15j.in へ分割したのですが、
通常は 15J.IN/英 1 文字 なので 15J.IN/数字 を Kidspod; に対応させています。

?"MJ GETS 15J.IN/(ID)

15JM.LI は ' MJ GET kidspod.net/mj/● を表示させていますが、
15J.IN はこれを表示させていません。


IchigoJam Advent Calendar 2020

IchigoJam Advent Calendar 2020 | Qiita