LabVIEW & Arduino LINX

Prezentácia blokových diagramov a konfiguračných rozhraní

00

Základné čítanie zo sériového portu

LV00000

Blokový diagram vykonáva základnú operáciu čítania zo sériového portu.

  • Inicializuje komunikáciu s konkrétnym sériovým portom.
  • Načíta až 10 000 bajtov dát z pripojenia.
  • Zobrazí prijaté dáta v indikátore reťazca Read Buffer.
  • Uzavrie sériovú reláciu a uvoľní prostriedky.
  • Spracuje a ohlási prípadné chyby pomocou bloku Simple Error Handler.
01

Menu Tools > MakerHub > LINX

LV00001

Grafické rozbaľovacie menu v prostredí LabVIEW.

  • Zobrazená navigačná cesta je Tools > MakerHub > LINX.
  • Toto menu poskytuje prístup k nástrojom pre konfiguráciu hardvéru.
  • Zobrazené možnosti umožňujú používateľovi nastaviť a prepojiť LabVIEW s externými mikrokontrolérmi alebo vývojovými doskami pomocou nástrojovej sady LINX.
02

LINX Firmware Wizard

LV00002

Grafické rozhranie sprievodcu LINX Firmware Wizard slúži na prípravu hardvéru pred prvým použitím.

Základné nastavenia na obrazovke:

  • Rodina zariadení: Arduino
  • Typ zariadenia: Arduino Uno
  • Spôsob nahratia firmvéru: Serial / USB

Účelom tohto okna je vybrať správnu dosku a spôsob pripojenia, aby sa do zariadenia Arduino Uno mohol nahrať základný firmvér umožňujúci komunikáciu s prostredím LabVIEW.

03

Paleta funkcií LINX

LV00003

Paleta funkcií LabVIEW zobrazuje menu nástrojovej sady LINX určenej na prepojenie s mikrokontrolérmi a vstavanými zariadeniami.

Hlavná paleta LINX obsahuje bloky pre pripojenie (Open, Close) a priečinky so špecifickými funkciami. Šípky ukazujú na obsah troch rozbalených priečinkov:

  • Peripherals (Periférie): Obsahuje štandardné vstupno-výstupné protokoly ako Analog, Digital, PWM, I2C, SPI a UART.
  • Sensors (Senzory): Obsahuje funkcie pre konkrétne hardvérové komponenty ako akcelerometre, displeje, svetlá a teplotné senzory.
  • Utilities (Nástroje): Obsahuje pomocné funkcie pre sieťovú konfiguráciu, časovanie slučiek a vlastné príkazy.

Programátori ťahajú tieto ikony z palety na blokový diagram, aby zostavili kód.

04

Paleta Peripherals > Digital

LV00004

Navigačné menu palety nástrojov v prostredí LabVIEW.

  • Vľavo je otvorená hlavná paleta Peripherals (Periférie).
  • Zvýraznená kategória Digital (Digitálne) je zakrúžkovaná.
  • Šípka ukazuje obsah tejto zložky.
  • Vpravo sú dostupné funkcie: Read (Čítať), Write (Zapisovať), Pulse Width (Šírka impulzu) a Square Wave (Obdĺžniková vlna).

Obrázok slúži ako vizuálna pomôcka na nájdenie funkcií pre prácu s digitálnymi vstupmi a výstupmi.

05

Digitálny zápis jedného pinu (COM6)

LV00005
  • Inicializácia: Blok Open.vi nadviaže sériovú komunikáciu na porte COM6.
  • Hlavný cyklus: Spustí sa slučka While s časovačom nastaveným na 100 ms.
  • Čítanie vstupu: V slučke sa neustále sleduje stav prepínača LED ON/OFF z predného panelu.
  • Zápis výstupu: Získaná logická hodnota sa posiela do bloku Digital Write.vi, ktorý ju zapisuje na digitálny kanál č. 8.
  • Ukončenie: Slučka beží, kým používateľ nestlačí tlačidlo Stop.
  • Zatvorenie a chyby: Po ukončení slučky sa port uzavrie pomocou Close.vi a prípadné chyby zachytí Simple Error Handler.vi.
06

Digitálny zápis viacerých pinov

LV00006

Kód riadi digitálne výstupy externého zariadenia pomocou sériovej komunikácie.

  • Otvorí spojenie na porte COM6.
  • Spustí hlavnú slučku While Loop s časovačom 100 ms.
  • Zoberie čísla pinov z poľa DO Channels a ich požadované stavy z poľa Values.
  • Funkcia Digital Write odošle tieto logické stavy na zvolené piny zariadenia.
  • Slučka sa neustále opakuje až do stlačenia tlačidla Stop.
  • Po zastavení sa sériové spojenie korektne uzavrie a spracujú sa prípadné chyby.
07

Digitálne čítanie vstupu (kanál 2)

LV00007

Program nepretržite monitoruje digitálny vstupný pin hardvérového zariadenia pripojeného cez sériový port.

  • Inicializácia: Kód otvorí sériové spojenie na porte COM6.
  • Hlavná slučka: Slučka While beží opakovane s oneskorením 100 ms na každú iteráciu.
  • Čítanie dát: Vnútri slučky funkcia Digital Read kontroluje stav digitálneho kanála 2.
  • Zobrazenie: Výsledná booleovská hodnota aktualizuje zelený indikátor LED s názvom DI Value na prednom paneli.
  • Ukončenie: Slučka beží dovtedy, kým používateľ neklikne na tlačidlo Stop. Po zastavení program uzavrie sériové spojenie a spracuje prípadné chyby.
08

Kombinovaný digitálny vstup aj výstup

LV00008

Program zabezpečuje sériovú komunikáciu so zariadením na porte COM6.

  • Otvorenie komunikácie: Na začiatku sa inicializuje sériové spojenie.
  • Hlavná slučka: Cyklus beží opakovane s pauzou 100 ms.
  • Digitálny zápis: Program zoberie stav prepínača z predného panelu a pošle túto hodnotu na výstupný kanál 2.
  • Digitálne čítanie: Program načíta hodnotu zo vstupného kanála 3 a podľa nej rozsvieti alebo zhasne zelený indikátor na prednom paneli.
  • Zastavenie a zatvorenie: Po stlačení tlačidla Stop sa hlavný cyklus ukončí, sériový port sa zatvorí a program spracuje prípadné chyby.
09

Čítanie stavu tlačidla (logika priamej hodnoty)

LV00009

Program neustále číta stav fyzického tlačidla pripojeného na digitálny vstup a zobrazuje ho na prednom paneli.

  1. Otvorí sa spojenie cez sériový port COM6.
  2. Spustí sa slučka s opakovaním každých 100 ms.
  3. Vnútri slučky sa číta hodnota z digitálneho kanála 2.
  4. Zistený stav sa zobrazuje na indikátore DI Value. Nestlačené tlačidlo dáva signál True, stlačené tlačidlo dáva signál False.
  5. Slučka sa zastaví kliknutím na tlačidlo Stop na prednom paneli.
  6. Na záver sa sériový port korektne zatvorí a ošetria sa prípadné chyby.
10

Čítanie tlačidla s negáciou (NOT)

LV00010

Program číta stav digitálneho tlačidla cez sériový port a zobrazuje jeho invertovanú hodnotu.

  • Program inicializuje sériové spojenie na porte COM6.
  • Spustí sa hlavná slučka opakujúca sa každých 100 ms.
  • Blok Digital Read číta stav z digitálneho kanála 2. Nestlačené tlačidlo vracia False (Low), stlačené True (High).
  • Prečítaný signál prechádza logickým operátorom NOT (negácia) zvýrazneným v rámčeku. Výstupná hodnota je teda opačná ako vstupná.
  • Výsledná negovaná hodnota sa prenáša na zelený indikátor DI Value na prednom paneli.
  • Slučka beží, kým používateľ nestlačí Stop. Po zastavení sa port uzavrie a chyby sa spracujú.
11

Čítanie tlačidla s indikátorom na prednom paneli

LV00011

Program neustále číta stav fyzického tlačidla a zobrazuje ho na prednom paneli.

  • Inicializácia: Otvorí sériovú komunikáciu na porte COM6.
  • Hlavná slučka: Beží donekonečna s pauzou 100 ms v každom kroku.
  • Čítanie vstupu: Funkcia Digital Read číta stav z digitálneho kanála 2.
  • Zobrazenie: Ak je fyzické tlačidlo stlačené (True/High), rozsvieti sa zelený indikátor DI Value. Ak nie je stlačené (False/Low), indikátor zhasne.
  • Ukončenie: Po kliknutí na Stop sa slučka zastaví, sériové spojenie sa uzavrie a program skontroluje prípadné chyby.
12

Paleta Peripherals > Analog

LV00012

Navigácia v palete menu grafického programovacieho prostredia LabVIEW.

  • Pravý panel zobrazuje menu Peripherals s rôznymi možnosťami hardvérovej komunikácie.
  • Priečinok Analog je zvýraznený a vybraný.
  • Šípka ukazuje na ľavý panel s obsahom priečinka Analog.
  • Dostupné funkcie vo vnútri sú Write, Read a Set Ref Voltage.

Obrázok znázorňuje, kde nájsť konkrétne bloky potrebné na čítanie alebo zápis analógových signálov.

13

Riadenie PWM signálu

LV00013

Kód riadi PWM signál cez sériovú komunikáciu.

  • Inicializácia: Otvorí sériové pripojenie na porte COM6.
  • Čítanie hodnôt: Vo vnútri slučky priebežne číta percentuálnu hodnotu z ovládacieho prvku PWM.
  • Výpočet striedy: Vydelí prečítanú hodnotu číslom 100, čím získa rozsah od 0 do 1.
  • Nastavenie PWM: Odošle vypočítanú striedu na kanál 3 pomocou bloku PWM Set Duty Cycle.
  • Časovanie: Slučka čaká 100 ms pred každým ďalším opakovaním.
  • Zastavenie: Celý proces beží, kým používateľ nestlačí Stop Button.
  • Ukončenie: Spojenie sa korektne zatvorí a prípadné chyby spracuje Simple Error Handler.
14

Jednorazové čítanie analógového signálu

LV00014

Program vykonáva jednorazové načítanie analógového signálu.

  1. Inicializuje sériové pripojenie na porte COM6 pomocou bloku Open.vi.
  2. Načíta analógovú hodnotu z kanála 0 pomocou bloku Analog Read.vi.
  3. Zobrazí namerané napätie na prednom paneli v indikátore Voltage.
  4. Uzavrie pripojenie pomocou bloku Close.vi.
  5. Odošle prípadné chybové stavy do bloku Simple Error Handler.vi.

Program sa vykoná iba raz a následne sa ukončí, pretože neobsahuje žiadnu slučku.

15

Pravidelné čítanie analógovej hodnoty (slučka)

LV00015

Program pravidelne číta analógovú hodnotu cez sériové rozhranie.

  • Zariadenie sa inicializuje na sériovom porte COM6 pomocou bloku Open.vi.
  • Program vstúpi do slučky While Loop.
  • Blok Analog Read.vi číta dáta z analógového kanála 0.
  • Získaná hodnota sa zobrazuje v číselnom indikátore Voltage na prednom paneli.
  • Blok Wait (ms) pozastaví slučku na 1000 ms (1 sekunda) počas každej iterácie.
  • Slučka sa opakuje, kým používateľ nestlačí tlačidlo Stop.
  • Po zastavení blok Close.vi ukončí sériové spojenie a Simple Error Handler.vi vypíše prípadné chyby.
16

Hotové bloky pre senzory (Sensors paleta)

LV00016

Grafické programovacie prvky prostredia LabVIEW z kategórie senzorov.

  • Knižnica na ľavej strane obsahuje kategórie ako Accelerometer, Distance a Temp.
  • Šípka ukazuje na štyri príklady predpripravených blokov (Virtual Instruments) pre konkrétne senzory: TMP3x, Thermistor, DHTRead a Photocell.
  • Tieto hotové bloky je možné priamo použiť na čítanie údajov zo senzorov, alebo ich nahradiť vlastnými blokmi vytvoreným od nuly.
17

Jednorazové čítanie teploty (senzor TMP36)

LV00017

Kód používa knižnicu LINX na komunikáciu s teplotným senzorom TMP36. Vykonáva sa zľava doprava:

  • Open.vi: Otvára sériové spojenie so zariadením na porte COM6.
  • TMP3x.vi: Vstavaný blok špecificky nastavený na senzor TMP36. Načíta z neho dáta a výslednú teplotu odošle do číselného indikátora Temperature [C].
  • Close.vi: Bezpečne uzatvára sériové spojenie a uvoľňuje prostriedky.
  • Simple Error Handler.vi: Zachytáva a upozorňuje na akékoľvek chyby počas behu programu.

Výsledok je zobrazený na prednom paneli, kde indikátor ukazuje aktuálne nameranú teplotu 20,8 °C.

18

Kontinuálne čítanie teploty v slučke (TMP36)

LV00018

Program komunikuje s Arduinom a kontinuálne číta hodnoty teploty zo senzora.

  • Otvorenie spojenia: Blok Open.vi nadviaže sériovú komunikáciu na porte COM6.
  • Hlavná slučka: Kód beží v slučke While Loop.
  • Čítanie senzora: Blok TMP3x.vi načíta dáta zo senzora TMP36 na analógovom kanáli 0.
  • Zobrazenie: Nameraná teplota sa ukazuje na prednom paneli v indikátore Temperature [C].
  • Časovanie: Blok Wait zdrží cyklus na 1000 ms.
  • Zastavenie: Tlačidlo Stop Button ukončí bežiacu slučku.
  • Ukončenie a chyby: Close.vi zatvorí spojenie a Simple Error Handler.vi spracuje prípadné chyby.
19

Výpočet teploty z analógového napätia (TMP36)

LV00019

Program číta dáta z teplotného senzora TMP36 pomocou mikrokontroléra Arduino.

  • Program otvorí sériové spojenie na porte COM6.
  • Spustí sa slučka opakujúca sa každých 1000 ms.
  • Program prečíta analógový signál z kanála 0.
  • Získaná hodnota sa zobrazí v číselnom indikátore ako napätie.
  • Napätie sa konvertuje na teplotu pomocou matematických blokov: napätie sa vynásobí číslom 100 a odčíta sa hodnota 50.
  • Vypočítaná hodnota sa zobrazí v číselnom indikátore ako teplota v stupňoch Celzia.
  • Slučka beží nepretržite až do stlačenia tlačidla Stop.
  • Po zastavení program bezpečne zatvorí sériové spojenie a ošetrí prípadné chyby.
20

Meranie teploty termistorom (Steinhart-Hart)

LV00020

Program slúži na nepretržité meranie teploty termistorom.

  • Inicializácia: Blok Open.vi nadviaže komunikáciu cez COM6.
  • Hlavný cyklus:
    • Analog Read.vi načíta signál z kanála 0.
    • Steinhart Hart Equation.vi prepočíta signál na teplotu.
    • Hodnota sa zobrazí na paneli v indikátore Temperature [C].
    • Wait (ms) pozastaví cyklus na 100 ms.
    • Opakuje sa až do stlačenia Stop.
  • Ukončenie: Close.vi uzavrie spojenie a Simple Error Handler.vi spracuje chyby.
21

Formula Node: výpočet odporu a teploty termistora

LV00021

Kód vypočítava teplotu z nameraného napätia termistora.

  • Výpočet odporu: Uzol Formula Node prijíma vstupné napätie Vout a vypočíta aktuálny odpor termistora Rt.
  • Výpočet v Kelvinoch: Použije Steinhartovu Hartovu rovnicu s definovanými konštantami na určenie teploty v Kelvinoch.
  • Prevod na Celzia: Hodnotu prevedie na stupne Celzia a odošle ju na výstup TempC spolu s vypočítaným odporom Rt.
22

Matematický vzorec Steinhart-Hart v bloku

LV00022

Program počíta teplotu termistora pomocou rovnice Steinharta a Harta v troch krokoch:

  1. Výpočet odporu Rt: Súčin Vout a Ro sa vydelí rozdielom Vin a Vout.
  2. Teplota v Kelvinoch: Použije sa prirodzený logaritmus odporu a konštanty A, B a C vo vzorci:
    T = 1 / ( A + B·ln(Rt) + C·(ln(Rt))³ )
  3. Teplota v stupňoch Celzia: Od hodnoty v Kelvinoch sa odpočíta 273,15 a výsledok sa zobrazí v okne TempC.