Mundarija:

Ultratovush yordamida to'siqlarni asinxron tarzda aniqlang: 4 qadam
Ultratovush yordamida to'siqlarni asinxron tarzda aniqlang: 4 qadam

Video: Ultratovush yordamida to'siqlarni asinxron tarzda aniqlang: 4 qadam

Video: Ultratovush yordamida to'siqlarni asinxron tarzda aniqlang: 4 qadam
Video: Lesson 28: Car-6 SunFounder self Driving Arduino car using | Robojax 2024, Iyul
Anonim
Ultratovush yordamida to'siqlarni asinxron tarzda aniqlang
Ultratovush yordamida to'siqlarni asinxron tarzda aniqlang

O'yin -kulgi uchun men uyning ichida avtonom tarzda harakatlanishni xohlayman.

Bu uzoq ish va men bosqichma -bosqich ishlayapman.

Bu ko'rsatma Arduino Mega yordamida to'siqlarni aniqlashga qaratilgan

Ultrasonik sensorlar HC-SR04 va boshqalar HY-SRF05 arzon va ulardan foydalanish oson, lekin murakkab robotda mikrokontroller pastadiriga qo'shilish qiyin bo'lishi mumkin. Men to'siqlarni aniqlashni asinxron tarzda bajarishni xohlardim.

_

Men ushbu robotning xususiyatlari haqida 3 ta ko'rsatma nashr qildim:

  • G'ildirak kodlagichini yarating
  • WIFI shlyuzini yarating
  • Inertial modul birligidan foydalaning

Robotni lokalizatsiya qilish uchun sun'iy intellekt va ultratovushni birlashtirish haqidagi hujjat.

1 -qadam: Ultrasonik sensorlar va mikrokontrolderlar bilan bog'liq muammo nimada?

Ultrasonik sensorlar va mikrokontrolderlar bilan bog'liq muammo nimada?
Ultrasonik sensorlar va mikrokontrolderlar bilan bog'liq muammo nimada?
Ultrasonik sensorlar va mikrokontrolderlar bilan bog'liq muammo nimada?
Ultrasonik sensorlar va mikrokontrolderlar bilan bog'liq muammo nimada?

Sinxron kutish va Arduino cheklovlari

Mikrokontroller kodi pastadirda ishlaydi va ko'p tarmoqlilarni qo'llab-quvvatlamaydi. Ultrasonik sensorlar signal davomiyligiga asoslangan. Bu davomiylik 30 m s gacha davom etadi, bu mikrokontrollerlar bir nechta dvigatellar va sensorlar (masalan, g'ildirakli enkoderli servo va shahar motorlari) bilan ishlashga to'g'ri kelganda, pastadir ichida kutish juda uzoq.

Shunday qilib, men asinxron ishlaydigan ob'ektni ishlab chiqmoqchi edim.

2 -qadam: Bu qanday ishlaydi?

Bu qanday ishlaydi ?
Bu qanday ishlaydi ?

Bu to'siqlarni aniqlash uchun Atmega uchun mo'ljallangan. U 4 tagacha ultratovushli sensorni qo'llab -quvvatlaydi.

Vaqti -vaqti bilan uzilishlar tufayli tizim 4 ta ultrasonik sensorni kuzatishi mumkin. Asosiy kod faqat qaysi sensori shart va chegara bilan faollashtirilishini belgilashi kerak.

Asosiy vazifalar:

  • Ogohlantirish - to'siqlarni aniqlashning asosiy usuli va agar 4 ta sensordan kamida bittasi ostonadagi masofani aniqlasa, uzilishni ta'minlaydi.
  • Monitor - bu 4 ta sensorgacha bo'lgan masofa holatining kombinatsiyasida uzilishni ta'minlaydigan kengaytirilgan funksiya. Mumkin bo'lgan shartlar tugadi, ostida, ostonaga teng yoki teng emas.

3 -qadam: Texnik tafsilotlar

Taymer4dan foydalaning, shuning uchun 6 7 8 pinini PWM sifatida ishlatib bo'lmaydi.

Har bir sensor uchun ob'ektga PIN -kod va uzilish PIN kodi kerak bo'ladi.

Sensorlarning ustki qismida PIN -kodlarni uzib qo'yadi, dasturiy ta'minotdan foydalanish uchun ob'ektga boshqa PIN kod kerak bo'ladi.

4 -qadam: Qanday amalga oshirish kerak?

Qanday amalga oshirish kerak?
Qanday amalga oshirish kerak?

Sensorlarni yuqoridagi kabi ulang

Ushbu GitHub omboridan yuklab oling

  • EchoObstacleDetection.cpp,
  • EchoObstacleDetection.h
  • MisolEchoObstacleDetection.ino

IDE kutubxonangizda EchoObstacleDetection katalogini yarating va.cpp va.h ni ko'chiring

Sinab ko'ring

ExampleEchoObstacleDetection.ino -ni oching.

Bu ikkita ultratovushli datchik yordamida bajariladigan to'siqlarni aniqlashning oddiy misoli.

Chiqish ketma -ket monitorga yo'naltiriladi. Avvaliga u ikkita sensor tomonidan aniqlangan masofani bosib chiqaradi, so'ngra ostonadagi masofalarga qarab ogohlantirishlarni chop etadi.

Tavsiya: