Мазмұны:

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

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

Бейне: Үйде роботты болдырмайтын Arduino кедергілерін қалай жасауға болады: 4 қадам
Бейне: Спорттық робототехника. Robo sumo санаты. 2024, Шілде
Anonim
Image
Image

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

Сонымен, көп созбай -ақ, бастайық!

1 -қадам: Бұл жобада сізге қажет:

Бұл жобада сізге қажет
Бұл жобада сізге қажет
Бұл жобада сізге қажет
Бұл жобада сізге қажет

Міне, бөліктер тізімі:

1) Ардуино Уно

2) Мотор жүргізушісінің қалқаны

3) Редукторлық қозғалтқыш, жақтау мен дөңгелектер жиынтығы

4) Серво моторы

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

6) Li-ion батареясы (2x)

7) Батарея ұстағыш

8) Аталық және аналық секіргіш сым

9) дәнекерлеу темірі

10) зарядтағыш

2 -қадам: схема

Схема диаграммасы
Схема диаграммасы

Жұмыс:

Жобамен жұмыс жасамас бұрын, ультрадыбыстық сенсордың қалай жұмыс істейтінін түсіну керек. Ультрадыбыстық сенсордың жұмысының негізгі принципі келесідей:

Сыртқы триггерлік сигналды қолдана отырып, ультрадыбыстық сенсордағы Trig түйреуіші кем дегенде 10 мкч жоғары логикаға айналады. Таратқыш модулінен дыбыстық жарылыс жіберіледі. Бұл 40 кГц жиіліктегі 8 импульстен тұрады.

Сигналдар бетке тигеннен кейін қайта оралады және қабылдағыш бұл сигналды анықтайды. Эхо түйреуіші сигналды жібергеннен және қабылдағаннан жоғары. Бұл уақытты тиісті есептеулердің көмегімен қашықтыққа түрлендіруге болады.

Бұл жобаның мақсаты - ультрадыбыстық сенсор мен Arduino көмегімен роботты болдырмайтын кедергілерді жүзеге асыру. Барлық қосылымдар схемаға сәйкес орындалады. Жобаның жұмысы төменде түсіндіріледі.

Робот қосылған кезде роботтың қозғалтқыштары да қалыпты жұмыс істейді және робот алға қарай жылжиды. Осы уақыт ішінде ультрадыбыстық сенсор робот пен шағылысатын бет арасындағы қашықтықты үздіксіз есептейді.

Бұл ақпаратты Arduino өңдейді. Егер робот пен кедергінің арасындағы қашықтық 15см -ден аз болса, робот тоқтап, сол және оң жақ бағытта Серво қозғалтқышы мен ультрадыбыстық сенсор көмегімен жаңа қашықтықты іздейді. Егер сол жаққа дейінгі қашықтық оң жақтан үлкен болса, робот солға бұрылуға дайындалады. Бірақ алдымен ол сәл артқа қарай қозғалады, содан кейін сол жақ дөңгелекті қозғалтқышты кері бағытта қосады.

Сол сияқты, егер дұрыс қашықтық сол қашықтықтан көп болса, робот оңға айналуды дайындайды. Бұл процесс мәңгілікке жалғасады және робот еш кедергіге қарамай қозғалуын жалғастырады.

3 -қадам: Arduino UNO бағдарламалау

#қосу

#қосу

#қосу

# TRIG_PIN A1 анықтаңыз

# ECHO_PIN A0 анықтаңыз

# MAX_DISTANCE 200 анықтау

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

# MAX_SPEED_OFFSET анықтау 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor қозғалтқышы3 (3, MOTOR34_1KHZ);

AF_DCMotor қозғалтқышы4 (4, MOTOR34_1KHZ); Сервистік қызмет;

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

int қашықтығы = 100; 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 (); кешіктіру (100); moveBackward (); кешіктіру (300); moveStop (); кешіктіру (200); қашықтықR = lookRight (); кешіктіру (200); қашықтықL = lookLeft (); кешіктіру (200);

егер (қашықтықR> = қашықтықL) {

Оңға бұрылыңыз(); moveStop (); } басқа {turnLeft (); moveStop (); }} басқа {moveForward (); } қашықтық = readPing (); }

int lookRight () {

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

int lookLeft () {

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

int readPing () {

кешіктіру (70); int cm = sonar.ping_cm (); егер (см == 0) {см = 250; } см қайтару; }

void moveStop () {

motor3.run (РЕЛИЗ);

motor4.run (РЕЛИЗ); }

void moveForward () {

егер (! goForward) {

goForward = true;

мотор3.жүгіру (АЛҒА);

мотор4.жүгіру (АЛҒА); үшін (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // батареяларды тез жүктемеу үшін жылдамдықты баяу көтеріңіз {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); кешіктіру (5); }}}

void moveBackward () {

goForward = жалған;

мотор3.жүгіру (АРТҚА);

motor4.run (BACKWARD); үшін (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // батареяларды тез жүктемеу үшін жылдамдықты баяу көтеріңіз {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); кешіктіру (5); }}

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

мотор3.жүгіру (АЛҒА);

motor4.run (BACKWARD); кешіктіру (500);

мотор3.жүгіру (АЛҒА);

мотор4.жүгіру (АЛҒА); }

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

мотор3.жүгіру (АРТҚА);

мотор4.жүгіру (АЛҒА); кешіктіру (500);

мотор3.жүгіру (АЛҒА);

мотор4.жүгіру (АЛҒА); }

1) Arduino Desktop IDE жүктеңіз және орнатыңыз

  • терезелер -
  • Mac OS X -
  • Linux -

2) NewPing кітапханасының (Ультрадыбыстық сенсорлық функциялар кітапханасы) файлын жүктеп, Arduino кітапханалары қалтасына қойыңыз.

  1. Төменде NewPing.rar жүктеңіз
  2. Оны жолға шығарыңыз - C: / Arduino / librarys

3) USB кабелі арқылы кодты Arduino тақтасына жүктеңіз

Жүктеу коды:

4 -қадам: Тамаша

Енді сіздің робот кез келген кедергілерді болдырмауға дайын …

Мен сіздердің кез келген сұрақтарыңызға жауап беруге қуанышты болар едім

Электрондық пошта: [email protected]

Веб -сайт:

Менің YouTube каналыма жазылыңыз:

Инстаграм:

Facebook:

Рақмет сізге:)

Ұсынылған: