MicJack


IJUtilities - 公開元

 

MicJack(マイクジャック)は Micono さん(Micono Utilities)によって公開された
MixJuice 上位互換のファームウェアです。
CC BY(Creative Commons 表示)ライセンス で公開されています。

 

公開元 IJUtilities の説明には「Arduino スケッチ」とありますが、
当初ファームウェアを入れるために Arduino IDE を使用する必要があったためで、
Arduino は必要ありませんし、Arduino の知識・経験なども不要です。

最新版はバイナリーファイルでも提供され、MixJuice に近い手順も可能なため、

Arduino IDE は必要なくファームウェアを入れて使用できます。

 

ESP-WROOM-02(ESP8266)を用いた様々な基板に対応していますが、
MixJuice プリント基板にもインストール可能です。

インストール手順より、Arduino IDE による開発経験がある人、

または MixJuice ファームウェアの更新経験がある人がインストールできる対象となります。 


MixJuice に比べて次の機能が追加されています。

  • MixJuice のコマンドに加え、MicJack 独自のコマンドを備えます。
  • スマートフォンなどで参照し操作できる Web サーバを備えます。
  • Web 画面経由で仮想キーボードを表示します。シリアル送出およびキーボード端子送出に対応します。
  • ホーム機能を備えます。よく参照する MixJuice コンテンツを設定し、短いコマンドで参照できます。
  • Kidspod; に対応した専用コマンドが用意されています。
  • IchigonQuest のプログラム送受に対応しています。(送信は Kidspod; へ) 

このページでは MixJuice とは異なる MicJack 独自の操作を中心に説明しています。

 



MicJack を使用できるボード

MicJack は次のボードにファームウェアを入れて使用できます。

 

MixJuice プリント基板

MixJuice プリント基板へ MicJack を入れて使用できます。

MixJuice の使用方法でそのまま MicJack も使用できます。

更に MicJack の追加機能で便利に使う事ができます。

 

MixJuice のファームウェアは上書きして消去されますが、

MicJack は上位互換で、MixJuice の機能を有していますので、

MicJack のままで問題なく使用しつづけられるでしょう。

もちろん MixJuice のファームウェアへ戻す事も可能です。

 

MixJuice プリント基板では

IO13・IO14・IO16 端子がピンソケットにでていないため、
Keyboard Mode の使用は容易ではありません。

 

ESP-WROOM-02 搭載ボード

ESP-WROOM-02 が基板に付いているボードを使用可能です。

MixJuice/Q&A も参照して下さい。

新たに入手する場合は、技適マークが付いている

ESP-WROOM-02 である事をご確認下さい。

MicJack の場合、独自で提供されている

Keyboard Mode 向けの KBD1・KBD2 端子も

直接接続できるメリットがあります。

 

ESP-WROOM-02 開発ボードで通常使用する際の接続は次になります。
KBD1・KBD2 端子は Keyboard Mode を使用する場合に接続が必要です。

直接 ESP-WROOM-02 のピンが出ている

DIP 化モジュールは更に接続が必要です。

 

()表記は NodeMcu 向けのボードで採用されている表記です。

ESP-WROOM-02 開発ボード   IchigoJam など
RX - TXD
TX - RXD
GND - GND
3V3・3V・VCC など ☆ - VCC ☆
IO13(D7)※ - KBD1
IO16(D0)※ ★ - KBD2

※ ソースで対応する IO 端子を変更できます。

★ バージョンにより IO14(D5)の場合があります。

☆ 正しくは 3.3V ですが、一部 3V 表記のボードが存在します。代わりに 5V-5V の接続でも使用可能です。
  スイッチサイエンス ESPr® Developer (ESP-WROOM-02開発ボード) は

  VIN に 5V を接続するか、microUSB 端子から電源供給して下さい。

 

更に LED を追加する場合は次を接続します。ブレッドボードを使用する事になるでしょう。

LED の色は MixJuice プリント基板と同じ色にする場合です。

IO12(D6) - 330 Ω 抵抗 - LED (緑 / 接続・モード) - GND
IO4(D2) - 330 Ω 抵抗 - LED (赤 / 送信) - GND
IO5(D1) - 330 Ω 抵抗 - LED (黄 / 受信) - GND

MicJack のインストール

MicJack は現在 2 種類のインストール手順が存在します。

  • バイナリーファイルによるインストール(MixJuice ファームウェアと同じ手順)
  • Arduino IDE を用いたインストール

Arduino IDE での手順は Manual.pdf で記載がありますが、環境を整えるのに時間を要するでしょう。

IO ピンの設定変更が必要などの理由がなければ、バイナリーファイルでのインストールを推奨します。

Arduino IDE を用いる場合、IO ピンの割り当てを変更できるメリットがあります。


バイナリーファイルによるインストール

解凍した MicJack フォルダの中に bin フォルダがあります。

こちらが MicJack のバイナリーファイルです。

MixJuice と同じ手順で Micjack のインストール・更新を行えます。

MicJack 1.0.0b2 より正式対応になっています。

MicJack 1.0.0b1 以前は問題があるのを運営者が確認しています。

 

MicJack 1.0.0b5 からは
インストールアプリ ESPWriter が含まれています。

Install フォルダ内に OS 別で入っています。

MixJuice/ファームウェアの更新 の紹介ツールも使用可能です。

IJUtilities は IJUtilities 0.9.9d6 より MicJack に対応しています。

 

MixJuice と異なるのは、ファイルが 2 つになっている事です。

次のように指定して下さい。(Windows はフォルダ区切りが / の代わりに ¥ または \ です)

 

ファイル名 開始アドレス
~~~/MicJack/bin/MicJack.ino.bin または MicJack300.ino.bin 0x00000
~~~/MicJack/bin/MicJack.spiffs.bin 0x00100000

 

実行後の動作で 2 ファイルを順次入れている状態で進捗すれば正常です。

 

一部のボードでは MicJack.ino.bin で動作しない場合があります。

もしこれで動作しない場合、MicJack.ino.bin の代わりに MicJack300.ino.bin を設定してみて下さい。


Arduino IDE を用いたインストール

運営者が実際に手順を行った結果、Manual.pdf に記載されていない情報がいくつか存在していたため、

このページで補足説明を加えておきます。

 

ESP8266 ボード情報のインストール

Arduino IDE の環境を一から整える場合、まずは ESP8266 ボード情報をインストールして下さい。

 

ツールバー ファイル - 環境設定 より「追加のボードマネージャのURL」に

http://arduino.esp8266.com/stable/package_esp8266com_index.json を入れます。

 

ツールバー ツール - ボード "~" - ボードマネージャ を選択します。

 

ボードマネージャ ウインドウが表示されたら、上部に esp を入れていくと、

esp8266 が一覧に表示されます。これを Install して下さい。

これで ツールバー ツール - ボード に項目が追加され、詳細な設定を行えます。

 


ライブラリ ps2dev のインストール・ソースの修正

コンバイルには ps2dev ライブラリが必要です。

次のページからページの下にある Attach:ps2dev.zip をクリックし、ps2dev.zip をダウンロードします。

(ps2.zip ではありません)

 

PS2 mouse interface for Arduino

 

Arduino IDE よりツールバー スケッチ - ライブラリーをインクルード - .ZIP形式のライブラリをインストール を選択し、

ダウンロードした ps2dev.zip を選択して下さい。これでインストールされます。

ユーザー/ドキュメント/Arduino/libraries に入ります。(Windows の場合。OS によって違うかもしれません)

 

このままでは動作しません。ソースより次の修正を行なって下さい。

 

ps2dev.h - WConstrans.h の代わりに arduino.h を include します。

行 12 | #include <arduino.h> //#include "WConstants.h"

 

ps2dev.cpp - WProgram.h は外します。コメントにすると良いでしょう。

行 10 | //#include "WProgram.h"

 

コンバイル・ビルド手順

それでは書き込んでいきます。ボードは接続して認識するようにします。
エラーになったり、項目が存在しない場合は上の手順が行えていません。今一度ご確認下さい。

  1. MicJack.ino を Arduino IDE で開きます。
  2. ツールバー ツール - ボード より目的のボードを選び、設定を行います。
  3. ツールバー スケッチ - 検証・コンパイル でコンパイル作業を行います。
  4. 正常に終了していれば、ツールバー スケッチ - マイコンボードに書き込む でまずは MicJack 本体を書き込みます。
  5. ツールバー ツール - ESP8266 Sketch Data Update で SPIFFS へ data フォルダのコンテンツを書き込みます。

これで手順完了です。IchigoJam と接続して動作確認を行なって下さい。


MicJack の動作確認・初期設定

MicJack の動作確認は IchigoJam BASIC がおすすめです。

 

MicJack を入れた基板を IchigoJam と接続します。

MixJuice プリント基板に MicJack を入れた場合は
今までの同様に上へ重ねるなどします。

 

電源を入れると ' が付いたコメント文で

MicJack の起動メッセージが表示されます。

この状態で正常です。

おかしい場合は上の項目を確認してみて下さい。

 

MicJuice と同じように Wi-Fi を検索し、接続して下さい。

 

?"MJ APL

?"MJ APC (アクセスポイント名) (キー)

 

IchigoJam 側の電源を入れるのが後になった場合は、

次のコマンドを入れてみて下さい。

 

?"MJ MJVER

 

「MicJack-1.0.0」などとMicJack とバージョンが表示されれば正常です。

MixJuice で「NG: MixJuice-1.2.1」などと MixJuice のバージョンが出ている場合は

MixJuice から更新されていませんので、再度インストールを行ってみて下さい。


Web ブラウザからの操作

Wi-Fi に接続した後、同じネットワークにあるパソコン・スマートフォン・タブレット端末から

http://micjack.local/ または http://(接続されたIPアドレス)/ で操作画面が表示されます。

IP アドレスは APC コマンドで Wi-Fi に接続した時に表示されます。
(一度接続すると MicJack が起動した時に自動接続するため、起動直後で表示されています)

主にスマートフォンからの操作を想定して設計されていますが、パソコンからでも操作可能です。

次の機能があります。

  • IchigoJam Keyboard・IchigoLatte Keyboard・操作ボタン
    仮想キーボードです。入力したキーを送出します。
    矢印と■・改行・space は IchigonQuest でも使用できます。
  • Mode 
    仮想キーボードの送出方法を変更できます。
    設定は保存され、電源を切って再起動した後も維持します。
    KBD・IJKBD 使用時、実際のキーボードは外して下さい。
     UART = シリアルへ送出します。
     KBD・Keyboard = KBD1・KBD2 端子へ送出します。IchigoLatte・IchigonQuest 向け
     IJKBD = KBD1・KBD2 端子へ送出します。IchigoJam BASIC 向け(1.0.1b1~)
     IJKBD クリック時 IchigoJam BASIC は再起動します。(キーボード初期化のため)
  • IchigoJam Command
    ダイレクトにコマンドを送出します。USB-シリアルのようにコマンド送出できます。
    例えば Web ブラウザなどからコピーし、ここに貼り付けてコマンド送出できます。
  • MixJuice/MicJack Command
    MJ を外した、それ以降のコマンドを入れて下さい。例えば GET ~ や MJVER などです。
  • Get Quest journey from kidspod
    IchigonQuest 接続時、Kidspod; からプログラムをダウンロードです。(後記)
  • Post Quest journey to kidspod
    IchigonQuest 接続時、プログラムを Kidspod; へアップロードします。(後記) 

仮想キーボード

特殊キーの表記は Apple Keyboard 準拠です。
macOS(Mac)および iOS(IPhone・iPad・iPod touch)で
使う人は違和感ないと思いますが、

Windows・Linux 環境で用いている場合、次のキーに注意して下さい。

  • Return = Enter キーの事です。
  • DEL = delete キー。Windows は Back Space キーの事です。
    (カーソル左の文字を消します)

また SPACE の右にある次のキーは SPACE 左と同じキーの切り替えです。

  • C1~C3 = キャラクター
  • K1~K2 = カナ

右上の カナ は物理キーボード同様ローマ字入力を行えます。

 

Wi-Fi へ接続できない場合に Web ブラウザの操作を使用する

MicJack は Soft AP によって独自にアクセスポイントを提供しています。

スマートフォンなどから Wi-Fi を検索し、Mixjack へ接続して下さい。

キーのデフォルトは abcd1234 です。
このアクセスポイント名とキーは MJ SOFTAP コマンドで設定・変更できます。

 

?"MJ SOFTAP (アクセスポイント名) (キー)

 

接続後 http://192.168.4.1/ を参照する事で、Web 上の操作画面を表示し、操作できます。


ホームの設定・参照

MicJack には GET コマンドの URL をホーム設定する事ができます。

これにより、よく使用するコンテンツの URL を毎回入力する必要がなく、短いコマンドで素早く参照可能です。

 

ホームの設定

MJ GETHOME (URL)・MJ GETSHOME (URL)(1.0.1b1~) で設定します。
GET を GETHOME、GETS を GEtSHOME に変えます。
例えば ?"MJ GETS 15jam.netlify.com/ を設定する場合は次のコマンドです。

 

?"MJ GETSHOME 15jam.netlify.com/

 

ホームの参照

URL を外した MJ GETHOME および MJ GETSHOME(1.0.1b1~)のみで設定しておいたコンテンツを参照します。

 

?"MJ GETHOME

?"MJ GETSHOME


最後に実行した GET・GETS コマンドの再実行

MJ GET・MJ GETS で実行した最後のコマンドは
MJ GETLAST・MJ GETSLAST(1.0.1b2~)を用いて再度実行する事ができます。

MJ GETLAST は MJ GETGKP も対象になります。

 

?"MJ GETLAST

?"MJ GETSLAST


Kidspod; のプログラム送信・受信

MicJack は Kidspod; 向けの専用コマンド・操作が存在します。これで短いコマンドにより素早く操作できます。

もちろん MixJuice と同じコマンドでの送受も可能です。

 

Kidspod; 投稿プログラムの受信

GKP コマンドを使用できます。kidspod.club/mj/ を外した ID だけで参照できます。
例えば BASIC/プログラム/風船 のプログラムをダウンロードする場合は

?"MJ GET kidspod.club/mj/593 と入力する代わりに次のコマンドで受信できます。

 

?”MJ GKP 593

 

Kidspod; へのプログラムアップロード

プログラムをアップロードは PKP コマンドを使用できます。

投稿の編集 より ソースコードを投稿 の右下に表示されている
MixJuice(2 行のうち 上)の URL が kidspod.club/mj/557:2C5B2D と表示されている場合は

?"MJ POST START kidspod.club/mj/557:2C5B2D と入力する代わりに
次のコマンドでアップロードできます。

 

?”MJ PKP 557:2C5B2D


IchigonQuest のプログラム送受

MicJack は IchigonQuest にも対応しています。

IchigonQuest は任意のコマンドを入力できないため、必ず Web ブラウザより操作する必要があります。

 

Kidspod;→IchigonQuest 投稿プログラムのダウンロード

IchigonQuest は つうしん - うけとる で受信待機にしておきます。

Web ブラウザ画面の Get Quest journey from kidspod に受信したい ID を入れて下さい。

 

ダウンロード後の動作がおかしい場合は該当の ぼうけん● を一度 けす として削除した後再度行って下さい。

 

Hex データ→IchigonQuest 転送

MicJack 1.0.0b5 より直接 Hex データを入れて送る事ができます。

Hex データは 0~9・A~F の文字列で、最大 1024 バイト(2 文字で 1 バイト)です。

この状態で公開されているプログラムをコピーしておきます。

 

IchigonQuest は つうしん - うけとる で受信待機にしておき、 

Web ブラウザ画面の Send Quest hex journey to IchigonQuest に Hex データを貼り付けて SEND して下さい。

この操作ではネット通信がないため、LED2(送信)ランプが付かない状態で正常です。

 

ダウンロード後の動作がおかしい場合は該当の ぼうけん● を一度 けす として削除した後再度行って下さい。

 

IchigonQuest→Kidspod; プログラムのアップロード

Kidspod; の プログラムの投稿 でプログラム以外のところを入れて、一度投稿します。

投稿の編集 を選択し、ソースコード の下に URL が表示されます。

この kidspod.club/mj/ を外した後ろの部分を

Web ブラウザ画面の Post Quest journey to kidspod に入れて POST して受信待機して下さい。

IchigonQuest より つうしん - おくる でプログラムをアップロードして下さい。

 

IJUtilities が IJUtilities 0.9.9d6 より MicJack が解読できる形式でファイル保存するようになりました。

.TXT 形式で保存したファイルの中身をそのまま Kidspod; のプログラムとして投稿する事で、
MicJack から Web ブラウザ操作でダウンロード可能です。


その他

  • GET コマンドなどの URL は末尾が / で終わる場合、MixJuice は / が必須ですが、
    MicJack は / を省略しても参照可能です。
  • MicJack 独自のコマンドは MixJuice ではエラー(バージョン表示)を出力します。

MicJack に関する Q&A

IchigoJam から離れたところでスマートフォンから操作できるという事ですか?

はい。キーボードの代わりにスマートフォンからキーボード操作ができます。

Wi-Fi の距離内であれば実現できます。

 

例えば IchigoJam のプレゼンで

IchigoJam+MicJack が入った MixJuice または ESP-WROOM-02 搭載ボードはプロジェクター近くにおき、

自分は移動しながらスマートフォンで操作できます。MicJack で新たな活用法ができました。

 

IchigonQuest の操作を MicJack で全て行えてしまうでしょうか?

はい。MicJack を接続した IchigonQuest は快適です。

 

Keyboard Mode によって、スマートフォンやタブレット端末から操作を完全に行う事ができます。

それは Wi-Fi 経由なので、IchigonQuest 本体から少し離れて操作可能なので、プレゼン状態にも最適です。

 

また、Web 画面を用いて Kidspod; から任意のプログラムをダウンロードする事ができ、

本体へ入れられる ぼうけんしょ 8 つ の制限なく様々な ぼうけんしょ を得て実行できます。

 

MixJuice の基板に MicJack を入れた場合、MixJuice は使えなくなってしまうのですか?

MixJuice プリント基板に MicJack を入れた場合、MixJuice のファームウェアは上書きして消してしまいます。

しかし、MicJack は MixJuice のコマンドを対応させているので(MicJack は MixJuice の上位互換システムです)

通常は MicJack のままで問題なく使用できるでしょう。

コマンドを送った際に返ってくるメッセージは一部 MixJuice とは異なります。

 

MicJack を MixJuice の基板へインストールした場合、MixJuice へ戻す事はできますか?

はい。MixJuice/ファームウェアの更新 の手順で MixJuice.bin へ再度更新する事で MixJuice に戻せます。

Wi-Fi の接続情報はリセットされていますので、APC コマンドで改めて接続しなおして下さい。

 

MicJack をインストールしたところ、起動メッセージが繰り返し表示されます。

MicJack 1.0.0b1 以前でバイナリーからインストールした場合に発生します。
異常動作で再起動するために繰り返し起動メッセージが表示されます。

これは MicJack 1.0.0b2(2018年9月3日公開)で改善・正式対応されています。

最新の MicJack をダウンロードし、インストールしなおして下さい。

 

MixJuice では正常に起動できているのですが、MicJack は動作しません。

一部のボードで発生する事があります。起動直後に文字化けした文字列のみが表示されます。

MicJack.ino.bin の代わりに MicJack300.ino.bin を指定してみて下さい。

 

ファームウェアが MicJack か MixJuice かを確認する方法は?

起動の段階で MicJack と MixJuice は異なる動作をします。IchigoJam BASIC ですぐに確認できます。

  • MicJack = 'MixJack-(バージョン) など、多くの情報が表示されます。
  • MixJuice = 文字化けの文字列が表示されます。

これ以外に MJVER コマンドを実行する方法があります。IchigoJam BASIC では ?"MJ MJVER です。

  • MicJack =「'MicJack-(バージョン)」が表示されます。
  • MixJuice =「NG: MixJuice-(バージョン)」が表示されます。

MicJack はエラーメッセージも MixJuice 同等に出力するため、

文字の入力ミスは MicJack でも「NG: MixJuice-(バージョン)」が表示されます。ご注意下さい。

 

MicJack をインストールしたのですが、起動しても変化がないのですが……

MicJack も存在しないコマンドは 'NG: MixJuice-~ で返します。

MJVER コマンドで確認してみて下さい。IchigoJam BASIC は ?"MJ MJVER です。

 

NodeMcu 向けの開発ボードは NodeMcu ボードを認識するツール・ボード設定が必要です。

 

MixJuice 基板に MicJack を入れましたが、Wi-Fi 接続されていないようです。

MicJack をはじめて MixJuice へ入れた場合、MixJuice の Wi-Fi 設定は消されていて、Wi-Fi 接続されていません。

改めて MJ APL コマンドで Wi-Fi を検索し、MJ APC コマンドを用いて Wi-FI へ接続して下さい。

一度接続を行えば、再起動時に自動で Wi-Fi への接続を試みます。

 

Web ブラウザから micjack.local を参照したところ、NotFound と表示されます。

SPIFFS への data フォルダのコンテンツが転送されていない時に発生します。転送不足です。

 

NodeMCU Flasher (A firmware Flash tool for nodemcu)  を用いる場合、

一番左の □ に × が付いている項目が書き込み対象です。

 

Arduino IDE を用いる場合はまず MicJack 本体を入れてから、SPIFFS を入れてみて下さい。

 

Keyboard Mode が反応しません。

MicJack 1.0.0b5 までは IchigoJam BASIC では正常に動作しません。UART Mode にして下さい。

IchigoLatte・IchigonQuest では Keyboard Mode で動作可能です。

MicJack 1.0.1b1 より IchigoJam BASIC 向け Keyboard Mode の IJKBD が追加されています。

  

モジュールによって端子の位置が異なり、印刷されている端子の記載も異なります。
NodeMcu 向けのボードだと異なっているようです。次の表記となっています。

  • GPIO13 = D7
  • GPIO14 = D5
  • GPIO16 = D0

KBD1・KBD2 端子の割り当てがバージョンで異なる事にご注意下さい。

MixJuice 1.0.1b1 現在 KBD1 が IO13、KBD2 が IO16 です。過去 KBD2 は IO14 に割り当てられていました。

Arduino IDE を用いる場合、ソース MicJack.ino で割り当てを変更できます。

 

実際のキーボードを接続している場合に Keyboard Mode を使用すると

2 種類の信号が重なって問題が発生する場合があります。実際のキーボードを外してご利用下さい。

 

IchigonQuest を起動しましたが、Wi-Fi が接続されていない事に気づきました。

Web ブラウザの画面から任意のコマンドを実行できるので、ここから接続が可能です。

MixJuice/MicJack CommandAPC (アクセスポイント名) (キー) を入力して接続して下さい。

 

IchigonQuest は Web から操作が必須ですか?

はい。IchigonQuest の送受は Web ブラウザからの操作が必須です。

IchigonQuest では任意の英数を入力してシリアルに送出する事ができません。

 

IchigonQuest のプログラムは Kidspod; 以外から受信できますか?

MicJack 1.0.0b5 より HEX ファイルを Web ブラウザから送信してプログラムを入れる方法が追加されました。
これを用いて Kidspod; 以外で公開されているプログラムを入れる事が可能です。

Hex ファイルをコピーし、 Web ブラウザの Send Quest hex journey to IchigonQuest に貼り付けて SEND して下さい。

 

IchigonQuest へ投稿するプログラムは他のツールで変換しパソコン等から投稿できますか?

MicJack を用いた投稿を行わず、パソコン等からでも投稿可能です。

IchigonQuest より受け取った 512 バイトのバイナリーデータを

空白・改行のない Hex 形式に変換して下さい。 1024 バイトになります。

この Hex 形式をそのまま Kidspod; のソースプログラムへ貼り付けて下さい。

IchigonQuest/ぼうけんしょのきろく はこの方法で Kidspod; へ公開しています。

 

Hex 形式以外(例えば手入力の操作)を含める場合は、[HEX] など

行頭が [ ではじまる行を任意文の末尾に入れ、その次の行に Hex 形式 1024 バイトを入れて下さい。

 

なお、IchigonQuest では 512 バイトのうちプログラムの末尾を 16 進数 FF で埋めますが、

MicJack では Hex 形式のデータでこれを省略できます。
サイズが不足している分は MicJack が FF を補完して転送します。