Arduino i LabVIEW - PMS2nobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/2018/Arduino i...
Transcript of Arduino i LabVIEW - PMS2nobel.etf.bg.ac.rs/studiranje/kursevi/of2pis/materijali/2018/Arduino i...
UNIVERZITET U BEOGRADUELEKTROTEHNIČKI FAKULTET
Praktikum iz merno-akvizicionih sistema
Doc. dr Milica Janković[email protected]
Marija Novičić, dipl. inž[email protected]
http://automatika.etf.rs/http://bmit.etf.rs/
Doc. dr Marko Barjaktarović[email protected]
Petar Atanasijević, dipl. inž[email protected]
http://nobel.etf.bg.ac.rs/
ARDUINO I LABVIEW
PROBLEMI SA DOSTUPNIM ALATIMA
Serial Monitor
• Nije grafički prijatno korisničko okruženje.
• Ne dozvoljava skiciranje podataka.
Serial Plotter
• Ne omogućava rad sa tekstom.
• Ne omogućava slanje podataka tokom skiciranja.
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZAŠTO POVEZUJEMO ARDUINO SA LABVIEW-OM?
• Omogućava simultanu manipulaciju sa tekstom i brojevnim vrednostima.
• Omogućava skiciranje signala u realnom vremenu.
• Moguća je realizacija programa koji skiciraju više signala istovremeno.
• Dozvoljena je komunikacija u oba smera. (Računar Arduino)
• Omogućava bržu i kompleksniju obradu podataka u realnom vremenu.
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
DOSTUPNE OPCIJE ZA POVEZIVANJE
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
• LIFA: LabVIEW interface for Arduino. (Nije više preporučena opcija)
• LINX: Trenutno preporučeno gotovo rešenje. Omogućava pristup periferijama i
interfejsima popularnih „embedded“ platformi. Ograničene mogućnosti.
• VISA: Direktna komunikacija sa „embedded“ platformom preko serijskog
porta.
LIFA
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
LINX
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
PRIMER – LINX
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
PREDNOSTI I MANE KORIŠĆENJA LIFA I LINX
Prednosti:
• Brzo i jednostavno programiranje u slučaju jednostavnih aplikacija.
• Nije potrebno izlaziti izvan LabVIEW okruženja.
• Izvršavanje je diktirano izvršavanjem na računaru.
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
Mane:
• Ograničena funkcionalnost.
• Korišćenje biblioteka?
• Manja zajednica inženjera koji
se bave ovom problematikom.
VISA
• VI – jevi koji omogućavaju komunikaciju sa uređajima, povezanim na serijski
port.
• Funkcije opšte namene (nisu vezane za Arduino).
• Omogućavaju modularnost realizovanih programa (moguća je jednostavna
promena sa platforme na platformu).
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
VISA PALETA I SERIAL PALETA
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
IZVRŠAVANJE KODA
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
Arduino kod:loop
LabVIEW kod:While
PRIMER ARDUINO KODA
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
Sekcija za čitanje poruka poslatih sa računara
Sekcija za slanje poruka računaru
Kašnjenje koje približno definiše frekvenciju izvršavanja Arduino koda.
ČITANJE SA SERIJSKOG PORTA – POLLING
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
UPISIVANJE NA SERIJSKI PORT
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 1
• Kreirati „Serial Monitor“ za Arduino u LabVIEW okruženju, korišćenjem polling
metode.
• Varitati frekvencije izvršavanja Arduino i LabVIEW kodova i uočiti efekat koji se
javlja ukoliko se vrednosti sa Arduina šalju brže nego što ih LabVIEW može obraditi.
• Nakon završenog zadatka, program prekinuti nasilno, pritiskom na Abort execution.
• Probajte da pokrenete program ponovo.
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZATVARANJE RESURSA
• Kada je program prekinut nasilno, funkcija „VISA Close“ ne stiže da se izvrši i
COM port više nije upotrebljiv.
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZATVARANJE RESURSA
• Ponovna upotrebljivost COM porta se postiže pokretanjem posebnog VI-ja u
kome se forsirano vrši zatvaranje komunikacije. Tada je COM port ponovo
dostupan za rad u regularnom programu.
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
“EVENT DRIVEN” KOMUNIKACIJA
• Paleta sa funkcijama koje detektuju događaje na serijskom portu.
• Omogućava čitanje vrednosti tek kada informacija pristigne na računar.
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
“EVENT DRIVEN” ČITANJE SA PORTA
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
PARALELNO ČITANJE I UPISIVANJE
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
PRIKAZIVANJE BROJNIH VREDNOSTI NA GRAFIKU
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
PROBLEMI U PRIMENI
• Byte count: moramo imati u vidu maksimalan broj bajtova koji očekujemo da primimo. VISA Read daje izlaznu vrednost tek kada pročita odgovarajući broj bajtova, ili kada pročita „line feed“ karakter! Iz ovog razloga je preferabilno koristiti Serial.println() funkciju naspram Serial.print() funkcije. U slučaju druge funkcije, računaru se ne šalje „line feed“ konstanta na kraju poruke, te može doći do spajanja poruka i lošeg očitavanja.
• Timeout
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 2
• Napraviti program koji omogućava korisniku da preko kontrole u vidu točkića
na front panelu kontroliše poziciju servo motora, povezanog na pin 9 Arduino
UNO ploče.
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 3
• Realizovati „Event driven“ program koji omogućava kontinualnu analognu
akviziciju, kao i trenutnu kontrolu nad ugrađenom svetlećom diodom Arduino
UNO ploče (Svetlećoj diodi se pristupa preko digitalnog pina 13 na ploči).
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 4
• Realizovati program koji omogućava istovremeno iscrtavanje signala sve tri
ose akcelerometra. Koristiti modifikovane Arduino kodove, korišćene na
prethodnom času.
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018