2015年5月20日水曜日

Arduinoプロジェクト:単純シリアル​出力装置

背景:
 組み込み開発などでRS-232Cポート経由でテストコマンドを叩く機会は多い
 しかし第三者(メカ担当者など)にこれを行わせるのは難しい

  ・PCにターミナルソフトをインストールさせ
  ・USB-シリアル変換コネクタを貸出し
  ・ターミナルソフトの設定を行い
  ・コマンドの入力方法を説明…

 考えるだけでも吐きそう
 ボタンを押したらコマンドが出る箱があればいいのに


装置の概要:
 RS-232Cコネクタが生えている箱状の装置
 箱のボタンを押すとプリセットされたコマンドがシリアルポートに出力される
 電源供給はUSBポートから行うものとする(電源のみ、データ通信なし)


材料(と予算):
 ・Arduino Uno(3000円)
        シリアル通信とGPIOしか用いないのでUnoでなくともよい
    ATmega328P単体でもよい
    その場合は電源コネクタを適宜追加すること
 ・タクトスイッチ(10円~)
        押したら導通するものならなんでもよい
 ・線材(?円)
        なんでもよい
 ・箱(?円)
        Arduinoが入れば何でもよい
        100均のタッパとか
 ・D-sub9ピンコネクタ(オスorメス)(50円~)
        対象との接続にRS-232Cケーブルを用いるならばオス、直接接続するならばメス
 ・D-sub9ピンコネクタシェル(50円~)
        AE-ADM3202が内蔵できるサイズであること
 ・5V-RS-232CレベルコンバータAE-ADM3202(500円)
        安くすませるなら他のコンバータに置き換えること
 ・ケーブル用線材
        束ねたシールド線を用いるならば4線以上


制作方法(ハード):
 使用するのは以下のポートのみ
 ・TX
 ・RX
 ・GND
 ・A0(GPIOポートならばどこでもよい)
 ・5V

 ボタン入力部:
  ボタンの片側の端子をGNDに結線
  もう片側の端子をA0ポートに結線

 RS-232Cコネクタ部:
  TX、RX、GND、5Vをケーブル経由でAE-ADM3202に結線
  AE-ADM3202をシリアル9ピンコネクタに結線(直接はんだ付けも可能)
  シリアル9ピンコネクタをシェルに格納

  ※シェルは箱から出すのでケーブル長を考えること
   見栄えを良くしたいならば箱にケーブル用の穴を開け、ケーブルを通した状態で結線すること
  ※シリアルのレベルによってAE-ADM3202のディップ設定を変えること

 アセンブル:
  Arduinoを箱に収める
  箱に穴を開けてボタンを取り付ける
  箱に穴を開けてRS-232Cコネクタ引きずりだす
  USBケーブルの穴を開ける


制作方法(ソフト):

        制作方法(ソフト):
                セットアップ部で以下の設定を行う
                        シリアル通信の設定(ボーレート程度でOK)
                        A0ポートをプルアップして入力ポートに設定

                メインループ内でA0ポートのチェックを行う
                        ボタンが押される=ポートがGNDに接続される=Lレベル
                        ボタンが離される=ポートは浮く=プルアップされているのでHレベル

                ボタンが押された場合にシリアルポートにテストコマンドを出力

        機能の拡張:
                ・ボタンを増やす
                 ボタンを増やすことで出力コマンドを増やすことができる
                ・コマンドを変更可能にする
                 EEPROMに数百バイトの不揮発領域があるため、コマンドを記憶させるには十分な領域
                 ターミナル経由で書き換えられるようにすればビルドをし直す必要はなくなる




作例:ボタン1個タイプ/Arduinoはびんぼうでいいのを使用


0 件のコメント:

コメントを投稿