ArduinoがあればUSB-TTLシリアルケーブルなんかいらない

電子工作においてパソコンとUSBを使ったシリアル通信をするためには、専用のケーブル(USB-TTLシリアル変換ケーブル)が必要となります。まともなケーブルであれば1500円前後しますし、Amazonで200円程度で売っている激安変換ケーブルは公式のドライバーが古く、Windows 10などの最新のOSでは導入できなくはないのですが、いろいろと手間がかかってしまいます。

ところが、Arduinoがあれば、これ単体でUSBシリアルケーブルを代用することが出来ます。わざわざ単体を強調したのは、特別なスケッチを書き込む必要が一切無いからです。

一般的なArduinoにはAVRマイコンが搭載されていることは多くの方がご存じだとは思いますが、Arduino Unoを始めとしたシリアルモニターが可能なモデルには、マイコンのすぐそばに小さなIC(Arduino Uno R3であれば「ATmega16U2」)が搭載されています。

ATmega16U2

このチップにはUSBコントローラーが搭載されており、このチップを介することで、USBによるシリアル通信を実現します。つまり、このチップを単体で稼働させることができれば、ArduinoがUSB-TTLシリアルケーブルの代替品になるというわけです。

ここからは海外の情報をもとに編纂した内容であることを前提にお読みいただきたいのですが、単体で稼働させるには基本的にメインのAVRマイコン(UnoならATmega328P)を抜くだけでOKです。シリアル通信ができる機種であれば、理論上はArduino互換品でも同様の効果が得られるはずです。

とはいうものの、使うたびにチップを抜き差ししているとピンが欠けてしまうリスクもあります。そこで、より簡単な方法としてArduinoのRESETピンとGNDピンをショートさせてしまう方法があります。こうすることで、マイコンが機能しなくなり、マイコンを抜き取った状態と同じ状況を作ることが出来ます。

最小配線図
[最小配線図]


UARTを使った通信が利用されるケースとして、ワンチップマイコンのデバッグや、Raspberry Piでのドライバーモニターなど、もっぱら電子工作プログラミングのデバッグが挙げられます。ですが、ジャンク大好き人間にとって有名な活用方法があります。

それがこのチェーン店のリサイクルショップでなら捨て値で買える、某通信会社のデジタルフォトフレーム(私はブックオフで780円で買いました)。このフォトフレームの基盤にはUART端子があり、これを介してカスタマイズされたAndroidアプリをインストールすることで、B-CASカードのみで、フルセグのデジタル放送を視聴できるようになるのです。

某社フォトフレームの基盤

それでは実験をしてみましょう。やり方はほかの方のブログなどで語り尽くされているので、ググって得られた情報をもとに、基板上のTX、RX、GND端子をArduinoのRX、TX、GNDピンにそれぞれ接続します。この写真では、単線ワイヤーを半田付けしたその先に、鰐口クリップをかませています。

配線例

Arduino IDE(シリアル通信ドライバーが含まれている)をパソコンにインストールしているのを確認して、オープンソースプロジェクトの通信ソフト「Tera Term」を起動しましょう。ここでArduinoのCOMポートを接続先として指定し、転送レートを調整すれば、このようにバッチリとデータを送受信できます。

シリアル通信の成功例

もちろん、改造は自己責任で。

カスタムアプリ導入結果
 | 2017年8月7日