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 Barjaktarović 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/
UVOD U ARDUINO
ŠTA JE ARDUINO? • Arduino je Open Source razvojni sistem. • Jednostavan je za korišćenje. • Lako se programira. • Brza izrada prototipova. • Izgrađen oko Atmel AVR mikrokontrolera. PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ARDUINO PORODICA PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
DODACI PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
SOFTVER • Arduino IDE je okruženje u kome je najlakše pisati vaše kodove. • Link ka stranici sa koje se može preuzeti Arduino IDE: https: //www. arduino. cc/en/Main/Software • Jezik je u osnovi sličan C++, ali značajno jednostavniji. • Kod se spušta na pločicu koja na sebi već poseduje Bootloader. PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
LOGIČKI RAZDVOJENE CELINE NA PLOČI • Sekcija za napajanje; • Analogni ulazi; • Digitalni ulazi/izlazi. • Komunikacija PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
KOSTUR SVAKOG KODA void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: } PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
KOSTUR SVAKOG KODA • setup : se poziva samo pri uključivanju Arduina ili nakon pritiska na dugme RESET. Služi za inicijalizaciju. • loop : funkcija koja se izvršava kontinualno sve do isključivanja napajanja. Uglavnom se unutar loop petlje nalazi glavna logika koda. Slična je while(1) petlji u drugim okruženjima. PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
PINMODE • Digitalni pin na Arduinu je moguće definisati kao ulazni ili izlazni korišćenjem pin. Mode funkcije. • pin. Mode(13, OUTPUT); // pin 13 se deklariše kao izlazni pin • pin. Mode(13, INPUT); // pin 13 se deklariše kao ulazni pin PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ČITANJE I PISANJE DIGITALNIH VREDNOSTI • digital. Write(13, LOW); // izlazni napon pina 13 se podešava na 0 V • digital. Write(13, HIGH); // izlazni napon pina 13 se podešava na 5 V • int button. State = digital. Read(2); // upisivanje pročitane vrednosti sa pina 2 u promenljivu button. State koja je integer tipa PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ANALOGNO DIGITALNA KONVERZIJA • Mikrokontroler razume samo „jezik“ digitalnog. • Neophodno je kontinualne napone iz stvarnog sveta prebaciti u digitalne vrednosti. • Naponi koje je moguće čitati moraju biti u opsegu od 0 do 5 V! PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
KVANTIZACIJA SIGNALA PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
A/D KONVERTOR NA ARDUINU • 10 bita je dostupno za konverziju, te razlikujemo 1024 naponska nivoa. • Mapiranje opsega ulaznog napona od 0 do 5 V u opseg nivoa od 0 do 1023. • 0 V 0 • 5 V 1023 • 1. 25 V 256 • Kolika je rezolucija? PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
A/D KONVERTOR NA ARDUINU • Brzina A/D konverzije je standardno malo veća od 100 µs, te je frekvencija odabiranja manja od 10 k. Hz! • Moguće je ubrzati A/D konvertor i do 5 puta, ali na račun male degradacije u rezoluciji. • Ugrađeni multiplekser omogućava akviziciju na više analognih ulaza (Arduino UNO poseduje 6 analognih ulaza). PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ČITANJE ANALOGNOG NAPONA • Int vrednost = analog. Read(A 0); // koristi se za čitanje analognog napona na pinu A 0; • Tip podatka koji vraća ova funkcija je integer! • float napon = vrednost*5. 0/1023. 0; PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ISPISIVANJE ANALOGNOG NAPONA • • analog. Write(); • • 0 – 100% • Umesto njega, koristi se Impulsno širinska modulacija (engl. Pulse Width Modulation, PWM)! Neke ploče na sebi imaju D/A konvertor 0 – 255 Arduino UNO ne poseduje D/A konvertor PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
BIBLIOTEKE • Veliki je broj dostupnih biblioteka na internetu. • Biblioteke se jednostavno učitavaju postupkom koji je prikazan na slici. PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
KOMUNIKACIJA SA RAČUNAROM • Serial. begin(9600); • Serial. print(); • Serial. println(); • Serial. available(); • Serial. read(); PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
SERIAL MONITOR/PLOTTER PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
SAMO JE DŽEPARAC GRANICA PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADACI PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 1: RF RECIEVER-TRANSMITTER • U zadatku se ostvaruje komunikacija između 2 mikrokontrolera korišćenjem FS 1000 A i XY-MK-5 V radio modula. • RF komunikacija na 433 MHz. • Zadatak se radi sa dve Arduino UNO ploče. • Neophodno je povezati i jedan i drugi Arduino UNO prema slikama na sledećem slajdu i omogućiti slanje poruka u jednom smeru sa jedne na drugu ploču. • Više informacija o biblioteci Virtual. Wire. h koja se koristi za komunikaciju je moguće naći na linku: https: //www. pjrc. com/teensy/td_libs_Virtual. Wire. html Transmitter PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018 Reciever
ZADATAK 1: RF RECIEVER-TRANSMITTER Transmitter PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018 Reciever
ZADATAK 1: RF RECIEVER-TRANSMITTER • Realizovati program koji će uključivati ugrađenu LED na prijemnoj Arduino UNO ploči samo u slučaju kada joj stigne poruka „Turn on“. U suprotnom LED ne treba da svetli. • Koristiti dostupne primere programa koji dolaze sa bibliotekom Virtual. Wire. h. PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 2: IC SENSOR I DETEKCIJA SIGNALA SA DALJINSKOG UPRAVLJAČA • U zadatku je potrebno realizovati upravljanje intenzitetom svetljenja LED povezane na pin 9 Arduino UNO ploče korišćenjem daljinskog upravljača i IC senzora. Potrebno je da intenzitet bude podesiv od minimuma (bez svetla) pritiskom na dugme 1, do maksimuma (100%) pritiskom na dugme 5 daljinskog upravljača (pet različitih nivoa osvetljaja). PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 2: IC SENSOR I DETEKCIJA SIGNALA SA DALJINSKOG UPRAVLJAČA PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 2: IC SENSOR I DETEKCIJA SIGNALA SA DALJINSKOG UPRAVLJAČA Više informacija na linku: http: //www. circuitbasics. com/arduino-ir-remote-receiver-tutorial/ Polazni kod PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 3: UPRAVLJANJE SERVO MOTOROM KORIŠĆENJEM FSR SENZORA • Force Sensing Resistor predstavlja otpornik čija otpornost opada sa porastom sile primenjene na njegovu aktivnu površinu. • U zadatku je potrebno ostvariti upravljanje servo motorom korišćenjem FSR senzora. PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 3: UPRAVLJANJE SERVO MOTOROM KORIŠĆENJEM FSR SENZORA • Više informacija o Servo biblioteci je moguće naći na linku: https: //www. arduino. cc/en/reference/servo • Povezati šemu kao na sledećoj slici. • Kodove za početak je moguće naći među primerima koji dolaze sa Servo. h bibliotekom. PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 3: UPRAVLJANJE SERVO MOTOROM KORIŠĆENJEM FSR SENZORA Šema za povezivanje PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 4: AKCELEROMETAR • Povezati akcelertometar prema slici na sledećem slajdu. • Uočiti da je u kodu neophodno predefinisati analogne ulaze u digitalne izlaze kako bi se napajanje dovelo na odgovarajuće pinove i na taj način se izbegla upotreba protoborda. • Izvršiti prikaz signala sa svake od osa korišćenjem Serial plotter-a. (Naravno ne simultano, već pojedinačno) • Proceniti granice napona na analognim ulazima akcelerometra i predložiti metodu kalibracije. PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 4: AKCELEROMETAR Slika koja ilustruje povezivanje akcelerometra sa Arduino Uno pločom PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 4: AKCELEROMETAR Početni kod PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 5: ULTRAZVUČNI SENZOR RASTOJANJA • Realizovati merenje rastojanja predmeta od ultrazvučnog senzora HC-SR 04 i izvršiti prikazivanje dobijenih vrednosti. Za rastojanje koje je manje od 15 cm obezbediti signalizaciju korišćenjem ugrađene LED na Arduino UNO ploči. Ukoliko rastojanje pređe 30 cm ili padne ispod 7 cm, dodatno upozoriti korisnika slanjem tekstualne poruke ka računaru. • • Šemu povezati prema slici sa sledećeg slajda. Više informacija o metodi, senzoru, kao i početni kod, mogu se naći na sledećem linku: https: //howtomechatronics. com/tutorials/arduino/ultrasonic-sensor-hc-sr 04/ PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
ZADATAK 5: ULTRAZVUČNI SENZOR RASTOJANJA Šema za povezivanje PRAKTIKUM IZ MERNO-AKVIZICIONIH SISTEMA 2017/2018
- Slides: 37