Šta je to Arduino?
Kako bi se što kvalitetije upustili u Arduino avanturu, jako bitno je da u samom početku shvatimo šta je to Arduino, koja je njegova funkcija, kao i to šta se sa njim može napraviti!
Ova lekcija će biti malo duža od ostalih jer želim da na jednom mjestu spomenem sve najosnovnije stvari i pojmove, kako bi kroz sljedeće lekcije mogli proći što brže i kvalitetnije i spominjati samo pojmove koji su usko povezane za temu.
U nastavku ćemo odgovoriti na osnovna pitanja :
- Šta su to mikrokontroleri,
- Šta je to Arduino i čemu služi,
- Kakvih sve Arduino kontrolera imamo,
- Šta je to Arduino IDE,
- Šta su to senzori, kojih i kakvih sve senzora imamo,
- Šta su to šildovi (engl. Shield)
Šta su to mikrokontroleri?
Smatram da je na samom početku najbitnije da se upoznamo sa glavnom komponentom koja čini naš Arduino kontroler tako funkcionalnim i upotrebljivim a to je mikrokontroler.
Jedna od najjednostavnijihi definicija kaže da su mikrokontroleri integrisani krugovi koji imaju sve što im je potrebno da budu mali računari. Mikrokontroleri rade na vrlo maloj voltaži i koriste malo struje tako da kontroler pomoću eksternog napajanja može nesmatano raditi danima pa čak i mjesecima. Velika prednost mikrokontrolera je ta što imaju sposobnost da zadrže funkcionalnost prilikom čekanja događaja kao što je pritiskanje dugmeta ili neki drugi prekid. Potrošnja struje kad se ne dešava nikakav događaj može biti samo nekoliko nanowati, što ih čini dobrim izborom za primjene gdje je potrebno duže trajanje baterije.
Iz gore navedene definicije već možemo da shvatimo zašto je mikrokontroler glavna komponenta Arduino kontrolera!
Šta je to Arduino, kako je nastao i čemu služi?
Projekt Arduino je nastao 2003. godine pod nazivom Wiring kojeg je u sklopu svog diplomskog rada razvio kolumbijski student Hernando Barragán, pod vodstvom Massima Banzi-a i Caseya Reas-a. Wiring je zamišljen kao program za studente IDII-a (Interaction Design Institute Ivrea) u Italiji čiji je cilj bio napraviti jeftin i jednostavan alat za razvoj raznih uređaja koji vrše neki oblik interakcije sa okolinom pomoću senzora (engl. sensors) i drugih pokretača (engl. actuators) kojeg bi na jednak način mogli koristiti i inženjeri i oni bez inženjerskih sposobnosti.
2003. godine su Massimo Banzi, zajedno sa Davidom Mellis-om, još jednim studentom IDII-a, i Davidom Cuartielles-om dodali podršku za jeftiniji ATmega8 mikrokontroler. Umjesto da nastave rad na projektu Wiring , oni su kopirali kod iz projekta i nastavili raditi na svom novom projektu nazvanom Arduino. Projekt je dobio ime po nazivu kafića u kojem su se često nalazili. Inicijalno se Arduino tim sastojao od Massima Banzi-a, Davida Cuartielles-a, Toma Igoe-a, Gianluce Martino-a i Davida Mellis-a.
Prvi Arduino je proizveden 2005. godine, od strane talijanske tvrtke SmartProjects. U današnje doba naziv Arduino ne obuhvaća samo pripadni hardver i softver već čitav projekt, brojne hardverske dodatke i programske biblioteke te veliku zajednicu korisnika.
Jedna od grubih , ali možda i najtačnijih teorija bila bi : ” Arduino je otvorena (open-source) razvojna platforma pomoću koje se povezuju hardverski skolopovi i softwerski alati za kreiranje jednostavnih i složenijih elektroničkih projekata. Arduino platforma je odlična za povezivanje računara tj. mikrokontrolera sa fizičim svijetom “.
Programsko okruženje u kojem se programiraju Arduino ploče naziva se Arduino IDE. O arduino IDE ćemo nešto više govoriti u nastavku.
Glavni dio najrasprostranije i najčešće korištene Arduino ploče pod nazivom Arduino Uno jeste mikrokontroler pod nazivom ATmega328P čiji je proizvođač Atmel.
Arduino ploča je dizajnirana na taj način da omogućava korisniku očitavanja senzora kao što su: senzor za očitavanje intenziteta svjetlosti, vlažnost zemlje, jačine zvuka, količine protoka vode, mjerenje daljine predmeta itd., čijim programinjem možemo zadati komande za izlazne uređaje kao što su: aktiviranje motora, signalizacija dioda u realnom vremenu, ispis vrijednosti na displej, pokretanje releja za AC i DC potrošače i mnoge druge uređaje. Sve navedene karakteristike ovu razvojnu ploču čine idealnom za razvoj samostalnih projekata.
Karakteristike Arduino Uno REV3:
Kao što možete i sami zaključiti, iz svega do sada navedenog, Arduino kontoler je pogodan za početnike i profesionalce iz razloga jer se na internetu može naći puno korisnih informacija o programiranju i implementaciji dodatnih modula. Može se napajati računarom preko USB konektora ili posebnog izvora poput baterije ili ispravljača napona 6-20V. USB konektor ujedno se koristi za komunikaciju s okolinom. Praćenje i nadzor prijenosa podataka moguć je integriranim alatom koji se zove Serial Monitor.
Kakvih sve Arduino kontrolera imamo?
Pored spometutno Arduino Uno, postoji veliki broj arduino kontrolera koji se razlikuju po broju digitalnih, analognih i PWM pinova, memorije, mikrokontrolera, USB priključka, gabarita itd.. Najkorišteniji su Arduino Uno, Arduino Mega i Arduino Nano.
Šta je to Arduino IDE?
Uz kupovinu bilo koje Arduino ploče dobiva se i USB komunikacijski kabl. Prije samog fizičkog povezivanja ploče sa računarom potrebno je da preuzmemo i instaliramo Arduino programsko okruženje. Programsko okruženje je moguće preuzeti i instalirati sa oficijelne web stranice na desktop računar.
LINK za preuzimanje Arduino IDE.
Prilikom preuzimanja IDE možete izabrati verziju za skoro sve sisteme. U slučaju da Vaš računar ne može da preuzme ili pokrene zadnju verziju Arduino IDE, preuzmite neku od starijih verzija. Kao i većina programa na početku budu jako jednostavni i lagani, ali zbog zahtjeva kupaca i raznih olakšica program postaje sve kompleksniji i samim tim sve više traži resursa vašeg računara. Jedna od bitnijih razlika nove generacije Arduino IDE od prethodnih je ta što je puno lakše preuzimanje biblioteka (engl. Library). U starijim verzijama sve ste morali da radite ručno korak po korak, dok u zadnjim verzijama jednostavno u pretraživač ukucate biblioteku koja vam je potrebna i program dalje sve sam podešava.
Od 2016. godine je moguće koristiti i Arduino Web Editor. Za pristup Web Editoru potrebno je kreirati korisnički profil i ulogovati se na stranicu. Nakon ulogovanja, potrebno je preuzeti i instalirati dodatak (engl. Plugin) na desktop računar kako bi Vaš pretraživač mogao prenijeti kod (engl. skecth) u Arduino mikrokontroler. Preglednici kao sto su Crome, Firefox, Safari i Edge podržavaju Arduino Web Editor. Oblak (engl. Cloud) verzija je pouzdanija od desktop verzije jer prilikom gašenja aplikacije kod (eng Code) ostaje trajno sačuvan. Velika prednost Web Editora je ta da nakon što smo napravili profil možemo pristupit i učestvovati na forumu, napraviti vlastiti blog, pristupiti i kupovati sa online stranice, praviti online uputstva (engl. tutorials), dijeliti (engl. Share ) svoje projekte i još mnogo toga. Arduino Web Editor je online hostovan, stoga će uvijek biti aktuelan sa najnovijim funkcijama i podrškom za nove ploče.
Šta su to senzori i kojih sve senzora imamo ?
Senzor, kao sam pojam, izveden je iz latinske riječi „sensus“, koja znači „osjet“ ili „osjećanje“, a predstavlja uređaj koji detektira i reagira na neki unos iz fizičkog okruženja. Primjena senzora je raznolika, koriste se u različitim područjima i primjenjuju se gotovo u svim električnim strojevima. Oni se najčešće razlikuju i odlikuju prema tehničkim karakteristikama, manjih dimenzija i sposobnošću obrade signala. Razvijanje senzora omogućuje što lakšu primjenu svakome čovjeku. Zadatak senzora je mjerenu veličinu iz procesa izraziti pomoću signala, elektronički, mehanički i optički. Ulaz može biti toplina, svjetlost, vlaga, pritisak, kretanje ili bilo koji od velikog broja drugih pojava. Izlaz je općenito signal koji se pretvara u ljudski čitljiv zaslon na senzoru. Navest ću nekoliko različitih tipova senzora: u staklenom termometru na bazi žive, ulazna veličina je temperatura, kao odgovor sadržana tečnost se širi ili skuplja, što uzrokuje višu ili nižu razinu na označenom mjerilu, što je ljudski čitljivo. Senzori pokreta u različitim sistemima uključujući automatska vrata, sanitarnu opremu i slično, tipično šalju neki tip energije, kao na primjer: mikrotalasi, ultrasonični talasi ili svjetlosne zrake i detektuju kada je protok energije ometen nečim što ulazi u njegovu putanju. Fotosenzori detektuju prisutnost vidljivog svjetla, infracrveni prijenos, i/ili ultraljubičastu energiju.
Otvaranjem IoT (Internet of Things) tržišta, senzori dobijaju novi značaj jer, kao oči i uši svakog kontrolera, omogućavaju da se izmjereni podatak gotovo trenutno prenese na bilo koje mesto u svijetu. Što je najlepše, ova tehnologija je donedavno postojala samo u vrhunskim laboratorijama, a sada je dostupna i svakom hobisti.
Senzor se sastoji iz više osnovnih modula:
Modul za detektovanje: prima signal iz mjerene sredine (npr. pritisak, temperatura itd.) i na osnovu njih generiše izlazni signal koji zavisi od izmjerene vrijednosti.
Modul za konverziju: konvertuje signal koji dobijemo na izlazu modula za detekciju u odgovarajući signal drugog oblika. Često se naziva i pretvarački modul, a moguće je i pretvaranje ulaznog signala u više etapa.
Modul za obradu: vrši uobličavanje signala. Signali koji se dobiju uglavnom su suviše mali pa ih je potrebno uobličiti i pojačati. Ovaj modul prima mali ulazni signal i generiše mnogo veći izlazni signal.
Modul za prijenos podataka: prenosi signal od mjesta na kome se vrši mjerenje do mjesta gdje će rezultati mjerenja biti prikazani.
Modul za prikaz podataka: daje informacije o mjernim veličinama u formi koja će biti prepoznata od strane korisnika. Ovaj modul može biti jednostavna kazaljka koja skreće u zavisnosti od izmjerene veličine ili neki komplikovaniji uređaj koji će obuhvatiti odgovarajući PC računar.
Postoji nekoliko klasifikacija senzora napravljenih od strane različitih autora i stručnjaka. Jedna od tih je da se vrši odnosu na: vrstu izlaznog signala, prirodu mjerne veličine, princip rada gabarita, prirodu izlazne veličine, uvjete rada, način upotrebe, unutrašnje strukture, pouzdanosti itd.
Prema obliku signala koji daju na svom izlazu senzori se dijele na:
Analogni senzori: na svom izlazu daju kontinualni, neprekidni niz vrijednosti. Izlazni signal je proporcionalan veličini koja se mjeri, a informacija o vrijednosti veličine koja se mjeri je sadržana u amplitudi izlaznog signala. Izlaz ovih senzora se obično preko analogno-digitalnog (A/D) konvertera povezuje na kompjuter ili mikrokontroler. Analogni signal se dalje prenosi do uređaja daljinske obrade signala gdje se obavlja znatno složenija obrada i procesiranje signala. Složenija obrada podrazumjeva pretvaranje signala iz analognog oblika u digitalni.
Digitalni senzori: podrazumjeva mjerni uređaj koji konvertuje mjernu analognu veličinu xF u digitalni izlazni signal xN. Gradi se na bazi mikrokontrolera, što omogućava visok metrološki kvalitet i značajnu obradu mjerne informacije i prije njenog uvođenja u sistem upravljanja. Digitalni senzori su poznati po svojoj tačnosti i jednostavnim povezivanjem na kompjuter ili mikrokontroler bez potrebe za dodatnim konvektorima.
Prema izvoru napajanja senzori mogu biti:
Aktivni senzori je uređaj koji vrše pretvaranje neelektričnih mjernih veličina u električne. Podrazumjeva da se odgovarajuća neelektrična veličina pretvara u pretvaraču u električnu veličinu. Pretvarači koji rade na ovaj način zovu se aktivni pretvarači. Aktivni pretvarači za svoj rad ne trebaju dodatnu energiju. Aktivni senzori se široko koriste u proizvodnji i umrežavanju okruženja, kao na primjer za nadgledanje industrijskih mašina da bi anomalije mogle biti detektovane i komponente popravljene i premještene prije nego što se sve zatvori/ugasi.
Pasivni senzor je uređaj koji detektuje i odgovara na nadražaj iz fizičke okoline. Pasivni senzor sakuplja podatke kroz detekciju radijacije, svjetla, toplote ili nekih drugih fenomena koji se javljaju u okruženju subjekta. Primjer tehnologija koje su bazirane na pasivnim senzorima su: fotografska, termalna, hemijska, infracrvena. Zavisno od toga šta se očitava ovi različiti senzori mogu biti montirani na satelit, avion itd. i prikupljeni podaci od strane daljinskog očitavača koriste se za sve od kartografije do istraživanja resursa atmosferskih i hemijskih mjerenja. Razlikuju se od aktivnih senzora, koji uključuju odašiljače koji šalju signale vani, svjetlom valjne duljine ili elektronom da bi se odbio o metu.
U ponudi se trenutno nalazi jako veliki broj i senzora pa ćemo u nastavku samo nekoliko njih pomenuti i opisati:
Fotootpornici:
Fotootpornik je otpornik čiji se otpor mijenja pod uticajem svjetlosti koja pada na njega. Zbog te osobine, nalazi primjenu kao elektronski senzor (osjetilo). Fotootpornik je načinjen od poluprovodnog materijala. Ako su fotoni svjetlosti koji padaju dovoljno visoke frekvencije (dovoljne energije), daće vezanim elektronima dovoljno energije da postanu slobodni elektroni u poluprovodniku. Sa time se smanjuje otpor fotootpornika pod uticajem svjetlosti. Primjer praktične primjene fotootpornika je taj da ga se kontrolerom Arduino Uno uz samo nekoliko linija koda možemo programirati da pali ili gasi diodu u ovisnosti od intenziteta svjetlosti.
Optički senzori
Optički senzor radi na principu promjene parametara optičkog signala sa promjenom fizičke veličine. Samim tim ovi senzori nemaju galvanske ili magnetne veze, već samo optičke. Koriste se za bezkontaktno detektiranje predmeta, bez obzira na materijal od kojeg su izrađeni. Optički senzori odašilju nevidljivu infracrvenu ili vidljivu crvenu svjetlost, u svrhu detektiranja prisutnosti predmeta. Predmet se prepoznaje ili na principu presjecanja svjetlosnog vala ili na principu reflektiranja emitiranog vala od predmeta nazad ka senzoru, radi aktiviranja senzorskog izlaza. Ovi senzori se mogu upotrebljavati u svim uslovima djelovanja jakog magnetnog polja, visoke temperature, električnih šumova i hemijske korozije, pa su mnogo fleksibilniji i pouzdaniji od klasičnih senzora.
Prednosti optičkih senzora su :
Veća rastojanja koja je moguće ostvariti između predmeta i senzora, u odnosu na induktivne i kapacitivne.
Sposobnost detekcije predmeta bez obzira na materijal od kojeg se sastoji.
Sposobnost raspoznavanja predmeta u ovisnosti od njihove boje i karakteristike površine odnosno hrapavosti.
Nedostaci optičkih senzora su:
složenost izrade, obrade signala, zahtjevaju optičku vidljivost između prijemnika i predajnika, osjetljivost na mehaničke vibracije
Šta su to šildovi?
Nakon što smo shvatili šta su to mikrokontroleri, gdje se sve nalaze mikrokontroleri, kakvih sve senzora imamo, gdje se odvija programiranje ne smijemo zaboraviti spomenuti i šildove (engl. shields). Šildovi su pločice koje se dodaju na vrh pločice Arduino preko Arduino pin zaglavlja. Oni poboljšavaju i proširuju osnovne funkcionalnosti platforme dodajući dodatne funkcije. Kao što smo ranije spomenuli Arduino je otvorena platforma te tako omogućuje raznim proizvođačima da proizvode vlastite dodatke za platformu. Danas je dostupno jako mnogo shield-ova te većina dolazi s predviđenim bibliotekama specifičnim za njih. Zbog svojih mogućnosti i jednostavnog načina ugradnje, shieldovi se jako često koriste u arduino projektima. Shieldovi koji se najčešče koriste su prothoshield, LCD shield, relay shield, ethernet shield GSM ili GPS shield i mnogi drugi.
U nastavku ćemo detaljnije objasniti neke od šildova:
ProtoShield:
Kao što mu i sam naziv govori, ovaj šild nam služi za manje prototipiranje i jako je praktičan za osnovne i male projekte koji ne zahtjevaju veći broj veza. Za nešto veće projekte preporučujem koristenje BreadBoard (eksperimentalnih) ploča. BreadBoard ploče se razlikuju po broju rupica i najkorištenije su od 400 i 830 rupca.
Ethernet Shield:
Da bi Vaš projekat dobio puno značenje IoT, mislim da će ovaj šild biti zaslužan za to. Ethernet šild ima veliki broj biblioteka, tako da će Vaš projekat (logovi, očitanja senzora ili šta već želite) vrlo brzo i jednostavno završiti na internetu.
Relay (Relej) Shield:
Jedan od najkorisnijih stvari koje možete učiniti s Arduinom je kontrola uređaja na slabu struju (DC 12-24V) ili viših napona (AC 120-240V) uređaja poput svjetala, grijača i drugih kućanskih aparata. Budući da Arduino radi na 5V, on ne može izravno upravljati tim višim naponskim uređajima, ali možete koristiti 5V relej za prebacivanje 120-240V struje i koristiti Arduino za upravljanje relejem.
Arduino se može programirati da uključi relej kada dođe do određenog događaja. Gotovo svaki senzor može se koristiti za uključivanje ili isključivanje releja. Okidač ne mora biti iz senzora. Može se dogoditi u određenim vremenskim razmacima, može se pokrenuti pritiskom na dugme ili čak kada dobijete e-poštu.
Nakon što smo naučili osnovne pojmove u narednim lekcijama više ćemo se baviti svima navedenim senzorima, šildovima, a bez Arduino IDE svakako ne možemo.