HOME | Raspberry Pi | 時事 | ビジネス書籍紹介 | 2022-12-01 (Thu) Today's Access : 114 Total : 559789. Since 10 Sep. 2019

ドローン制御 まずはロボットカーでお勉強
2022.05.27

YouTube でも紹介しています。画像をクリックすると再生できます。

新たにドローン制御のカテゴリーを作りました。
今回はロボット制御の基本、モータードライバを制御して四輪駆動車を動かします。

OSOYOO オープンソース ロボットカー スターターキット V1

Ref.OSOYOO オープンソース ロボットカー V1


追跡センサーモジュールにより路面の黒い線を識別して、線走行を実現できます。


ロボットカーは、超音波距離センサーモジュールを搭載し、音波の反射時間から距離を計算することによって、前方の障害物を自動的に避けることができます。


赤外線リモコン、Bluetooth、WiFiによりロボットカーを制御することができます。


↑クリックで拡大、再クリックで元に戻ります。

障害物回避や線走行は普通にわかりやすいので省略して、ロボットカーの四輪を制御する部分のみについて解説します。

OSOYOO Model-X Motor Driver Module

●瞬間ピーク電流は最大3A、定格電流25W
●2個の内蔵Hブリッジ
●2相ステッピングモーターまたは4相ステッピングモーター、2相DCモーターを駆動可能
●ドライブ電圧:5-35V、ロジック電圧:5V。※ドライブ電圧が12Vを超える場合は、外部5Vロジックを使用
Ref.OSOYOO Model-X Motor Driver Module

DC 3-6V ギヤードモーター + スマートカー & ロボットタイヤ 65*27mm

●動作電圧:3V~6VDC
●減速比:1:48
●無負荷回転速度(6V):100 RPM
●トルク:0.8KG.CM
●負荷電流:70mA(最大250mA)(3V)。
●タイヤ寸法:約 外径65mm、幅27mm、内径51mm ●モーターサイズ:65mm x 22mm x 20mm(シャフトなし)
●モダブルシャフトモーター


車体の中心にあるのがモータードライバ、左下の赤いボードがUNO R3互換機、その上のボックスが18650バッテリーボックスです。
この赤いUNOは同梱されていたものではありません。 通常のUNOにはメスピンソケットが付いていますが、このボードにはピンヘッダーをはんだ付けしています。 また、動作電圧3.3V←→5V切り替え可能な便利なボードです。


モーターとモータードライバモジュールの配線です。 右側の前輪をK2、後輪をK1ソケットに、左側前輪をK4、後輪をK3ソケットにつなげています。
12V と刻印されている2つのソケットのいずれでもよいのですが、ここに電池ボックスから7.4Vを供給しています。


モータードライバモジュールとUNOを接続します。
右側のタイヤ2本は(ENA,IN1,IN2)の設定により制御され、2本とも同じ動きになります。 左側のタイヤ2本は(ENB,IN3,IN4)の設定により制御され、2本とも同じ動きになります。 このモータードライバでは、4本のタイヤを個別に動かすことはできません。

では右側のタイヤで動きを説明します。下の表では、LOWを0、HIGHを1としてあらわしています。
ENAIN1IN2The State of DC Motor
0XXStop
100Brake
101Rotate Clockwise
110Rotate Counterclockwise
111Brake
・ENA(Enable-A)が0の場合、IN1(Input-1)、IN2(Input-2)の値に関わらず停止状態です。
・ENAが1で、IN1、IN2がともに0、あるいはともに1の場合にタイヤの回転が止まります。
・ENAが1、IN1が0、IN2が1の場合、タイヤは時計回りに回転します。
・ENAが1、IN1が1、IN2が0の場合、タイヤは反時計回りに回転します。
※ENB,IN3,IN4も同様です

左側の制御も加え、6つのパラメータの組み合わせで、ロボットカーの動きを制御できます。
ENAIN1IN2ENBIN3IN4Motion
100100停止
101101前進
110110後退
101110右スピン
110101左スピン

テストコード
#define ENA_PIN  5   // Needs to be a PWM pin to be able to control motor speed
#define IN1_PIN  6   // Motor direction
#define IN2_PIN  7   // Motor direction
#define IN3_PIN  8   // Motor direction
#define IN4_PIN  9   // Motor direction
#define ENB_PIN 10   // Needs to be a PWM pin to be able to control motor speed

void go_Advance(int speed_L,int speed_R) { //Forward
	digitalWrite(IN1_PIN, HIGH);
	digitalWrite(IN2_PIN, LOW );
	digitalWrite(IN3_PIN, HIGH);
	digitalWrite(IN4_PIN, LOW );
	set_MotorSpeed(speed_L, speed_R);
}
void go_Left(int speed_L,int speed_R) { //Turn left
	digitalWrite(IN1_PIN, HIGH);
	digitalWrite(IN2_PIN, LOW );
	digitalWrite(IN3_PIN, LOW );
	digitalWrite(IN4_PIN, HIGH);
	set_MotorSpeed(speed_L, speed_R);
}
void go_Right(int speed_L,int speed_R) { //Turn right
	digitalWrite(IN1_PIN, LOW );
	digitalWrite(IN2_PIN, HIGH);
	digitalWrite(IN3_PIN, HIGH);
	digitalWrite(IN4_PIN, LOW );
	set_MotorSpeed(speed_L, speed_R);
}
void go_Back(int speed_L,int speed_R) { //Reverse
	digitalWrite(IN1_PIN, LOW );
	digitalWrite(IN2_PIN, HIGH);
	digitalWrite(IN3_PIN, LOW );
	digitalWrite(IN4_PIN, HIGH);
	set_MotorSpeed(speed_L, speed_R);
}
void stop_Stop() {  //Stop
	digitalWrite(IN1_PIN, LOW );
	digitalWrite(IN2_PIN, LOW );
	digitalWrite(IN3_PIN, LOW );
	digitalWrite(IN4_PIN, LOW );
}

void set_MotorSpeed(int speed_L,int speed_R) {
	analogWrite(ENB_PIN,speed_L);
	analogWrite(ENA_PIN,speed_R); 
}

//Pins initialize
void init_GPIO() {
	pinMode(IN1_PIN, OUTPUT);
	pinMode(IN3_PIN, OUTPUT);
	pinMode(IN2_PIN, OUTPUT);
	pinMode(IN4_PIN, OUTPUT);
	stop_Stop();
}

void setup() {
	init_GPIO();
	go_Advance(255,255);//Forward
	delay(2000);

	go_Back(255,255);//Reverse
	delay(2000);

	go_Left(255,255);//Turn left
	delay(2000);

	go_Right(255,255);//Turn right
	delay(2000);

	stop_Stop();//Stop
}

void loop(){}

実際の動きは、このページのトップ画像をクリックして、YouTube動画をご覧ください。

実際にはENA,ENBはPWM制御が可能で、0~255までの値を指定することでスピードを制御できます。

右側と左側のタイヤを逆方向に回転させてしまうと、右折、左折ではなく、車体がくるくると右回転、左回転してしまいます。
そこで、右折したい場合には、左右両方のタイヤを時計回転させて、右側のタイヤのみ回転数を落とします。
go_Advance(255,255);
  ↓
go_Advance(255,100);
のように変更すると、右側タイヤ2本の回線数が下がります。

■参考文献
第2回:はじめてのモータドライバ
【Arduino入門編⑧】サーボモーターを動かしてみる
【Arduino入門編㉒】ArduinoでDCモーターを制御する。【L298Nデュアルモータードライバ】
 Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピュータ。イギリスのラズベリーパイ財団によって開発されている。
2022.05.27 まずはロボットカーでお勉強
2022.06.10 第1回テスト環境構築
2022.07.02 第2回テレメトリ通信


Interface 2022年12月号
◎実用レベルのデータ・サーバを個人で作れる時代 ☆特集 [AWS/ブロックチェーン/Docker]IoTデータ・サーバ入門
◎モニタリングはもちろん異常検知や画像認識,外部装置駆動まで!


日経Linux 2022年11月号
【特集1】「Ubuntu 22.04 LTS」リリースの今こそ! Windowsを捨てない!Linuxへの引っ越し術
【特集2】話題のChromeOS Flexなど8種を厳選! 軽量Linux TPO別 選択&活用術
【特集3】 Linuxで旧型PCを復活! ファンレスの静音・小型PC「Ubuntu Server 22.04 LTS」でオンラインストレージサーバー化
【特集4】 個人なら無料で使える! Red Hat Enterprise Linux 9を触ってみよう


トランジスタ技術 2022年11月号
★特集◎科学の魅力をとことん追求!計測,パワー応用技術 ☆実験サイエンス!超音波×エレキの世界


ラズパイマガジン2022年秋号
特集:5大人気ボード 電子工作超入門
「半導体不足で在庫が不足し、電子工作のボードがなかなか買えない…」。そんな今にふさわしい特集を企画しました。5種の人気ボードにすべて対応した電子工作の入門特集です。「GPIO」や「I2C」を使った電子パーツの制御方法は、どのボードでも同じです。手に入れられたボードを使って、今こそ電子工作を始めましょう。

地方で稼ぐ! ITエンジニアのすすめ
学歴、理系の知識、専門スキル……全部なくてもITエンジニアになれる! 地方でも高収入でやりがいをもって働ける!ITエンジニアの魅力を一挙大公開

ハッカーの学校 IoTハッキングの教科書
生活にとけこみ、家電機器を便利にするIoT技術。 Webカメラなど、便利の裏側に潜むセキュリティの危険性をハッキングで検証。 専門家がパケットキャプチャからハードウェアハッキングまで、その攻撃と防御を徹底解説。 本書は2018年7月に刊行された「ハッカーの学校IoTハッキングの教科書」に一部修正を加えた第2版です。

攻撃手法を学んで防御せよ! 押さえておくべきIoTハッキング
本書は、経済産業省から2021年4月にリリースされた、IoTセキュリティを対象とした『機器のサイバーセキュリティ確保のためのセキュリティ検証の手引き』の『別冊2 機器メーカに向けた脅威分析及びセキュリティ検証の解説書』をもとに、IoT機器の開発者や品質保証の担当者が、攻撃者の視点に立ってセキュリティ検証を実践するための手法を、事例とともに詳細に解説しました。

ポチらせる文章術
販売サイト・ネット広告・メルマガ・ブログ・ホームページ・SNS… 全WEB媒体で効果バツグン! カリスマコピーライターが教える「見てもらう」「買ってもらう」「共感してもらう」すべてに効くネット文章術

プログラマーは世界をどう見ているのか 西村博之著
イーロン・マスク(テスラ)、ジェフ・べゾス(Amazon)、ラリー・ペイジ(Google)…etc. 世界のトップはなぜプログラマーなのか?

Arduino Nano 33 IoT


サンハヤト モジュール MM-TXS01


ニーア オートマタ PLAY ARTS改 <ヨルハ 二号 B型 DX版> PVC製 塗装済み可動フィギュア
「NieR:Automata」より、ヨルハ二号B型こと2BがPLAY ARTS改に新たに登場! 高級感の感じられるコスチュームや髪の質感、洗練されたボディバランス、細かなデティールに至るまでこだわり抜かれた逸品。 DX版には通常版のラインナップに加え2Bの随行支援ユニット ポッド042などをはじめ“純白の美しい太刀"白の約定やエフェクトパーツ、自爆モードを再現できる換装用ボディパーツ、シーンに合わせて変えられる顔パーツ2種も付属する豪華な仕様に。 作中のあらゆるシーンを再現することが可能なファン必見の一品となっている。

DIPスイッチで動作電圧を3.3Vと5Vに切り替えられるUNO互換ボード
KEYESTUDIO Plus Board for Arduino UNO R3 with Type-C USB Cable, 3.3V 5V 1.5A Output Current, More Powerful Controller Board USB-シリアルチップ:CP2102 / 動作電圧:5Vまたは3.3V(DIPスイッチ制御)/ 外部電源:DC 6-15V(9V推奨)/ デジタルI / Oピン:14(D0〜D13)/ PWMチャネル:6(D3 D5 D6 D9 D10 D11)/ アナログ入力チャネル(ADC):8(A0-A7)/ DC出力機能の各I / Oポート:20 mA / 3.3Vポートの出力能力:50 mA / フラッシュメモリ:32 KB(うち0.5 KBはブートローダーによって使用されます)/ SRAM:2 KB(ATMEGA328P-AU)/ EEPROM:1 KB(ATMEGA328P-AU)/ クロック速度:16MHz / オンボードLEDピン:D13

Newtonライト2.0 ベイズ統計
ベイズ統計は,結果から原因を推定する統計学です。AIや医療などの幅広い分野で応用されています。その基礎となるのは18世紀に考えだされた「ベイズの定理」です。 この本では,ベイズ統計学のきほんをやさしく紹介していきます。

白光(HAKKO) ダイヤル式温度制御はんだ吸取器 ハンディタイプ FR301-81


サンハヤト TTW-203 テストワイヤ
ブレッドボードとスルーホール間の接続に便利なワイヤですブレッドボード用のオスピンと基板のスルーホール用のバネ性のある端子を組み合わせたテストワイヤです

無水エタノールP 500mlx2個パック(掃除)


ケイバ(KEIBA) マイクロニッパー MN-A04


熱収縮チューブφ1.5
印字無しで綺麗☆ シュリンクチューブ 絶縁チューブ 防水 高難燃性 収縮チューブ (2m, ブラック(黒))


サンハヤト SAD-101 ニューブレッドボード


白光(HAKKO) HEXSOL 巻はんだ 精密プリント基板用 150g FS402-02


【Amazon.co.jp限定】エーモン 電工ペンチ 全長約255mm (1452)


[Amazon限定ブランド]【指定第2類医薬品】PHARMA CHOICE 解熱鎮痛薬 解熱鎮痛錠IP 100錠


Copyright © 2011-2022 Sarako Tsukiyono All rights reserved®.