可動戦車模型愛好会作品掲示板


[トップに戻る] [アルバム] [留意事項] [ワード検索] [過去ログ] [管理人用]
おなまえ
Eメール
タイトル
コメント
参照URL
添付File
暗証キー (英数字で8文字以内)
画像認証 (右画像の数字を入力) 投稿キー
文字色
Arduinoってなんて読むの? 投稿者:せいめい 投稿日:2014/06/25(Wed) 23:23 No.2681

なにげにyoutube見てたら
PS3コントローラー使っで無線(BlueTooth)で複数のサーボとかモーターとか制御してる動画が。
タミヤの工作シリーズで作った戦車とかも動いてる。
こんなに簡単にできるのかとちょっとショック。
ネットで検索してみたら Arduino なるワードが。なにやらマイコンボードの一種らしい。

で、早速戦車に使えそうな物を購入。1/35パンサーに乗っけてみた。
写真のボードは三枚重ねです。下から
 arduino mega 2560 (これが本体)
 USBホストシールドV2(専用基盤をシールドと言うそうです。これにPCなんかにつけるUSB BlueTooth ドングルをつける)
 モーターシールド(モーター4個、サーボ2個制御)

サンプルプログラムをちょこっといじって2モーター制御プログラムを書いてみました。

Re: Arduinoってなんて読むの? - せいめい 2014/06/25(Wed) 23:26 No.2682
画像はり忘れました。


Re: Arduinoってなんて読むの? - せいめい 2014/06/27(Fri) 22:44 No.2683
ボードが1/35では収まらないので1/25のパンサーにのせかえました。
何とか収まりそうです。電源は単3×6本使用。


Re: Arduinoってなんて読むの? - スターリン 2014/06/29(Sun) 18:40 No.2684

Arduino(アルドィーノ)のプログラムはどんな感じに設定してますか?

Re: Arduinoってなんて読むの? - せいめい 2014/06/30(Mon) 12:48 No.2685
スターリンさんこんにちわ。アルドィーノって読むんですね。イタリア語?
プログラムですが
  メイン USBホストシールド2.0ライブラリのサンプル”PS3BT”(コントローラのアナログスティックの値や押されたボタンを表示する)
  モーター制御 モーターシールドライブラリの関数
でやってます。

コントローラーの左スティック上下で前後進、右スティックの左右でステアリングを制御。
例えば前進中に右スティックを半分右に倒すと、右モーターの速度を左の半分にする、右いっぱいまで倒すと右モーターが止まる。
というような感じでアナログスティックの状態から左右モーターの速度を計算してモーター制御関数に渡しています。

Re: Arduinoってなんて読むの? - せいめい 2014/07/05(Sat) 17:24 No.2686
砲塔旋回に使用するラジコンカーのドライブベルトを買いにいったら、
ベルトをまわすプーリーが新しくなっていた…そこで。
使用したパーツ
 ミニモーター低速ギヤボックス(2個…ストッパーが2個欲しかったので)
 ラジコンカーのドライブベルト、センタープーリー

ストッパーの周りに瞬着を少し塗って太らせてからプーリーに押込んでます。


Re: Arduinoってなんて読むの? - せいめい 2014/07/06(Sun) 22:13 No.2687
ギヤボックスを交換して車体内部のスペースを稼ぎました。
  タミヤツインモーターギヤボックス
  京商ミニッツレサー用モーター×2
  モーター駆動用電源 単3Ni-MH×4 4.8V
  Arduino用電源 6P形Ni-MH 8.4V


とりあえずまとめてみました - せいめい 2014/07/07(Mon) 23:23 No.2688
そもそもなぜこれを使ってみようと思ったかと言うと、

  ゲームコントローラーでラジコン戦車を動かしてみたい!!

って妄想が前からあったので。理由はギミックが多くなるとプロボのスティック操作では無理があるから。

今回使用した物の…ざっくりな(精一杯の)…説明。
○Arduino
これが本体。何種類かある内、プログラム容量の大きいものを選びました。
PCとUSBで接続。PCでプログラムを書いて基盤に転送して実行する。言語はC,C++みたいなもの?
※ラジコンで便利そうなのがPWM出力ピン。サーボ、モーターコントロールICの速度制御に使う。

○USBホストシールド2.0
Arduino用基盤。写真ではBluetoothドングル(PC用)つけたままです。
基盤のUSBにBluetoothドングルを付けるとPS3,PS4,XBOX,Wiiのゲームコントローラーと通信できる。
いろんなBluetooth機器とシリアル通信できる…らしい。
※静岡など電波規制のある場合はUSBコードでコントローラーを繋げばそのままリモコンになる。

○モーターシールド
ArduinoのPWMピンを使ったモーターコントロール基盤…だと思う。
モーター4個、サーボ2個制御。モーターの電圧は4.5Vから25Vまで。
3.3Vなどのモーターは動かないから繋がないようにってかいてあった。(汗)
1/25パンサーの場合
  Ni-HM 4.8V  トルクが足らないのか緩旋回に入るとすぐに片方の起動輪がとまってしまった。
  リフェ 6.6V  軽快に走ったけどギヤが唸っていた。
  Ni-HM 7.2V  同じく軽快に走るが、電池を収めるスペースがない。
         ミニモーターギヤボックスが怖くて回せない。

さらに妄想が膨らむもの
○モーター/ステッパー/サーボ シールドキット v2
モーター4個、サーボ2個制御は変わらないけど、最大32個積み重ねて128個のモータを接続できます…

○I2C接続16チャンネル12ビットPWM/サーボ シールド
16個のPWM出力あるいはサーボモーター制御が出来る。
最大62個積み重ねて992個のPWM/サーボ制御出力が出来ます…


Re: Arduinoってなんて読むの? - スターリン 2014/07/25(Fri) 13:40 No.2695

この知識は何処から得たのですか?サイトだったり本だったりしたら教えてください

Re: Arduinoってなんて読むの? - せいめい 2014/07/26(Sat) 23:52 No.2697
スターリンさん今晩は。

まずサイトの検索から始めました。実際に使用してる人のBlogが大変参考になりました。
こんなものを使えばこんなことができるよってBlogが参考になります。そこからRC戦車
に使えそうなサイトを絞り込んでいきました。
入門書も一冊買いました。(たくさんありましたがどれも似たようなものかと)

検索キーワードは
"arduino BlueTooth" (送信側がBlueToothならゲームコントローラーやスマホが使えそうだから)
"arduino PS3コントローラ" (初めは"ゲームコントローラー"で検索してたけどPS3が結構多かったので)

このキーワードを使用した理由。
・arduinoを使ってBlueToothで通信できるか。
・arduinoをゲームコントローラーで制御できるか。

Blogでは実際に使用した製品を紹介しているものが多いのでRC戦車に使えそうならその製品をさらに検索。
あとパーツショップでarduino関連の商品を見てRC戦車に使えそうならその製品をさらに検索したり。

本家(arduinoの種類を調べるのに便利)
ttp://arduino.cc/

スイッチサイエンス(お店。arduino関連で250くらいある)
ttp://www.switch-science.com/catalog/1438/
(製品の製造元に飛べばさらに詳しい情報があります…英語ですが…)

製造元…外国です…blogみるとなんとなく出来そうなことが…見えて…
ttp://www.adafruit.com/
ttp://www.circuitsathome.com/

Re: Arduinoってなんて読むの? - スターリン 2014/07/30(Wed) 15:29 No.2698
こんな長々と御説明頂きありがとうございます。
参考にさせて頂きます。

