カテゴリー
IchigoJam

まるでカラーFAX!? IchigoJam+MixJuice+PanCakeで画像データ受信

Espressif製Wi-FiモジュールESP-WROOM-02を搭載したMixJuiceを、IchigoJamに接続し、画像データを受信する実験です。受信した結果はPanCakeに表示します。データ量が多い(8KB以上の)場合の表示方法に、苦労しました(後述)。
写真=Facebook IchigoJam FANグループの松永さんによる受信結果

準備するもの

  • IchigoJam (jig.jp社が開発した、BASICが動作する「こどもパソコン」)
  • MixJuice (Natural Style社が開発したIchigoJam用ネットワークボード)
  • PanCake (Natural Style社が開発したIchigoJam用グラフィック&サウンドボード)

アクセス方法

それぞれの機器を接続し、電源を入れ、[F1]キーで画面を消去してから以下のコマンドを入力してください。<SSID>と<PASS>の部分には無線LANアクセスポイントのSSIDとパスワードを入力します。
?"MJ APC <SSID> <PASS> ⏎
正しく接続されるとIPアドレスが表示されます。以上の作業は、次回からは不要です(自動的に接続される)。
次に、「ボクにもわかる for MixJuice」のページへアクセスし、メニュー番号を選択します。もしくは、コンテンツへの直アクセスのアドレスを入力してください。
メニューからアクセス [8][⏎]⇒[4][⏎]⇒[3][⏎]  IchigoPi パロディ ロゴ
?"MJ GETS git.bokunimo.com/MJ/ ⏎
コンテンツへの直アクセス
?"MJ GETS git.bokunimo.com/MJ/PC/300.txt ⏎
うまく受信することが出来れば、下図のような画像がPanCakeに表示されます。
ダウンロードには時間がかかります。ダウンロード中に音楽を流すことも簡単に出来るので、PanCakeの説明書を見ながら挑戦してみてはいかがでしょう。

大事なポイント

この仕組みには、ひとつ、大事なこだわりポイントがあります。それは、全てIchigoJam、MixJuice、PanCake、そしてウェブ配信サービスといった仕組みを「そのまま」使用していることです。(ただし、コンテンツを作成するための画像変換には専用ウェブページを利用)
特別な仕組みや、高度なプログラミングは、一切、必要ありません。
そう、あなたにも配信できるのです。

ここからが本題

ボクが、皆様に配信したいのは、このコンテンツではありません。
こういった仕組みを配信する人を増やし、かつての「パソコン通信」や「ネットサーフィン」のようなことがしたいと思っています。ボクのサイトは、その実験台です。
以下、その方法について、説明します。

まず、配信したい画像を準備します。

ボクは絵を描くのが苦手です。かつて似たような仕組を使って、初めてアップロードしたコンテンツは、7色(厳密には6色)のリンゴの絵でした。その時のことを思い出しつつ、今回はイチゴを選びました。
イチゴの葉が、ちょっと違うように思うかもしれません。その他、もろもろ権利的には難しい部類に入ります。このあたりについては、「パロディ」の扱いで公開しています。ご理解とご容赦をいただきたく、お願いします。
絵の準備が出来たら、画像データをPanCake用に変換します。以下のソフトを使用しました。
画像変換スクリプト(IchigoJam FANグループの古籏さんが作成)

GitHubの使い方

スクリプトを実行し、PanCake用のコンテンツが作成出来たら、それをホームページ公開サービスにアップロードします。私は、下記のGitHubというサービスを利用しています。GitHubにユーザ登録して、テキストファイルをアップロードすれば、ページを公開することが出来ます。
GitHub内のMixJuice用レポジトリ
コンテンツは以下の形式で保存します。
MixJuiceで読める形式(テキストエディタで選択しておく)
フォント:シフトJIS
改行コード:CR+LF
アップロードしたコンテンツをMixJuiceからアクセスするURL(インターネットアドレス)を知るには、コンテンツのファイルを表示して、右上の「Raw」ボタンを押します。これで、コンテンツそのもののアドレスが得られます。
上記のコンテンツの場合、以下が得られます。
上記のページへ、MixJuiceでアクセスするには、以下を実行します。
?"MJ GET raw.githubusercontent.com/bokunimowakaru/MJ/gh-pages/
0.txt⏎
また、「gh-pages」というブランチを作成すれば、より短いURLでアクセスすることができるようになります。ブランチについては、サルが目印のウェブサイトで学んでから設定すれば良いでしょう(ややこしいです)。
?"MJ GETS git.bokunimo.com/MJ/0txt

8KB以上のコンテンツを転送するには

PanCake用のコンテンツの話に戻ります。
実は、ダウンロードが途中で中断してしまう問題がありました。8KB以上のコンテンツを配信しようとすると、中断してしまいます。
その解決方法を探し、ようやく見つかりました。
    1. ダウンロード用のファイルを分割する
      (8KB未満に抑える)。
    2. ダウンロードの最後に5秒のウェイトを入れる
    3. 改行を出力する
    4. 1秒のウェイトを入れる
    5. 次のダウンロード用のページへアクセスする
具体的には、以下のようなコードを最後に入れます。
uart0:forA=0to5:beep:?"wait ";5-A:wait60:next:uart3:?:wait60:?"MJ GET (ここに続きのコンテンツのURLを書く)"

動画

IchigoJam FANグループの松永さんが撮影した動画があります。ダウンロードの途中で停止してしまう、作成途中のものですが、合わせてご覧ください。
受信の様子(撮影:IchigoJam FABグループの松永さん)

他にも今回の内容に類似したPanCakeの応用を以前から検討しています。お伝えできるような状態になるまでに、まだまだ時間がかかりそうです。気長にお待ちください。

by ボクにもわかるIchigoJam用マイコンボード

 - 
Chinese (Simplified)
 - 
zh-CN
Chinese (Traditional)
 - 
zh-TW
English
 - 
en
French
 - 
fr
German
 - 
de
Italian
 - 
it
Japanese
 - 
ja
Korean
 - 
ko
Russian
 - 
ru
Spanish
 - 
es