25/31-сабақ: Car-3 Smart Car Infrared сенсорларды қолданып кедергіден аулақ болады | SunFounder Robojax
Бұл жоба SunFounder 3-in-1 Arduino смарт көлігін автономды кедергілерден аулақ жүретін көлікке айналдырады. Екі инфрақызыл (IR) сенсорды орнату арқылы—біреуі сол жақта, біреуі оң жақта—көлік жолындағы нысандарды анықтап, оларды айналып өту үшін лезде шешім қабылдай алады. Бұл робототехникадағы негізгі қадам, ол сізге сенсорлық кірісті моторды басқару логикасымен біріктіріп, реактивті, өздігінен басқарылатын машина жасауды үйретеді. Мұнда үйренетін принциптер нақты әлемдегі көптеген қолданбаларға қолданылады, соның ішінде:
- Робот шаңсорғыш жасау, ол бөлмені жиһазға соқтықпай аралайды.
- Сызықпен жүретін немесе лабиринтті шешетін робот жасау жарыстар немесе білім беру жобалары үшін.
- Автоматтандырылған күзет патруль роботын әзірлеу, ол периметрді аралап, қабырғалардан аулақ бола алады.
- Ақылды ойыншық көлік жобалау, ол тәуелсіз ойнай алады және тұрып қалмайды.
Бұл нұсқаулық сіз көліктің моторларын басқаруды және IR сенсорларының жұмысын түсінген алдыңғы сабақтарға тікелей негізделеді. Мұнда біз осы дағдыларды біріктіріп, қарапайым әрі тиімді кедергілерден аулақ болу алгоритмін жүзеге асырамыз.
Кедергілерден аулақ болу логикасы қалай жұмыс істейді
Негізгі идея қарапайым: көлік екі IR сенсорды пайдаланып, сол және оң жағындағы кедергілерді тексереді. Әр сенсор цифрлық сигнал шығарады: LOW (0) өз ауқымында (шамамен 20 см) нысанды анықтағанда және HIGH (1) жол ашық болғанда. Логика содан кейін сенсор күйлеріне негізделген көліктің әрекетін анықтайды (бейнеде 02:35):
- Сол жақта кедергі, оң жақ ашық: Көлік оны болдырмау үшін оңға бұрылады.
- Оң жақта кедергі, сол жақ ашық: Көлік солға бұрылады.
- Екі жағында да кедергілер: Көлік ықтимал тұйықтан құтылу үшін артқа жылжиды.
- Кедергілер жоқ: Көлік алға жүреді.
Бұл реактивті тәсіл ақырлы күй машинасының классикалық мысалы болып табылады, мұнда көліктің мінез-құлқы оның ағымдағы сенсорлық кірістеріне тікелей жауап болып табылады.
Аппараттық құрамдас бөліктер
Бұл жобаны аяқтау үшін сізге келесі құрамдас бөліктер қажет, олардың барлығы SunFounder 3-in-1 Arduino жинағында бар:
- 1x SunFounder 3-in-1 Arduino Smart Car жинағы (немесе баламалы бөлшектер)
- 2x Инфрақызыл кедергілерден аулақ болу сенсорлары
- 1x Arduino Uno (немесе үйлесімді плата)
- 1x Мотор драйвері Shield/Plata
- Jumper сымдары
Сым қосу нұсқаулығы
Бұл жобаның жұмыс істеуі үшін сенсорлардың дұрыс орналасуы өте маңызды. IR сенсорлары алға және сәл сыртқа қаратылып орнатылуы керек, өйткені олар көліктің бүйірлеріндегі кедергілерді анықтайды (бейнеде 02:07). Келесі сым қосу диаграммасы сенсорларды Arduino-ға қалай қосу керектігін көрсетеді. Нұсқаушы көліктің макет тақтасындағы белгілі бір қуат тарату нүктесін пайдаланғанын ескеріңіз, бірақ Arduino-ға қосылымдар маңызды.
Сым қосу қосылымдары келесідей (бейнеде 03:47):
- Қуат (VCC): Екі IR сенсорының VCC түйреуішін Arduino-дағы 5V шығысына немесе көліктің қуат шинасына қосыңыз.
- Жер (GND): Екі IR сенсорының GND түйреуішін Arduino-дағы ортақ жерге немесе көліктің жер шинасына қосыңыз.
- Оң сенсор шығысы (OUT): Оң IR сенсорының цифрлық шығыс түйреуішін Arduino-дағы 7 цифрлық түйреуішке қосыңыз.
- Сол сенсор шығысы (OUT): Сол IR сенсорының цифрлық шығыс түйреуішін Arduino-дағы 8 цифрлық түйреуішке қосыңыз.
Сол және оң моторларға арналған мотор драйверінің қосылымдары моторды басқару туралы алдыңғы сабақта орнатылғандай.
Код түсіндірмесі
Бұл жобаның коды қарапайым. Негізгі бағдарлама мақаланың астында жүктеуге қолжетімді. Мұнда біз өз көлігіңіз үшін реттей алатын пайдаланушы конфигурациялайтын бөліктерге назар аударамыз.
const int A_1B = 5;
const int A_1A = 6;
const int B_1B = 9;
const int B_1A = 10;
const int rightIR = 7;
const int leftIR = 8;
Бұл жолдар мотор драйвері мен IR сенсорлары үшін пайдаланылатын түйреуіштерді анықтайды. Мотор түйреуіштері (A_1B, A_1A, B_1B, B_1A) екі мотордың жылдамдығы мен бағытын басқарады. rightIR және leftIR түйреуіштері сенсорларыңыздан сигнал сымдарын қосатын жерлер. Егер сіз басқа түйреуіштерді пайдалансаңыз, осы мәндерді осында өзгертесіз.
int speed = 150;
Бұл айнымалы көліктің негізгі жылдамдығын орнатады. Мән 0-ден 255-ке дейін болуы мүмкін, мұнда 255 максималды жылдамдық. 150 мәні үйрену үшін жақсы бастапқы нүкте, өйткені ол қызықты болу үшін жеткілікті жылдам, бірақ реакция уақытына мүмкіндік беру үшін жеткілікті баяу (бейнеде 07:10). Сіз оны көлігіңізді жылдамырақ немесе баяуырақ ету үшін реттей аласыз.
Кодтың қалған бөлігі loop() функциясындағы логиканы анықтайды. Ол сол және оң сенсорлардың күйін оқиды, содан кейін тиісті қозғалыс функциясын шақырады (moveForward(), moveBackward(), backLeft(), backRight()). Бұл функциялар алдын ала анықталған және қажетті қозғалысқа қол жеткізу үшін мотор драйверін басқарады. Нұсқаушы кейінірек кедергіден айналып өткеннен кейін көлікті қысқа уақытқа тоқтату үшін stop() функциясын қосты, бұл оның қозғалысын неғұрлым саналы етеді (бейнеде 10:29).
Тірі жобаны көрсету
Бейнеде нұсқаушы алдымен Serial Monitor арқылы логиканы көрсетеді. Сенсорлардың жанына қорап қою арқылы экранда "Go Left", "Go Right" немесе "Go Backward" сияқты сәйкес хабарламалар пайда болғанын көруге болады, бұл сенсор көрсеткіштері мен логиканың дұрыс екенін растайды (бейнеде 09:11).
Логиканы тексергеннен кейін нұсқаушы маңызды жақсартуды қосады: stop() функциясы. Бұл функция көлік бұрылғаннан немесе артқа жүргеннен кейін белгіленген уақытқа (мысалы, 1 секунд) толық тоқтайды, бұл кенет қозғалыстарды болдырмайды және көлікке айналасын қайта бағалауға мүмкіндік береді (бейнеде 10:29).
Соңында көлік еденде бірқатар кедергілермен сыналады. Бейнеде көлік қораптардың айналасынан сәтті өтіп, солға, оңға бұрылып, қажет болғанда артқа жүріп, таза жолды табатыны көрсетілген, бұл кедергіден аулақ болу алгоритмінің нақты әлемде қолданылуын көрсетеді (бейнеде 12:13).
Тараулар
- [00:00] ИК сенсорларымен кедергіден аулақ болуға кіріспе
- [01:24] Алғышарттар және жобаға шолу
- [02:35] Кедергіден аулақ болу логикасы қалай жұмыс істейді
- [03:47] ИК сенсорлар мен моторларды қосу
- [05:40] Кодты ашу және түсіндіру
- [09:11] Serial Monitor арқылы логиканы тексеру
- [10:29] Тегіс навигация үшін тоқтату функциясын қосу
- [11:42] Тоқтату функциясын тексеру
- [12:13] Едендегі қорытынды практикалық сынақ
This code has not been parsed yet. Please return to the admin panel to parse it.
Common Course Links
Common Course Files
Ресурстар мен сілтемелер
-
ҚұжаттамаDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kit¶docs.sunfounder.com
-
СыртқыPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Файлдар📁
Arduino кітапханалары (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB