Arduino Obstacle Avoiding Robot_Car by AKIOSTEM2019 20190626
Arduino Obstacle Avoiding Robot_Car by AKIOSTEM2019 20190626 AKIOSTEM.COM
障害物回避Robot_Car
Ardublock で最小限のprogrammingしました。
仕様 Arduino L293D SR-04 RGB_LED
タミヤ 工作シリーズ No.168 ダブルギヤボックス 左右独立4速タイプ (70168)
No.111 スポーツタイヤ 56mm径 (70111)
No.144 ボールキャスター 2セット入 (70144)
透明 ユニバーサルプレートセット 2枚セット 69906
PIN番号がわからない方はArdublock でChallengeしてみるとよいかもしれません
Ardublock の l293d_sr04_test1_20190626.abp 画像 : Arduino のcode upしてます
(改造)参考にしてみてください。 詳しい動きは Youtube: https://youtu.be/ をご覧ください URL http://AKIOSTEM.COM
Arduino Obstacle Avoiding Robot_Car by AKIOSTEM2019 20190626
#include <AFMotor.h>
int _ABVAR_1_distance = 0 ;
int ardublockUltrasonicSensorCodeAutoGeneratedReturnCM(int trigPin, int echoPin)
{
long duration;
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(20);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
duration = duration / 59;
if ((duration < 2) || (duration > 300)) return false;
return duration;
}
AF_DCMotor motor_dc_1(1, MOTOR12_64KHZ);
AF_DCMotor motor_dc_2(2, MOTOR12_64KHZ);
void red();
void green();
void blue();
void stop1();
void left();
void forward();
void black();
void back();
void setup()
{
digitalWrite( A3 , LOW );
Serial.begin(9600);
blue();
delay( 1000 );
green();
delay( 1000 );
red();
delay( 1000 );
green();
delay( 1000 );
}
void loop()
{
_ABVAR_1_distance = ardublockUltrasonicSensorCodeAutoGeneratedReturnCM( A3 , A4 ) ;
Serial.print(“message”);
Serial.print(” “);
Serial.print(_ABVAR_1_distance);
Serial.print(” “);
Serial.println();
if (( ( _ABVAR_1_distance ) < ( 60 ) ))
{
back();
delay( 1000 );
left();
blue();
delay( 500 );
stop1();
red();
delay( 500 );
}
forward();
green();
delay( 500 );
black();
delay( 500 );
}
void stop1()
{
motor_dc_1.setSpeed(0);
motor_dc_1.run(FORWARD);
motor_dc_2.setSpeed(0);
motor_dc_2.run(FORWARD);
}
void green()
{
analogWrite(A0 , 0);
analogWrite(A1 , 255);
analogWrite(A2 , 0);
}
void forward()
{
motor_dc_1.setSpeed(100);
motor_dc_1.run(FORWARD);
motor_dc_2.setSpeed(100);
motor_dc_2.run(FORWARD);
}
void back()
{
motor_dc_1.setSpeed(100);
motor_dc_1.run(BACKWARD);
motor_dc_2.setSpeed(100);
motor_dc_2.run(BACKWARD);
}
void red()
{
analogWrite(A0 , 0);
analogWrite(A1 , 0);
analogWrite(A2 , 255);
}
void left()
{
motor_dc_1.setSpeed(80);
motor_dc_1.run(BACKWARD);
motor_dc_2.setSpeed(80);
motor_dc_2.run(FORWARD);
}
void black()
{
analogWrite(A0 , 0);
analogWrite(A1 , 0);
analogWrite(A2 , 0);
}
void blue()
{
analogWrite(A0 , 255);
analogWrite(A1 , 0);
analogWrite(A2 , 0);
}