ボクにもわかる
IchigoJam用 マイコンボード互換機

[IchigoJam メニューへ戻る]
自作 IchigoJam
自作した IchigoJam用プリント基板(マイコンボードの互換基板)


はじめに

 ここでは IchigoJam用 マイコンボードの自作互換基板によるハードウェア製作方法について説明します。IchigoJamの名称は幅広く、「IchigoJam互換機」の名称は誤解が生じる場合があります。ここではIchigoJamマイコンボードのプリント基板の互換ボードを示しています。マイコンへは純正のIchigoJam BASICファームウェアを書き込みます。

 自作マイコンボード互換機の製作の前に、まずは純正マイコンボードを見てみましょう。

純正基板の基板図

 製作の参考のために純正基板の基板図を下記に示します。裏面は全面ベタGNDとなっているので回路としてはこの図だけで理解できると思います。
 電源レギュレータに使用するLDOは左側ピンがGNDの特殊なタイプです(中央ピンにGNDがあるのが一般的)。またPS/2キーボード用のミニDIN 6ピン端子やビデオ出力端子はピンピッチがユニバーサル基板と合わない形状であることが分かります。

純正 IchigoJam
こどもパソコン「IchigoJam」のプリント基板(市販品)

純正 IchigoJam
純正 IchigoJam 回路図 (出典:
https://ichigojam.net/)

 この基板図及び回路図を見れば、ユニバーサル基板を使って回路を組んだことのある人なら、容易に同じ回路が作れると思います。ところで、わざわざ自分で作るなら欲しい機能を少しでも多く載せたいと思います。そこで、本サイトでは圧電スピーカ、ファーム書き換えスイッチ、USBシリアル変換、クリスタル発振子などの機能を追加することにしました。


自作互換基板:キットでは無く部品を買って自作する

 キットを購入するのではなくIchigoJam用マイコンボード(プリント基板)の互換機※を製作する場合は、IchigoJam BASIC のファームウェア書込みが必要になります。USBシリアル変換アダプタを接続できるようにし、ファームウェア書き換え用のスイッチを追加することでファームウェアの書き換えをしやすくしました。ここでは、以下のような部品をそろえて、IchigoJamマイコンボードの互換機を自作します。

IchigoJam用マイコンボード互換機の製作のための部品リスト
部品名 数量 参考価格 備考
LPCマイコン LPC1114FN28 1個 140 ARM Cortex-M0搭載 32-bitマイコン(28ピンDIP)
FTDI USBシリアル変換アダプタ(3.3V) 1個 1,512 ArduinoProシリーズのシリアル接続用を流用
低損失CMOS三端子レギュレータ 3.3V150mA 1個 100 電流制限回路、短絡保護回路搭載品を推奨
高輝度LED 赤 1個 50 汎用品
クリスタル(水晶発振子) 12MHz 1個 30 秋月通販コード P-08669
圧電スピーカー(圧電サウンダ) PKM13EPYH4000 1個 30 秋月通販コード P-04118
ツェナーダイオード 3.6V 1個 10 圧電スピーカ保護用
ポリスイッチ 100mA 1個 30 キーボード接続保護用
超小型スライドスイッチ 1回路 1個 25 ここではファーム書き換え用に使用
プッシュスイッチ(タクトスイッチ) 1個 10 汎用品
抵抗 100Ω×2 470Ω×1 1kΩ×1 100kΩ×2 計6個 60 VIDEO(100,470),EX2(100),LED(1k),SW/RESET(100k)
電界コンデンサー 1μ 1個 20 LDO入力用
積層セラミックコンデンサ 0.1μ 2個 20 デカップリング用、リセット用
ミニDINソケット 6ピン 1個 115 PS/2キーボード用
基板用RCAジャック(黄) 1個 40 RCAジャックDIP化キットも便利
2.1mm標準DCジャック 内径2.1mm 1個 25 ブレッドボード用DCジャックDIP化キットが便利
ICソケット(28P)600mil 1個 20 汎用品
ピンヘッダL型 1×5ピン 1個 10 汎用品
片面ガラス・ユニバーサル基板 Cタイプ 1個 60 秋月通販コード P-00517
超小型スイッチングACアダプタ 5V1A 1個 580 秋月通販コード M-06096

Flash Magic
自作 IchigoJam用マイコンボード互換機の回路図(
拡大)

自作互換基板:IchigoJam用マイコンボードの互換機を製作する

 ユニバーサル基板を使って自作のIchigoJam用マイコンボード互換機を製作します。下図は部品配置図です。左上の黄色の端子はビデオ出力、右上はキーボード端子、右中央は電源回路とACアダプタ用のDCジャックです。マイコンの下には圧電スピーカ用の保護回路とマイコンのデカップリングコンデンサ、タクトスイッチ(左下)用のプルアップ抵抗を配置しました。右下のピンヘッダはUSBシリアル変換アダプタ接続用です。

Flash Magic
自作IchigoJam用マイコンボード互換機の部品配置図

 下図は裏面の配線パターン図です。ビデオ出力端子、キーボード端子の部分は基板に穴あけ加工を行っています。また、通常はDCジャックにも穴あけ加工が必要です。ここでは2.54mmピッチ端子のDCジャックを用いています。
 基板のパターンを配線する際は、なるべく図面どおりにGNDパターンを引いてください。ここではノイズを考慮して配線してマイコンのGNDを中心にGNDパターンを配線しています。また、電源ICレギュレータ(LDO)は一般的な中央がGNDのタイプを用いました。

Flash Magic
自作IchigoJam用マイコンボード互換機の配線パターン図

 マイコンにはVCC端子が2つあり、これらは基板の表面で接続しています。またPS/2キーボードのGNDもマイコンのGNDから表面で接続しています。あと、USBシリアル変換アダプタのRX端子とマイコンのTX端子との接続も表面で配線します。

 ファームウェア書き換え用のISP端子とリセット端子はスライドスイッチに接続しています。ISP端子はスイッチの切り替えでGNDへ、RESET端子は積層セラミックコンデンサを経由してISP端子に接続しています。ISP端子をGNDに切り替えた瞬間にRESET端子もGNDに接続されますが、すぐにコンデンサが充電されてRESET端子がHIGHレベルに戻ります。

(回路に関する参考情報)

 5VのPS/2を3.3V動作のLPCマイコンに直結していますが、5V入力トレラント機能を搭載しているので安心してください。
 クリスタル(水晶)が安定しない場合はマッチング回路が必要です。クリスタルの両端子に33pF程度のコンデンサをGNDに対して並列に追加すれば20pF程度の負荷容量のクリスタルとの整合がとれると思います。
 PS/2端子のポリスイッチを5VのLDOに変更すれば9V電池などによる電源入力に対応することが出来ます。ただしACアダプタを使用する場合は約250mA以上の電流が流れないような過電流保護機能の付いたレギュレータを選びます(PS/2規格上は275mAで遮断することになっている)。なお、純正 IchigoJamではマイクロUSB変換基板上の100mAのポリスイッチで保護しています。
 ファーム書き換えスイッチは簡易的なものです。動作しない場合は再実行することを前提にしています。NXPのマイコンでは初めての試みで、まだ数回しか使っていませんが、今のところ一度も失敗していません。
 タクトスイッチのプルアップ抵抗は通常の動作時はマイコン内部でプルアップされているので不要ですが、SLEEP時の割込みに使用するので、取り付けたほうが良いでしょう。純正 IchigoJamでは1MΩが入っています。しかし、ここで製作するユニバーサル基板はノイズなどでSLEEP解除される懸念があり、100kΩに下げています。(純正 IchigoJamはノイズの影響を受けにくい全面ベタGNDとなっているので1MΩでも安定する)


ファーム書込:Flash Magicでファームウェアを書き込む・書き換える

 IchigoJam BASICのファームウェア(HEXファイル)はjig.jp社の著作物ですが、同社の「IchigoJam ロイヤリティフリープログラム利用規約」に同意することでマイコンに書込んで使用することが出来るようになります。
 ただし、当該ファームウェアを書き込んだマイコンやマイコンを含む製作物を譲渡したり販売する場合は、jig.jp社とのライセンス契約(有償)や承諾などを得る必要があります。

 もしくは、下記からファームウェア書き込み済みのマイコンが販売されているので、ご購入していただくことも出来ます。

 ダウンロードしたファームウェアをマイコンに書き込むには、Flash Magicなどを使用します。Flash Magicはhttps://www.flashmagictool.com/からダウンロードすることが出来ます。

 マイコンボードをUSBシリアル変換アダプタ経由でパソコンに接続し、マイコンボード上のファーム書き込みスイッチを左側にスライドしてマイコンをファームウェア書き込みモードに設定します。当方オリジナルプリント基板の場合はSW4を押すだけで書き込みモードに推移します。そして、Flash Magicを起動します。

Flash Magic
Flash MagicでIchigoJam BASICのファームウェアを書き込む

 設定「Step 1」にはCom Portの部分にUSBシリアル変換アダプタのCOMポート番号を入力します。「Step 2 - Erase」はマイコン内のフラッシュのブロック消去です。少なくともブロック0〜4はプログラム領域なので消去します。ブロック5,6,7はそれぞれプログラム保存用の領域なので消去すると保存済のBASICプログラムも消えます。
 「Step 3」ではHex Fileの部分にダウンロードしたファームウェア(HEXファイル)を指定します。クリスタルを使用する場合は「ichigojam-xtal.hex」を指定します。
 これらの設定を終えたら「Step 5」の「START」ボタンを押して書き込みます。書き込み後はマイコンボード上のファーム書き込みスイッチを右側にスライドします。


パソコン接続:製作したIchigoJam用マイコンボード互換機の動作確認

 まずはTeraTermなどのターミナルソフトでIchigoJam用マイコンボード互換機に接続してみます。速度は 115,200 baud、8ビット、ノンパリティです。またIchigoJamの処理速度に対応するために送信遅延を25ms/字、250ms/行と設定します。

TeraTerm
ターミナルソフトの通信設定の例

 IchigoJamの改行コードは「LF」です。受信には「LF」を送信には「CR+LF」を選択します。またローカルエコーのチェックは必須です。

TeraTerm
ターミナルソフトでIchigoJamに接続するための設定

 設定が出来たら接続してみます。ターミナルソフトからキーボードで「L」「E」「D」「スペース」「1」と「Enter」キーを入力してみてください。「LED 1」はLEDを点灯させる命令です。正しく動作していればLEDが点灯します。
 また、「BEEP 10」と入力するとブザー音がなります。

TeraTerm
ターミナルソフトでIchigoJamの動作確認を行っている様子

 先にPS/2キーボードとテレビを繋いで同じことを確認しても良いのですが、大人の方々は、IchigoJamのすぐ近くにパソコンがあると思いますので、シリアルの方が先に確認できるのではないかと思いました。
 もちろんPS/キーボードを接続した状態でもターミナルソフトからの入力を受け付けます。とくにプログラムの転送をターミナルソフトから行えるメリットは大きいです(方法は後述)。
 ただし、テレビモニタとターミナルソフト上の表示は必ずしも一致するとは限りません。例えば、ターミナルソフトのカーソルキーをIchigoJam側は解釈してくれません。また、文字の表示位置を指定するLOCATE文はテレビモニタ上のカーソル位置にしか反映されません。LOCATE文を使うとターミナルのカーソル位置とモニタのカーソル位置が合わなくなり、例えばモニタ上のカーソルの部分にコマンドがあった場合に「Enter」を押して意図しない命令が実行されてしまう懸念もあります。(ターミナルソフトを使った場合のCLS文やLOCATE文のサポートを期待しています。)

IchigoJam 0.9.8 by @taisukef
OK
LED 1
OK
BEEP 10
OK

 上図をプログラムにして実行した例を以下に示します。BASICでは最初に数字(行番号)が無ければ即実行するコマンドとして受け付け、行番号を付与するとプログラムになります。プログラムは「RUN」で実行することが出来ます。

IchigoJam 0.9.8 by @taisukef
OK
10 LED 1
20 BEEP 10
RUN
OK

パソコン接続:テストプログラムを転送してみよう

 ここではテスト用のプログラムを紹介します。ターミナルソフトをお使いの場合は下記のプログラムをコピーしてターミナルソフトへペーストすればプログラムの転送が行えます。ただし、IchigoJamの処理能力の問題で正しく転送できない場合があります。こういった場合ターミナルソフトの送信遅延時間を増大します。転送したプログラムは「LIST」命令で確認することが出来ます(プログラムの転送に時間がかかるのでLIST命令を実行してから表示されるまでに若干の時間を要します。)。

10 CLS:PRINT "TEST PROGRAM"
20 WAIT 6
30 B=BTN()
40 LOCATE 0,1:PRINT "BUTTON=";B
50 IF B=0 GOTO 20
60 IF A=0 THEN A=1 ELSE A=0
70 LED A
80 BEEP 10
90 GOTO 20

 ここから上記のプログラムの説明を行います(BASICに詳しい方は読まなくて結構です)。最初の数字は行番号です。行番号10は画面を消す「CLS」命令と文字列を表示する「PRINT」命令からなります。文字列は「"」でくくります。次の行番号20は待ち時間です。60で約1秒なので6だと約100ミリ秒の待ち時間です。
 行番号30の「BTN()」は IchigoJam上のボタン状態を取得する命令です。ボタンが押されると1になります。取得した値を変数Bに保存します。行番号40は変数Bの値を表示します。PRINT文の「;」は文字や変数の結合を示します。
 行番号50は「IF」の条件が一致した時(変数Bの値が0の時)に行番号20に移動します。この条件は行番号30でボタンが押されていない0の状態がBに代入された場合に一致します。
 行番号60は変数Aが0の時に変数Aを1に変更し、不一致の時すなわちA=1の時にA=0に変更します。また行番号70はAの値をLEDに出力します(A=0の時に行番号70の「LED」命令でLEDを消灯、A=1の時にLEDを点灯)。
 行番号80でビープ音を鳴らし、行番号90で20行目に移動します。


EEPROM保存:作成したプログラムを保存する

 IchigoJamの電源を切ると作成したプログラムが消えてしまいます。プログラムをマイコン内の不揮発メモリに保存したい場合は「SAVE」命令を用います。読み込みは「LOAD」です。複数のプログラムを保存したい場合は「SAVE 1」のように0〜2までの異なる数字を付与します。
 下図はプログラムを「SAVE 1」で保存し、「NEW」命令でプログラムを消し、「LIST」でプログラムが消えていることを確認してから「LOAD 1」で読み込んで、「LIST」でプログラムを確認した時の様子です。

SAVE 1
Saved 174byte
OK
NEW
OK
LIST
OK
LOAD 1
Loaded 174byte
OK
LIST
10 CLS:PRINT "TEST PROGRAM"
20 WAIT 6
30 B=BTN()
40 LOCATE 0,1:PRINT "BUTTON=";B
50 IF B=0 GOTO 20
60 IF A=0 THEN A=1 ELSE A=0
70 LED A
80 BEEP 10
90 GOTO 20
OK

 SAVEコマンドでマイコンに保存できるプログラム数は3つしかありません。より多くのプログラムを保存したい場合は「1Mbit IスケアC シリアル EEPROM 24FC1025-I/P」を用いることでSAVE番号100〜226の127個ものプログラムを保存することが出来るようになります。
 回路は「http://fukuno.jig.jp/915」を、最新情報や対応EEPROM等については「プログラム保存用 I2C接続 EEPROM IC情報・EEPROM カセット仕様(GitHub)」を参照してください。EEPROMは基板の空きスペースにICソケット8ピンを実装すると良いでしょう。下図に製作例の写真を掲載しています。左側の8ピンのICがEEPROMです。

EEPROM

EEPROM
I2C EEPROMを実装した場合の製作例

 なお512KビットのEEPROM 24FC512でもSAVE番号165〜226で動作するようです。SAVE番号を100〜162にするにはEEPROMの3番ピン(A2端子)をGNDに接続します。


キャラクタ液晶LCDの接続

 こどもパソコン(マイコンボード)IchigoJamにキャラクタ液晶を接続し、文字を表示するハードウェアおよびサンプルプログラムを「キャラクタ液晶LCDの接続」で紹介しています。

IchigoJam + キャラクタ液晶
IchigoJam用キャラクタ液晶LCDの接続

プリント基板を製作する

 IchigoJam用のプリント基板の製作に関する情報を下記に掲載しています。

プリント基板の仕様

  • EEPROM搭載
  • クリスタル搭載
  • 圧電ブザー搭載
  • リセットボタン
  • ファーム書換用ISPボタン
  • Arduino用拡張IOシールド対応(一部の液晶,XBee,モーターなど)
  • ACアダプタ対応
  • 5V 500mA レギュレータ搭載可能(放熱は基板にビス止め)
  • USBシリアルモジュール(Arduino用/秋月)対応
  • USBシリアルICの表面実装可能(前記モジュールと排他)
  • USBコネクタ実装可能(ICの表面実装用/電源用)
  • 小型I2C液晶搭載可能(シリアルモジュールと排他)
  • ノイズ対策対策(XBeeワイヤレス通信時を想定)

製作 IchigoJam
IchigoJam用プリント基板の製作

掲載情報について

  • こどもパソコン IchigoJamを用いた電子工作、応用回路、BASICプログラム等を紹介しています。
  • 当ページの著作権は国野亘が所有します。複製・改変については以下の規定に従ってください。
  • 合理的な手段による著作権表示が必要です。少なくとも「国野亘」の文字を含んでください。
  • 概ね20歳以下を対象にした教育目的での利用については複製・改変・再配布が可能です。
  • FacebookグループIchigoJam-FANでの利用については複製・改変・再配布が可能です。
  • 当サイトに記載された情報には当サイトの管理者が考案・試作して得た成果が含まれています。
    リンクは自由ですが、当サイト記載内容の無断掲載、転用はご遠慮ください(連絡先)。
  • IchigoJam は株式会社 jig.jp の登録商標です。当ページは jig.jp社の作成物ではありません。
    本サイトでは株式会社 jig.jp の商品である機器およびプログラムの呼称として使用しています。
  • 「互換機」の表現は解釈によって不適切な場合があります。本ページではプリント基板の互換機を
    示しています。
  • 当ページの背景画像はライセンス CC BY https://pcn.club/ に基づいて改変したものです。
  • 背景画像中のIchigoJamロゴは CC BY https://ichigojam.net/ に基づいて改変したものです。
  • 出典を明記した情報については前項に関わらず出典元の権利を継承します。
  • 当ページの作成にあたりFacebookグループIchigoJam-FANに掲載された情報を参照しました。
  • 当ウェブサイトの内容や情報については、ご自身の責任でご利用ください。
    製作品などで事故が発生した場合であっても当方は一切の補償をいたしません。

IchigoJam メインメニューへ戻る