【Ras2-D2プロジェクト】Arduino Pro Mini (クローン)を使いこなす。スケッ | 「藍染 迅(超時空伝説研究所改め)」の部屋

「藍染 迅(超時空伝説研究所改め)」の部屋

小説家ワナビーの「藍染 迅(あいぞめ じん)」です。

書籍化・商業化を目指し、各種コンテストに挑戦しながら、カクヨム、小説家になろう、エブリスタ、アルファポリスなどに作品を投稿しています。

代表作は異世界ファンタジー「「飯屋のせがれ、魔術師になる。」。

USBシリアル変換アダプターの利用ではまりました。

Arduinoを自作ロボットへの組込みボードとして活用する方針で、いろいろ勉強中です。
当然、制御用プログラム=スケッチを書き込まねばならないのですが、Arduinoの種類によってやり方が変わってきます。

Arduinoにもいろいろあるのです。

コストの観点と組み込みスペースの観点から、できるだけ小型のものを選びたいところです。

ネットで探した結果、
  • Arduino Pro Mini
  • DigiSpark
の2モデルがよさそう。

当研究所の購入品はどちらも「クローン」だと思いますが、スペックはオリジナルと同じ(はず)です。

前者のPro MiniにはUSBポートがありません。低コスト化、省スペース化のために省略されているのですね。
この辺は、メーカーさんの粋な配慮?といえます。

よって、スケッチを書き込むためには、何らかの形でUSB-->シリアル変換の仕掛けを準備してやる必要があります。

Arduinoを使ってArduinoに書き込むということができるらしいのですが、何かのときにUSB通信ができたほうがよさそうな気がしたので、外付けのUSB-シリアル変換モジュールを購入してみました。

ふたつ揃った姿がこちらです。

イメージ 1

左がArduino Pro Miniクローン、右がUSBシリアル変換アダプターです。
それぞれ850円+送料、300円+送料にて購入。

今から考えると、USB変換アダプターのチョイスがあまりよくなかったようです。

結果から発表しますと、なかなか書き込みがうまくいかず、悩みました。
よく調べずに適当に始めたのがいけませんでした。

以下、はまったポイントと解決策を記録しておきます。

■Arduinoへの接続方法:

ここで、完璧なポカをしでかしました。
正しくは、

・TXD-->RXI
・VIO-->VCC
・RXD-->TXD
・GND-->GND
(・DTR-->GRN)

という形で、USBシリアルアダプターからArduino Pro Miniにつないでやる必要があります。
(「DTR-->GRN」接続については、後述)

これをよく考えもせず、

・RXD-->RXI
・TXD-->TXD

とつないでいました。「R」と「T」はクロスしなければいけないことを知らずに。

これでは通信できません。
「送信」と「送信」をぶつけあっているようなことになっていたわけですね。

ああ、美しきかな無知。

で、「( )」でくくった「DTR-->GRN」の接続なんですが、今回のUSBシリアル変換アダプターには「DTR」というピンがありません。
ないものはつなぎようがないって話で。

調べてみると、「DTR」とは「Data Terminal Ready」の略らしい。
素人なりに解釈したところでは、Arduinoに対してリセット信号を送るために使われているようです。

リセット信号を受け取ると、Arduinoはスケッチ書き込みを待ち受けるモードになる。
逆に言うと、それがないとArduinoはスケッチ実行モードのままなので、書き込みを受け入れない=エラーになるというわけです。

それがリセットボタンの役割なのね。
なんでボタンがついているのか、知らずにいました。

ああ、勇ましきかな無知。

■対策その1:

・Arduino Pro MiniとUSBシリアル変換アダプターを、正しく接続する。
・Arduino IDE(PCソフト)にて、スケッチ書き込みを指示する。
・コンパイルが終了し、Arduinoへの書き込み動作が始まるタイミングで、Arduinoのリセット・ボタンを押す。
・めでたく書き込みができるはず。

■対策その2:

・USBシリアル変換アダプターの肝はIC=PL2303HX
メーカー資料を読むと、#2ピンが「DTR」に当てられている。
・ならば、#2ピンからジャンパーを飛ばして、Arduinoの「GRN」ピンにつないであげればよいのでは?
・リセット・ボタンを押さなくても、スケッチ書き込みができるはず。


はてさて、目論見通りに成功するのか?
実験してみましょう!

■結果:

というわけで、対策その1を試したところ、あっけなくスケッチの書き込みに成功しました。
ジャンクRCにつないでみての「実車試験」でも、無事に自動操作成功!

Arduino Pro Mini実用化のめどを得ました。
やったね。コンパクトになるわ。

一方、リセットボタン押し下げだけでうまくいってしまったので、対策その2は実施する必要がなくなってしまいました。USBアダプターが塩ビ?でくるまれているので、ジャンパー線を飛ばすのも大変そうなんですよね。

ということで、対策その2は当面?保留です。
別に困らないので。

理論的にはいけると思いますが……。(負け惜しみ)

ええ、総括:はまりましたが、解決しました。

これもまた大いなる進歩なのであります。