ORANGE pico 向けUSBシリアル変換モジュールを作る

# ORANGE pico とは

[ORANGE pico](http://www.picosoft.co.jp/orange/) は、ピコソフト株式会社が出している、電源 (USB 5V)・モニター (NTSC コンポジット信号)、キーボード (PS/2対応) を接続することでBASIC言語によるプログラミングができる小さなパソコンである。

# ORANGE pico とシリアル通信

ORANGE pico は、シリアル通信 (UART) によりパソコンやその他のハードウェアとの連携ができる。
type A・type E・type S には、USBシリアル変換モジュール **TTL-232R-3V3** との接続に適した6ピンの端子が用意されている。
このモジュールのシリアル通信側は、以下のピン配置になっている。
電源は**5V**、信号は**3.3V** (TTLレベル) である。

|ケーブルの色|信号|
|:-:|---|
|黒|GND|
|茶|CTS (制御入力)|
|赤|VCC (5V電源出力)|
|橙|TXD (シリアルデータ出力)|
|黄|RXD (シリアルデータ入力)|
|緑|RTS (制御出力)|

とはいえ、このモジュールは執筆時点では[秋月電子通商](https://akizukidenshi.com/catalog/default.aspx) (M-05840) で3,500円 (税込) と高価である。
そこで、より安価に同様の (端子を1本ずつ接続せず、6ピンを一気に挿すだけでできる) 通信ができる方法を探した。

# シリアル通信の端子の仕様を確認する

ORANGE pico のシリアル通信用6ピン端子は、以下のピン配置になっている。

|ピン番号|信号|
|:-:|---|
|1|GND|
|2|NC|
|3|5V (電源入力)|
|4|RXD (データ入力)|
|5|TXD (データ出力)|
|6|NC|

TTL-232R-3V3 とはTXDとRXDが逆になっており、直結できる仕様になっている。
電源入力は三端子レギュレータの入力に接続されており、3.3Vではなく5Vを入力するのが妥当である。
一方、RXDとTXDはそれぞれマイコン (PIC32MX170F256B) のRA4とRB4に接続されている。
これらの端子は5Vトレラントではなく、絶対最大定格における入力電圧の最大は3.6V (VDD+0.3V) である。
よって、入出力電圧が5VのUSBシリアル変換モジュールを直結することはできない。

# 条件を満たす市販品

[FTDI USBシリアル変換アダプター Rev.2 — スイッチサイエンス](https://www.switch-science.com/products/2782)

![USBシリアル変換アダプター](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99656/f0d19d1f-af92-8e15-5871-ad63072434d2.jpeg)

このモジュールは、執筆時点で税込1,100円で販売されており、以下の条件を満たす。

* 5Vの電源を供給できる (3.3Vと切替可能)
* 通信の電圧は3.3V
* ORANGE pico に直結可能なピン配置

出力制御信号はRTSではなくDTRとなっているが、ORANGE pico では制御信号は接続されていないので関係ない。

実際に ORANGE pico type S に接続してみると、干渉せず接続することができた。
しかし、接続用のUSB端子が上に出ており、使いにくさを感じた。

![接続した様子](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99656/1ef816b6-54f0-7bc3-6ceb-2f0559e6d4da.jpeg)

# 直結できるモジュールの自作

今回は、以下の材料を用いて ORANGE pico への直結が可能なUSBシリアル変換モジュールを作製した。

|名前|個数|秋月通販コード|金額(税込、執筆時)|
|---|:-:|:-:|--:|
|ＦＴ２３４Ｘ　超小型ＵＳＢシリアル変換モジュール|1|M-08461|780円|
|両面スルーホールガラスコンポジット・ユニバーサル基板　Ｆタイプ|1|P-12731|15円|
|Ｌ型ピンソケット　１×６（６Ｐ）|1|C-03795|20円|
|スズメッキ線（０．６ｍｍ　１０ｍ）|適量|P-02220|(330円)|
|日本アルミット　ヤニ入りハンダ　こて先食われ対策　０．８ｍｍ　１００ｇ　鉛フリー|適量|T-12535|(2,240円)|

![材料](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99656/f64a211c-7cc7-afcd-69ea-02c29a32b0e1.jpeg)

基板上に、シリアル変換モジュールとピンソケットを以下のように配置し、配線した。
左が基板を上から見た図、右が基板を下から見た図である。
青色の線は、基板裏側での配線を表す。

![配線図](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99656/4e0ce11d-018a-a664-b61b-18a678d40110.png)

これに基づいて実際に組み立てを行うと、以下のようになった。

![実装した図](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99656/9ab28006-c1e3-58b3-d401-80db4fe06b92.jpeg)

ORANGE pico に接続すると、以下のようになった。
USBの接続が横になり、使いやすくなったように思える。

![作製したモジュールを接続した様子](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99656/587f0f07-4bc3-62dc-f5c3-7abbd1dba802.jpeg)

USBをパソコンに接続し、通信も行うことができた。
制御信号には対応していないが、ORANGE pico 側でも制御信号は接続されていないため、関係ない。

これで、1,000円以下という低価格で ORANGE pico に直結可能なUSBシリアル変換モジュールを作ることができた。

# 仕上げ

ここまでの製作で動くUSBシリアル変換モジュールを作ることができたが、ピンの役割が表記されておらず、使い方がわかりにくい。
そこで、テプラを用いてピンの役割を明示し、わかりやすくした。

今回は、TEPRA PRO SR-MK1 と、黒字に白文字、幅6mmのテープを用いた。

![テプラ本体とテープ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99656/12c6a205-1727-9161-25d5-e7729a9f0110.jpeg)

ラベルの印字内容を画像で作製した。

![ラベルの印字内容](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99656/1dfdd823-6025-ac83-d53b-4890e4c5e2d0.png)

試した結果、今回の条件 (テープ幅6mm、TEPRA LINK 2 に画像を読み込んでそのまま印刷する) では幅71px、1端子あたりの高さ36px (360dpiでそれぞれ5mm、2.54mm相当) にするとちょうどいい大きさになることがわかった。
以下の写真のラベルは、左から幅57px (4mm相当)、71px (5mm相当)、85px (6mm相当) の画像を使用したものである。

![画像幅の実験](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99656/89111997-5b74-a805-edeb-f4adb83edaa0.jpeg)

ちょうどいい大きさのラベルの余計な部分を切り取り、ピンソケットに貼ると、以下のようになった。

![ラベルを貼った様子](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99656/07935410-cb10-5e20-b8f3-7e0f068d3755.jpeg)

テープの背景もピンソケットの色も黒なので、遠くから見れば境界が目立たず、いい感じになっている。

# 結論

小型のUSBシリアル変換モジュールと小さい基板、ピンソケットを用いて、比較的安価で ORANGE pico に直結可能なシリアル変換モジュールを作製することができた。
さらに、テプラを利用し、端子の役割をわかりやすくすることができた。