Мазмуну:

Үйдө роботту жок кылуу үчүн Arduino DIY тоскоолдуктарын кантип жасоо керек: 4 кадам
Үйдө роботту жок кылуу үчүн Arduino DIY тоскоолдуктарын кантип жасоо керек: 4 кадам

Video: Үйдө роботту жок кылуу үчүн Arduino DIY тоскоолдуктарын кантип жасоо керек: 4 кадам

Video: Үйдө роботту жок кылуу үчүн Arduino DIY тоскоолдуктарын кантип жасоо керек: 4 кадам
Video: Загадка Титаника : Как они могли не заметить айсберг?! Самая подробная история! 2024, Ноябрь
Anonim
Image
Image

Салам балдар, бул нускамада сиз роботтон качуу үчүн тоскоолдук кыласыз. Бул Instructable жакын объекттерди аныктоо жана бул объектилерди качуу үчүн багытын өзгөртө алат УЗИ сенсор менен робот курууну камтыйт. УЗИ сенсору дайыма солго жана оңго сканерлеп жүргөн жол кыймылдаткычына тиркелет, анын жолундагы объекттерди издейт.

Ошентип, көпкө созулбастан, Келгиле, баштайлы!

1 -кадам: Бул долбоордо сизге эмне керек:

Бул долбоордо сизге эмне керек
Бул долбоордо сизге эмне керек
Бул долбоордо сизге эмне керек
Бул долбоордо сизге эмне керек

Бул жерде Бөлүктөр тизмеси:

1) Arduino Uno

2) Motor Driver Shield

3) Gear Motor, Frame жана дөңгөлөктөр топтому

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

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

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

7) Батарея кармагыч

8) Эркек жана Аял Jumper зымы

9) ширетүүчү темир

10) Заряддоочу

2 -кадам: Райондук диаграмма

Райондук диаграмма
Райондук диаграмма

Иштөө:

Долбоордун үстүнөн иштөөнүн алдында, УЗИ сенсорунун кантип иштээрин түшүнүү маанилүү. УЗИ сенсорунун иштешинин негизги принциби төмөнкүчө:

Сырткы триггер сигналын колдонуп, УЗИ сенсорундагы Trig пини жок дегенде 10µs үчүн логиканы бийик кылат. Өткөргүч модулунан үн жарылышы жөнөтүлөт. Бул 40KHz 8 импульстардан турат.

Сигналдар бир жерге тийгенден кийин кайра кайтып келет жана алуучу бул сигналды аныктайт. Эхо пини сигналды жөнөтүп, аны кабыл алган учурдан тартып жогору. Бул убакытты тиешелүү эсептөөлөрдү колдонуу менен аралыкка айландырса болот.

Бул долбоордун максаты - роботтун УЗИ сенсорун жана Arduino колдонуп, тоскоолдукту ишке ашыруу. Бардык байланыштар схемага ылайык жүргүзүлөт. Долбоордун иштеши төмөндө түшүндүрүлөт.

Робот иштетилгенде, роботтун моторлору тең кадимкидей иштейт жана робот алдыга жылат. Бул убакыт аралыгында УЗИ сенсору робот менен чагылтуучу бетинин ортосундагы аралыкты тынымсыз эсептеп турат.

Бул маалымат Arduino тарабынан иштетилет. Эгерде робот менен тоскоолдуктун ортосундагы аралык 15смден аз болсо, робот токтоп, Servo Motor жана Ultrasonic Sensor аркылуу жаңы аралыкты сол жана оң багытта издейт. Эгерде сол тарапка карай аралык оң тараптан көбүрөөк болсо, робот солго бурулууга даярданат. Бирок, адегенде, ал бир аз артка жылат жана андан кийин сол дөңгөлөктүн моторун тескери багытта иштетет.

Ошо сыяктуу эле, эгерде оң аралык сол аралыктан көп болсо, Робот оң айланууну даярдайт. Бул процесс түбөлүккө уланат жана робот эч кандай тоскоолдуксуз урунууну улантат.

3 -кадам: Arduino UNOну программалоо

#кошуу

#кошуу

#кошуу

# TRIG_PIN A1ди аныктоо

# ECHO_PIN A0 аныктоо

200

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

# MAX_SPEED_OFFSETти аныктоо 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

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); кечигүү (2000); аралык = readPing (); кечиктирүү (100); аралык = readPing (); кечиктирүү (100); аралык = readPing (); кечиктирүү (100); аралык = readPing (); кечиктирүү (100); }

void loop () {

int расстояниеR = 0; int расстояние L = 0; кечиктирүү (40);

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

if (distanceR> = distanceL) {

оңго бурулуу(); moveStop (); } else {turnLeft (); moveStop (); }} else {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 () {

if (! goForward) {

goForward = true;

motor3.run (АЛГА);

motor4.run (АЛГА); үчүн (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // аккумуляторлорду өтө тез жүктөбөө үчүн ылдамдыкты акырындык менен көтөрүңүз {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); кечигүү (5); }}}

void moveBackward () {

баратForward = false;

motor3.run (Артка);

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

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); кечигүү (5); }}

void turnRight () {

motor3.run (АЛГА);

motor4.run (Артка); кечигүү (500);

motor3.run (АЛГА);

motor4.run (АЛГА); }

Void turnLeft () {

motor3.run (Артка);

motor4.run (АЛГА); кечигүү (500);

motor3.run (АЛГА);

motor4.run (АЛГА); }

1) Arduino Desktop IDEди жүктөп алып, орнотуңуз

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

2) NewPing китепканасынын (Ultrasonic sensor function library) файлын Arduino китепканалары папкасына жүктөп, чаптаңыз.

  1. Төмөндө NewPing.rar жүктөп алыңыз
  2. Аны жолго чыгарыңыз - C: / Arduino / libraries

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

Жүктөө коду:

4 -кадам: Улуу

Эми сиздин робот эч кандай тоскоолдуктан качууга даяр …

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

Электрондук почта: [email protected]

Вебсайт:

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

Инстаграм:

Facebook:

Рахмат:)

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