レトロでハードな物語

レトロなゲーム機・マイコン・中古デバイスなどをArduinoやAVRで再活用する方法を模索しています。

Arduino Pro MiniとMAX232の接続

2019年01月18日 | 電子工作

Arduino Pro Mini互換機は低価格で気軽に利用できるのですが、USBシリアル機能がなくPCと接続するときに何らかのデバイスが必要になります。前回のようにDigisparkを介してつなぐのも1つの手段ですが、スケッチの作成にひと手間必要です。ちょっとした通信を行なうだけなら、Arduino標準搭載のシリアルかI2Cのどちらかを利用することになるでしょう。普通I2CインターフェイスはPCに搭載されていないので、結局はシリアル接続一択です。

Arduinoでシリアル通信を扱うのはとても簡単です。Pro Miniに接続して使える製品もたくさんありますが、せっかくなので勉強も兼ねて自分で作ってみることにしました。使う部品はこれです。



以前の投稿でちょっと触れたポケコンPC-E200用のRS-232Cレベルコンバーターです。ポケコンの書籍を見ながら自作しました。Arduinoをはじめるずっと前に製作したほぼ唯一の電子工作です。この程度の回路でも製作に結構苦労した記憶があります。

ポケコンもArduinoもシリアル端子が5Vなので、PCの最大15VのRS-232C端子にはつなげません。そのため電圧を変換するレベルコンバーターというICが必要になってきます。ICには色々ありますが、この電子回路にはMAX232CPEを使いました。5V動作なので手持ちのPro Miniにそのまま使えます。
ポケコンが壊れて以来ずっと使わずに放置していましたが、Arduinoのインターフェイスとして再び活用してあげましょう。

ポケコンとArduinoではシリアルインターフェイスの信号線が違うので、この回路そのままでは利用できません。一度ばらしてから組み立て直すことにしました。MAX232をArduinoにつなぐ記事はネットに山ほどあり、製作にはそれほど苦労しませんでした。今回はこちらのサイトの回路図を主に参考にして製作しました。



以前の回路と比べて部品点数も減り随分スッキリしました。RS232CのケーブルはPCのセントロニクス準拠のプリンタケーブルを再利用しています。今となっては絶対に使うことないケーブルだと思うので、容赦なくぶった切りました。ただRS-232Cのコネクタ部分がDサブ25ピンなので、Dサブ9ピンに変換するコネクタをハードオフで¥100で購入しました。レトロなデバイスやケーブル等を入手するのにハードオフはかかせませんね。

Pro Miniにシリアルデータをそのままエコーバックするスケッチを書き込んで、PCのシリアル端末(UbuntuのGTKterm)から文字を入力してみるとあっけなく動作しました。データを正常に送れる通信速度は38400bpsまででした。

これでPro MiniとPC間の連携も簡単になりました。もう一つ良かったのが、次のデバイスをPCから利用できるようになったことです。



Pro Miniを使ったデバッグ装置です。といっても大したものではなく、シリアル通信で入力された文字を単にI2C接続のOLEDに表示するだけのものです。ただ、OLED表示だけではもったいないので前に投稿したサーマルプリンタにも印字出来るようになっています。
Arduino単体でもOLEDデバッグは出来ますが、AdafruitのSSD1306ライブラリは結構メモリを消費してしまいます。そこで文字表示に特化したSSD1306Asciiというライブラリを使用していたのですが、デバッグ表示のために毎回スケッチにデバイス定義やデバッグコードを記述するのも面倒なので思い切って別デバイスにしてしまいました。これならシリアル利用の定義は一行で済みますし、表示もシリアルのプリント文1つで簡単です。

これまでArduinoのみでの利用でしたが、今回製作した回路でPCから直に表示・印刷できるようになりました。特にサーマルプリンタへの印字はちょっとしたメモ代わりに使えてわりと便利です。



Pro MiniとPCの接続のために作ったレベルコンバーター回路ですが、他にもDOS/Win16ベースのPCやNECのPC-9821など古いマシンとArduinoをつなぐことも出来るようになりました。Arduinoを介してこれらのマシンをなにかに活用できたら面白いですね。



最新の画像もっと見る

コメントを投稿