Cuprins:
- Provizii
- Pasul 1: senzor cu infraroșu cu ultrasunete
- Pasul 2: Schematic
- Pasul 3: Caracteristica senzorului
- Pasul 4: Comunicare în serie
- Pasul 5: Aplicație Qt
- Pasul 6: Codul sursă Arduino
Video: Radar cu infraroșu cu Arduino: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
În acest mic proiect aș dori să vă arăt cum puteți crea un simplu radar acasă cu Arduino. Există multe proiecte similare pe internet, dar toate folosesc un senzor cu ultrasunete pentru a măsura distanța. În acest proiect folosesc un senzor cu infraroșu pentru măsurarea distanței.
Scopul meu este să creez un sistem LIDAR foarte simplu și ieftin cu acesta și să implementez un dispozitiv de cartografiere.
Provizii
- Arduino (am folosit un Maple Mini)
- Senzor de distanță ascuțită (am folosit Sharp GP2Y0A02YK0F)
- Micro Servo (9g)
- Pană, fire
- Opțional: rezistor 4.7k, condensator 100nF
Pasul 1: senzor cu infraroșu cu ultrasunete
Principala diferență între senzorii de distanță cu ultrasunete și infraroșu este că senzorul cu ultrasunete măsoară distanța într-o gamă mai largă. Prin urmare, nu este capabil să localizeze cu precizie poziția unui obstacol. Înseamnă că măsoară distanța celui mai apropiat obiect care este situat într-un interval de unghi de ~ + -30 °.
Desigur, nu înseamnă că senzorul Sharp este mai bun. Uneori această proprietate poate fi foarte utilă (de exemplu, utilizată de drone pentru a măsura înălțimea de la sol). Alegerea corectă depinde în totalitate de cerințele proiectului dumneavoastră.
Pasul 2: Schematic
Este foarte simplu să faci conexiunea între piese. Selectați o ieșire PWM și o intrare analogică pe placa Arduino și conectați senzorii de distanță Servo și Sharp la acei pini. Am folosit următoarele pini în acest scop:
- PA0: Intrare analogică pentru senzorul de distanță Sharp
- PA9: ieșire PWM pentru servo
Uneori, senzorul IR Sharp poate avea o ieșire zgomotoasă, prin urmare trebuie să puneți un filtru simplu Low Pass pe el. Am folosit un rezistor de 4.7k și un condensator 100nF pentru a reduce zgomotul de pe pinul analogic. Pe lângă asta, am filtrat și valoarea măsurată în cod citind-o de mai multe ori și calculând media.
Pasul 3: Caracteristica senzorului
Din păcate, senzorul de distanță în infraroșu folosit are caracteristică neliniară. Înseamnă că pentru a obține distanța, nu este suficient să multiplicați valoarea ADC măsurată cu o valoare constantă și adăugând o altă valoare constantă.
Deși foaia tehnică a senzorului oferă caracteristica, prefer să o măsur singur în proiectul specific (ar putea depinde de tensiunea utilizată). Pentru aceasta, am făcut perechi din valoarea ADC măsurată și distanța pentru fiecare 10 cm. (Senzorul meu a putut măsura distanța corectă de la 12 cm).
Am folosit aceste perechi în cod pentru a obține distanța corectă cu Interpolare liniară.
Veți găsi un cod Arduino simplu la sfârșitul documentului, pentru a măsura valoarea ADC în timpul măsurării caracteristice.
Pasul 4: Comunicare în serie
Am folosit comunicarea serială pentru a trimite valorile măsurate ale unghiului-distanță la computer. Deoarece trebuie să trimit mai mulți octeți și diferite tipuri de mesaje, am proiectat un protocol de comunicare simplu.
Acest procotol permite definirea diferitelor tipuri de mesaje într-un mod generic. În acest proiect am folosit 2 tipuri de mesaje:
- Parametri: Utilizați pentru a trimite parametri către aplicația PC, definită pe Arduino ca distanța maximă și numărul de obstacole dintr-o rundă.
- Obstacol: folosit pentru a trimite un obstacol detectat. Este identificat prin unghiul servo și distanța măsurată. Poziția x-y va fi calculată prin aplicația PC.
Pasul 5: Aplicație Qt
Pentru a comunica cu Arduino și a desena punctele măsurate ca un radar, am făcut o aplicație pentru computer în Qt (C ++). Primește câțiva parametri (definiți pe Arduino) și punctele de distanță măsurate.
De asemenea, puteți descărca aplicația și codul sursă al acesteia.
Pasul 6: Codul sursă Arduino
Puteți personaliza niște paremetri în partea de sus a codului cu macrocomenzi.
Rețineți că, dacă modificați caracteristica senzorului de distanță Sharp, trebuie să modificați valorile matricei distAdcMap !
- InfraRadar.c: Codul radarului. Copiați-l și lipiți-l în proiectul dvs. Arduino.
- InfraRadarMeasurement.c: Cod pentru măsurarea caracteristică. Copiați-l și lipiți-l în proiectul dvs. Arduino. Utilizați Consola serială pentru a verifica valorile ADC.
Recomandat:
Utilizarea senzorului infraroșu cu Arduino: 8 pași (cu imagini)
Utilizarea senzorului cu infraroșu cu Arduino: Ce este un senzor cu infraroșu (aka IR)? Un senzor IR este un instrument electronic care scanează semnale IR în intervale de frecvență specifice definite de standarde și le convertește în semnale electrice pe pinul de ieșire (numit de obicei pin de semnal) . Semnalul IR
Termometru cu infraroșu cu laser Arduino: 7 pași (cu imagini)
Termometru cu infraroșu cu laser Arduino: În acest proiect vă voi arăta cum să construiți un termometru cu laser digital cu infraroșu cu o carcasă tipărită 3D personalizată
Carcasă pentru termometru cu infraroșu Arduino MDF: 4 pași (cu imagini)
Arduino Infrared Thermometer Gun MDF Case: Acest proiect este destinat fabricării termometrului cu infraroșu cu Arduino, circuitul este pus în carcasă din MDF care arată ca un termometru medical cu infraroșu pe piață. Termometrul cu senzor cu infraroșu GY-906 este utilizat pentru a măsura temperatura obiectului fără contact, se poate măsura
Domotică cu infraroșu cu Arduino: 5 pași
Automatizare la infraroșu cu Arduino: ARDUINO HOME AUTOMATION Automatizarea la domiciliu înseamnă pur și simplu ca lucrurile pe care le faceți în mod manual să le facă automat. În mod normal, vă veți ridica pentru a răsturna comutatorul, ce ar fi dacă ați putea apăsa telecomanda și lumina dvs. va veni automat
Termometru cu infraroșu fără contact pe bază de Arduino - Termometru IR folosind Arduino: 4 pași
Termometru cu infraroșu fără contact pe bază de Arduino | Termometru bazat pe IR folosind Arduino: Bună băieți, în acest instructables vom face un termometru fără contact folosind arduino. temperatura atunci în acel scenariu