The TK-80 automata.

■これは？
・名前を「The TK-80 automata.」といいます。
・日本初のマイクロコンピュータキットである「TK-80」を、自動操作してしまおうというものです。
・「The TK-80 automata.」は、「TK-80」のキーマトリクスに接続され、人間のキー入力をシミュレートします。
・「The TK-80 automata.」内蔵の「TK-80」用プログラムを自動入力するので「TK-80」側になにか入力しておく必要はありません。
・超簡易Webサーバを搭載し、Webからの操作にも対応しています。


■できる事(モードは電源投入時にロータリースイッチで指定できます)
MODE-0:デモモード。LEDに「hello from TK-80.」を表示するプログラムを連続入力・実行します。
MODE-1:telnetモード。Telnet接続を待ちうけ、送信された文字列を表示するプログラムを自動生成し、入力・実行します。
MODE-2:Webサーバモード。超簡易Webサーバを起動し、フォームから送信された文字列を表示するプログラムを自動生成し、入力・実行します。
MODE-3:TCP/IPキーパッドモード。Socket接続を待ちうけ、送信された文字をキー入力として「TK-80」のキーを押します。

「MODE-0」は、XPortが接続されていなくても機能します。TK-80の動作確認と鑑賞にぴったり。


■構成
Ethernet←(TCP/IP)→XPort←(UART)→PSoC←(PIO/キーマトリクス)→TK-80


■必要な物リスト(「images」フォルダの画像も参考にして下さい)
・Cypress社 PSoC CY8C29466-24PXI　１個
	http://akizukidenshi.com/catalog/g/gI-01441/

・PSoC MiniProg　１個
	http://akizukidenshi.com/catalog/g/gM-01574/
	PSoC書き込み器。FirstTouchキットではダメなので注意。

・Lantronix社 XPort-04R　１個
	http://www.wakamatsu-net.com/cgibin/biz/psearch.cgi?page=0&word=LANTRONIX
	Proではなく、ノーマルのもの。↑の物は03Rですが、店頭で04Rが買えます。

・XPort2.54mmピッチ変換基盤 XPCB　１個
	http://www.wakamatsu-net.com/cgibin/biz/psearch.cgi?page=0&word=LANTRONIX
	ユニバーサル基盤で作る場合はあった方が良いです

・TLP521-4　３個
	http://akizukidenshi.com/catalog/g/gI-02888/
	フォトカプラ４回路。TK-80との絶縁用。

・100Ω集合抵抗 ８回路９ピン　３個
	http://www.sengoku.co.jp/mod/sgk_cart/search.php?multi=M9-1-101J

・１６進ロータリースイッチ  ５ピン　１個
	http://www.sengoku.co.jp/mod/sgk_cart/search.php?multi=FR01-KR16P
	正論理。出力ピン４本が片側に寄っていて、高さの低いものが良いです

・LED 3mm 1.9〜3V 20mA程度のもの　緑/８個　黄/３個　赤/１個
	http://www.sengoku.co.jp/mod/sgk_cart/search.php?multi=SDL-3N4STR
	ポート動作確認用。３色あるとベター（PA=緑、PB=黄、RESET=赤）。

・２色LED 5mm 1.9〜3V 20mA程度のもの。　１個
	センターアノード（＋）で３本足の物。無ければLED×２でも。システム動作確認用。

・100Ω抵抗　１個
	２色LEDの電流制限用

・TOSHIBA TA48033S 3.3V 1Aレギュレータ　１個
	http://akizukidenshi.com/catalog/g/gI-00534/
	他の物でも3.3V 500mA程度供給できればOK。

・電源出力用バイパスコンデンサ 100μF 25V程度の物　１個
	2010/04/01現在、秋月で↑を買ったら付属しています。

・バイパスコンデンサ セラミックコンデンサ 0.1μF　３個
	2010/04/01現在、秋月で↑を買ったら、１つのみ付属しています

・ユニバーサル基盤 サンハヤト ICB-504　１個
	http://www.sunhayato.co.jp/products/details.php?u=270&id=07002
	ある程度の大きさがあれば、なんでもOKです。

・ピンヘッダ メス 40ピン程度
	http://akizukidenshi.com/catalog/g/gP-01591/
	折って使える物。

・ピンヘッダ オス 40ピン程度
	http://akizukidenshi.com/catalog/g/gC-00167/
	折って使える物。PSoCのISSP端子、TK-80のPIO-A、PIO-Bに使います。


■秋葉原で１日で買い揃えるには(2010/04/01版)
・秋月電子
□PSoC MiniProg　１個
□Cypress社 PSoC CY8C29466-24PXI　１個
□TLP521-4　３個
□TOSHIBA TA48033S 3.3V 1Aレギュレータ　１個
□ユニバーサル基盤 サンハヤト ICB-504　１個

・千石電商
□100Ω集合抵抗 ８回路９ピン　３個（在庫切れの時は、ラジオデパート1,2Fの店に豊富）
□１６進ロータリースイッチ  ５ピン　１個
□LED 3mm 1.9〜3V 20mA程度のもの　緑/８個　黄/３個　赤/１個
□２色LED 5mm 1.9〜3V 20mA程度のもの。　１個
□バイパスコンデンサ セラミックコンデンサ 0.1μF　２個
□100Ω抵抗　１個

・若松通称
□Lantronix社 XPort-04R　１個
□XPort2.54mmピッチ変換基盤 XPCB　１個


■くみたて方
１・「hardware」フォルダの回路図、「images」フォルダの写真を参考に、部品を基盤に組みます。
	集合抵抗は、８回路中、４回路しか使わないので、残りの足を切っておくと、配線が楽になります。
２・まだTK-80には接続せず、XPortも外しておいて下さい。
３・PSoC MiniProgから、HEXファイル(「psoc_software\tk80_automata.hex」)をPSoCに書き込みます。
４・モードスイッチ「０」を選択してPSoC Programmerの「Toggle Power」ボタンを押し、MiniProgから電源を供給します。
	・うまく作成できていれば、モード０が動作し、LEDが点滅するはずです。
	・XPortの1番ピン(GND)と2番ピン(VCC)の間の電圧が3.3Vになっているか確認して下さい。5V出ていると、XPortが死にます。
５・PSoC Programmerの「Toggle Power」ボタンを押し、MiniProgから電源を一旦落とします。
６・XPortを接続します。
７・モードスイッチ「０」のまま、PSoC Programmerの「Toggle Power」ボタンを押し、MiniProgから電源を供給します。
８・Lantronixデバイスインストーラーにて、XPortの設定を以下の画像のように変更して下さい。
	Channel1→SerialSettings
		画像：docs/xport_config_serial.png
	Channel1→Connection
		画像：docs/xport_config_connection.png
９・ブレッドボード用ジャンパワイヤ等で、JP3の１番から順番に、PA0-7、PC4-6、RESET(RST)、GND（TK-80側）となっているので、その通りにTK-80と接続します。
	TK-80側のPA,PCは、数字の順番どおりになっていないので、シルク印刷に注意して下さい。

以上で完了です。モードを切り替えて遊んでください。


■遊び方。
・MODE-0:デモモード
　LEDに「hello from TK-80.」を表示するプログラムを連続入力・実行します。
このモードでは、XPortが接続されていなくてもかまいません。電源を投入すればOKです。

・MODE-1:telnetモード
　Telnet接続を待ちうけ、送信された文字列を表示するプログラムを自動生成し、入力・実行します。
XPortのIPが「aaa.bbb.ccc.ddd」の場合、XPortのデフォルトのポート番号は「10001」なので、コマンドラインから、
>telnet aaa.bbb.ccc.ddd 10001
で接続後に文字を入力、リターンキーを押すと、入力した文字列を表示するプログラムが生成され、TK-80上に入力・自動実行されます。

・MODE-2:Webサーバモード。超簡易Webサーバを起動し、フォームから送信された文字列を表示するプログラムを自動生成し、入力・実行します。
　Webブラウザの接続を待ちうけ、フォームから送信された文字列を表示するプログラムを自動生成し、入力・実行します。
XPortのIPが「aaa.bbb.ccc.ddd」の場合、XPortのデフォルトのポート番号は「10001」なので、Webブラウザから
http://aaa.bbb.ccc.ddd:10001/
のURLにアクセスするとフォームページが表示されます。フォームに表示したい文字列を入力し「GO」ボタンを押すと、
入力した文字列を表示するプログラムが生成され、TK-80上に入力・自動実行されます。

・MODE-3:TCP/IPキーパッドモード
　Socket接続を待ちうけ、送信された文字をキー入力として「TK-80」のキーを押します。
TK-80のキーがそれぞれ、１文字に対応しています。文字とキーの対応は、下記ソースコードを参考にして下さい。
「software\tk80_automata\tk80_automata\tk80_automata\main.c」
うまく使えば、iPhoneとかからTK-80がコントロールできたりします。意味はさておき。


■実装予定機能
・MODE-4：Twitter投稿モード（現在フリーエリアが足りず未実装。次バージョン予定）
　CMTインターフェイスを利用して、TK-80からTwitterに投稿します。意味はさておき。


■謝辞
21世紀に入って10年経ってもまだ、無限の可能性を感じさせてくれる
NEC μCOM Training Kit TK-80と、その開発者・関係者の方々に深く感謝致します。

また、榊 正憲さん著「復活!TK‐80」とその付録CD-ROMが大変参考になりました。
まとまった資料が存在する事は大変有難かったです。

2010年の現在でも、TK-80がトレーニングキットとして利用できる事を証明しつつ、
このプロジェクトが今は眠っているTK-80の再稼動に貢献できればと願います。


■製作者
Takuhiro Mizuno
http://twitter.com/mizunon
http://www.facebook.com/takuhiro.mizuno

#もし、OLIMEXやP板等でこれをプリントした方がおりましたら、分けてくれるとうれしいです。


■Version
2010/04/01 13:28 初回リリース


■ライセンス
Copyright [2010] [Takuhiro Mizuno]

Apache License Version 2.0（「本ライセンス」）に基づいてライセンスされます。
あなたがこのプロジェクトに含まれるソースファイル「main.c」を使用するためには、本ライセンスに従わなければなりません。
本ライセンスのコピーは下記の場所から入手できます。
http://www.apache.org/licenses/LICENSE-2.0

適用される法律または書面での同意によって命じられない限り、
本ライセンスに基づいて頒布されるソフトウェアは、明示黙示を問わず、
いかなる保証も条件もなしに「現状のまま」頒布されます。
本ライセンスでの権利と制限を規定した文言については、本ライセンスを参照してください。 

[EOF]
