Мазмұны:

Arduino көмегімен ақылды роботты қалай жасауға болады: 4 қадам
Arduino көмегімен ақылды роботты қалай жасауға болады: 4 қадам

Бейне: Arduino көмегімен ақылды роботты қалай жасауға болады: 4 қадам

Бейне: Arduino көмегімен ақылды роботты қалай жасауға болады: 4 қадам
Бейне: Вебинар №2. Andy Ruina про координацию роботов и технологии движения. Beyond Robotics 2024, Қараша
Anonim
Image
Image

Сәлеметсіз бе,

Мен arduino жасаушымын және бұл оқулықта мен сізге arduino көмегімен ақылды робот жасауды көрсетемін.

Егер сізге менің оқулығым ұнаған болса, онда менің yoduube арнамды arduino жасаушы деп атауға тырысыңыз

Жабдықтар

Сізге қажет нәрселер:

1) arduino uno

2) ультрадыбыстық сенсор

3) Бо моторы

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

5) балмұздақ таяқшалары

6) 9В батарея

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// // Серво кітапханасы https://github.com/arduino-libraries/Servo.git // // Кітапханаларды орнату үшін эскизге өтіңіз >> Қосу Кітапхана >>. ZIP файлын қосу >> Жоғарыдағы сілтемелерден жүктелген ZIP файлдарын таңдаңыз //

#қосу

#қосу

#қосу

#анықтау TRIG_PIN A0

200 ECHO_PIN A1 анықтаңыз

#define MAX_SPEED 150 // тұрақты ток қозғалтқыштарының жылдамдығын орнатады

#MAX_SPEED_OFFSET анықтау

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); Сервистік қызмет;

логикалық goForward = жалған;

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 (); } басқа {turnLeft (); moveStop (); }} басқа {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(РЕЛИЗ); //motor3.run(РЕЛИЗ); motor4.run (РЕЛИЗ); } void moveForward () {

егер (! Алға)

{goForward = true; мотор1.жүгіру (АЛҒА); //motor2.run(FORWARD); //motor3.run(FORWARD); мотор4.жүгіру (АЛҒА); үшін (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // аккумуляторларды тез жүктемеу үшін жылдамдықты баяу көтеріңіз {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); кешіктіру (5); }}}

void moveBackward () {

goForward = жалған; мотор1.жүгіру (АРТҚА); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); үшін (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // аккумуляторларды тез жүктемеу үшін жылдамдықты баяу көтеріңіз {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); кешіктіру (5); }}

жарамсыз turnRight () {

мотор1.жүгіру (АРТҚА); //motor2.run(BACKWARD); //motor3.run(FORWARD); мотор4.жүгіру (АЛҒА); кешіктіру (350); мотор1.жүгіру (АЛҒА); //motor2.run(FORWARD); //motor3.run(FORWARD); мотор4.жүгіру (АЛҒА); } void turnLeft () {motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); кешіктіру (350); мотор1.жүгіру (АЛҒА); //motor2.run(FORWARD); //motor3.run(FORWARD); мотор4.жүгіру (АЛҒА); }

Ұсынылған: