Arduino(ATMEGA328P)をNゲージに載せてみました。
電子工作を始めたころから、鉄道模型にマイコン制御を組み込みたいと思っていました。
とりあえず、20年前に購入したNゲージを引っ張り出してSLの走行をためしました。
最初、レールからの給電がうまくいかず。レールみがきから始めました。
それから3か月ようやくマイコン搭載の車両の走行が実現出来ました。
概要
Nゲージ車両にはマイコンATMEGA328Pを搭載、コントローラからIRによる指令を受信し、モータードライバを介して、モータを制御し、前進、停止、後退、速度調整を行います。
車両搭載/コントローラ マイコンの選定
搭載マイコンは Texas InstrumentsのMSP430、Microchip Technology ATMEGA 考えています。 搭載スペースでは MSP430 開発の手軽さでは ATMEGA。とりあえず ATMEAG328Pを選択しました。
コントローラ用のマイコンも開発の手軽さでArduino Nanoを選択。
Nゲージ車両 |
※モータドライバ、ATMEAG328P、2200uFコンデンサーの配置がポイント、配置を間違えると、発車、停止、前進後進切替え時にマイコンが暴走、制御不能に、
Nゲージコントローラ |
※意外と、電動ポイントの駆動に電流が必要なことが判明、1000uF~4700uFのコンデンサに電荷をため込み、一気に放電させることでなんとか 電動ポイントの駆動に成功。
極性(+/―)の反転用にモータドライバを使用。
(コンデンサー/モータードライバ間に抵抗を配置して、過電流の防止を試みたが失敗、いろいろやって 2200uF のコンデンサを採用しました。)
マイコンのプログラミング 開発環境
開発環境はArduinoIDEを使用します。
ボードマネージャで 車両搭載マイコン ATMEAG328Pの場合Arduino Unoを選択、コントローラ用のマイコンの場合 Arduino Nano を選択して プログラミングを行います。
ATMEAG328Pのプログラミングについて
ATMEAG328Pのプログラミングは、Aruduino UNO R3 自体に 取り外し可能な ATMEAG328P が搭載されているので Arduino Unoとしてプログラミングして、プログラムの書き込み後、UNOから取り外し、Nゲージ車両に搭載します。
※ Arduino IDEでのプログラミングで ピン「D9」 を使った場合 ATMEAG328Pでは PB1 15ピンを使うことになる。
マイコンのプログラミング 実装
今回のプログラミングの中心は 赤外線通信です。参考のプログラムコードはArduino IDEのスケッチ例から取得しました。
IR通信 送信側(Nゲージコントローラ側)
Nゲージコントローラ側のプログラミングはスケッチ例/IRemote/IRsendRawDemoを参考にしました。
(※IrSender.sendRaw_P()を使用)
IR通信 受信側(Nゲージ車両側)
【きむ茶工房ガレージハウス】 ◆ 赤外線リモコンを送信器にして何か動かす記事さんのコードを拝借
赤外線リモコン受信モジュールの信号の Hi/Low の 間隔を測り 受信データをビットパターンで取得する。
0 件のコメント:
コメントを投稿