リモートコントロール(RC)戦車をつくる【スケッチ_3個のLEDの点灯・消灯】 [RC戦車]
Arduino Pro Miniでスケッチ(プログラム)の書き込みと動作させることができたので、今度はモータを制御することを想定してUP/RIGHT/LEFT/DOWN/SELECTで5つの状態を制御するスケッチを作成しました。モータの状態の代わりに3個のLEDを組み合わせて点灯・消灯させてみます。
【スケッチ】
※#include <IRremote.h>は表示の不具合で全角<>で記載しています。本当は半角<>ですのでご注意ください。
【配線図】
『Fritzing』はブレッドボード図を描けるソフトで、カッコイイ配線図を描くことができます。
"http://fritzing.org/home/"
ちなみに部品を配置してワイヤを描くと通常は直線になるので、部品と重なったワイヤが隠れて見えなくなってしまうので、ちょっとイケてないなって感じでした。。。そこで、部品と重ならないようにワイヤを曲線に描く方法を紹介します。
最初にふつうにワイヤを接続してからワイヤの途中を『Ctrlキー』を押しながらドラッグすると曲がります。さらに別の途中を同じように『Ctrlキー』を押しながらドラッグすると、ワイヤの曲がるポイントを増やすことができます。
【動作検証】
再生できない場合、ダウンロードは🎥こちら
【スケッチ】
#include <IRremote.h> // 赤外線送受信用ヘッダファイル int RECV_PIN = 11; // 赤外線受信モジュール IRrecv irrecv(RECV_PIN); // 赤外線受信用オブジェクトの設定 decode_results results; // 赤外線受信結果を格納する #define POWER 0x10EFD827 #define A 0x10EFF807 #define B 0x10EF7887 #define C 0x10EF58A7 #define UP 0x10EFA05F #define DOWN 0x10EF00FF #define LEFT 0x10EF10EF #define RIGHT 0x10EF807F #define SELECT 0x10EF20DF // set pin numbers: const int RED = 8; // LED(赤)はデジタルピン8に接続 const int YEL = 9; // LED(黄)はデジタルピン9に接続 const int GRE = 10; // LED(緑)はデジタルピン10に接続 // 初期化(電源投入/リセット時1回のみ実行): void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver // initialize the LED pin as an output(ArduinoにLEDが出力であることを伝える): pinMode(RED, OUTPUT); pinMode(YEL, OUTPUT); pinMode(GRE, OUTPUT); } // main loop: void loop() { if (irrecv.decode(&results)) //(★これが無いと動作しない) { switch(results.value) { case UP: //UPなら赤のみ点灯 digitalWrite(RED, HIGH); digitalWrite(YEL, LOW); digitalWrite(GRE, LOW); break; case RIGHT: //RIGHTなら黄のみ点灯 digitalWrite(RED, LOW); digitalWrite(YEL, HIGH); digitalWrite(GRE, LOW); break; case LEFT: //LEFTなら緑のみ点灯 digitalWrite(RED, LOW); digitalWrite(YEL, LOW); digitalWrite(GRE, HIGH); break; case DOWN: //DOWNなら全点灯 digitalWrite(RED, HIGH); digitalWrite(YEL, HIGH); digitalWrite(GRE, HIGH); break; case SELECT: //SELECTなら全消灯 digitalWrite(RED, LOW); digitalWrite(YEL, LOW); digitalWrite(GRE, LOW); break; default: break; } irrecv.resume(); // 受信機をリセットする(★これが無いと1回のみの制御となる) } }
※#include <IRremote.h>は表示の不具合で全角<>で記載しています。本当は半角<>ですのでご注意ください。
【配線図】
『Fritzing』はブレッドボード図を描けるソフトで、カッコイイ配線図を描くことができます。
"http://fritzing.org/home/"
ちなみに部品を配置してワイヤを描くと通常は直線になるので、部品と重なったワイヤが隠れて見えなくなってしまうので、ちょっとイケてないなって感じでした。。。そこで、部品と重ならないようにワイヤを曲線に描く方法を紹介します。
最初にふつうにワイヤを接続してからワイヤの途中を『Ctrlキー』を押しながらドラッグすると曲がります。さらに別の途中を同じように『Ctrlキー』を押しながらドラッグすると、ワイヤの曲がるポイントを増やすことができます。
【動作検証】
再生できない場合、ダウンロードは🎥こちら
リモートコントロール(RC)戦車をつくる【Arduino Pro Mini(互換機)②】 [RC戦車]
Arduino Pro Miniはスケッチ(プログラム)の書き込み部分がUSB→シリアル回路となっており、UNOのようにPCからUSBをグサッと挿して簡単に書き込むことはできません。そのため、USB-シリアル変換モジュールを使うことになります。
FT232RL USBシリアル変換モジュール
"http://akizukidenshi.com/catalog/g/gK-01977/"
この方法については下記のページが参考になりました。
-----------------------------------------------------------------------------
@kazuph さん
USB接続できないArduinoにソースを書き込むとき
"https://qiita.com/kazuph/items/06e97f5a697b123aac30"
-----------------------------------------------------------------------------
では実際にやってみます。スケッチは前回使った、赤外線リモコン(COM-11759)のボタンを押下したときにコンソール画面にコードを表示させるもので試してみます。
【Arduino Pro Mini - シリアル変換】
【Arduino Pro Mini と赤外線受信部の近影】
【シリアルモニタ出力結果】
USB-シリアル変換モジュールを経由してシリアルモニタに出力できています。
FT232RL USBシリアル変換モジュール
"http://akizukidenshi.com/catalog/g/gK-01977/"
この方法については下記のページが参考になりました。
-----------------------------------------------------------------------------
@kazuph さん
USB接続できないArduinoにソースを書き込むとき
"https://qiita.com/kazuph/items/06e97f5a697b123aac30"
-----------------------------------------------------------------------------
では実際にやってみます。スケッチは前回使った、赤外線リモコン(COM-11759)のボタンを押下したときにコンソール画面にコードを表示させるもので試してみます。
【Arduino Pro Mini - シリアル変換】
【Arduino Pro Mini と赤外線受信部の近影】
【シリアルモニタ出力結果】
USB-シリアル変換モジュールを経由してシリアルモニタに出力できています。
リモートコントロール(RC)戦車をつくる【Arduino Pro Mini(互換機)①】 [RC戦車]
Arduinoは様々な大きさやスペックでバリエーションがあります。
「Arduino UNO Rev3」(以下UNO)はもっともポピュラーなものですが、戦車に搭載するにはややサイズが大きいなぁと思えたので「Arduino Pro Mini」を使ってみることにしました。
WEBでスペックを調べたところ、同じCPUを使いながらも(クロックは電源電圧の違いにより8MHzと16MHzの2種類がある)スケッチ(プログラム)の書き込み部分をUSB→シリアル回路に簡易化して小型化したもののようです。大きさは33mm×18mmなのでUNOと比較すると大体1/6くらいの大きさです。
Arduino は「Arduino」という名前は商標で守られていますがハードウェアもライセンスもオープンとなっているそうで、いろいろな互換機を安価に購入することができます。
互換機があるということはどこかにオリジナルな正規品もあるってことで、どうもsparkfun製がそれのようです。
"https://www.switch-science.com/catalog/946/"
"https://www.sparkfun.com/products/11113"
互換機の魅力はやはりその安さで1個300円程度で買えるものもあるようです。
今回アマゾンで購入した互換機は2個で980円、裏面に 「The Simple」と書いてあるものです。
waves Arduino Pro Mini 互換ボード 328 5V 16MHz 国内配送 2個セット
"https://www.amazon.co.jp/waves-Arduino-%E4%BA%92%E6%8F%9B%E3%83%9C%E3%83%BC%E3%83%89-16MHz-2%E5%80%8B%E3%82%BB%E3%83%83%E3%83%88/dp/B01CX2APN4/ref=sr_1_6?ie=UTF8&qid=1527414309&sr=8-6&keywords=waves+Arduino"
ただ、後から調べたところオリジナルと微妙にピン配置が違っていたり、ドンピシャの回路図が見当たらなかったりと多少の使いにくさはあるようですので、互換機と言えどもsparkfun製に準拠したものを購入した方が良さそうです。
「Arduino UNO Rev3」(以下UNO)はもっともポピュラーなものですが、戦車に搭載するにはややサイズが大きいなぁと思えたので「Arduino Pro Mini」を使ってみることにしました。
WEBでスペックを調べたところ、同じCPUを使いながらも(クロックは電源電圧の違いにより8MHzと16MHzの2種類がある)スケッチ(プログラム)の書き込み部分をUSB→シリアル回路に簡易化して小型化したもののようです。大きさは33mm×18mmなのでUNOと比較すると大体1/6くらいの大きさです。
Arduino は「Arduino」という名前は商標で守られていますがハードウェアもライセンスもオープンとなっているそうで、いろいろな互換機を安価に購入することができます。
互換機があるということはどこかにオリジナルな正規品もあるってことで、どうもsparkfun製がそれのようです。
"https://www.switch-science.com/catalog/946/"
"https://www.sparkfun.com/products/11113"
互換機の魅力はやはりその安さで1個300円程度で買えるものもあるようです。
今回アマゾンで購入した互換機は2個で980円、裏面に 「The Simple」と書いてあるものです。
waves Arduino Pro Mini 互換ボード 328 5V 16MHz 国内配送 2個セット
"https://www.amazon.co.jp/waves-Arduino-%E4%BA%92%E6%8F%9B%E3%83%9C%E3%83%BC%E3%83%89-16MHz-2%E5%80%8B%E3%82%BB%E3%83%83%E3%83%88/dp/B01CX2APN4/ref=sr_1_6?ie=UTF8&qid=1527414309&sr=8-6&keywords=waves+Arduino"
ただ、後から調べたところオリジナルと微妙にピン配置が違っていたり、ドンピシャの回路図が見当たらなかったりと多少の使いにくさはあるようですので、互換機と言えどもsparkfun製に準拠したものを購入した方が良さそうです。
リモートコントロール(RC)戦車をつくる【赤外線コントロール】 [RC戦車]
マイコンをArduinoと決めたので、次に遠隔コントロールの方法を考えます。
もちろん遠隔コントロールの方法もいくつもあるのですが、最初は赤外線を使ってみたいと思います。いわゆる”リモコン”ですね。
PCと比較するまでもないですが、マイコンはピン数とかに制限があるため、全部の機能をいっぺんに動かすことが難しいケースがあります。そんなときは赤外線リモコンがあれば必要な機能を切り替えながらということもできるので、一度使い方を覚えておけば便利です。
で、テレビのリモコンでも何でもいいのですが、電子工作の気分も出していきたいのでこれ↓です。
以前秋葉原に行ったときに、お店でたまたま目に入ったので買ったものです。
SparkFun 赤外線リモコン COM-11759
"https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4C3S"
赤外線受光部にはこのセンサを使っています。
赤外線リモコン受信モジュール PL-IRM2121(38kHz)
"http://akizukidenshi.com/catalog/g/gI-01570/"
赤外線リモコンのデータフォーマットには
NECフォーマット
家製協フォーマット
ソニーフォーマット
の3種類があり、COM-11759はNECフォーマットです。
データフォーマットの詳細は”赤外線リモコン フォーマット”で検索するといくつものページで説明をしていますので詳細はそちらにお任せするとして、実際に動作させてみます。
FAQ 1007800 : 赤外線リモコン通信に関係して、NEC方式のフォーマットとはどのようなものか?
"https://support.renesas.com/hc/ja/articles/210901268-FAQ-1007798-%E8%B5%A4%E5%A4%96%E7%B7%9A%E3%83%AA%E3%83%A2%E3%82%B3%E3%83%B3%E3%81%AE%E4%BF%A1%E5%8F%B7%E3%81%AF%E3%81%A9%E3%81%86%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B-"
リモコンフォーマット(秋月電子)
"http://akizukidenshi.com/download/k4174_format.pdf"
メーカのsprakfunのサイトには使い方をまとめたページがあり、ここのサンプルプログラムを参考に動かしてみたいと思います。
"https://learn.sparkfun.com/tutorials/ir-control-kit-hookup-guide"
赤外線リモコンにはボタンに対応したコードが割り当てられており、サンプルプログラムでは押下したときにコンソール画面に表示するようになっています。
リモコン(COM-11759)コード
【配線図】
【スケッチ】
※#include <IRremote.h>は表示の不具合で全角<>で記載しています。本当は半角<>ですのでご注意ください。
【シリアルモニタ出力結果】
一例として「POWER」の時の波形データを載せます。
送信されたデータは受光部で波形が反転されています。
【(デジタル)オシロデータ(POWER)】
【「POWER」波形記録】
※(2019.10.19)オプトサプライ赤外線リモコン[OE13KIR]を使った作製例はこちら↓
リモートコントロール(RC)戦車をつくる【赤外線コントロール②】
もちろん遠隔コントロールの方法もいくつもあるのですが、最初は赤外線を使ってみたいと思います。いわゆる”リモコン”ですね。
PCと比較するまでもないですが、マイコンはピン数とかに制限があるため、全部の機能をいっぺんに動かすことが難しいケースがあります。そんなときは赤外線リモコンがあれば必要な機能を切り替えながらということもできるので、一度使い方を覚えておけば便利です。
で、テレビのリモコンでも何でもいいのですが、電子工作の気分も出していきたいのでこれ↓です。
以前秋葉原に行ったときに、お店でたまたま目に入ったので買ったものです。
SparkFun 赤外線リモコン COM-11759
"https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4C3S"
赤外線受光部にはこのセンサを使っています。
赤外線リモコン受信モジュール PL-IRM2121(38kHz)
"http://akizukidenshi.com/catalog/g/gI-01570/"
赤外線リモコンのデータフォーマットには
NECフォーマット
家製協フォーマット
ソニーフォーマット
の3種類があり、COM-11759はNECフォーマットです。
データフォーマットの詳細は”赤外線リモコン フォーマット”で検索するといくつものページで説明をしていますので詳細はそちらにお任せするとして、実際に動作させてみます。
FAQ 1007800 : 赤外線リモコン通信に関係して、NEC方式のフォーマットとはどのようなものか?
"https://support.renesas.com/hc/ja/articles/210901268-FAQ-1007798-%E8%B5%A4%E5%A4%96%E7%B7%9A%E3%83%AA%E3%83%A2%E3%82%B3%E3%83%B3%E3%81%AE%E4%BF%A1%E5%8F%B7%E3%81%AF%E3%81%A9%E3%81%86%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B-"
リモコンフォーマット(秋月電子)
"http://akizukidenshi.com/download/k4174_format.pdf"
メーカのsprakfunのサイトには使い方をまとめたページがあり、ここのサンプルプログラムを参考に動かしてみたいと思います。
"https://learn.sparkfun.com/tutorials/ir-control-kit-hookup-guide"
赤外線リモコンにはボタンに対応したコードが割り当てられており、サンプルプログラムでは押下したときにコンソール画面に表示するようになっています。
リモコン(COM-11759)コード
【配線図】
【スケッチ】
/* SparkFun Electronics 2013 Playing with Infrared Remote Control IR Receiver Breakout (SEN-8554): Supply voltage of 2.5V to 5.5V Attach OUT: To pin 11 on Arduino GND: GND VCC: 5V This is based on Ken Shirriff's code found on GitHub: https://github.com/shirriff/Arduino-IRremote/ This code works with cheap remotes. If you want to look at the individual timing of the bits, use this code: http://www.arduino.cc/playground/Code/InfraredReceivers */ #include <IRremote.h> int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; #define POWER 0x10EFD827 #define A 0x10EFF807 #define B 0x10EF7887 #define C 0x10EF58A7 #define UP 0x10EFA05F #define DOWN 0x10EF00FF #define LEFT 0x10EF10EF #define RIGHT 0x10EF807F #define SELECT 0x10EF20DF void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver } void loop() { if (irrecv.decode(&results)) { if (results.value == POWER) { Serial.println("POWER"); } if (results.value == A) { Serial.println("A"); } if (results.value == B) { Serial.println("B"); } if (results.value == C) { Serial.println("C"); } if (results.value == UP) { Serial.println("UP"); } if (results.value == DOWN) { Serial.println("DOWN"); } if (results.value == LEFT) { Serial.println("LEFT"); } if (results.value == RIGHT) { Serial.println("RIGHT"); } if (results.value == SELECT) { Serial.println("SELECT"); } irrecv.resume(); } }
※#include <IRremote.h>は表示の不具合で全角<>で記載しています。本当は半角<>ですのでご注意ください。
【シリアルモニタ出力結果】
一例として「POWER」の時の波形データを載せます。
送信されたデータは受光部で波形が反転されています。
【(デジタル)オシロデータ(POWER)】
【「POWER」波形記録】
※(2019.10.19)オプトサプライ赤外線リモコン[OE13KIR]を使った作製例はこちら↓
リモートコントロール(RC)戦車をつくる【赤外線コントロール②】
リモートコントロール(RC)戦車をつくる【マイコン選び】 [RC戦車]
戦車をいろいろ制御するマイコンを選びたいのですが、これが一番の悩みネタになります。。。
電卓を例にとると「カシオ」派と「シャープ」派に大別されるのですが、キー配置とかメモリ機能のキー操作とか違うのですね。これはどちらが良いということではなく、最初に使ったものを後から変えるというのは、それまでの慣れというのもありますので、ちょっと面倒だったりするわけです。
制御できるマイコンにもいろいろとあるのですが、今手持ちにあるものや今後の入手のし易さを考慮して、
①Arduino (https://www.arduino.cc/)
②mbed (https://os.mbed.com/)
の二択で考えたいと思います。
ここの記事にもあるように、Raspberry Piももちろん選択肢に入れても良いのですが、今回は戦車を動かすくらいですからそこまでの能力もいらないため、ちょっと横に置いておきます。
さて次に、Arduinoかmbedか?ということになるわけですが、しばらくはArduinoを使ってみようと思います。理由は完全に主観的な比較になるのですが、
・Arduinoの方がmbedより情報が多い(WEBや書籍)
Googleでそれぞれ検索すると圧倒的にArduinoの方がヒット数が多いです。
・Arduinoのプログラムの方がmbedより初心者向け
mbedはArduinoよりCPUスペックも高くパワフルなのが魅力的で、既にC/C++言語スキルを持っている方はmbedの方が良いように思えますが、Arduinoは上手くC/C++の難しいところを隠ぺいした”Arduino言語”を使用しており、そのためどちらからというとArduinoの方が必ずしもプログラミングを本職としていない人でも取っ掛かり易い感じがします。
いずれにせよ、ここは自分なりに納得するまで選ぶことが大切です。これは本当です(笑)
Arduino
mbed
電卓を例にとると「カシオ」派と「シャープ」派に大別されるのですが、キー配置とかメモリ機能のキー操作とか違うのですね。これはどちらが良いということではなく、最初に使ったものを後から変えるというのは、それまでの慣れというのもありますので、ちょっと面倒だったりするわけです。
制御できるマイコンにもいろいろとあるのですが、今手持ちにあるものや今後の入手のし易さを考慮して、
①Arduino (https://www.arduino.cc/)
②mbed (https://os.mbed.com/)
の二択で考えたいと思います。
ここの記事にもあるように、Raspberry Piももちろん選択肢に入れても良いのですが、今回は戦車を動かすくらいですからそこまでの能力もいらないため、ちょっと横に置いておきます。
さて次に、Arduinoかmbedか?ということになるわけですが、しばらくはArduinoを使ってみようと思います。理由は完全に主観的な比較になるのですが、
・Arduinoの方がmbedより情報が多い(WEBや書籍)
Googleでそれぞれ検索すると圧倒的にArduinoの方がヒット数が多いです。
・Arduinoのプログラムの方がmbedより初心者向け
mbedはArduinoよりCPUスペックも高くパワフルなのが魅力的で、既にC/C++言語スキルを持っている方はmbedの方が良いように思えますが、Arduinoは上手くC/C++の難しいところを隠ぺいした”Arduino言語”を使用しており、そのためどちらからというとArduinoの方が必ずしもプログラミングを本職としていない人でも取っ掛かり易い感じがします。
いずれにせよ、ここは自分なりに納得するまで選ぶことが大切です。これは本当です(笑)
Arduino
mbed
リモートコントロール(RC)戦車をつくる【モータとドライバ】 [RC戦車]
こどもの頃、プラモデルを作ったときにお世話になった”マブチモータ”。乾電池2本でお手軽に動かすことができるのですが、専攻が機械系でもなかったのでモータの動作ってあまりに気にしたことがなかったんですね。今回せっかくの機会なので一通りの理解をしておこうと思います。
と、言ってもモータのネタはググれば、それこそ山ほど出てきますので(笑)、詳細はそちらへお任せするとして自分なりにデータシートと実験で得られたノウハウをまとめていきます。
【使うモータ】
ダブルギヤボックスに付属しているモータは『FA-130RA(-2270)』で、工作で使うとしたら”まず、これ!”というくらい最もポピュラーなモータですね。
これ↓です。
"https://product.mabuchi-motor.co.jp/detail.html?id=9"
趣味ベースで動かすのであれば、
使用電圧範囲:1.5~3V(やっぱり乾電池2本だ)
適正電圧:1.5V
消費電流:500mA
くらいを押させておけば、とりあえず壊さない程度でOKだと思います。
【モータドライバ】
モータを動かすのにモータドライバが必要となってきます。
必要かどうかはその人がどこまで自作で頑張れるか?にもよるので、本当は”あると便利♪”というのが正しい表現なのかもしれません。が、今さら2個300円で買えるものをわざわざ自作することもないでしょうから”あると便利なものだけど今となっては必要なもの”という、こんがらがってしまってよくわからないリード文になってしまいました。
ごめんね、いい加減で。。。(笑)
で、端的に言うと
・ロジックICの出力をそのままモータにつないでも、ICからはたくさんの電流を流せないので
モータは動きません。
・モータに流れる電流のプラスマイナスを制御することで、回る向きを正転、反転と制御したい。
ということを解決するための専用ICが”モータドライバ”です。
これ↓です。
東芝セミコンダクター社 DCモーター用フルブリッジドライバ(正・逆切り替えドライバ)
"http://akizukidenshi.com/catalog/g/gI-02001/"
"https://toshiba.semicon-storage.com/jp/product/linear/motordriver/detail.TA7291P.html"
2018年5月現在、TA7291Pは『生産終了予定』となっていて、データシートにも”Not Recommended for New Design"となっていますが、流通在庫だけでも十分あると思うので、当面は大丈夫だと思います。
【特性実験】
モータドライバとモータを接続して動作特性を調べてみます。理由はRC戦車のスピードを可変にしたいと思っているので、制御電圧(Vref)を変化させた時のモータ側への出力電圧(Vout)の変化を見るためです。
だんだん大げさなことになってきましたが、最近ではブレッドボードに挿すだけで回路が組めるので、気軽に試すことができます。
【特性測定回路図】
【ブレッドボードへの実装の様子】
モータの使用電圧範囲は1.5~3.0Vなので、Vrefも1.7~3V位で変化させれば良さそうです。しかし2Vを超えたあたりから音と振動がかなり多くなり少しヤバそうなので、実際にはスピードを可変に出来る領域はあまり大きくないのかもしれません。また、今回はモータには無負荷状態での基礎特性なので、実際にはキャタピラで動作したときの負荷状態でVrefのチューニングが必要かもしれません。
【測定結果グラフ】
と、言ってもモータのネタはググれば、それこそ山ほど出てきますので(笑)、詳細はそちらへお任せするとして自分なりにデータシートと実験で得られたノウハウをまとめていきます。
【使うモータ】
ダブルギヤボックスに付属しているモータは『FA-130RA(-2270)』で、工作で使うとしたら”まず、これ!”というくらい最もポピュラーなモータですね。
これ↓です。
"https://product.mabuchi-motor.co.jp/detail.html?id=9"
趣味ベースで動かすのであれば、
使用電圧範囲:1.5~3V(やっぱり乾電池2本だ)
適正電圧:1.5V
消費電流:500mA
くらいを押させておけば、とりあえず壊さない程度でOKだと思います。
【モータドライバ】
モータを動かすのにモータドライバが必要となってきます。
必要かどうかはその人がどこまで自作で頑張れるか?にもよるので、本当は”あると便利♪”というのが正しい表現なのかもしれません。が、今さら2個300円で買えるものをわざわざ自作することもないでしょうから”あると便利なものだけど今となっては必要なもの”という、こんがらがってしまってよくわからないリード文になってしまいました。
ごめんね、いい加減で。。。(笑)
で、端的に言うと
・ロジックICの出力をそのままモータにつないでも、ICからはたくさんの電流を流せないので
モータは動きません。
・モータに流れる電流のプラスマイナスを制御することで、回る向きを正転、反転と制御したい。
ということを解決するための専用ICが”モータドライバ”です。
これ↓です。
東芝セミコンダクター社 DCモーター用フルブリッジドライバ(正・逆切り替えドライバ)
"http://akizukidenshi.com/catalog/g/gI-02001/"
"https://toshiba.semicon-storage.com/jp/product/linear/motordriver/detail.TA7291P.html"
2018年5月現在、TA7291Pは『生産終了予定』となっていて、データシートにも”Not Recommended for New Design"となっていますが、流通在庫だけでも十分あると思うので、当面は大丈夫だと思います。
【特性実験】
モータドライバとモータを接続して動作特性を調べてみます。理由はRC戦車のスピードを可変にしたいと思っているので、制御電圧(Vref)を変化させた時のモータ側への出力電圧(Vout)の変化を見るためです。
だんだん大げさなことになってきましたが、最近ではブレッドボードに挿すだけで回路が組めるので、気軽に試すことができます。
【特性測定回路図】
【ブレッドボードへの実装の様子】
モータの使用電圧範囲は1.5~3.0Vなので、Vrefも1.7~3V位で変化させれば良さそうです。しかし2Vを超えたあたりから音と振動がかなり多くなり少しヤバそうなので、実際にはスピードを可変に出来る領域はあまり大きくないのかもしれません。また、今回はモータには無負荷状態での基礎特性なので、実際にはキャタピラで動作したときの負荷状態でVrefのチューニングが必要かもしれません。
【測定結果グラフ】
リモートコントロール(RC)戦車をつくる【モータにリード線を接続】 [RC戦車]
モータにリード線を接続していきます。リード線にはこれ↓を使用しています。
サンコー電商 UL1007 AWG26 L-2×10色 電線 - 千石電商
"https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-0T45"
リード線の外皮を10~12mmで剥いて、端子に巻きつけてハンダ付けをします。
ノイズ除去のためのコンデンサ(0.1μF)も一緒に付けます。
コンデンサの足が少し長いのは、ギヤボックスとモータを固定するツメを避けるスペースを空けているからです。
リード線のモータの反対側は、基板との取り外しが可能なようにコネクタを付けることにします。
圧着コネクタの自作方法については下記のページが参考になりました。
-----------------------------------------------------------------------------
電子うさぎ
コネクタの自作!電子工作の圧着工具と圧着方法
"https://xn--p8jqu4215bemxd.com/archives/397"
-----------------------------------------------------------------------------
日本圧着端子製造 (JST) XHコネクタ ハウジング2P XHP-2 - 千石電商
"https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=7AN6-5SFL"
日本圧着端子製造 (JST) XHコネクタ ハウジング用コンタクト バラ BXH-001T-P0.6 - 千石電商
"https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=2AR6-5SFL"
圧着工具があると便利なのですが、あいにく手元にないので先細のペンチでかしめていきます。
リード線の被膜を2mm程度剥いてコンタクト(金具)に挿入しますが、
その際に押し込み過ぎると、最後にコネクタ同士が嵌合出来なくなるので注意が必要です。
(これで1回目は失敗しました。。。)
2個のモータにリード線を接続できました。
リード線の長さは一応、取り回しも考慮して25cmとしましたが、車体をぐるっと取回すケースもあるので40cmくらいあっても(半分の長さで20cmですから)良かったかもしれないとちょっと不安になっています。。。
まぁ、短かったら、そのときはそのときで途中で切って延長しましょう。
サンコー電商 UL1007 AWG26 L-2×10色 電線 - 千石電商
"https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-0T45"
リード線の外皮を10~12mmで剥いて、端子に巻きつけてハンダ付けをします。
ノイズ除去のためのコンデンサ(0.1μF)も一緒に付けます。
コンデンサの足が少し長いのは、ギヤボックスとモータを固定するツメを避けるスペースを空けているからです。
リード線のモータの反対側は、基板との取り外しが可能なようにコネクタを付けることにします。
圧着コネクタの自作方法については下記のページが参考になりました。
-----------------------------------------------------------------------------
電子うさぎ
コネクタの自作!電子工作の圧着工具と圧着方法
"https://xn--p8jqu4215bemxd.com/archives/397"
-----------------------------------------------------------------------------
日本圧着端子製造 (JST) XHコネクタ ハウジング2P XHP-2 - 千石電商
"https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=7AN6-5SFL"
日本圧着端子製造 (JST) XHコネクタ ハウジング用コンタクト バラ BXH-001T-P0.6 - 千石電商
"https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=2AR6-5SFL"
圧着工具があると便利なのですが、あいにく手元にないので先細のペンチでかしめていきます。
リード線の被膜を2mm程度剥いてコンタクト(金具)に挿入しますが、
その際に押し込み過ぎると、最後にコネクタ同士が嵌合出来なくなるので注意が必要です。
(これで1回目は失敗しました。。。)
2個のモータにリード線を接続できました。
リード線の長さは一応、取り回しも考慮して25cmとしましたが、車体をぐるっと取回すケースもあるので40cmくらいあっても(半分の長さで20cmですから)良かったかもしれないとちょっと不安になっています。。。
まぁ、短かったら、そのときはそのときで途中で切って延長しましょう。
リモートコントロール(RC)戦車をつくる【ベースの車体】 [RC戦車]
電子工作で”戦車”をつくろう、ということにしたわけですので、最初にベースとなる車体を準備しなければなりません。このあたりはご多分に漏れずタミヤの工作キットにお世話になることになります。
タミヤ 楽しい工作シリーズ No.168 ダブルギヤボックス 左右独立4速タイプ (70168)
タミヤ 楽しい工作シリーズ No.100 トラック&ホイールセット (70100)
タミヤ 楽しい工作シリーズ No.157 ユニバーサルプレート 2枚セット (70157)
しかし、車体製作のことを記事に書かれているページがあまり見当たらず、ちょっと苦労した点をノウハウとしてまとめます。
①ネジはM3 10mmが最適
ユニバーサルプレートにシャフトの軸受けとかを取り付けていくのですが、その際付属のプッシュピンでは動作させた時の強度に不安があったのでネジ止めにしたいと思いました。
プレートを重ねた時の厚みから、M3 10mmのネジがぴったりでした。
ホイール片側につき4個使用しています。
②ダブルギヤボックスのギヤ比を決める
ギヤボックスを組み立てるのですが、4種類あるギヤ比から最初に1つ選ぶ必要があります。
一度組み立ててしまうとあとから変更は出来ないので、ちょっと慎重になるわけです。。。
タイプA 12.7:1
タイプB 38.2:1
タイプC 114.7:1
タイプD 344.2:1
タイプAからDにかけて「タイプAはスピードは速いけどトルクは無い」「タイプDはスピードは遅いけどトルクはある」という順番になります。
もちろん戦車という乗り物の特性を考慮するとおのずとトルク重視ということで方向性はあっているとは思うのですが、参考にしたWEBページではこの辺は書いてない(-_-;) か、書いてあってもタイプDが主流のようです。
そのためタイプDとCとで悩んだのですが、あんまりスピードが遅いのもかったるくなるので、今回は”タイプC”で決定です!
#実際、この決定が良かったか悪かったかは動かしてみるまでわかりません。。。
③キャタピラの長さを決める
トラック&ホイールセットとユニバーサルプレートを用いて車体を作るのですが、キャタピラの長さとホイールの位置を上手く調整していく必要があります。
キャタピラは片側につき30コマ×1、10コマ×2、8コマ×2のものを組み合わせて好きな長さに出来るのですが、ホイールの位置によっては長さが足らなかったり、逆にブカブカですぐにホイールからキャタピラが外れてしまうので、ちょうど良い長さの位置を見つけるのに試行錯誤しました。
今回は、ユニバーサルプレートをそのまま1枚シャーシとして使っていますので、車体の全長はユニバーサルプレートの長さそのものということになります。
その範囲でキャタピラの長さとホイールとギヤボックスの位置をいろいろと変えていった結果、おそらくこれが最適だろう、という形になりました。キャタピラは片側につき30コマ×1、10コマ×2、8コマ×1 使用しています(8コマ×1余り)。
【車体①(上面)】
【車体②(前方)】
【車体③(前方近影)】
【車体④(側面)】
【車体⑤(下面)】
④モータのプラスマイナスを知る
モータにはリード線は付いていませんので、あとから自分でハンダ付けをする必要がありますが、当然、プラスには赤線、マイナスには黒線とか白線とかで区別をしたいわけです。
でもモータの向きが決まっているので勝手にプラスマイナスを決めるわけにはいきません。
一か八かの賭けに出て適当にハンダ付けすると、黒線がプラス。。。ということにもなりかねないので、キチンと調べましたよ、乾電池で。
乾電池2個を直列にしてモータの端子に当て、車体が前進する方向をモータの正転としてプラスマイナスを決めました。
これでプラスに赤線を付けることができます。
【モータ端子のプラスマイナス】
タミヤ 楽しい工作シリーズ No.168 ダブルギヤボックス 左右独立4速タイプ (70168)
タミヤ 楽しい工作シリーズ No.100 トラック&ホイールセット (70100)
タミヤ 楽しい工作シリーズ No.157 ユニバーサルプレート 2枚セット (70157)
しかし、車体製作のことを記事に書かれているページがあまり見当たらず、ちょっと苦労した点をノウハウとしてまとめます。
①ネジはM3 10mmが最適
ユニバーサルプレートにシャフトの軸受けとかを取り付けていくのですが、その際付属のプッシュピンでは動作させた時の強度に不安があったのでネジ止めにしたいと思いました。
プレートを重ねた時の厚みから、M3 10mmのネジがぴったりでした。
ホイール片側につき4個使用しています。
②ダブルギヤボックスのギヤ比を決める
ギヤボックスを組み立てるのですが、4種類あるギヤ比から最初に1つ選ぶ必要があります。
一度組み立ててしまうとあとから変更は出来ないので、ちょっと慎重になるわけです。。。
タイプA 12.7:1
タイプB 38.2:1
タイプC 114.7:1
タイプD 344.2:1
タイプAからDにかけて「タイプAはスピードは速いけどトルクは無い」「タイプDはスピードは遅いけどトルクはある」という順番になります。
もちろん戦車という乗り物の特性を考慮するとおのずとトルク重視ということで方向性はあっているとは思うのですが、参考にしたWEBページではこの辺は書いてない(-_-;) か、書いてあってもタイプDが主流のようです。
そのためタイプDとCとで悩んだのですが、あんまりスピードが遅いのもかったるくなるので、今回は”タイプC”で決定です!
#実際、この決定が良かったか悪かったかは動かしてみるまでわかりません。。。
③キャタピラの長さを決める
トラック&ホイールセットとユニバーサルプレートを用いて車体を作るのですが、キャタピラの長さとホイールの位置を上手く調整していく必要があります。
キャタピラは片側につき30コマ×1、10コマ×2、8コマ×2のものを組み合わせて好きな長さに出来るのですが、ホイールの位置によっては長さが足らなかったり、逆にブカブカですぐにホイールからキャタピラが外れてしまうので、ちょうど良い長さの位置を見つけるのに試行錯誤しました。
今回は、ユニバーサルプレートをそのまま1枚シャーシとして使っていますので、車体の全長はユニバーサルプレートの長さそのものということになります。
その範囲でキャタピラの長さとホイールとギヤボックスの位置をいろいろと変えていった結果、おそらくこれが最適だろう、という形になりました。キャタピラは片側につき30コマ×1、10コマ×2、8コマ×1 使用しています(8コマ×1余り)。
【車体①(上面)】
【車体②(前方)】
【車体③(前方近影)】
【車体④(側面)】
【車体⑤(下面)】
④モータのプラスマイナスを知る
モータにはリード線は付いていませんので、あとから自分でハンダ付けをする必要がありますが、当然、プラスには赤線、マイナスには黒線とか白線とかで区別をしたいわけです。
でもモータの向きが決まっているので勝手にプラスマイナスを決めるわけにはいきません。
一か八かの賭けに出て適当にハンダ付けすると、黒線がプラス。。。ということにもなりかねないので、キチンと調べましたよ、乾電池で。
乾電池2個を直列にしてモータの端子に当て、車体が前進する方向をモータの正転としてプラスマイナスを決めました。
これでプラスに赤線を付けることができます。
【モータ端子のプラスマイナス】
リモートコントロール(RC)戦車をつくる【はじめに】 [RC戦車]
WEBでいろいろな電子工作のページを見ると、スマホやマイコン制御とかで動作させる”戦車”の作成の記事がたくさんあります。
人それぞれに作る動機は様々と思いますが、
・個人の技術スキルや興味に応じていろいろな技術を試してみることができる。
また徐々に改造、レベルアップさせていくことができる。
・工作の自由度が高い。
・安価に始めることができる。
・単純に動くものはおもしろい!(実際に動作させている動画とか見るとおもしろそうです)
ということがおそらく人気の秘密だと思います。
以前にFPGAを使ったディジタル回路設計をしていたこともあったのですが、最近は自作からも離れてしまったので、今回自分の興味の向くままにチャレンジしてスキルアップが出来たらなと思います。
とりあえずの野望としては、
・無線で動かしたい(ラジコンとか赤外線とか)。
・カメラとかセンサとかを制御してカッコよく動かしたい。
・Arduinoとかmbedとかを使ったマイコン制御を組み込みたい。
・プログラミング言語をひとつ習得したい。
・ハードウェア/ソフトウェアの協調動作をしてみたい。
とかとか。。。 気持ち先行でやってみたいことはいろいろあるので頑張ってみたいと思います。
あっ、ここまでやらなくても。。。
※出典:陸上自衛隊ホームページ 富士総合火力演習・そうかえん(https://get.google.com/albumarchive/115305223408918522377/album/AF1QipNWPWoW1M1lAF0uPsUM5Mfyn_7xfI_bOw40DIiP)
人それぞれに作る動機は様々と思いますが、
・個人の技術スキルや興味に応じていろいろな技術を試してみることができる。
また徐々に改造、レベルアップさせていくことができる。
・工作の自由度が高い。
・安価に始めることができる。
・単純に動くものはおもしろい!(実際に動作させている動画とか見るとおもしろそうです)
ということがおそらく人気の秘密だと思います。
以前にFPGAを使ったディジタル回路設計をしていたこともあったのですが、最近は自作からも離れてしまったので、今回自分の興味の向くままにチャレンジしてスキルアップが出来たらなと思います。
とりあえずの野望としては、
・無線で動かしたい(ラジコンとか赤外線とか)。
・カメラとかセンサとかを制御してカッコよく動かしたい。
・Arduinoとかmbedとかを使ったマイコン制御を組み込みたい。
・プログラミング言語をひとつ習得したい。
・ハードウェア/ソフトウェアの協調動作をしてみたい。
とかとか。。。 気持ち先行でやってみたいことはいろいろあるので頑張ってみたいと思います。
あっ、ここまでやらなくても。。。
※出典:陸上自衛隊ホームページ 富士総合火力演習・そうかえん(https://get.google.com/albumarchive/115305223408918522377/album/AF1QipNWPWoW1M1lAF0uPsUM5Mfyn_7xfI_bOw40DIiP)