Obsah:

Infračervený radar s Arduino: 6 krokov
Infračervený radar s Arduino: 6 krokov

Video: Infračervený radar s Arduino: 6 krokov

Video: Infračervený radar s Arduino: 6 krokov
Video: Радар на ардуино! 2024, November
Anonim
Image
Image

V tomto malom projekte by som vám chcel ukázať, ako môžete doma s Arduinom vytvoriť jednoduchý radar. Na internete je veľa podobných projektov, ale všetky používajú na meranie vzdialenosti ultrazvukový senzor. V tomto projekte používam na meranie vzdialenosti infračervený senzor.

Mojím cieľom je vytvoriť s ním veľmi jednoduchý a lacný systém LIDAR a implementovať mapovacie zariadenie.

Zásoby

  • Arduino (použil som Maple Mini)
  • Ostrý snímač vzdialenosti (použil som Sharp GP2Y0A02YK0F)
  • Mikro servo (9 g)
  • Breadboard, drôty
  • Voliteľné: odpor 4,7 k, kondenzátor 100 nF

Krok 1: Ultrazvukový VS infračervený snímač

Schematický
Schematický

Hlavný rozdiel medzi ultrazvukovými a infračervenými snímačmi vzdialenosti spočíva v tom, že ultrazvukový snímač meria vzdialenosť v širšom rozsahu. Preto nie je schopný presne lokalizovať polohu prekážky. To znamená, že meria vzdialenosť najbližšieho objektu, ktorý sa nachádza v rozsahu uhlov ~ +-30 °.

To samozrejme neznamená, že snímač Sharp je lepší. Niekedy môže byť táto vlastnosť veľmi užitočná (napríklad ju používajú drony na meranie výšky od zeme). Správna voľba úplne závisí od požiadaviek vášho projektu.

Krok 2: Schéma

Schematický
Schematický
Schematický
Schematický

Spojenie medzi časťami je veľmi jednoduché. Vyberte výstup PWM a analógový vstup na doske Arduino a k týmto kolíkom pripojte snímače vzdialenosti Servo a Sharp. Na tento účel som použil nasledujúce kolíky:

  • PA0: Analógový vstup pre snímač vzdialenosti Sharp
  • PA9: PWM výstup pre servo

Infračervený snímač Sharp môže mať niekedy hlučný výstup, preto naň musíte vložiť jednoduchý dolnopriepustný filter. Na zníženie šumu na analógovom kolíku som použil odpor 4,7 k a kondenzátor 100 nF. Okrem toho som tiež filtroval nameranú hodnotu v kóde tak, že som ju niekoľkokrát prečítal a vypočítal priemer.

Krok 3: Charakteristika snímača

Charakteristika snímača
Charakteristika snímača
Charakteristika snímača
Charakteristika snímača

Použitý infračervený snímač vzdialenosti má bohužiaľ nelineárnu charakteristiku. To znamená, že na získanie vzdialenosti nestačí vynásobiť nameranú hodnotu ADC konštantnou hodnotou a pridať k nej ďalšiu konštantnú hodnotu.

Napriek tomu, že údajový list senzora poskytuje charakteristiku, radšej ho zmeriam sám v konkrétnom projekte (môže to závisieť od použitého napätia). Za týmto účelom som urobil páry z nameranej hodnoty ADC a vzdialenosti na každých 10 cm. (Môj senzor dokázal merať správnu vzdialenosť od 12 cm).

Tieto páry som použil v kóde na získanie správnej vzdialenosti pomocou lineárnej interpolácie.

Na konci dokumentu nájdete jednoduchý kód Arduino na meranie hodnoty ADC počas charakteristického merania.

Krok 4: Sériová komunikácia

Sériová komunikácia
Sériová komunikácia

Na odoslanie nameraných hodnôt uhlovej vzdialenosti do PC som použil sériovú komunikáciu. Pretože musím odosielať viac bajtov a rôzne typy správ, navrhol som jednoduchý komunikačný protokol.

Tento prokotol umožňuje genericky definovať rôzne typy správ. V tomto projekte som použil 2 typy správ:

  • Parametre: Používa sa na odosielanie parametrov do PC aplikácie, definovaných na Arduine ako maximálna vzdialenosť a počet prekážok v kole.
  • Prekážka: Používa sa na odoslanie zistenej prekážky. Je identifikovaný uhlom serva a meranou vzdialenosťou. Pozícia x-y bude vypočítaná počítačovou aplikáciou.

Krok 5: Aplikácia Qt

Aplikácia Qt
Aplikácia Qt

Aby som komunikoval s Arduinom a kreslil namerané body ako radar, vytvoril som aplikáciu pre PC v Qt (C ++). Prijíma niektoré parametre (definované na Arduine) a body nameranej vzdialenosti.

Môžete si tiež stiahnuť aplikáciu a jej zdrojový kód.

Krok 6: Zdrojový kód Arduino

Niektoré paremetre v hornej časti kódu môžete prispôsobiť pomocou makier.

Upozorňujeme, že ak zmeníte charakteristiku snímača vzdialenosti Sharp, budete musieť upraviť hodnoty poľa distAdcMap !

  • InfraRadar.c: Kód radaru. Skopírujte ho a prilepte do svojho projektu Arduino.
  • InfraRadarMeasurement.c: Kód pre charakteristické meranie. Skopírujte ho a prilepte do svojho projektu Arduino. Na kontrolu hodnôt ADC použite sériovú konzolu.

Odporúča: