Tartalomjegyzék:

Infravörös radar Arduino -val: 6 lépés
Infravörös radar Arduino -val: 6 lépés

Videó: Infravörös radar Arduino -val: 6 lépés

Videó: Infravörös radar Arduino -val: 6 lépés
Videó: Beyond the Basics: Automatic Gatekeeper With IR Sensor And ChatGPT Generated Arduino Code 2024, November
Anonim
Image
Image

Ebben a kis projektben szeretném megmutatni, hogyan lehet létrehozni egy egyszerű radart otthon az Arduino segítségével. Sok hasonló projekt található az interneten, de mindegyikük ultrahangos érzékelőt használ a távolság mérésére. Ebben a projektben infravörös érzékelőt használok a távolság mérésére.

Célom egy nagyon egyszerű és olcsó LIDAR rendszer létrehozása vele, és egy leképező eszköz megvalósítása.

Kellékek

  • Arduino (én Maple Minit használtam)
  • Éles távolságérzékelő (én Sharp GP2Y0A02YK0F -et használtam)
  • Micro Servo (9g)
  • Kenyértábla, vezetékek
  • Opcionális: 4.7k ellenállás, 100nF kondenzátor

Lépés: Ultrahangos VS infravörös érzékelő

Vázlatos
Vázlatos

A fő különbség az ultrahangos és az infravörös távolságérzékelők között az, hogy az ultrahangos érzékelő szélesebb tartományban méri a távolságot. Ezért nem tudja pontosan meghatározni az akadály helyzetét. Ez azt jelenti, hogy méri a legközelebbi objektum távolságát, amely ~ +-30 ° -os szögtartományon belül található.

Ez persze nem jelenti azt, hogy a Sharp érzékelő jobb. Néha ez a tulajdonság nagyon hasznos lehet (pl. Drónok használják a talaj magasságának mérésére). A helyes választás teljes mértékben a projekt követelményeitől függ.

2. lépés: Vázlatos

Vázlatos
Vázlatos
Vázlatos
Vázlatos

Nagyon egyszerű az alkatrészek közötti kapcsolat létrehozása. Válasszon PWM kimenetet és analóg bemenetet az Arduino kártyán, és csatlakoztassa a Servo és a Sharp távolságérzékelőket ezekhez a tűkhöz. Erre a célra a következő csapokat használtam:

  • PA0: Analóg bemenet a Sharp távolságérzékelőhöz
  • PA9: PWM kimenet szervóhoz

Néha a Sharp IR érzékelő zajos kimenetű lehet, ezért egyszerű aluláteresztő szűrőt kell tennie rá. 4,7 k ellenállást és 100 nF kondenzátort használtam az analóg csap zajának csökkentésére. Ezenkívül a mért értéket is megszűrtem a kódban, többször elolvasva és kiszámítva az átlagot.

3. lépés: Az érzékelő jellemzője

Szenzor Jellemző
Szenzor Jellemző
Szenzor Jellemző
Szenzor Jellemző

Sajnos a használt infravörös távolságérzékelő nem lineáris. Ez azt jelenti, hogy a távolság megszerzéséhez nem elegendő, ha a mért ADC értéket megszorozzuk egy állandó értékkel, és hozzáadunk egy másik állandó értéket.

Bár az érzékelő adatlapja megadja a karakterisztikát, inkább saját maga mérjem le az adott projektben (ez függhet a használt feszültségtől). Ehhez a mért ADC értékből és távolságból 10 cm -enként párokat készítettem. (Az érzékelőm képes volt a megfelelő távolságot mérni 12 cm -től).

Ezeket a párokat használtam a kódban a helyes távolság eléréséhez lineáris interpolációval.

A dokumentum végén talál egy egyszerű Arduino kódot az ADC érték mérésére a jellemző mérés során.

4. lépés: Soros kommunikáció

Soros kommunikáció
Soros kommunikáció

Soros kommunikációt használtam a mért szög-távolság értékek PC-re küldéséhez. Mivel több bájtot és különböző típusú üzeneteket kell elküldenem, egy egyszerű kommunikációs protokollt terveztem.

Ez a procotol lehetővé teszi a különböző üzenettípusok általános meghatározását. Ebben a projektben 2 üzenettípust használtam:

  • Paraméterek: Paraméterek elküldésére szolgál a PC -alkalmazáshoz, az Arduino -n definiálva, mint a maximális távolság és az akadályok száma egy körben.
  • Akadály: Érzékelt akadály küldésére szolgál. Ezt a szervo szög és a mért távolság határozza meg. Az x-y pozíciót PC alkalmazás számítja ki.

5. lépés: Qt alkalmazás

Qt alkalmazás
Qt alkalmazás

Az Arduino -val való kommunikációhoz és a mért pontok radarhoz hasonló rajzolásához készítettem egy PC -alkalmazást Qt -ban (C ++). Megkap néhány paramétert (az Arduino -n definiálva) és a mért távolságpontokat.

Letöltheti az alkalmazást és annak forráskódját is.

6. lépés: Arduino forráskód

A kód tetején néhány paremetert személyre szabhat makrókkal.

Ne feledje, hogy ha megváltoztatja a Sharp távolságérzékelő jellemzőit, módosítania kell a distAdcMap tömb értékeit!

  • InfraRadar.c: A radar kódja. Másolja és illessze be az Arduino projektbe.
  • InfraRadarMeasurement.c: Jellemző mérési kód. Másolja és illessze be az Arduino projektbe. A soros konzol segítségével ellenőrizze az ADC értékeket.

Ajánlott: