Мазмұны:

Роботты көліктен кедергілер: 9 қадам
Роботты көліктен кедергілер: 9 қадам

Бейне: Роботты көліктен кедергілер: 9 қадам

Бейне: Роботты көліктен кедергілер: 9 қадам
Бейне: Өлді деп жерлемек болған еді. Бірақ Алланың қалауымен тірілген Бала 2024, Қараша
Anonim
Кедергілер робот машинадан аулақ
Кедергілер робот машинадан аулақ
Кедергілер робот машинадан аулақ
Кедергілер робот машинадан аулақ

Кедергілерді болдырмайтын роботты қалай құруға болады

1 -қадам: Қара жәшік

Қара жәшік
Қара жәшік

Бірінші қадамда мен қара жәшікті роботымның негізі ретінде қолдандым.

2 -қадам: Arduino

Ардуино
Ардуино

Arduino - бұл бүкіл жүйенің миы және біздің қозғалтқыштарды басқарады

3 -қадам: Arduino -ны Қара жәшікке тіркеу

Arduino -ны Қара жәшікке тіркеу
Arduino -ны Қара жәшікке тіркеу

Мен ыстық желімнің көмегімен ардуиноны қара жәшікке жаптым

4 -қадам: ультрадыбыстық сенсор

Ультрадыбыстық сенсор
Ультрадыбыстық сенсор

Өздігінен қозғала алатын робот жасау үшін бізге қандай да бір кіріс қажет, ол біздің мақсатқа сәйкес келеді. Ультрадыбыстық сенсор - ультрадыбыстық дыбыс толқындарының көмегімен объектіге дейінгі қашықтықты өлшейтін құрал. Ультрадыбыстық сенсор ультрадыбыстық импульстарды жіберу және алу үшін түрлендіргішті қолданады, ол объектінің жақын орналасуы туралы ақпаратты береді.

5 -қадам: Arduino -ға сенсордың тақтаға қосылуы

Сенсордың Arduino -ға арналған тақталық қосылымы
Сенсордың Arduino -ға арналған тақталық қосылымы
Сенсордың Arduino -ға арналған тақталық қосылымы
Сенсордың Arduino -ға арналған тақталық қосылымы

Мен сымдар мен нан тақтасы мен ардуино арасындағы байланысты ажырату үшін қолдандым.

Пинг сенсорының түйреуіштің орналасуы басқа болуы мүмкін екеніне назар аударыңыз, бірақ кернеу түйреуіші, жерге тұйықталу түйреуіші және жаңғырық түйреуіші болуы керек.

6 -қадам: Мотор қалқаны

Мотор қалқаны
Мотор қалқаны

Arduino тақталары тұрақты ток қозғалтқыштарын өз бетінше басқара алмайды, себебі олар шығаратын ток тым төмен. Бұл мәселені шешу үшін біз қозғалтқыш қалқандарын қолданамыз. Қозғалтқыш қалқанында 2 каналы бар, олар екі тұрақты ток қозғалтқышын басқаруға мүмкіндік береді. қадамдық қозғалтқыш. … Бұл түйреуіштерді аша отырып, сіз қозғалтқыш арнасын таңдай аласыз, қозғалтқыш бағытын (полярлығын), қозғалтқыш жылдамдығын (PWM) орната аласыз, қозғалтқышты тоқтатып, іске қосасыз және әр арнаның ағымдағы жұтылуын бақылай аласыз.

7 -қадам: мотор қалқанын Arduino -ға қосу

Мотор қалқанын Arduino -ға қосу
Мотор қалқанын Arduino -ға қосу

Қозғалтқыш қалқанын сенсор сымдары қысылған күйде ардуиноға бекітіңіз

8 -қадам: 4 қозғалтқыш пен аккумуляторды қалқанға қосу

4 қозғалтқыш пен аккумуляторды қалқанға қосу
4 қозғалтқыш пен аккумуляторды қалқанға қосу

Әрбір мотор қалқанында (кем дегенде) екі арна бар: біреуі қозғалтқышқа, екіншісі қуат көзіне арналған, оларды бір -біріне қатысты қосыңыз

9 -қадам: Роботты бағдарламалау

осы кодты іске қосыңыз

#қосу #қосу

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

#TRIG_PIN A2 анықтау #ECHO_PIN A3 анықтау #MAX_DISTANCE 150 #MAX_SPEED 100 анықтау #MAX_SPEED_OFFSET 10 анықтау

логикалық goForward = жалған; int қашықтығы = 80; int speedSet = 0;

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

myservo.attach (10); myservo.write (115); кешіктіру (2000); қашықтық = readPing (); кешіктіру (100); қашықтық = readPing (); кешіктіру (100); қашықтық = readPing (); кешіктіру (100); қашықтық = readPing (); кешіктіру (100); }

void loop () {int қашықтықR = 0; int қашықтығыL = 0; кешіктіру (40); if (қашықтық <= 15) {moveStop (); кешіктіру (50); moveBackward (); кешіктіру (150); moveStop (); кешіктіру (100); қашықтықR = lookRight (); кешіктіру (100); қашықтықL = lookLeft (); кешіктіру (100);

if (қашықтықR> = қашықтықL) {turnRight (); moveStop (); } басқа {turnLeft (); moveStop (); }} басқа {moveForward (); } қашықтық = readPing (); }

int lookRight () {myservo.write (50); кешіктіру (250); int қашықтығы = readPing (); кешіктіру (50); myservo.write (100); қайтару қашықтығы; }

int lookLeft () {myservo.write (120); кешіктіру (300); int қашықтығы = readPing (); кешіктіру (100); myservo.write (115); қайтару қашықтығы; кешіктіру (100); }

int readPing () {delay (70); int cm = sonar.ping_cm (); егер (см == 0) {см = 200; } см қайтару; }

void moveStop () {motor1.run (RELEASE); motor2.run (РЕЛИЗ); motor3.run (РЕЛИЗ); motor4.run (РЕЛИЗ); } void moveForward () {

if (! goForward) {goForward = true; мотор1.жүгіру (АЛҒА); мотор2.жүгіру (АЛҒА); мотор3.жүгіру (АЛҒА); мотор4.жүгіру (АЛҒА); үшін (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); кешіктіру (5); }}}

void moveBackward () {goForward = false; мотор1.жүгіру (АРТҚА); мотор2.жүгіру (АРТҚА); мотор3.жүгіру (АРТҚА); motor4.run (BACKWARD); үшін (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); кешіктіру (5); } void turnLeft () {motor1.run (BACKWARD); мотор2.жүгіру (АРТҚА); мотор3.жүгіру (АЛҒА); мотор4.жүгіру (АЛҒА); кешіктіру (500); мотор1.жүгіру (АЛҒА); мотор2.жүгіру (АЛҒА); мотор3.жүгіру (АЛҒА); мотор4.жүгіру (АЛҒА); }

void turnLeft () {motor1.run (BACKWARD); мотор2.жүгіру (АРТҚА); мотор3.жүгіру (АЛҒА); мотор4.жүгіру (АЛҒА); кешіктіру (500); мотор1.жүгіру (АЛҒА); мотор2.жүгіру (АЛҒА); мотор3.жүгіру (АЛҒА); мотор4.жүгіру (АЛҒА); }

Ұсынылған: