RIP (računalom integrirana proizvodnja, engl. CIM) Embedded računala Internet of Things (IoT) Open source hardware i software Hardware maker movement Cloud platforme Sadržaj seminarskog rada: (samostalno izabrana tema i svrha projekta - NASLO) Uvod; Uz dostupne komponente (min.4 različite) u laboratoriju izraditi seminarski rada prema uputama za izradu diplomskog rada. http://www.sfsb.unios.hr/uploads/docs/nastaa/upute%20za%20d iplomski%20rad.pdf Komponente potrebne za projekt (kratki opis svake korištene komponente); Shema spajanja (koristiti Fritzing - open source, free software. ); Program (uključiti dvije do tri varijacije programa); Spajanje elemenata i provjera funkcionalnosti; Zaključak; Literatura (obavezno navesti točan navod polaznog projekta) Što je Arduino? Dio hardvera Programsko okruženje Zajednica & filozofija MIKROKONTROLER Mikrokontroler možemo zamisliti kao crnu kutiju koja ima određen broj izvoda kojima možemo upravljati pomoću programa kojeg napišemo na računalu i koji se izvodi na mikrokotroleru. Za prebacivanje programa u mikrokontroler koristimo se USB vezom s računalom. Izvodi se koriste za: upravljanje raznim uređajima ili za očitavanje stanja s različitih senzora. Otvorena platforma elektroničkog prototipa zasnovana na fleksibilnom hardveru i softveru koji se lako koristi. Stvorila ga je talijanska tvrtka SmartProjects 200 koristeći 8-bitne mikrokontrolere Atmel AR. 3 Izvodi mogu raditi u dva režima rada: izlazni režim rada (dva moguća stanja visoko (+) i nisko (0)) i ulazni režim rada (može očitati digitalno stanje narinuto vanjskom komponentom na sam izvod mikrokotrolera) MIKROKONTROLER Croduino pločica sa ulazno/izlaznim izvodima (en. pin) Pinovi(engl. pins) su mjesta na koja povezujemo komponente, senzore i aktuatore ili žice. Analogni pinovi (izlazi označeni ) Digitalni pinovi neki od izvoda mikrokontrolera mogu raditi i kao analogni izvodi Ako analogne izvode koristimo kao ulazne tada s njih očitavamo napon u rasponu od 0 do. Svaki izvod na razvojnom okruženju ima svoju oznaku. Oznake su numeričke i idu od 0 do 13 za Arduino UNO izvode - digitalni ulazi i izlazi, te A0 do A za analogne. Kod Croduino pločice imamo nešto više anlognih ulaza pa im oznake idu od A0 do A7. Na svakoj pločici izvodi su jasno obilježeni oznakama kraj konektora za svaki izvod. 0 USB konverter FTDI FT232R ostali pinovi mikrokontroler Atmel Atmega328 Analogni pinovi (ulazi) Svaki pin ima svoj broj. Imamotri vrste: digitalni, analogni i ostali. 0 RESET SIGNALNE LEDICE SIGNALNE LEDICE Crvena Signalizira komunikaciju u smjeru računalo -> Croduino Bijela - Signalizira komunikaciju u smjeru Croduino -> računalo Plava -Signalizira da pločica ima napajanje i radi. OSTALI PINOI + - Izvor napona, struja(400ma) gnd - Negativni pol(ground) ist. napona 33 - Izvor ist. napajanja 3.3. IN - Ulaz ist. napona 7-24. rst - Povezan s reset tipkalom aref - Referentni analogni napon 1
Set za početnike Programiranje minimum koda void setup() { // postavi svoj setup code, pokreće se samo jednom: } void loop() { // postavi svoj glavni kod, ponavlja se : } Poziva se samo kada je Arduino uključen ili resetiran. Koristi se za inicijalizaciju varijabli i načina rada pinova Funkcije petlje trajno se pokreću dok se uređaj ne isključi. Ovdje se upisuje glavna logika koda. 7 8 Inicijalizacija pinova Želimo li neki pin koristiti u ulaznom ili izlaznom režimu rada moramo ga prvo inicijalizirati sljedećom funkcijom: pinmode(pin, mode); pin cijeli broj (integer) koji saznajemo sa podsjetnika mode konstantna koja određuje način rada pina OUTPUT izlazni način rada INPUT ulazni način rada INPUT_PULLUP ulazni način rada s uključenim internim pull-up otpornikom 20 kω 0 kω Čitanje i pisanje digitalnih pinova Želimo li pin koji koristimo kao digitalni izlaz postavljati u visoku ili nisku logičku razinu. U pravilu (dozvoljena odstupanja) visoka razina znači da na pinu imamo + dok niska razina znači da na pinu imamo 0. digitalread(pin); - vraća trenutno stanje digitalnog ulaza pin cjeli broj (integer) koji saznajemo sa podsjetnika digitalwrite(pin, value); - postavlja izvod pin u stanje value Stanje pina može biti: LOW false (ili 0) HIGH true (ili 1) Čekanje Želimo li da Arduino pričeka s izvođenjem sljedeće naredbe određeno vrijeme koristimo funkciju: delay(t); t broj (integer) milisekundi Tipovi podataka u Arduino okruženju Kratki cjelobrojni - byte, Cjelobrojni int, Prošireni cjelobrojni long, Realni float. Svaki tip podataka zauzima određenu veličinu (memoriju) u računalu i ima određeni opseg vrijednosti koji pokriva. 2
NAPOMENA: Atmega mikroprocesorski čip ima ugrađen odgovarajući pull-up otpornik od 20 K kome se može softverski pristupiti Cjelobrojne (integer) varijable će prebaciti vrijednosti na drugi kraj opsega ukoliko budu primorane da prekorače minimalnu ili maksimalnu vrijednost prilikom nekog dodjeljivanja vrijednosti ili usporedbe. Npr. Ako je x=32767 a slijedeća naredba dodaje 1 na x, tj. X=x+1 ili je x++, x će se prebaciti na drugi kraj opsega i biti jednako -32768. Brojevi sa pokretnim zarezom nisu egzaktni daju neobične rezultate prilikom usporedbe. Matematičke operacije sa ovim brojevima su mnogo sporije u odnosu na iste sa cjelobrojnim, te je poželjno izbjeći korištenje ovih brojeva kad god je moguće. Kad se pinovi konfiguriraju kao izlazi, oni su u stanju niske impendancije i mogu osigurati struju od 40 ma uređajima koji su na njih priključeni što je dovoljno da izazove jasno svijetljenje diode (vezati otpornik sa diodaom) ali nije dovoljno da aktivira zavojnicu releja ili mali elektromotor. Arduinovi digitalni pinovi su tvornički postavljeni kao ulazi (ulazni), te ih nije potrebno eksplicitno deklarirati kao ulaze korištenjem funkcije pinmode(). Kad su pinovi konfigurirani kao ulazi to znači da se nalaze u tzv. Stanju visoke impendancije. Kratak spoj na pinovima Arduino pločice ili prevelika struja na njima može izazvati oštećenja izlaznih pinova ili oštećenja kompletnog Atmega čipa. Da bi se to izbjeglo preporučuje se da se OUTPUT pin na koji se priključuje vanjski uređa veže otpornik od 470 ili 1k. Serial monitor FRITZING open-source programsko rješenje za sve dizajnere, inovatore, hobiste i edukatore koji žele razvijati svoje prototipe ili jednostavno grafički prikazati svoj Arduino projekt 3
FRITZING Sveučilište u Potsdamu razvilo je vrlo zanimljivu platformu Fritzing. Fritzing je open-source EDA software za ljude koji nisu inženjeri. Savršen alat za dizajnere, inovatore, hobiste i edukatore za kreiranje prototipa ili čak izrade PCB pločica. Tabovi Welcome, Breadboard, Schematic, PCB i Code predstavljaju glavnu navigaciju Frtizingom. Welcome je početni tab na kojem se nalaze poslijednje novosti. Ostale tabove ćemo ukratko predstaviti, dok ćemo se s tabom Breadboard detaljnije pozabaviti. Breadboard Ovo je dio gdje ćete najviše vremena provoditi u Fritzingu. Omogućuje breadboard (eksperimentalna pločica) pogled, odnosno daje osjećaj fizičkog slaganja komponenti. Schematic Alat za kreiranje elektroničkih shema. Komponente i module koje koristimo u jednom od ovih pogleda automatski se nalaze i u drugim, važno ih je samo posebno povezati (routati). Možemo to napraviti ručno ili koristiti Autoroute opciju. PCB Alata za kreiranje printanih elektroničkih pločica. Code Ova opcija omogućava pisanje i mijenjanje koda te upload direkto na Arduino pločicu. Koristite ju kao što bi i Arduino IDE, ne zaboravite postaviti pločicu i COM port. INSTALIRANJE NOIH PARTOA U desnom sidebaru nalaze se svi moduli i komponente koje su nam raspoložive. Koristimo ih tako da ih odvučemo na jedan od pogleda koji koristimo, a pronalazimo ih pomoću tražilice ili Binova koje su zapravo kategorički raspoređeni moduli. Frtizing dolazi s ograničenim brojem modula, tako da ćete se ubrzo naći u potrebi za proširivanjem. Na pojedinačnim proizvodima možete pronaći linkove za download Fritzing dokumenata, dok cijelu biblioteku možete preuzeti s našeg GitHub profila. KAKO SE SLUŽITI FRITZINGOM Pokazati ćemo kako koristiti Fritzing na primjeru Croduina i LED diode na D13 pinu. Pri ulasku u Fritzing na Breadboard view prikazati će nam se eksperimentalna pločica, koju ćemo gotovo uvijek i koristiti tako da je nećemo dirati. Part možete brisati pomoći tipkel delete ili izbornika kojeg pozivati desnom tipkom miša. Pretpostavljam da ste importali Croduino pločicu u Fritzing u Search upišemo croduino ili kliknemo na tab Mine i jednostavno ju odvučemo u prozor s eksperimentalnom pločicom. Isto ćemo napraviti za LED diodu i otpornik. Postaviti ćemo ih na eksperimentalnu pločicu, tako da ih odvučemo, identično kako bismo to i fizički napravili. https://github.com/e-radionicacom/e-radionica.com-fritzing-library-parts- Prema oznakama na otporniku vidimo da se radi o 220Ω, pa idemo ga promjeniti u 330Ω. Označiti ćemo ga tako da kliknemo na njega lijevom tipkom miša, oko njega će se pojaviti okvir (kao na slici iznad). Ta akcija otvoriti će nam tab Inspector ispod taba Parts kojeg smo već koristili. U istom tabu pod Properties - resistance 220Ω ćemo promijeniti u 330Ω. Istu stvar možemo raditi za sve partove koje imaju omogućene navedene opcije. Tako npr. možemo promijeniti i boju LED diode u plavu. Svaki pin ima svoje oznake, primjerice ako stavimo pokazivač miša na desnu nožicu LEDice (prema prikazu na slici) pojaviti će se oznaka anode što označava da se radi o (+) pozitivnom polu. Ako želimo dobiti pregledniju skicu, jednostavno ćemo kliknuti na nožicu i odvući je na neki drugi pin breadboarda. 4
Uobičajena boja s kojim označavamo gnd je crna, pa idemo popraviti to. Desnim tipkom miša kliknemo bilo gdje na kablić. Odaberemo izbornik Wire color, zatom boju Black. Ako ne želite da kablić ide strogo ravno, držite tipku Ctrl na Windows/Linux ili Cmd na OSX sustavima, te s desnom tipkom miša zakrivite kablić. Također, probajte pomicat jedan modul (npr. Croduino) s Fritzing skice i vidjeti ćete da su trajno povezani. Sliku projekta možete izvući preko File - Exsport - te odaberete format.