UNIVERZITET U BEOGRADU ELEKTROTEHNIKI FAKULTET Praktikum iz mernoakvizicionih
UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Praktikum iz mernoakvizicionih sistema doc. dr Milica Janković piperski@etf. rs Doc. dr Marko Barjaktarević mbarjaktarovic@etf. rs Marija Novičić, dipl. inž. novicic@etf. rs Petar Atanasijević, dipl. inž. petarat@etf. rs http: //automatika. etf. rs/ http: //bmit. etf. rs/ http: //nobel. etf. bg. ac. rs/
PYTHON & ARDUINO
PROBLEMI SA DOSTUPNIM ALATIMA Serial Monitor • Nije grafički prijatno korisničko okruženje • Ne dozvoljava skiciranje podataka Serial Plotter • Onemogućava rad sa tekstom • Onemogućava slanje podataka tokom skiciranja Praktikum iz merno-akvizicionih sistema 2017/2018
POVEZIVANJE ARDUINA I DRUGIH OKRUŽENJA • Simultana manipulacija sa tekstom i brojevnim vrednostima • Skiciranje signala u realnom vremenu • Skiciranje više signala istovremeno • Brža i kompleksija obrada podataka u realnom vremenu • Komunikacija je moguća u oba smera (Arduino Praktikum iz merno-akvizicionih sistema 2017/2018 Računar)
IZVRŠAVANJE KODA ARDUINO KOD: LOOP Praktikum iz merno-akvizicionih sistema 2017/2018 PYTHON KOD: WHILE petlja
PRIMER ARDUINO KODA Čitanje podataka sa računara Slanje podataka ka računaru Praktikum iz merno-akvizicionih sistema 2017/2018 Moraju da se slažu sa parametrima u Python kodu
PODEŠAVANJE FREKVENCIJU IZVRŠAVANJA ARDUINO KODA 1. Funkcija delay() – argument ove funkcije je broj milisekundi koji se čeka dok program ne nastavi sa izvršavanje Praktikum iz merno-akvizicionih sistema 2017/2018 2. Funkcija millis() – vraća broj milisekundi od kad se program izvršava na Arduino ploči 3. Timer interrupt
INTERRUPT • attach. Interrupt(digital. Pin. To. Interrupt(pin), ISR, mode); • Brz odgovor sistema na neregularne događaje • Precizna frekvencija odabiranja • Prioritet izvršavanja funkcija u odnosu na funkcije u loop()
INTERRUPT
ISR Interrupt Service Routine • Nema izlazne parametre • Nema ulazne parametre • Kratak set instrukcija • Promenljive volatile tipa
KOLIKA JE FREKVENCIJA ODABIRANJA PRIKAZANOJ AKVIZICIJI?
TAJMERI • Timer 0: 8 bit, delay(), millis(), micros() • Timer 2: 8 bit, tone() • Timer 1: 16 bit, Servo. h • Kako koristiti tajmere? • Korisne „ 3 rd party“ biblioteke!
<TIMERONE. H> • Pinovi 9 i 10 na UNO ploči • 16 bitni tajmer • „Bezbedan“ za upotrebu, ne remeti funkcije za merenje vremena, ali onemogućava korišćenje Servo biblioteke. • Timer 1. initialize(timing); • Timer 1. attach. Interrupt(ISR);
AKVIZICIJA: REŠENJE
PYTHON APLIKACIJA • Potrebno je instalirati i učitati modul py. Serial (import serial) – u njemu se nalaze sve funkcije potrebne za čitanje sa serijskog porta i ispis na serijski port Učitavanje biblioteke za serijsku komunikaciju Definisanje prota i brzine komunikacije (mora da se poklopi sa Arduino kodom) Funkcije za komunikaciju sa serijskim portom Zatvaranje porta Praktikum iz merno-akvizicionih sistema 2017/2018
ZADATAK • Kreirati Arduino program koji će slati poruku ka računaru • Kreirati Python aplikaciju koja će primiti 10 poslatih poruka i ispisivati njihov sadržaj • Isprobati bar dva načina definisanja periode odabiranja. Da li postoje razlike? Praktikum iz merno-akvizicionih sistema 2017/2018
NASILNO ZAUSTAVLJANJE PROGRAMA • Program u Python programskom jeziku može biti nasilno zaustavljen naredbom Ctrl+C • Korišćen serijski port nije zatvoren na adekvatan način Port ne može više da se koristi! • Jedna opcija je korišćenje izuzetaka Dok god nema nasilnog prekida programa preko tastature komunikacija se vrši normalno. Praktikum iz merno-akvizicionih sistema 2017/2018
ZADATAK • Napisati Arduino program koji čita vrednost sa analognog ulaza i šalje je na računar • U Python programu pročitati poslatu vrednost i skalirati je u opseg od 0 – 5 V • Skaliranu vrednost porediti sa nekim pragom i u zavisnosti da li je ta vrednost veća ili manja od praga poslati odgovarajuću informaciju nazad u Arduino program • U zavisnosti od primljene informacije paliti, odnosno gasiti diodu Praktikum iz merno-akvizicionih sistema 2017/2018
CRTANJE GRAFIKA U REALNOM VREMENU Potrebni moduli za crtanje grafika Definisanje interaktivnog grafika Definisanje izgleda grafika Praktikum iz merno-akvizicionih sistema 2017/2018 Čitanje sa serijskog porta. Pročitana vrednost se skalira i dodaje na kraj niza data. Niz data se prikazuje na grafiku funkcije Ukoliko niz data ima višepozivanje od 50 odbiraka plot. Values. izbacuje se prvi član. Na ovaj način se postiže da se na grafiku prikazuje maksimalno 50 tačaka
- Slides: 19