Re: Arduinoってなんて読むの? - T 2014/12/06(Sat) 01:38 No.2772
宜しければ、今回ご使用されたプログラムをアップロードしていただけないでしょうか?私も今同じような物を作っているのですが、思うように動いてくれません...
Re: Arduinoってなんて読むの? - せいめい 2014/12/08(Mon) 15:00 No.2773
Tさん、初めまして。あまりお役に立てそうもありませんが。メールしました。
Re: Arduinoってなんて読むの? - スターリン 2014/12/24(Wed) 16:26 No.2776

車両を1/25 T-34-85にして同じ物を作ろうと思っているのですが、作る時に必要になったパーツは

・Arduino
ttp://www.amazon.co.jp/SainSmart-UNO-R3-ATmega328P%E6%90%AD%E8%BC%89-Duemilanove/dp/B00BPISRWE/ref=sr_1_10?ie=UTF8&qid=1419405690&sr=8-10&keywords=arduino

・Arduino USBホストシールド2.0
ttp://www.amazon.co.jp/USB%E3%83%9B%E3%82%B9%E3%83%88%E3%82%B7%E3%83%BC%E3%83%AB%E3%83%89-Arduino-compatible-Google-Android/dp/B007YNG6RW/ref=sr_1_1?ie=UTF8&qid=1419405751&sr=8-1&keywords=arduino+%E3%83%9B%E3%82%B9%E3%83%88USB

・Arduino モーターシールド
ttp://www.amazon.co.jp/gp/product/B00813HBBO/ref=ox_sc_act_title_4?ie=UTF8&psc=1&smid=A16L06BV5108TA

・左右独立ギアボックス
ttp://www.amazon.co.jp/%E3%82%BF%E3%83%9F%E3%83%A4-70097-000-%E6%A5%BD%E3%81%97%E3%81%84%E5%B7%A5%E4%BD%9C%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-No-97-%E3%83%84%E3%82%A4%E3%83%B3%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%AE%E3%83%A4%E3%83%BC%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9/dp/B001Q119AC/ref=sr_1_4?ie=UTF8&qid=1419405817&sr=8-4&keywords=%E3%82%AE%E3%82%A2%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9

・ドライブベルト
ttp://www.amazon.co.jp/%E3%83%9B%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%BA-OP-1170-ver-II-%E3%83%AD%E3%83%BC%E3%83%95%E3%83%AA%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E3%83%99%E3%83%AB%E3%83%88-342mm/dp/B002A9J5MI/ref=sr_1_5?ie=UTF8&qid=1419405846&sr=8-5&keywords=%E3%83%A9%E3%82%B8%E3%82%B3%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E3%83%99%E3%83%AB%E3%83%88

・PS3 Bluetoothコントローラー
・単三電池
以外に何かひつような物はありますか?

Re: Arduinoってなんて読むの? - せいめい 2014/12/25(Thu) 16:01 No.2778
スターリンさん今日は。検索で5月の過去ログを読みました。
”完全初心者”ということなので私も前回ほかの方がアドバイスした様に
タミヤの1/35RCを制作して動かしてみることをお勧めします。
戦車RCの仕組みとか動きとかとても勉強になります。ユニットも小型なので流用もできるかと。

あと過去ログで気になる書き込みですが

>ちなみに皆様送受信機はプロポを使っているようですが、それはどうやって繋いでどの様なプログラミングをしているのですか?

受信機とモーターの間にアンプなる機器があって、これが受信機から送られてきた信号を解析してモーターを回すので
プログラミング作業は一切ありません。送信機のスティックを少し倒すとモーターがゆっくり回り、たくさん倒すと
早く回るのはアンプが全部やってくれます。

この掲示板のほとんどの人はタミヤとかヘンロンのユニットを移植、又はおもちゃのラジコン(昔はコンバットデジQ、
いまは1/72 VS タンクとか)を分解して中身を移植して遊んでます。マイコンをプログラムし基板を自作してる人は非常に
少ないです。

Re: Arduinoってなんて読むの? - ヒトっさん 2014/12/26(Fri) 19:27 No.2779
せいめい様、皆様お久しぶりです。

スターリン様へのお答えへの補足になるかどうか分かりませんが、ヒトっさんが製作した物を紹介します。

ベースはタミヤの1/35ミリタリーミニチュアシリーズのパンターGを可動サスペンション化した上で、
タミヤの赤外線バトルシリーズの受信機とギヤボックス等を移植した物です。

砲塔旋回と砲身昇降はシャーシ内のスペースの都合で改造サーボで駆動させる仕組みにしました。

画像は途中経過のものですが、この後バトルシステム等を組み込んで行きます。

参考になったでしょうか?


Re: Arduinoってなんて読むの? - ヒトっさん 2014/12/26(Fri) 19:38 No.2780
出来上がったものがこちらです。

砲身や履帯等キングタイガーの物をコンバージョンしてますがそのあたりは突っ込まないで下さいね(汗)

もし宜しければ動画のURLも付けましたのでご覧下さい。


Re: Arduinoってなんて読むの? - ヒトっさん 2014/12/26(Fri) 19:43 No.2781
すみません、URL付け忘れました(汗)

https://www.youtube.com/watch?feature=player_detailpage&v=zJ-mj2v5P3s

シールド化したのですが - NIK 2018/02/13(Tue) 22:21 No.4200
はじめまして、NIKといいます。
いつも参考にさせていただいております。
写真と同じようなaruduinoやBluetoothを準備して学習中ですが
モーターを動かすことに四苦八苦しております。
できればスケッチなどを教えていただけませんでしょうか?

Re: Arduinoってなんて読むの? - せいめい 2018/02/14(Wed) 18:23 No.4202
NIKさんこんにちは。質問がモーター制御のことなのかコントローラーからデータを受け取って
モーターを回す方法のことなのか良くわからなかったのでとりあえず簡単なほうから。クリアしてたらゴメンナサイ。

モーターシールドのライブラリはインストールしていますか?
インストールしていればその中に
MotorParty
MotorTest
のサンプルスケッチがあります。この中のDCモーターの箇所が参考になります。
DCモーターとステッピングモーターの記述があるけどラジコンならDCモーターの方ですね。

モーターシールド(Ver.1の場合)
2つの関数でモーターを制御します。
setSpeed()  モーターの速度設定。0〜255
run() モーターの正転、逆転、停止

以下、サンプル MotorParty より

void setup() {
//DCモーターの宣言。シールドの1番目のモーターを使う
AF_DCMotor motor(1);
//DCモーターの初期速度を設定して停止状態にしておく
motor.setSpeed(200);
motor.run(RELEASE);
}

void loop() {
//正転で徐々にスピードアップ
motor.run(FORWARD);
for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(3);
}
//正転で徐々にスピードダウン
for (i=255; i!=0; i--) {
motor.setSpeed(i);
delay(3);
}
//逆転で徐々にスピードアップ
motor.run(BACKWARD);
for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(3);
}
//逆転で徐々にスピードアダウン
for (i=255; i!=0; i--) {
motor.setSpeed(i);
delay(3);
}
}

Re: Arduinoってなんて読むの? - せいめい 2018/02/15(Thu) 19:33 No.4203
DUALSHOK3(PS3コントローラー)の左アナログスティックの上下でモーターのスピードコントロールと正転逆転のサンプル
USBホストシールド2.0のライブラリをインストールして、この中のサンプルスケッチ PS3BT(DUALSHOK4ならPS4BT)を使います。

https://github.com/felis/USB_Host_Shield_2.0
たしか上のリンクからマニュアルにたどり着いた記憶が…

以下 PS3BT を元にしたスケッチ

#include <AFMotor.h>
#include <PS3BT.h>
#include <usbhub.h>
// Satisfy IDE, which only needs to see the include statment in the ino.
#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif

USB Usb;
//USBHub Hub1(&Usb); // Some dongles have a hub inside

BTD Btd(&Usb); // You have to create the Bluetooth Dongle instance like so
/* You can create the instance of the class in two ways */
PS3BT PS3(&Btd); // This will just create the instance
//PS3BT PS3(&Btd, 0x00, 0x15, 0x83, 0x3D, 0x0A, 0x57); // This will also store the bluetooth address - this can be obtained from the dongle when running the sketch

//モーターシールドの1番目のモーターを使用する
AF_DCMotor motor(1);

void setup() {
Serial.begin(115200);
while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
if (Usb.Init() == -1) {
Serial.print(F("\r\nOSC did not start"));
while (1); //halt
}
Serial.print(F("\r\nPS3 Bluetooth Library Started"));

motor.run(RELEASE);
}

void loop() {
Usb.Task();
int angY, spY0;

if (PS3.PS3Connected) {
//スティックの中央は127だけどピタリと止まらないので+-10ほど余裕を持たせる。
if (PS3.getAnalogHat(LeftHatY) > 137 || PS3.getAnalogHat(LeftHatY) < 117) {
//左スティック上下の値(最上部0、中央127、最下部255)を読み込む
angY = PS3.getAnalogHat(LeftHatY);

//前進
if (angY < 117) {
//アナログスティック中央(127)から最上部(0)の値をモーターのスピード0から255に変換
spY0 = map(angY, 127, 0, 0, 255);

motor.setSpeed(spY0);
motor.run(FORWARD);
}
else {
//後進
//アナログスティック中央(127)から最下部(255)の値をモーターのスピード0から255に変換
spY0 = map(angY, 127, 255, 0, 255);

motor.setSpeed(spY0);
motor.run(BACKWARD);
}
}
else{
//停止
motor.setSpeed(0);
motor.run(RELEASE);
}
}
}

Re: Arduinoってなんて読むの? - せいめい 2018/02/16(Fri) 10:15 No.4204
すいません。記事No.42002のスケッチ間違ってました。
DCモーターの宣言文はsetup()の外でした。正しくは

//DCモーターの宣言。シールドの1番目のモーターを使う
AF_DCMotor motor(1);

void setup() {


お返事ありがとうございました。 - NIK 2018/02/20(Tue) 22:16 No.4206
スケッチありがとうございました。
早速試してみまして無事にモーター1個での制御ができました。
説明がへたくそで申し訳ありませんでした。
コントローラーからの信号をどのような方法で変換したらいいのかと
いう質問でした。
参考にモーターをもう1個追加して試してみましたが、AF_DCMotor(2)
を追加しようとしたらredefinition of 'AF_DCMotor motor'とエラーになりました。
2モーター以上をコントローラで制御したいのですが、教えていただいた方法の転用では難しいのでしょうか?

Re: Arduinoってなんて読むの? - せいめい 2018/02/21(Wed) 13:02 No.4207
1番目のモーターの名前をmotorと宣言したので2番目のモーターには違う名前をつけてください。たとえば

AF_DCMotor motorLeft(1), motorRight(2);

USBホストシールドライブラリの凄いところはコントローラーとの接続やデータ受渡しを全てやってくれるので
ユーザーはスケッチ上でいきなりアナログスティックの値を読み込んだり、ボタンが押されたか、押され続けているか、
コントローラーがどの方向へどの位傾いているかなどif文で記述するだけですむとこですね。

欠点は、ものがデカイこと、メモリ食いすぎて標準メモリー32KBでは少なすぎること、最近のチップを搭載した互換機では使えないことでしょうか。

Re: Arduinoってなんて読むの? - NIK 2018/02/21(Wed) 22:21 No.4208
こんばんは。ご教示ありがとうございます。
ちなみに、アナログスティックの値を読む場合はanalogRead(PS3.)
とするということでしょうか。
また、押しボタンはgetbutton(circle);のような認識ですが、押している間だけ信号を送るのはどんなcodeされておりますか?

処理 記事No 暗証キー

- Joyful Note -