Mundarija:

Arduino bilan infraqizil radar: 6 qadam
Arduino bilan infraqizil radar: 6 qadam

Video: Arduino bilan infraqizil radar: 6 qadam

Video: Arduino bilan infraqizil radar: 6 qadam
Video: how to use infrared sensor using arduino/By Aryan #shorts #experiment 2024, Noyabr
Anonim
Image
Image

Ushbu kichik loyihada men sizga qanday qilib Arduino yordamida uyda oddiy radar yaratishni ko'rsatmoqchiman. Internetda shunga o'xshash ko'plab loyihalar mavjud, biroq ularning barchasi masofani o'lchash uchun ultratovushli sensordan foydalanadi. Ushbu loyihada men masofani o'lchash uchun infraqizil sensordan foydalanaman.

Mening maqsadim - u bilan juda oddiy va arzon LIDAR tizimini yaratish va xaritalash qurilmasini amalga oshirish.

Ta'minotlar

  • Arduino (men Maple Mini ishlatardim)
  • O'tkir masofa sensori (men Sharp GP2Y0A02YK0F dan foydalanganman)
  • Mikro Servo (9 g)
  • Non paneli, simlar
  • Majburiy emas: 4.7k rezistor, 100nF kondansatkich

1 -qadam: Ultrasonik VS infraqizil sensori

Sxematik
Sxematik

Ultrasonik va infraqizil masofali sensorlar orasidagi asosiy farq shundaki, ultratovush sensori masofani kengroq diapazonda o'lchaydi. Shuning uchun u to'siqning o'rnini aniq aniqlay olmaydi. Bu shuni anglatadiki, u ~ +-30 ° burchak oralig'ida joylashgan eng yaqin ob'ektning masofasini o'lchaydi.

Albatta, bu Sharp sensori yaxshiroq degani emas. Ba'zida bu xususiyat juda foydali bo'lishi mumkin (masalan, dronlar erdan balandlikni o'lchash uchun ishlatiladi). To'g'ri tanlov butunlay sizning loyihangiz talablariga bog'liq.

2 -qadam: sxematik

Sxematik
Sxematik
Sxematik
Sxematik

Qismlar orasidagi bog'lanishni o'rnatish juda oddiy. Arduino kartangizda PWM chiqishi va analogli kirishni tanlang va shu pinlarga Servo va Sharp masofali datchiklarni ulang. Buning uchun men quyidagi pinlardan foydalandim:

  • PA0: Sharp masofa sensori uchun analog kirish
  • PA9: Servo uchun PWM chiqishi

Ba'zida Sharp IQ sensori shovqinli chiqishi mumkin, shuning uchun unga oddiy past o'tkazgichli filtr qo'yish kerak. Analog pimdagi shovqinni pasaytirish uchun men 4.7k rezistor va 100nF kondansatör ishlatganman. Bundan tashqari, men koddagi o'lchangan qiymatni bir necha marta o'qib, o'rtacha hisoblab filtrladim.

3 -qadam: Sensorning xarakteristikasi

Sensorning xarakteristikasi
Sensorning xarakteristikasi
Sensorning xarakteristikasi
Sensorning xarakteristikasi

Afsuski, ishlatilgan infraqizil masofa sensori chiziqli bo'lmagan xarakteristikaga ega. Bu shuni anglatadiki, masofani olish uchun o'lchangan ADC qiymatini doimiy qiymat bilan ko'paytirish va unga boshqa doimiy qiymat qo'shish etarli emas.

Sensorning ma'lumotlar sahifasi xarakteristikani taqdim etsa -da, men uni ma'lum bir loyihada o'lchashni afzal ko'raman (u ishlatilgan kuchlanishga bog'liq bo'lishi mumkin). Buning uchun men har 10 sm uchun o'lchangan ADC qiymati va masofasidan juftlar yasadim. (Mening sensorim 12 sm dan to'g'ri masofani o'lchay oldi).

Men bu juftlarni kodda chiziqli interpolyatsiya yordamida to'g'ri masofani olish uchun ishlatardim.

Hujjatning oxirida ADC qiymatini o'lchash uchun xarakterli o'lchov paytida oddiy Arduino kodini topasiz.

4 -qadam: ketma -ket aloqa

Serial aloqa
Serial aloqa

O'lchangan burchak-masofa qiymatlarini shaxsiy kompyuterga yuborish uchun ketma-ket aloqa ishlatardim. Men bir nechta bayt va har xil turdagi xabarlarni yuborishim kerak bo'lgani uchun men oddiy aloqa protokoli yaratdim.

Bu prokotol har xil turdagi xabarlarni umumiy tarzda aniqlashga imkon beradi. Ushbu loyihada men 2 turdagi xabarlardan foydalanardim:

  • Parametrlar: Arduino -da aniqlangan maksimal masofa va to'siqlar soni kabi kompyuter dasturiga parametrlarni yuborish uchun ishlatiladi.
  • To'siq: aniqlangan to'siqni yuborish uchun ishlatiladi. U servo burchagi va o'lchangan masofa bilan aniqlanadi. X-y pozitsiyasi kompyuter dasturi yordamida hisoblab chiqiladi.

5 -qadam: Qt ilovasi

Qt ilovasi
Qt ilovasi

Arduino bilan bog'lanish va o'lchangan nuqtalarni radar kabi chizish uchun men Qt (C ++) da kompyuter dasturini yaratdim. U ba'zi parametrlarni (Arduino -da aniqlangan) va o'lchangan masofa nuqtalarini oladi.

Siz dasturni va uning manba kodini ham yuklab olishingiz mumkin.

6 -qadam: Arduino manba kodi

Siz kodning yuqori qismidagi so'l o'lchagichlarni sozlashingiz mumkin.

E'tibor bering, agar siz Sharp masofa sensori xususiyatini o'zgartirsangiz, distAdcMap qator qiymatlarini o'zgartirishingiz kerak!

  • InfraRadar.c: Radar kodi. Nusxalash va Arduino loyihangizga joylashtirish.
  • InfraRadarMeasurement.c: Xarakterli o'lchov kodi. Nusxalash va Arduino loyihangizga joylashtirish. ADC qiymatlarini tekshirish uchun Serial konsoldan foydalaning.

Tavsiya: