IchigoJamという小さなコンピュータの紹介をします。
私はMacintoshで利用していますので、内容は OS X 10.10.x (Yosemite) で利用する場合のちょっとしたノウハウを、自分の備忘録としてまとめておきます。
Windows環境で使用する記事は多いのですが、Macで利用している人の役に立てばと思います。
Ichigojam について
どんなもの?
IchigoJamは、NXP社のLPC1114(FN28) というワンチップのARMマイコンに、数個の抵抗とコンデンサを付けただけの、とてもシンプルで廉価(1,500円程度)なコンピュータです。
→ Ichigojamのサイト
→ fu-sen さんによる IchigoJam 情報サイト
ARMマイコンの他には電源供給用のUSB端子のほか、ビデオ出力(NTSCコンポジット)の端子と、キーボード用(PS/2)コネクタ、3.3V生成用3端子レギュレータ、抵抗、コンデンサ、LEDだけです。
上記のサイトからキット(ハンダ付け不要のブレッドボード版もあり)が販売されているので、そこから購入するのがお勧めです。
自作派の方なら、必要なパーツを集めて組み立て、ファームウェアをマイコンに書き込むことで、できあがります。(ファームウェアの書き込みにはUSB-Sirealアダプタか、ARMライター等が必要です。)
注:自作のIchigoJamは個人利用限定で、他の人に譲渡などをする場合はライセンスの購入が必要です。
【自作のためのリンク集】
・ピン配置シートとライセンス情報
http://fukuno.jig.jp/651
・ 回路図(組み立て方)
http://fukuno.jig.jp/671
・部品表とファームウェア
https://www.facebook.com/groups/ichigojam/files/
下の写真はプリント基板バージョン(左上)、ブレッドボードバージョン(左下)、ユニバーサル基板バージョン(右下)と、自分で部品を集めて作ったオリジナル(右上)です。
(プリント基盤バージョン以外の3つには、USB-Serialアダプターを付けています。)
他に必要なのは
- NTSC(コンポジット)入力端子があるテレビかビデオモニター(小型だと2,000円位から)
- PS/2が使えるキーボード(1,000円位から)
- USBケーブル(USBポートからの電源供給)
- USBポートの有る充電アダプタ(ACから直接電源を取る場合)
これだけで簡易なBASIC言語が動作するコンピュータになります。
IchigoJam BASIC
IchigoJamのBASICは、変数名がアルファベット一文字のみだったり、配列が101個の数値が入る1種類しか使えないなどの制約が有る一方、デジタル(一部アナログ)入力とデジタル出力の拡張がある独特のものです。
→ IchigoJam BASIC リファレンス (PDF版)
→ fu-senさんによる IchigoJam BASIC コマンド一覧
小さいけど凄い
単なるBASICマシンとしてだけでなく、色々な使い方ができるようになっています。
- 4つのデジタル入力(1つはアナログ入力としても使える)が使える
- 4つのデジタル出力が使える
- 画面やキーボードが不要なら 3.3Vのみで動作する
- 内部に3つのプログラムを保存できる(1022Byte x 3)
- 起動時に自動ロード&実行もできる
(ボタンを押しながら電源オンにすると、起動時に LOAD & RUN が動作します) - ファームウェアの書き換えでバージョンアップもできる
つまり、Arduinoのように、電池で単独に動作する電子機器のようなものまでできてしまう潜在能力があります。(利用者の発想次第)
改造メモ:
以下に説明するMacと繋いで使うようにすると、PS/2とビデオの端子が不要になって、コンパクトになるほか、5V電源が不要になるので、乾電池2本(3V)程度で動作するようになります。
打ち込んだプログラムを SAVE しておけば、ボタンを押しながら電源を投入することで、自動で LOAD 後実行する機能があるので、LEDを使った光るアクセサリー等を創ることもできます。
Macと繋いで利用する
MacとUSBシリアルアダプターで繋いで遊ぶ
IchigoJamには、シリアル接続のピンも有るので、そのピンが使えるように配線を追加することで、USBシリアルアダプタを利用して接続することができます。
USBシリアルアダプタの GND, VCC, TXD, RXD を IchigoJam の該当ピンに(TXD, RXD はクロスして)配線します。
私が動作を確認したUSBシリアルアダプタ:
- AE-UM232R 秋月電子通商
- CH340 USBシリアルモジュール ちっちゃいものくらぶ
(注:CH340 は、OS X をYosemiteにアップデートしてから動作しなかったのですが、http://javacolors.blogspot.jp/2014/08/dccduino-usb-drivers-ch340-ch341-chipset.html?m=1 に有った情報で、動作するようになりました。この方法は Yosemite で新たに導入された KEXT の認証機能を使用しない設定なので、留意してご利用ください)
Macのキーボードとディスプレイを利用する
シリアルポートを使えるターミナルアプリを使うと、PS/2キーボードやTVを使わなくても、程度IchigoJamが使えます。
PS/2キーボードの代わりにMacのキーボードを、TVの代わりにMacのディスプレイを利用します。
私は CoolTerm を使っています。
最初に設定で、シリアルポートをプルダウンから選び、Local Echo をオンにして、Connect をクリックして利用を開始します。
設定の詳細:
Connectをした後、LIST(return) で画面にOKが帰ってくれば、後はそのまま利用できます。(ResetをGNDに接続して離すとIchigoJam...
と表示され、初期値になります。)
ただ、BASICのLOCATE等による画面制御は動作しませんので、ゲームアプリなど画面を固定しての利用はできませんが、プログラムの入力などでは便利に利用できます。
ファームウエアの書き込み
IchigoJam のファームウエアはタマにアップデートされます。
その場合、ワンチップマイコンにファームウェアを書き込む必要がありますが、専用のライターが無くても USBシリアルアダプタがあれば、ファームウェアを書き込むことが出来ます。
書き込みに利用するアプリ
- FlashMagic (GUIで書き込みできる。)
- lpc21isp (コマンドラインの書き込みツール)
FlashMagic で書き込む
FlachMagic では、COMポート番号を設定する必要があります。
OS X では、FlashMagicアプリが起動時に、/dev/ を調べてシリアルポートとCOM番号のシンボリックリンクをアプリケーション内のフォルダにセットします。
それを調べるにはターミナルアプリで以下のコマンドを実行すると判ります。
(FlashMagicアプリが「アプリケーション」フォルダ内に有る場合)
ls -l /Applications/FlashMagic.app/Contents/Resources/dosdevices/COM*
いちいちターミナルを開いて実行するのが面倒なので、AppleScript を書いて利用しています。
これを利用すると、簡単に割り当てられたCOMポートの番号が判ります。
→ OS XでFlashMagicを使う場合のCOMポート番号を見つける方法
FlashMagicの設定:
- Select... は LPC1114/102 を選択
- COM Port は調べておいたポート番号を選択
- Step 2のところは
Erase all Flash+Code Rd Port
のチェックを入れる - Step 3のところで
Browse...
を押して書き込む HEXファイルを選択 - LPC1114をISPモードにしておく
ISPモードにする方法
LPC1114のISPとResetピンの両方をGNDに接続し、LEDが点灯したらResetピンを先に外してからISPピンを外す。(LEDが点灯したままになればOK)
- 後は、
Start
ボタンを押して書き込みを開始してFinish
が出るまで待つ。 - 書き込みが完了したらISPモードをリセットするため、ISPピンをGNDにタッチします。
lpc21isp で書き込む
IchigoJamとUSB−Serealアダプターを接続して、FlashMagicのところにあるようにしてISPモードにしてから、ターミナルで次のコマンドのように指定して書き込みます。
$ lpc21isp -bin ichigojam.bin /dev/tty.usbserial-A400FFKN 115200 1200
これも面倒なので、AppleScriptでアプリを書きました。
→ Macでlpc2lispを簡単に利用するためのアプリケーション
Maclpc21isp.appを起動すると、最初に書き込むファイルを選択する大がログが出ます。(.binでも.hexでもOK)
次に、使用する仮想デバイス名を選択して書き込みを開始させます。
(ISPモードに設定しておく必要があります)
表示されるメッセージ書き込みが成功が成功したか確認します。
お楽しみはこれから
これまでやってきたことを纏めてみました。
課題は IchigoJam で何を作るかですが、アイデアがまだ浮かびません。
LEDを点灯させたりセンサーを繋いだりして遊んでいるだけで、そこから先に進めませんが、まだまだ楽しめそうです。
ここまで