Mündəricat:

Arduino ilə İnfraqırmızı Radar: 6 addım
Arduino ilə İnfraqırmızı Radar: 6 addım

Video: Arduino ilə İnfraqırmızı Radar: 6 addım

Video: Arduino ilə İnfraqırmızı Radar: 6 addım
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Noyabr
Anonim
Image
Image

Bu kiçik layihədə sizə Arduino ilə evdə sadə bir Radar necə yarada biləcəyinizi göstərmək istərdim. İnternetdə oxşar layihələr çoxdur, lakin hamısı məsafəni ölçmək üçün ultrasəs sensoru istifadə edirlər. Bu layihədə məsafəni ölçmək üçün infraqırmızı sensordan istifadə edirəm.

Məqsədim onunla çox sadə və ucuz bir LIDAR sistemi yaratmaq və bir Xəritəçəkmə cihazı tətbiq etməkdir.

Təchizat

  • Arduino (Mən Maple Mini istifadə etdim)
  • Kəskin məsafə sensoru (Sharp GP2Y0A02YK0F istifadə etdim)
  • Mikro Servo (9g)
  • Çörək taxtası, tellər
  • İsteğe bağlı: 4.7k rezistor, 100nF kondansatör

Addım 1: Ultrasonik VS İnfraqırmızı Sensor

Sxematik
Sxematik

Ultrasonik və infraqırmızı məsafə sensorlar arasındakı əsas fərq, ultrasəs sensorunun məsafəni daha geniş ölçüdə ölçməsidir. Buna görə də bir maneənin yerini dəqiq müəyyən edə bilmir. Bu o deməkdir ki, ~ +-30 ° bucaq aralığında yerləşən ən yaxın obyektin məsafəsini ölçür.

Əlbəttə ki, bu, Sharp sensorunun daha yaxşı olduğu anlamına gəlmir. Bəzən bu xüsusiyyət çox faydalı ola bilər (məsələn, yerdən hündürlüyü ölçmək üçün dronlar tərəfindən istifadə olunur). Doğru seçim tamamilə layihənizin tələblərindən asılıdır.

Addım 2: Şematik

Sxematik
Sxematik
Sxematik
Sxematik

Parçalar arasında əlaqə qurmaq çox sadədir. Arduino lövhənizdə bir PWM Çıxışı və Analog Giriş seçin və Servo və Sharp məsafə sensorlarını bu pinlərə qoşun. Bu məqsədlə aşağıdakı pinlərdən istifadə etdim:

  • PA0: Kəskin məsafə sensoru üçün analoq giriş
  • PA9: Servo üçün PWM Çıxışı

Bəzən Sharp IR Sensor səs -küylü ola bilər, buna görə sadə bir aşağı keçid filtri qoymalısınız. Analog pindəki səs -küyü azaltmaq üçün 4.7k rezistor və 100nF kondansatör istifadə etdim. Bundan əlavə, koddakı ölçülmüş dəyəri dəfələrlə oxuyaraq ortalamanı hesablayaraq süzdüm.

Addım 3: Sensor xarakterikdir

Sensor xarakterikdir
Sensor xarakterikdir
Sensor xarakterikdir
Sensor xarakterikdir

Təəssüf ki, istifadə olunan infraqırmızı məsafə sensoru qeyri-xətti xüsusiyyətlərə malikdir. Bu o deməkdir ki, məsafəni əldə etmək üçün ölçülmüş ADC dəyərini sabit bir dəyərlə vurmaq və ona başqa bir sabit dəyər əlavə etmək kifayət deyil.

Sensorun məlumat cədvəli xarakteristikanı təmin etsə də, konkret layihədə özüm ölçməyi üstün tuturam (istifadə olunan gərginlikdən asılı ola bilər). Bunun üçün ölçülmüş ADC dəyərindən və hər 10 sm məsafədən cütlər düzəltdim. (Sensorum 12 sm -dən düzgün məsafəni ölçə bildi).

Linear İnterpolasiya ilə düzgün məsafəni əldə etmək üçün bu cütlükləri kodda istifadə etdim.

Sənədin sonunda xarakterik ölçmə zamanı ADC dəyərini ölçmək üçün sadə bir Arduino kodu tapa bilərsiniz.

Addım 4: Serial Rabitə

Serial Ünsiyyət
Serial Ünsiyyət

Ölçülmüş bucaq-məsafə dəyərlərini PC-yə göndərmək üçün serial ünsiyyətdən istifadə etdim. Birdən çox bayt və fərqli mesajlar göndərməli olduğum üçün sadə bir ünsiyyət protokolu hazırladım.

Bu procotol, fərqli bir mesaj növünü ümumi bir şəkildə təyin etməyə imkan verir. Bu layihədə 2 mesaj növündən istifadə etdim:

  • Parametrlər: Arduino'da maksimum məsafə və maneələrin sayı kimi müəyyən edilmiş PC Tətbiqinə parametr göndərmək üçün istifadə olunur.
  • Maneə: Aşkar edilmiş maneəni göndərmək üçün istifadə olunur. Servonun bucağı və ölçülən məsafə ilə müəyyən edilir. X-y mövqeyi PC tətbiqi ilə hesablanacaq.

Addım 5: Qt Tətbiqi

Qt tətbiqi
Qt tətbiqi

Arduino ilə ünsiyyət qurmaq və ölçülmüş nöqtələri radar kimi çəkmək üçün Qt (C ++) dilində bir PC tətbiqi hazırladım. Bəzi parametrləri (Arduinoda müəyyən edilmiş) və ölçülmüş məsafə nöqtələrini alır.

Tətbiqi və mənbə kodunu da yükləyə bilərsiniz.

Addım 6: Arduino Mənbə Kodu

Kodun üst hissəsindəki bəzi parametrləri makrolarla düzəldə bilərsiniz.

Qeyd edək ki, Sharp məsafə sensorunun xüsusiyyətini dəyişdirsəniz, distAdcMap array dəyərlərini dəyişdirməlisiniz!

  • InfraRadar.c: Radar kodu. Kopyalayın və Arduino layihənizə yapışdırın.
  • InfraRadarMeasurement.c: Xarakterik ölçmə kodu. Kopyalayın və Arduino layihənizə yapışdırın. ADC dəyərlərini yoxlamaq üçün Serial Konsolundan istifadə edin.

Tövsiyə: