福野泰介の一日一創 - create every day

IchigoJamは、MSXに習って、上位互換。
こどものお小遣いでも手が届く「安さ」と「学びやすさ」にこだわるIchigoJam。
大幅な機能拡大や、容量アップを行わない、変わらない安定感がウリです。

IchigoJam ver 1.2.3 の使い勝手をそのままに、IoTと、ちょっとした改善の積み重ねた ver 1.3。
IoT/オープンデータ/ビッグデータ/AIでも連携する、さくらインターネットさんとの共同プレスリリース。
回路もCPUも変更ないので、いままで全てのIchigoJamをバージョンアップできます!

餅は餅屋。いろんな業種の人による「プラスIoT」が熱い!
さくらインターネット「IchigoSoda (=IchigoJam x sakura.io)」のIoT火災報知器。

火災報知器と連動した無線通報端末「火守くん」を“IchigoSoda”で開発 - 導入事例・構成例導入事例・構成例
「子どもの頃、プログラミングが好きでBASICでゲームを開発していたんです。これなら私でも開発できると考えました」と社長の刀根さん自らが開発! 大人も楽しいIoT、IoT研修などのお問い合わせもどうぞ!(ichigojam@jig.jp)

2/3(日) サイボウズさん、さくらインターネットさんとも共同で、IchigoSodaを使った、IoT親子ワークショップも開催!
はじめてのIoTデータ活用 親子プログラミングワークショップ kintone x sakura.io x IchigoJam - さくらのイベント(関東版) | Doorkeeper

IchigoJam BASIC ver 1.3、5つの主な変更点
1. コマンド1つで IoT
2. ちゃんとした RENUM
3. 打ちやすくなったローマ字と絵文字
4. ゲームの幅広がる、カーソルスイッチ
5. 70% 高速化

1. コマンド1つで IoT
月額64円(年間でも768円)で実現できちゃう4G/LTEを使ったIoT。 さくらインターネットの sakura.io をIchigoJamと接続するお手軽IoTをもっと手軽にするIoTコマンドを搭載!

IoT.OUT 1 OK

IoT.OUTコマンドで16bitの数値が送信完了!sakura.ioの管理画面でリアルタイムにデータが届く様子が見えます。 受け取りたいサーバーのアドレスを打ち込めば、webサービスと簡単に接続できますし、WebSocketを使えばリアルタイムに動作するアプリをJavaScriptなどで簡単に作れます。

反対に、ネットから受け取るコマンドは IoT.IN()

?IoT.IN() 5 OK

スマホから家の内外にある家電・ロボットの遠隔操作だってできちゃいます。

いままでのIoTコマンドでは配列や、PCG領域などを使っていましたが、新たなRAM領域を使うようにしたので、使い勝手アップ!

確保した新しいRAM領域(#114A-#117F)の54bytes、ご活用ください!(IchigoJam ver 1.3 メモリマップ
また、I2Cの初期化処理を変更時のみに限定し高速化、BPSの第二パラメータでI2Cの通信速度設定にも対応しました。

2. ちゃんとした RENUM
プログラムに機能をどんどん足していって、ごちゃっとしたものをきれいに整理することを、リファクタリングといいます。 行番号でプログラムを管理する IchigoJam BASIC、10刻みではじめて、間に1刻みでいれていったのに入らない!そんな時に使う RENUM ですが、今までは行番号の振替に非対応でした。

1 LED1:WAIT10 2 LED0:WAIT10 3 GOTO1 RENUM 10 LED1:WAIT10 20 LED0:WAIT10 30 GOTO1 RUN Line error in 30 30 GOTO1

GOTO1が書き換わらないためエラーになり、手で振り直しが必要だった、ver 1.2.3。
ver 1.3 では、番号振り直しに対応したので、リファクタリングがはかどります!
ただし、プログラムの容量を変えない方針で書き換えるので、GOTO1 が GOT100 という形でコマンドにめり込む形になるので、そこは手で修正してあげください。

1 GOTO1 RENUM 100 OK 100 GOT100 OK

3. 打ちやすくなったローマ字と絵文字
キーボードを使いこなすこと、現代のコンピューターを活用する上での必須スキル。 試験の現場でも効率化のため、手描きからキーボード入力への切り替えが進むのは間違いないでしょう。 幼稚園児でもわかるアルファベットのABC、次のステップのSHIFTキーを伝授する前に、ALTキーを使った絵文字遊びがオススメです。

今回の変更で、右ALTと左ALTの違いをなくし、押しても出なかったWXYZも矢印絵文字として割り当てたので、アルファベットと合わせてお楽しみください! 「ALTを押しながらC」で感覚をつかんだら、「SHIFTを押しながら8」などもスッと伝わります。

またローマ字入力 KAK と3つキーを押した時の違いです

' ver 1.2.3 カ ' ver 1.3 カK

このように打ったキーがそのまま表示するようにしたので、打ち間違いを修正しやすくなり「キーを押しても何も出ません!」というケースがなくなります。

通常のパソコンと違って、漢字変換がないので、シンプルにローマ字入力のみを学べます。
Nの区切りとして「'」にも追加対応し、小学校でのローマ字の学習にオススメ「日本式ローマ字」にも対応!
小学校で教えるローマ字は日本式で決まり! IchigoJamプリント「ローマじでうつ、カタカナ - こくごコース」と授業計画例

また、意図せず「OK0」コマンドを使ってしまい「エラーメッセージがでません!」となるケースに対応し、表示なしは「OK2」へと変更。

RNDと「(」の間に空白をいれてしまうと Syntex error と、エラーが起きてしまう分かりにくい間違いを防ぐために、空白無視への変更。

' ver 1.2.3 ?RND (6) Systax error ' ver 1.3 ?RND (6) 5

4. ゲームの幅広がる、カーソルスイッチ
位置を指定するコマンドLOCATE(省略形LC)の第三パラメーターに1を指定すると、点滅するカーソルを表示できるようにしました。

ゲームで学ぶ、アルファベット! LOCATEの第三パラメーター、カーソルスイッチ実装
パズルゲームなどにオススメ!ベーマガへの投稿の際は IchigoJam ver 1.3 と明記しましょう。
逆に、1.2.3で、カーソルスイッチでエラーになってしまう場合は、第三パラメータを消し、自前でカーソルを表示するように改造すればOKです!

5. 70%高速化
速度より機能優先の IchigoJam ですが、せっかくのバージョンアップなので内部ロジックチューニングで少し高速化。
いままでちょっと重いなと思ったゲームが、遊びやすくなります。
1.3にして、いろいろ工夫してもまだ重い?100倍高速化するマシン語を使うのも手ですよ!
はじめてのマシン語 - IchigoJamではじめるArmマシン語その1

その他の変更
BPSで-100以下を指定することで、シリアル通信速度の高速指定に変更(BPS-2304 → 230400bps)
UART4(bit2が1)でキー入力をシリアル通信にエコーバックモード
プログラム実行時にキーバッファをクリアしないように変更
FILES0,0でファイル0のみ表示するよう変更
SOUNDピンをマシン語で使用可能に変更(SOUND()に反映されない不具合修正)
SWITCH時のバージョン表示廃止

IchigoJam BASIC ver 1.3、変わらない点
- NXP LPC1114 向け、IchigoJam BASIC が動く24KBのOS(回路に変更無いので全IchigoJamバージョンアップ可能)
- プログラムは1KB(約1000文字)、4つまで本体に保存可能(0番はボタン押しながら起動で自動起動)
- 32x24テキストスクリーン、64x48のハーフグラフィックス(PCGでパターン変更、VIDEO3などで拡大表示対応)
- 小さなこどもでもわかりやすい、アルファベット大文字を基本に、ローマ字入力でカタカナ入力にも可能

IchigoJam BASIC ver 1.3 リファレンス
IchigoJam BASIC リファレンス ver 1.3
IchigoJam BASIC reference ver 1.3 (英語版)

バージョンアップ方法
店頭のIchigoJamは順次、ver 1.3 へと置き換わっていく予定です。
お手元のIchigoJamも、自分でバージョンアップに挑戦したり、書き換えサービスで、ver 1.3 へと更新できます!
ダウンロード | こどもパソコン IchigoJam - はじめてのプログラミングパソコン(1500円)

links
- こどもIoTを実現する、こどもパソコン『IchigoJam』ver 1.3 をB Inc.がリリース ~さくらインターネットの『sakura.io』を利用した通信用コマンドを標準搭載~
- こどもIoTを実現する、こどもパソコン『IchigoJam』ver 1.3 をB Inc.がリリース | さくらインターネット
- コマンド1つでIoTも可能な1,500円のこどもパソコン「IchigoJam BASIC ver1.3」 - PC Watch
- 子どものプログラミング教育向けに開発された「IchigoJam BASIC」のver1.3がリリース:EdTechZine(エドテックジン)
- ASCII.jp:子供パソコン「IchigoJam BASIC」、さくらインターネットのIoTに対応

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像