Мазмуну:

Arduino аркылуу акылдуу роботту кантип жасоо керек: 4 кадам
Arduino аркылуу акылдуу роботту кантип жасоо керек: 4 кадам

Video: Arduino аркылуу акылдуу роботту кантип жасоо керек: 4 кадам

Video: Arduino аркылуу акылдуу роботту кантип жасоо керек: 4 кадам
Video: Lesson 02 Arduino IDE Software | Robojax Arduino Step By Step Course 2024, Ноябрь
Anonim
Image
Image

салам,

Мен arduino жаратуучусумун жана бул үйрөткүчтө мен сизге ардуинону колдонуп акылдуу роботту кантип жасоону көрсөтөм.

эгер менин үйрөткүчүм сизге жакса, анда менин yoduube каналымды arduino maker деп колдоп көрүңүз

Жабдуулар

Сизге керектүү нерселер:

1) arduino uno

2) УЗИ сенсору

3) Бо мотор

4) дөңгөлөктөр

5) балмуздак таякчалары

6) 9v батарея

1 -кадам: БАЙЛАНЫШТАР

БААРДЫК КОМПОНЕНТТЕР ОРДУНДА
БААРДЫК КОМПОНЕНТТЕР ОРДУНДА

Андан кийин, бардык материалдарды азыр алуу менен, баарын жогоруда берилген схемага ылайык туташтыра башташыңыз керек

2 -кадам: БААРДЫК КОМПОНЕНТТЕРДИ ОРНУНА ГЛЕЕ

Макул,

азыр бардык нерселерди жогорудагы сүрөттө көрсөтүлгөндөй туташтырыңыз

3 -кадам: ПРОГРАММАЛОО

Эми,

төмөндө берилген код менен тактаны программалоону баштаңыз

// ARDUINO OBSTACLE AVOIDING CAR //// Кодду жүктөөдөн мурун керектүү китепкананы орнотушуңуз керек // // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // NewPing китепканасы https://github.com/livetronic/Arduino-NewPing// // Servo Library https://github.com/arduino-libraries/Servo.git // // Китепканаларды орнотуу үчүн эскизге өтүңүз >> Кошуу Китепкана >>. ZIP файлын кошуу >> Жогорудагы шилтемелерден Жүктөлгөн ZIP файлдарын тандоо //

#кошуу

#кошуу

#кошуу

#аныктоо TRIG_PIN A0

200

#define MAX_SPEED 150 // DC кыймылдаткычтарынын ылдамдыгын белгилейт

#аныктоо MAX_SPEED_OFFSET 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor мотор1 (1, MOTOR12_1KHZ);

// AF_DCMotor мотор2 (2, MOTOR12_1KHZ); // AF_DCMotor мотор3 (3, MOTOR34_1KHZ); AF_DCMotor мотор4 (4, MOTOR34_1KHZ); Servo myservo;

логикалык goForward = false;

int расстояние = 100; int speedSet = 0;

жараксыз орнотуу () {

myservo.attach (10);

myservo.write (115); кечигүү (1000); аралык = readPing (); кечиктирүү (100); аралык = readPing (); кечиктирүү (100); аралык = readPing (); кечиктирүү (100); аралык = readPing (); кечиктирүү (100); }

void loop () {

int расстояниеR = 0; int расстояние L = 0; кечиктирүү (40); if (расстояние <= 15) {moveStop (); кечиктирүү (100); moveBackward (); кечигүү (300); moveStop (); кечигүү (200); расR = lookRight (); кечигүү (300); расстояние L = lookLeft (); кечигүү (300);

эгер (расстояние R> = расстояние L)

{ оңго бурулуу(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } аралык = readPing (); }

int lookRight ()

{myservo.write (50); кечигүү (650); int расстояние = readPing (); кечиктирүү (100); myservo.write (115); кайтуу аралыгы; }

int lookLeft ()

{myservo.write (170); кечигүү (650); int расстояние = readPing (); кечиктирүү (100); myservo.write (115); кайтуу аралыгы; кечиктирүү (100); }

int readPing () {

кечиктирүү (70); int cm = sonar.ping_cm (); эгер (см == 0) {см = 250; } см кайтаруу; }

void moveStop () {

motor1.run (ЧЫГАРУУ); //motor2.run(RELEASE); //motor3.run(RELEASE); motor4.run (ЧЫГАРУУ); } void moveForward () {

эгер (! Алга)

{goForward = true; motor1.run (АЛГА); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (АЛГА); үчүн (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // батарейкаларды өтө тез жүктөбөө үчүн ылдамдыкты акырындык менен алып келиңиз {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); кечигүү (5); }}}

void moveBackward () {

баратForward = false; motor1.run (Артка); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.run (Артка); үчүн (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // батарейкаларды өтө тез жүктөбөө үчүн ылдамдыкты акырындык менен алып келиңиз {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); кечигүү (5); }}

void turnRight () {

motor1.run (Артка); //motor2.run(BACKWARD); //motor3.run(FORWARD); motor4.run (АЛГА); кечигүү (350); motor1.run (АЛГА); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (АЛГА); } боштук turnLeft () {motor1.run (АЛГА); //motor2.run(FORWARD); //motor3.run(BACKWARD); motor4.run (Артка); кечигүү (350); motor1.run (АЛГА); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (АЛГА); }

Сунушталууда: