Жөнөкөй роботту кантип жасоо керек

Жөнөкөй роботту кантип жасоо керек

Жөнөкөй робот куруу - электрониканы, механиканын негиздерин жана программалоону үйрөнүүнүн кызыктуу жолу. Көптөр роботтор кымбат жана татаал болушу керек деп ойлошот, бирок чындыгында үйдө чогултууга оңой болгон кичинекей долбоордон баштасаңыз болот. Бул макалада биз ультраүн сенсорлорун колдонуп, тоскоолдуктардан качуучу жөнөкөй робот курабыз. Бул робот алдыга басып, алдындагы нерсени байкаганда автоматтык түрдө бурула алат. Бул долбоор башталгычтар, студенттер же робототехниканы үйрөнүүнү каалагандар үчүн ылайыктуу.

1. Жөнөкөй роботтор түшүнүгүн түшүнүү

Жалпысынан алганда, роботтор үч негизги компоненттен турат: мээ (контроллер), сезүү органдары (сенсорлор) жана булчуңдар (актуаторлор). Бул долбоордо:

– Контроллер: Arduino Uno (же шайкеш келет)
– Сенсор: аралыкты өлчөө үчүн HC-SR04 ультраүн сенсору
– Кыймылдаткыч: дөңгөлөктөрдү кыймылдаткычка айландыруучу туруктуу токтун мотору
– Мотор драйвери: L298N (же L293D) мотор драйвери, ошондуктан моторду Arduino аркылуу башкарууга болот

Сенсор роботтун алдындагы аралыкты эсептегенде жана аралык өтө жакын болгондо, Arduino мотордун айдоочусуна кыймыл багытын өзгөртүүнү, мисалы, оңго же солго бурулууну буйрук кылат.

2. Керектүү шаймандар жана материалдар

Электроника дүкөндөрүнөн же базарлардан оңой табылуучу кеңири колдонулган компоненттердин тизмеси:

1. Arduino Uno (1 даана)
2. L298N кыймылдаткычы (1 даана)
3. HC-SR04 ультраүн сенсору (1 даана)
4. Эки дөңгөлөктүү робот үчүн туруктуу токтун мотору + редуктор жана дөңгөлөктөр (2 даана) (дифференциалдык жетек)
5. Алдыңкы же арткы жагында кичинекей тең салмактоочу дөңгөлөк (1 даана)
6. Батареялар (мисалы, 2×18650 же 7,4V топтому) же 6xAA, мотордун муктаждыктарына жараша
7. Робот шассиси (даяр сатып алса болот же акрил/фанерадан жасаса болот)
8. Өткөргүч кабелдер (эркек-ургаачы жана эркек-эркек)
9. Күйгүзүү/өчүрүү баскычы (милдеттүү эмес, бирок абдан пайдалуу)
10. Кичинекей нан тактасы (милдеттүү эмес)
11. Зарылчылыкка жараша болттор, гайкалар, бурагычтар жана ысык желим

Эгер сиз андан да жөнөкөй нерсени кааласаңыз (ультраүн сенсорлору жок), сиз линия сенсорлору бар "сызыкты ээрчүүчү" роботту кура аласыз, бирок тоскоолдуктардан качуу версиялары көбүнчө алдыдагы нерселерге жооп бергендиктен "тирүү" сезилет.

ТИЛДИ ТАНДОО  Электромагниттик толкундардын негизги теориясы

3. Роботтун шассисин долбоорлоо

Шасси – бул бардык компоненттер орнотулган рамка. Сиз даяр шасси комплектин колдоно аласыз же акрил, ПВХ же жука жыгач сыяктуу жеңил материалдардан өзүңүз жасай аласыз. Принцип мындай:

– Сол жана оң тараптарга эки туруктуу токтун кыймылдаткычын орнотуңуз.
– Мотоциклге дөңгөлөктөрдү орнотуңуз.
– Роботту туруктуу кылуу үчүн тең салмактоочу катары дөңгөлөк кошуңуз.
– Батареяны роботту кыйшайтып койбогондой абалга коюңуз.
– Arduino жана мотор драйверлери оңой жетүү үчүн жогору жагына жайгаштырылышы керек.

Дөңгөлөктөргө илинип калбашы үчүн, кабель салбырап калбаганын текшериңиз.

