Donkey CarはRaspberry Pi のカメラからコースをディープラーニングさせ自動走行を行います。(動画は白線内を自動走行)
●使い方
同ブログ関連記事【Raspberry Pi Donkey Car スマートカー】
動画
タミヤ バギー
■Raspberry Pi3 B+ (技適製品)
■Arduino Nano
■カメラモジュール
■マイクロサーボ:TG9z
■レーザー測距センサー:VL53
■タミヤ 楽しい工作シリーズ No.112 バギー工作基本セット 70112
■タミヤ 楽しい工作シリーズ No.157 ユニバーサルプレート 2枚セット (70157)
■モバイルバッテリー
今回[SEL]制御信号線を外して【M】→【OUT】障害物検知を未使用にしました。
※障害物検知(Arduino Nano・VL53・マルチプレクサ)を外すとシンプルなDonkey Carとなります。
(サーボモータから外した基板)
サーボモータ基板にモータを接続してPWM信号により回転方向とスピード制御。
図面
#include <Wire.h>
#include <VL53L0X.h>
#include <Servo.h> //servo library
Servo myservo1;
Servo myservo2;
Servo myservo3;
VL53L0X gVL530X;
void vl53(){
int dist = gVL530X.readRangeContinuousMillimeters();
if (gVL530X.timeoutOccurred()){
}
if(dist < 100 ){
myservo3.write(180); //SEL_on
delay(10);
myservo1.write(45); //back
myservo2.write(70); //center
delay(1000);
myservo2.write(40); //right
myservo1.write(135); //forward
delay(1000);
myservo1.write(90); //stop
myservo2.write(70); //center
delay(500);
myservo3.write(45); //SEL_off
delay(10);
//myservo1.write(45); //back
//myservo2.write(40); //right
//myservo1.write(135); //forward
//myservo2.write(100); //left
//myservo1.write(90); //stop
//myservo2.write(70); //center
}
}
void setup()
{
Serial.begin(9600);
Serial.println("START\n");
Wire.begin();
gVL530X.init();
gVL530X.setTimeout(1000);
gVL530X.startContinuous(100);
myservo1.attach(3);
myservo2.attach(5);
myservo3.attach(6);
//myservo3.write(180); //SEL_on
myservo3.write(45); //SEL_off
}
void loop()
{
vl53();
}
0 件のコメント:
コメントを投稿