====== IchigoJamについて ====== ====== 概要 ====== IchigoJamはこどもパソコンのコンセプトの元に開発された、BASICワンボードパソコンである。 仕様は公開されており配布形態は様々だが、一般には、プリント基板と、そこに半田付けするパーツをセットにしたキットの形で流通している。 利用には、PS/2接続のキーボード、USB micro-Bのケーブル(電源供給用)、ビデオ入力端子のあるディスプレイ(テレビなど)、及び、ビデオケーブルがキットとは別に必要となる。 →[[http://ichigojam.net/|本家]] {{IchigoJam:DSC_0349.jpg}} 写真右がIchigoJam ====== BASIC ====== ====== UARTによる外部との接続 ====== IchigoJamのシリアル通信は、どうも、一般的なそれとはちょっと仕様が異なっているようである。 特に、改行の扱いに関して。 IchigoJam - Raspberry Pi2でつないで常時遊べるようにしようという企みでいたのだけれど、minicom で接続すると、改行がうまく扱えない。 基本的にminicomは改行で CRのみ送出するが、IchigoJamはLFを待っている。まあ、これは、改行の代わりに Ctrl+Jを使えばLFを送出出来るのでなんとか出来なくもない。 が、送られてくる改行がLFのみであるため、CRLFを待っているminicomでは画面がどんどん右に右にと送られていってしまう。 CRだけしか来ないときにLFを付加することは出来るのだがLFだけの場合はお手上げである。 どうしたものかと思案したあげく、「なければ自分で書いてしまえばいいじゃないか」ということで、とりあえず ruby-serialport を利用して書いてしまった。 IchigoJamのシリアルはフロー制御がないので、適当にウェイト入れながら出力しないと文字が溢れてしまう。 最初、このあたりの感じが判らず、一気に一行送りつけたら、文字数が10文字未満程度なら問題なかったが、そこらを越えるとあっという間にアウトになってしまって難儀した。 ウェイトは調整した結果、0.02秒でいいようだということになった。((個体差があるかも知れない)) {{IchigoJam:IchigoTerm.JPG}} 参考までに、拙作の端末ソフトは[[http://www.wildtree.jp/~araki/ichigoterm.zip|ここ]]からダウンロード出来ます。 ====== 子亀 ====== IchigoJamのキットに、12MHzの水晶発振子、シリアル-USB変換、リセットスイッチ、ファーム書き換えようのスイッチ、外部EEPROM用の端子、圧電スピーカを追加する子亀基板を作成。 Ver 1.0.1現在、水晶発振子を外部に追加した場合は、ファームウェアの更新が必要である。 ファームウェアは[[http://ichigojam.net/|公式サイト]]から入手可能である。((正式な公開場所はFacebookらしいが、公式サイトからも入手出来るので、こちらだけ記載しておく。)) ファームウェアの更新には、シリアル接続と、ISPモード(ISP端子とGNDを接続)が必要。ISPモードにするには、ISP-GNDを接続し、またリセット(RESET-GND接続)しながら電源をONにして、その後リセットを開放することで、ISPモードに入る必要がある。 拙作の小亀では、ISP用のスイッチとリセット用のタクトスイッチが設置してあるので、ISPモードにスイッチを切り替えて、タクトスイッチを押しながら電源をONにすることで、ISPモードで起動する。 ファームウェアの更新には、Windowsからなら[[http://www.flashmagictool.com/|Flash Magic]]で、Linuxなら、lpc21isp をそれぞれ利用する。 $ lpc21isp -bin ichigojam_xtal.bin /dev/ttyUSb0 115200 1200 のようにして、更新する。((Flash Magicには .hexファイルの方を使う。)) {{IchigoJam:DSC_0356.JPG}} ====== 孫亀 ====== 上記で作成した子亀基板のEEPROM用端子に接続するためのEEPROM基板を作成。 IchigoJamとEEPROMとの接続には、Vcc、GND、及び IN3/Ex1 の四つの端子を利用するが、LPC1114FN28の端子配列では GND-Vcc-IN4-IN3 とあり、Ex1は離れた別の場所にあり、利便性が悪い。 このため、子亀ボード上に、GND-Vcc-Ex1-IN3と並んだソケットを出し、ここに接続するようにした孫亀ボードにする。 ボード上にはWrite Protectスイッチを搭載する。 {{IchigoJam:DSC_0357.JPG}} ====== プログラム例 ====== * [[エラトステネスの篩]] * [[マルバツゲーム]] * [[IchigoFields]] * [[ヒット・アンド・ブロー]] * [[ヘッド・オン風ワンキーゲーム]] [[start]]