4. Негизги зым схемасы

Бул жерде жалпы туташуу концепциясы келтирилген (пиндерди ыңгайлаштырууга болот):

а) Мотордон айдоочуга L298N
– Сол моторду OUT1 жана OUT2 чыгарууга
– Оң мотор OUT3 жана OUT4 чыгаруусуна

б) L298N драйвери Arduino үчүн
– сол мотор үчүн кээ бир Arduino санариптик төөнөгүчтөрүнө IN1, IN2
– Оң мотор үчүн кээ бир Arduino санариптик төөнөгүчтөрүнө IN3, IN4
– Ылдамдыкты башкаруу үчүн ENA жана ENB (enable) Arduino PWM пиндерине туташтырылышы мүмкүн (милдеттүү эмес). Эгер андай болбосо, кээ бир L298N модулдарында мотордун толук ылдамдыкта иштешине мүмкүндүк берүүчү enable jumper бар.

c) HC-SR04 сенсорун Arduino'го туташтыруу
– VCCден 5V Arduinoго чейин
– GNDден GNDге Ардуино
– TRIGти Arduino санариптик төөнөгүчүнө туташтыруу
– ECHO'дон Arduino санариптик төөнөгүчүнө

г) Кубат
Мотор Arduino бере алгандан көбүрөөк ток талап кылат. Ошондуктан:
– Негизги батарея мотордун драйверине (L298Nдеги +12V жана GND терминалдары) берилет.
– Arduino батареядан (VIN аркылуу) же өзүнчө кубат банкы/USB аркылуу да кубатталышы мүмкүн.
– Жерге туташтыруу: Башкаруу сигналы туруктуу болушу үчүн батарейка/драйвер GND жана Arduino GND туташтырылышы керек.

Жаңыдан баштагандар арасында эң көп кездешкен ката - GNDди чогултууну унутуп калуу, ошондуктан робот туруксуз кыймылдайт.

ТИЛДИ ТАНДОО  Акылдуу тармак тармактарына киришүү

5. Тоскоолдуктардан качуу роботунун иштөө логикасы

Робот жөнөкөй схема менен иштейт:

1. УЗИ сенсорунан аралыкты өлчөгүлө.
2. Эгерде аралык > босогодон (мисалы, 20 см) ашса, робот алдыга жылат.
3. Эгерде аралык ≤ 20 см болсо, робот кыска убакытка токтойт.
4. Робот бир аз артка жылат, андан кийин бир нече жүз миллисекундга (мисалы, оңго) бурулат.
5. Аралыкты кайра окуп, кайталаңыз.

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

6. Arduino кодунун жөнөкөй мисалы

Төмөндө коддун негизги мисалы келтирилген. Сиз схемаңызга ылайыкташтыруу үчүн пиндерди өзгөртө аласыз:

"`cpp
TRIG 8ди аныктаңыз
ECHO 9ду аныктаңыз

// Сол мотор
IN1 2 аныктаңыз
IN2 3 аныктаңыз

// Оң жактагы мотор
IN3 4 аныктаңыз
IN4 5 аныктаңыз

узак мөөнөттүү;
аралык;

int окуу аралыгы() {
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);

узактыгы = pulseIn(ECHO, HIGH);
int см = узактыгы 0.034 / 2;
см кайтаруу;
}

боштук алдыга() {
digitalWrite(IN1, ЖОГОРКУ);
digitalWrite(IN2, ТӨМӨН);
digitalWrite(IN3, ЖОГОРКУ);
digitalWrite(IN4, ТӨМӨН);
}

void тескери() {
digitalWrite(IN1, ТӨМӨН);
digitalWrite(IN2, ЖОГОРКУ);
digitalWrite(IN3, ТӨМӨН);
digitalWrite(IN4, ЖОГОРКУ);
}

боштук бурулушОң() {
digitalWrite(IN1, ЖОГОРКУ);
digitalWrite(IN2, ТӨМӨН);
digitalWrite(IN3, ТӨМӨН);
digitalWrite(IN4, ЖОГОРКУ);
}

боштук токтотуу() {
digitalWrite(IN1, ТӨМӨН);
digitalWrite(IN2, ТӨМӨН);
digitalWrite(IN3, ТӨМӨН);
digitalWrite(IN4, ТӨМӨН);
}

жараксыз орнотуу () {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);

pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);

Serial.begin (9600);
}

жараксыз цикл () {
аралык = readDistance();
Serial.println(аралык);

эгер (аралык > 20) {
улантуу();
башка} {
токтотуу();
кечигүү (200);
тескери();
кечигүү (300);
токтотуу();
кечигүү (200);
оңго бурулуңуз ();
кечигүү (400);
токтотуу();
}

кечигүү (50);
}
""

Бул код эң жөнөкөй версия. Эгерде робот өтө көп бузулуп калса, сиз босогону 25–30 смге чейин көбөйтө аласыз же бурулуш убактысын көбөйтө аласыз.

7. Сыноо жана жөндөө

Робот чогултулгандан кийин, этап-этабы менен сыноону жүргүзүңүз:

1. Алгач моторду текшериңиз: дөңгөлөктөр туура багытта айланып жатканын текшерүү үчүн алдыга/артка айландыруу функциясын иштетиңиз.
2. УЗИ сенсорун текшериңиз: аралыктын жыйынтыктарын Arduino IDE сериялык мониторунан көрүңүз.
3. Системаны бириктириңиз: толук программаны иштетип, роботтун реакциясын байкаңыз.

ТИЛДИ ТАНДОО  Электр кыймылдаткычы кантип иштейт?

Эгерде робот алдыга жылышы керек болгондо бурулуп же артка жылып жатса, анда мотордун кабелдерин алмаштыруу же IN1-IN2 (жана IN3-IN4) логикасын тескерисинче иштетүү керек болушу мүмкүн.

8. Жалпы көйгөйлөр жана аларды чечүү жолдору

Көп учурда пайда болгон кээ бир тоскоолдуктар:

– Робот такыр кыймылдабайт: батареяны, мотордун драйверин текшериңиз, күйгүзүүчү өтмөк иштеп турганын текшериңиз.
– Arduino мотор иштеп жатканда баштапкы абалга келет: кубат жетишсиз же мотордун ызы-чуусу. Arduino үчүн өзүнчө батареяны колдонуп көрүңүз, конденсатор кошуп, жерге туташтырууну бекитиңиз.
– Аралык сенсорунун көрсөткүчү туруксуз: сенсор түз карап турганын текшериңиз, аны ашыкча титирөөдөн алыс кармаңыз жана кабель бошоп калбаганын текшериңиз.
– Робот бурчта "тыгылып калган": кокустук бурулуш логикасын кошуңуз же сенсорлорду солго жана оңго "карай" алышы үчүн серво кыймылдаткычтарды колдонуңуз.

9. Ийгиликке жеткенден кийинки өнүгүү идеялары

Негизги робот иштеп баштагандан кийин, аны кызыктуураак нерсеге жаңырта аласыз:

– Робот эң жакшы жолду тандай тургандай кылып, ультраүн сенсорлорун жылдыруу үчүн серволорду кошуу.
– Bluetooth башкаруусу (HC-05) кошулду, ошондуктан аны мобилдик телефондон башкарууга болот.
– Сызык сенсорлорун колдонуп, сызык боюнча жүрүүчү робот жасоо.
– Жылмакай кыймыл үчүн PWM ылдамдыгын тууралаңыз.
– Тоскоолдукту аныктаганда индикатор катары сигнал же LED кошуңуз.

Корутунду

Жөнөкөй роботту куруу кыйын болбошу керек. Arduino, туруктуу токтун мотору, кыймылдаткычы жана ультраүн сенсору менен сиз кыймылдап, тоскоолдуктардан автоматтык түрдө кача алган роботту түзө аласыз. Ийгиликтин ачкычтары - зымдардын тыкан туташуусу, жетиштүү ресурстар жана кылдат сыноо. Бул долбоорду ийгиликтүү аяктагандан кийин, сиз камерага негизделген акылдуу робот же объектилерди ээрчий алган робот сыяктуу татаалыраак робототехника долбоорлорун чечүүгө жакшыраак даяр болосуз.

Кааласаңыз, мен сизге тандаган төөнөгүчтөргө ылайык кененирээк зым схемасын түзүүгө жардам бере алам же робот солго/оңго туш келди бурулуп, "акылдуураак" боло тургандай кылып кодду тууралай алам.

Комментарий калтырыңыз