1. Arduino programiranje
Merni sistemiu računarstvu, http://automatika.etf.bg.ac.rs/sr/13e053msr
Dr Nadica Miljković, vanredni profesor kabinet 68, nadica.miljkovic@etf.bg.ac.rs
Prezentacija za ovu vežbu je delimično pokrivena knjigom Alan G. Smith,
Introduction to Arduino: A piece of cake!, [Online],
https://www.introtoarduino.com/downloads/IntroArduinoBook.pdf, 2011.
3. Arduino softver
• Preporučena literatura za osnove programiranja u Arduino programskom
okruženju je knjiga u kojoj se koristi hardver UNO R3:
– Alan G. Smith, Introductionto Arduino:A piece of cake!, [Online],
https://www.introtoarduino.com/downloads/IntroArduinoBook.pdf,2011.
– I drugi materijali na internetu i na sajtu predmeta
• Arduino softver je napisan u Java, C i C++. Operativni sistemi na kojima je
moguće instalirati Arduino softver i programirati u njemu su: Windows,
macOS i Linux, https://en.wikipedia.org/wiki/Arduino.
– Arduino je veoma sličan C++ programskom jeziku.
• NAPOMENA: Nisu sve funkcije dostupne za UNO R3 hardver. Neke funkcije
iako postoje u softverskom okruženju su specifično nemenjene za hardver
koji se koristi. Potrebno je pogledati uputstvo za odgovarajuću funkciju.
5. Par zanimljivosti ...
By NicholasZambetti - http://www.arduino.cc/, CC BY-SA 3.0,
https://commons.wikimedia.org/w/index.php?curid=9182627
6. ...
Slikalevo:
By oomlout - Flickr: Wingshield on Arduino- ARSH-05-WI, CC BY-SA 2.0,
https://commons.wikimedia.org/w/index.php?curid=15911319.
Slikadesno:
By Marlon J. Manrique- Flickr: Arduino ProtoboardShield, CC BY-SA 2.0,
https://commons.wikimedia.org/w/index.php?curid=15916962.
7. ...
By en:User:Fulladder - en:Image:Breadboard counter.jpg,Copyrighted free use,
https://commons.wikimedia.org/w/index.php?curid=1776425.
8. Fritzing, http://fritzing.org/home/
Slikagore: By LA2 - Own work, CC BY-SA 3.0,
https://commons.wikimedia.org/w/index.php?curid=22714341.
Slikadole: By LA2 - Own work, CC BY-SA 3.0,
https://commons.wikimedia.org/w/index.php?curid=22714342.
10. Promenljive. Kako ih definisati?
• Ako su globalne:
– Pre setup() funkcije. Mogu i pre loop() funkcije, ako se ne pozivaju u
setup() funkciji.
– Na slici je dato za celobrojne vrednosti (broj digitalnog pina).
– Uobičajeno bi konstante trebalo da počinju slovom “c” kako je i
prikazano na slici.
• Ako su lokalne:
– Unutar funkcije (setup(), loop() ili neke druge koju korisnik definiše)
11. Kontrolne strukture (tok programa)
• Tipovi kontrolnih struktura su
prikazani u tabeli.
• Detalje možete pogledati na:
https://www.arduino.cc/en/Referen
ce/HomePage.
13. if else struktura
• Prikazana je na slici.
• Početak i kraj se označavaju vitičastim zagradama “{}”.
• Automatsko popunjavanje koda: kada se ukuca početak strukture tj.
“{” i pritisne taster ENTER za prelazak u novi red, onda se
automatski generiše i kraj strukture tj. “}”.
14. switch struktura
• Primer korišćenja ove strukture je prikazan na slici.
• Prikazan je deo ugrađenog koda u fajlu switchCase.ino.
15. while petlja
• Primer while petlje je prikazan na slici.
• Pokazan je ugrađen primer WhileStatementConditional.iso.
• Kakva se petlja dobija ako je uslov while(1)?
• Kakva se petlja dobija ako je uslov while(303)?
16. for petlja
• Primer for petlje je prikazan
na slici.
• Šta je rezultat koda sa slike?
• Kod je prezet iz knjige: Kod
je pruzet iz knjige: Alan G.
Smith, Introduction to
Arduino: A piece of cake!,
[Online],
https://www.introtoarduin
o.com/downloads/IntroArd
uinoBook.pdf, 2011.
17. Šta je rezultat koda sa slike?
• Kod je pruzet iz knjige:Alan G. Smith, Introductionto Arduino:A piece of cake!,
[Online], https://www.introtoarduino.com/downloads/IntroArduinoBook.pdf,
2011.
• Na slici nije prikazana setup() funkcija, ni definisanje globalnihpromenljivihtj.
prikazanje samo deo koda.
• Moguće je da ovakavzadataki sl. bude dat na ispitu sa ciljem da studenti/kinje
opišu funkciju koda ili da predvide izlaz programa!
19. Aritmetički operatori i poređenja
• Operatori su prikazani na slikama.
• Više o operatorima na sajtu: https://www.arduino.cc/reference/en/
• Celobrojno deljenje se realizuje sa znakom ”/” ako su imenilac i
brojilac celobrojne vrednosti.
20. Logički i složeni (eng. compound) operatori
• Operatori su prikazani na slikama.
• Više o operatorima na sajtu:
https://www.arduino.cc/reference/en/
21. Šta je rezultat koda sa slike?
• Kod je pruzet iz knjige: Alan G. Smith, Introduction to Arduino: A
piece of cake!, [Online].
https://www.introtoarduino.com/downloads/IntroArduinoBook.
pdf, 2011.
• LOW i HIGH su podrazumevane logičke promenljive koje imaju
vrednosti FALSE i TRUE.
23. Tipovi podataka
• Tipovi podataka su prikazani u tabeli.
• Detalje studenti mogu pogledati na:
https://www.arduino.cc/en/Reference/HomePa
ge.
• Konverzija se postiže primenom odgovarajućih
funkcija.
25. Promena rezolucije
• Nije moguća na mikrokontrolerskim pločama koje se koriste na
laboratorijskim vežbama (UNO R3 i sličnim).
• Međutim, moguća je na Arduino Due, Arduino Zero i drugim
mikrokontrolerskim pločicama.
• Koristi se funkcija analogReadResolution().
– Više o ovoj funkciji na
https://www.arduino.cc/en/Reference/AnalogReadResolution (slikaje takođe
preuzeta sa ovog sajta).
• U principu, kod neće javiti grešku ako se povećava rezolucija iznad
hardverskih granica, ali će ti bitovi biti prazni.
– Ovakavkod ima smisla pisati kadase planirapovećanjehardverskog
kapaciteta.
27. Pulse Width Modulation
• Umesto digitalWrite() koristi se analogWrite() funkcija. Funkcija
digitalWrite() je korišćena kod Blink.iso primera.
• Na pločici piše pored digitalnih pinova PWM (pogledati sliku).
• To znači mogućnost da se upravlja sa duty cycle.
28. PWM definicija
• “Pulse Width Modulation (PWM) is a fancy term for describing a
type of digital signal. Pulse width modulation is used in a variety of
applications including sophisticated control circuitry” (izvor:
https://learn.sparkfun.com/tutorials/pulse-width-modulation).
• “Pulse-width modulation (PWM), or pulse-duration
modulation (PDM), is a modulation technique used to encode
a message into a pulsing signal“ (izvor:
https://en.wikipedia.org/wiki/Pulse-width_modulation).
• “Pulse Width Modulation, or PWM, is a technique for getting
analog results with digital means. Digital control is used to create a
square wave, a signal switched between on and off. This on-off
pattern can simulate voltages in between full on (5 Volts) and off (0
Volts) by changing the portion of the time the signal spends on
versus the time that the signal spends off” (izvor:
https://www.arduino.cc/en/Tutorial/PWM).
29. PWM u praksi
Slika:By Thewrightstuff - Own work, CC BY-SA 4.0,
https://commons.wikimedia.org/w/index.php?curid=72876123.
30. PWM vrednosti 0-255 na 0-5 V
• Linearna skala je prikazana na slici.
• Skala je nacrtana u R-u (https://www.r-project.org/about.html).
• Opseg od 0 do 255 se odnosi na duty cycle tj. faktor ispunjenosti impulsa.
31. analogWrite() primer
• Ugrađeni primer Fade.iso je
prikazanna sclici.
• Šta je funkcija ovog primera?
• Kada se koristi analogWrite()
funkcija, nije potrebno
koristiti pinMode() funkciju.
• Koristi se za kontrolu
osvetljenosti(intenziteta
svetlosti na diodi), ali i za
kontrolumotora.
33. Ugrađena dioda
• Na pinu 13 kod UNO R3 mikrokontrolerskepločice se nalazi ugrađena crvena SMD
dioda(oznaka “L” na pločici).
• Na slici je prikazanašema UNO pločice, gde je pokazanoda je ugrađena diodana
pinu 13, https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-
schematic.pdf sa oznakom “L”.
• Podrazumevanopin 13 je ON. Više do kraja semestra i na
https://www.arduino.cc/en/Tutorial/DigitalPins.
• Da li postoji ugrađen otpornikkoji služi da ograniči struju kroz ovu diodu?
• Da li je potrebno da se doda otpornik, ako se vezuje eksterna dioda na pin 13?
34. Arduin od Ivreje
• Bio je kralj Italije od 1002. do 1014.
godine.
• Jedan bar u Ivreji nosio je ime kralja
Arduina u kome su se kreatori projekta
okupljali.
• Zato su svoju mikrokontrolersku pločicu
nazvali Arduino.
• Ideja ovog projekta je bila da se omogući
studentima i amaterima da jednostavno
mogu da koriste senzore i aktuatore.
• Većina Arduino pločica se sastojiod
Atmelovih 8-bitnih mikrokntrolera
(ATMega8, ATmega168,ATmega328,
ATmega1280ili ATmega2560), a 32-bitni
Arduino Due je zasnovanna Atmel
SAM3X8Emikrokontroleru.
• Više na
https://en.wikipedia.org/wiki/Arduino
Slika: CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=17242, crkva Sv. Arhangela Mihajla u Paviji u kojoj je
Arduin proglašen za kralja.
35. Arduino kompatibilnost
• Koliko je Arduino popularan svuda, a ne samo u nastavi i za hobiste,
pokazuju i drugi proizvođači hardvera
• Na primer, STM32 je familija 32-bitnih mikrokontrolera sa 32-bitnim
ARM procesorom
– ARM je skup instrukcija koju je razvija kompanija ARM Holding za
procesore sa RISC arhitekturom. Poznato?
• STM32 je proizvod kompanije STMicroelectronics
(https://www.st.com/content/st_com/en.html) koja je osnovana
1957. sa sedištem u Ženevi u Švajcarskoj
• Njihovi proizvodi imaju Arduino kompatibilnost – u smislu
rasporeda pinova i za korišćenje šildova
• Pogledati Nucleo proizvode,
https://www.st.com/en/ecosystems/stm32-nucleo.html
36. mBED okruženje
• Pored Arduino okruženja na kome se rade laboratorijske vežbe na
MSR predmetu, mogu se koristiti i druga okruženja za programiranje
• Free and open – source okruženje za programiranje mikrokontrolera
je mBED, https://os.mbed.com/
• Ovo je online editor i kompajler za programiranje mikrokontrolera i
posebno sa namenom u IoT sistemima
• Napisan je u C i C++
• Podržava preko 150 mikrokontrolera
• Prošle godine su ga studenti koristili na Izazovu
• IoT, poznato?
– Na sledećim slajdovima objašnjeno je šta je IoT, a slajdovi su preuzeti iz
prezentacije "IoT & električna merenja" održane 26. marta 2019.
tokom EESTech Challenge-a na ETF-u u Beogradu.
37. Internet stvari
(IoT)
• Dostupnost internetaje
omogućila direktnovezivanje
objekatana mrežu tzv. Internet of
Things (IoT).
• IoT, po definiciji,čini mrežu
svakodnevnihobjekatakoji su
umreženi sa računarimai
mobilnimuređajima
(https://en.wikipedia.org/wiki/Int
ernet_of_things, 23.03.2019.).
• PopularneIoT primene su kućna
automatizacija(eng. home
automation, domotics, smart
home, smart house,
https://en.wikipedia.org/wiki/Ho
me_automation,23.03.2019.) i
sigurnosni nadzor.
By MJN123 - http://www.newtonnet.co.uk/catfeeder, CC BY 3.0,
https://commons.wikimedia.org/w/index.php?curid=8630690.
38. Stvari?
• Šta?
– Kućna tehnika (frižider, šporet, mikser, bojler, televizor, …)
– Senzori (kamera, senzor pokreta, senzor temperature,
senzor vlažnosti, …)
– …
• Gde?
– U kući
– Na poslu
– Na ulici
– U automobilu
– Na kućnim ljubimcima
– …
39. • Automatizacija dosadnih poslova
• Komfor
• Igračka
• Zabava
• Nadzor
• Sigurnost
• Zdravlje
• Industrija
• …
Zašto?
By Ring - https://ring.com/press, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=58940160.
40. Ali i biljke.
Na slici je prikazano rešenje IZAZOVA u 2018. godini pod nazivom Auto Botaničar na 13E053MSR predmetu
koje su radili Jovana Uskoković i Nikola Milenić.
42. Primer
• Na slici je prikazanprimer ispisa poruke na serijskom portu.
• Dve osnovne funkcije za rad sa stringovima su Serial.print() i Serial.println().
• Šta bi bilo da je iskorišćena funkcija Serial.print()?