Snímanie vzdialenosti
V tomto návode si ukážeme ako môžeme pomocou ultrazvukového snímača merať vzdialenosť.
Ultrazvukový snímač HC-SR04
Často využívanou súčiastkou na meranie vzdialenosti je ultrazvukový snímač HC-SR04 [1].
Jednotlivé vstupy zapojíme nasledujúco:
- VCC - Vstupné napájanie - 5V
- GND - Spoločná zem
- Trig - Vysielač ultrazvukového signálu (digitálny pin, v tomto návode ako D2)
- Echo - Prijímač odrazeného signálu (digitálny pin, v tomto návode ako D3)
Popis pinov nájdete aj na: Ultrasonic Sensor HC-SR04 and Arduino – Complete Guide
Čítanie vzdialenosti z MATLABu
Skôr ako začneme čítať hodnoty snímača v Simulinku, overíme si jeho činnosť v MATLABe. Vytvorme objekt pre spojenie s Arduinom. Snímanie vzdialenosti je zabezpečené pomocou knižnice, ktorú musíme pri vytvorení objektu pridať. Pri vytvorení objektu s knižnicou už musíme pridať aj typ dosky a komunikačný port.
a=arduino('COM3','MEGA2560',"Libraries","Ultrasonic")
Po pridaní knižnice je potrebné vytvoriť objekt pre ultrazvukový snímač. Objekt vyžaduje ako vstupné parametre objekt pre spojenie s Arduinom, Trigger pin a Echo pin snímača.
ultra = ultrasonic(a,'D2','D3')
Čítanie vzdialenosti zabezpečuje funkcia readDistance. Vzdialenosť sa zosníma v metroch.
dist=readDistance(ultra)
Po skončení práce vymažeme objekt Arduina.
clear a
Čítanie vzdialenosti zo Simulinku
Na čítanie snímačov ovládanie motorov zo Simulinku použijeme nasledujúce bloky
- Simulink Support Package for Arduino Hardware - Sensors - Ultrasonic Sensor
- Simulink - Math Operations - Gain
- Simulink - Discontinuities - Saturation
- Simulink - Sinks - Scope
Simulinkovú schému zostrojíme zapojením blokov podľa nasledujúceho obrázka:
Blok pre ultrazvukový snímač nastavíme pre 2 signálne piny, pretože využívame samostatný pin pre Trigger a Echo. Piny pre Trigger a Echo nastavíme podľa zapojenia na Arduine. Vzorkovanie nastavíme na 0.01 sekundy.
Za blok ultrazvukového snímača sme pridali zosilnenie s hodnotou 100. Zosilnenie nám prepočítava vzdialenosť z metrov na centimetre. Blokom saturácie vieme obmedziť dolný a horný limit vzdialenosti počas behu programu.
V našom prípade sme vzdialenosť obmedzili na 3cm až 20cm. Hodnoty môžete nastaviť podľa vlastnej potreby. Nastavte pre schému koncové zariadenie Arduino MEGA 2560, čas do nekonečna a model môžete spustiť pomocou tlačidla Monitor & Tune. Na bloku Scope môžete pozorovať prečítanú vzdialenosť.