HOME | Raspberry Pi | ビジネス書籍紹介 | 2024-11-22 (Fri) Today's Access : 166 Total : 1098246. 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回テレメトリ通信
2023.05.01 番外編 micro:bit磁気加速度センサ
2024.06.23 第3回 機体制御 雑談
2024.07.23 第4回 慣性センサ


Arduinoで学ぶ組込みシステム入門(第2版)
●Arduinoを使って組込みシステム開発を理解する
・ハードウェアやソフトウェアなどの基礎知識/ ・設計から実装までを系統的に説明するモデルベース開発/ ・Arduinoを用いた実際の開発例

最新 使える! MATLAB 第3版
◆◆すぐに「使える!」 全ページフルカラー!◆◆
・MATLAB R2022bに対応し、解説もより詳しく!/ ・コマンド・スクリプトの例が豊富で、動かして学べる!/ ・超基本から解説。これから使いはじめる人にぴったり!/ ・全編フルカラー、スクリーンショットも豊富!

Amazon Web Services基礎からのネットワーク&サーバー構築改訂4版
1.システム構築をインフラから始めるには/ 2.ネットワークを構築する/ 3.サーバーを構築する/ 4.Webサーバーソフトをインストールする/ 5.HTTPの動きを確認する/ 6.プライベートサブネットを構築する/ 7.NATを構築する/ 8.DBを用いたブログシステムの構築/ 9.TCP/IPによる通信の仕組みを理解する

C言語は第二の母国語: 独学学生時代から企業内IT職人時代に培った、独立のための技術とノウハウ 平田豊著
学生時代から独学でプログラミングをはじめ、企業内でデバイスドライバを開発し、そして独立後もたくさんのアプリケーション開発や技術書制作に携わってきた著者。その筆者が大事に使い続ける「C言語」の“昔と今”について、気づいたことや役立つ知識、使ってきたツールなどについて、これまで記してきたことを整理してまとめました。 本書では、現役プログラマーだけでなく、これからプログラミングを学ぶ学生などにも有益な情報やノウハウを、筆者の経験を元に紹介しています。

1冊ですべて身につくJavaScript入門講座
・最初の一歩が踏み出せる! 初心者に寄り添うやさしい解説 ・最新の技術が身につく! 今のJavaScriptの書き方・使い方 ・絶対に知っておきたい! アニメーションとイベントの知識 ・プログラミングの基本から実装方法まですべて学べる

図解! Git & GitHubのツボとコツがゼッタイにわかる本
ソフトウェア開発では欠かすことのできないGit、GitHub。 これからGit、GitHubを使いたいという入門者の方でも、実際に手を動かしながら使い方を学べます。

C自作の鉄則!2023 (日経BPパソコンベストムック)
メーカー製のパソコンはスペックが中途半端で、自分が本当に欲しい機種がない――。そう思っている人には、ぜひ自作パソコンをお薦めします。自作パソコンのパーツは進化が速く、しかも驚くほど種類が豊富。価格も性能も、幅広く用意されているため、満足度100%の“自分だけの1台”を手に入れることができます。

Interface 2023年6月号
特集:第1部 フィルタ設計 基礎の基礎/ 第2部 係数アプリや波形観測アプリで合点!FIR&IIRフィルタ作り/ 第3部 配布プリント基板で体験!マイコンで動くフィルタ作り

日経Linux 2023年5月号
【特集 1】 AI時代の最強フリーソフト ~ 25のやりたいを実現! 【特集 2】 AWS、Azureのうまみを無料で体感!面倒なことはクラウドに任せよう 【特集 3】 新しいRaspberry Pi Cameraで遊んでみよう 【特集 4】 Linuxで旧型PCを復活! 1kg切るモバイルPCを「ChromeOS Flex」でChromebook化

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

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

Raspberry Piのはじめ方2022
本書は、ラズパイやPicoの買い方やインストール、初期設定といった基本から、サーバー、電子工作、IoT、AIといったラズパイならではの活用方法まで、1冊でお届けします。 ラズパイをこれから始める方向けに、全36ページの入門マンガ「女子高生とラズベリーパイ」も巻末に掲載。これを読むだけでラズパイがどんなものなのか、すぐに分かって触れるようになります。

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

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

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

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

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

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

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


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


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


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


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


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


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