Arduino, elektronika i izrada vlastitih uređajaOd prvog strujnog kruga i C++ programa do uređaja, automatike i vlastite štampane pločice.
Pregled radionice

Na radionici nećemo samo programirati Arduino i paliti LED-ice. Učit ćemo kako nastaju stvarni elektronički uređaji: od prve ideje i jednostavne sheme, preko prototipa na breadboardu, do programa, testiranja i izrade vlastite štampane pločice.
Glavna tema radionice bit će izrada dijelova vlastitog uređaja i projekata inspiriranih automatizacijom kućanstva. Gradit ćemo svjetla, tipkala, senzore, zvučne efekte, prikaze rezultata, alarme, automatske reakcije i druge module koji se mogu povezati u veći funkcionalni uređaj.
Radit ćemo praktično: kratko ćemo upoznati novu ideju, a zatim je odmah isprobati u stvarnom sklopu ili programu.
Što ćemo učiti?
Radionica spaja elektroniku, programiranje, konstrukciju i rješavanje problema. Svaka će se tema koristiti u stvarnim projektima, a ne samo kao teorija.
Osnove elektronike
Upoznat ćemo osnovne pojmove koji su potrebni za razumijevanje elektroničkih sklopova:
- Što su napon, struja, otpor i snaga
- Kako nastaje zatvoreni strujni krug
- Kako sigurno koristiti baterije, USB napajanje i laboratorijske izvore
- Što je kratki spoj i kako ga izbjeći
- Kako rade LED-ice, otpornici, tipkala, zujalice, potenciometri i senzori
- Kako koristiti breadboard za brzo sastavljanje i testiranje prototipa
- Kako koristiti multimetar za mjerenje napona, otpora i kontinuiteta
Učit ćemo razlikovati komponente koje provode ili ograničavaju struju od onih koje mogu reagirati na svjetlo, dodir, temperaturu, pokret ili položaj.
Analogna elektronika
Analogni signal nije samo uključeno ili isključeno. Može imati mnogo različitih vrijednosti.
Radit ćemo s primjerima kao što su:
- Potenciometar za podešavanje vrijednosti
- Fotootpornik koji prepoznaje količinu svjetla
- Termistor ili temperaturni senzor
- Analogni ulaz Arduina
- PWM upravljanje jačinom LED-ice ili brzinom motora
- Jednostavni sklopovi s tranzistorima i MOSFET-ima
Na primjer, senzor svjetla može prepoznati da je u maketi sobe postalo mračno, a Arduino tada može uključiti LED rasvjetu. Isti princip može upravljati svjetlosnim efektom u uređaju koji pravimo.
Digitalna elektronika
Digitalni sklopovi rade s jasnim stanjima, najčešće uključeno i isključeno, odnosno logičkim vrijednostima 0 i 1.
Učit ćemo kako koristiti:
- Tipkala i prekidače
- Digitalne ulaze i izlaze Arduina
- Pull-up i pull-down otpornike
- Debouncing tipkala
- Mikroswitcheve (mikroprekidače) za prepoznavanje funkcionalnosti u uređaju koji pravimo
- Digitalne senzore i komunikacijske module
- Zujalice, zaslone i LED indikatore
- Serijsku komunikaciju za praćenje vrijednosti i pronalaženje grešaka
U uređaju koji pravimo će, primjerice, mikroswitch javiti Arduinu da je pogođena meta. Arduino zatim može dodati bodove, uključiti svjetlosni efekt, pustiti zvuk i prikazati rezultat na zaslonu.
Arduino i C++
Arduino će biti središnji mikrokontroler naših projekata. On može čitati senzore i tipkala, izvršiti programsku logiku te upravljati svjetlima, zvukom, zaslonima i drugim izlazima.
Programirat ćemo u C++-u, prilagođenom radu s Arduino mikrokontrolerima. Svaki Arduino program, koji se često naziva sketch, ima setup() funkciju koja se izvršava jednom pri pokretanju i loop() funkciju koja se zatim izvršava neprekidno.
Učit ćemo:
- Strukturu Arduino programa:
setup()iloop() - Varijable, tipove podataka i osnovne računske operacije
- Uvjete:
if,elsei usporedbe - Petlje i ponavljanje radnji
- Funkcije za organiziranje većih programa
- Rad s digitalnim i analognim ulazima i izlazima
- Vrijeme,
millis()i programiranje bez nepotrebnog zaustavljanja programa - Upravljanje stanjem igre ili uređaja
- Serijski ispis za testiranje i debugging
- Osnove rada s bibliotekama
Nećemo samo kopirati gotove programe. Vježbat ćemo čitati kod, mijenjati ga, testirati rezultat i pronaći grešku kada uređaj ne radi kako očekujemo.
Arduino IDE i Visual Studio Code
Za prve korake koristit ćemo standardni Arduino IDE, jer omogućuje brz i jednostavan početak.
Kasnije ćemo upoznati Visual Studio Code s dodatkom PlatformIO. To je razvojno okruženje koje olakšava organizaciju većih projekata, upravljanje bibliotekama i rad s više mikrokontrolerskih pločica.
U PlatformIO okruženju učit ćemo:
- Kako otvoriti i organizirati projekt
- Kako odabrati pločicu i razvojno okruženje
- Kako prevesti program i učitati ga na Arduino
- Kako dodati i koristiti biblioteke
- Kako čitati poruke o greškama pri prevođenju
- Kako koristiti serijski monitor
- Kako održavati kod preglednim kada projekt postane veći
Arduino IDE i VS Code nisu suparnici. Arduino IDE koristit ćemo za jednostavan početak i brzo testiranje, a VS Code s PlatformIO-om kada projekt naraste i kada nam trebaju bolja organizacija i razvojni alati.
Izrada uređaja za igru
Jedan od glavnih projektnih ciljeva radionice bit će izrada dijelova za naš projektni uređaj. Nećemo pokušati odmah napraviti cijeli uređaj odjednom. Gradit ćemo ga postupno, modul po modul.
Mogući moduli uključuju:
- Tipkala za upravljanje
- Mikroswitcheve za prepoznavanje pogotka mete
- Svjetlosne efekte i bonus lampe
- Zvučne efekte pomoću piezo zujalice ili zvučnog modula
- Brojač bodova
- OLED ili LCD zaslon za prikaz rezultata
- Odbrojavanje vremena i stanje igre
- Senzore za pokretanje posebnih događaja
- Servo motor ili drugi mali pokretni mehanizam
- Kućište, rampe, prepreke i bodovne zone
Odabrani projekt je dobar jer spaja mnogo malih sustava u jednu cjelinu. Jedan dio možda očitava tipkalo, drugi kontrolira LED-ice, treći vodi rezultat, a četvrti upravlja zvukom.
Sustav nije gotov kada svaki dio pojedinačno radi, nego kada svi dijelovi pouzdano rade zajedno.
Automatika kućanstva
Drugi projektni smjer bit će automatika kućanstva. Izrađivat ćemo sigurne niskonaponske modele pametne sobe ili pametne kuće.
Primjeri mogućih projekata:
- Automatsko svjetlo koje se pali kada je mračno
- Alarm koji reagira na otvaranje vrata ili prozora
- Senzor temperature i prikaz izmjerene vrijednosti
- Sustav koji upozorava ako je prostorija pretopla ili prehladna
- Automatski ventilator u maketi prostorije
- Sustav za praćenje svjetla, zvuka ili pokreta
- Jednostavna upravljačka ploča s tipkalima, LED indikatorima i zaslonom
Učit ćemo kako senzori daju podatke, kako program donosi odluku i kako mikrokontroler upravlja izlaznim uređajem.
Radit ćemo samo s niskonaponskim modelima i sigurnim napajanjem. Nećemo samostalno spajati Arduino na kućne utičnice, mrežni napon ili stvarne kućne električne instalacije.
Od prototipa do PCB-a
Breadboard je odličan za brzo isprobavanje ideje. Na njemu možemo premještati žice, promijeniti komponentu i testirati različite verzije sklopa bez lemljenja.
Ali breadboard nije trajno rješenje: žice se mogu izvući, sklop je teže prenositi, a veći projekt postaje nepregledan. Zato ćemo učiti kako se ideja pretvara u uredniji i trajniji elektronički uređaj.
KiCad: sheme i pločice
Koristit ćemo KiCad, program za crtanje elektroničkih shema i dizajniranje štampanih pločica, odnosno PCB-a (Printed Circuit Board).
U KiCadu ćemo učiti:
- Kako nacrtati elektroničku shemu
- Kako pronaći i postaviti simbole komponenti
- Kako povezati komponente i označiti vodove napajanja
- Kako provjeriti je li shema logična i potpuna
- Kako odabrati footprint, odnosno fizički otisak komponente na pločici
- Kako rasporediti komponente na PCB-u
- Kako voditi električne veze između komponenti
- Kako dodati konektore, oznake i rupe za pričvršćivanje
- Kako provjeriti osnovne greške prije izrade pločice
- Kako pripremiti dizajn za izradu ili ručno sastavljanje prototipa
Najprije ćemo napraviti sklop na breadboardu, zatim ga nacrtati kao shemu, a onda pokušati pretvoriti u jednostavnu pločicu.
⇒ Ideja ⇒ shema ⇒ prototip ⇒ test ⇒ program ⇒ PCB ⇒ sastavljanje ⇒ uređaj
Kako ćemo raditi?
Radionice će imati kratke uvode, ali glavni dio vremena provodit ćemo gradeći, programirajući, mjereći i testirajući.
Tipična radionica može izgledati ovako:
- Kratki uvod ili kviz za ponavljanje
- Predstavljanje jedne nove komponente, pojma ili programerske ideje
- Praktični zadatak na breadboardu ili računalu
- Testiranje i usporedba rezultata
- Debugging: pronalaženje i popravljanje problema
- Nadogradnja osnovnog zadatka za naprednije polaznike
- Spremanje, bilježenje rezultata i plan za sljedeći korak
Radit ćemo pojedinačno i u timovima. Nije važno samo tko najbrže spoji sklop ili napiše kod; važno je da tim može objasniti kako sklop radi, što je testirao i što bi promijenio u sljedećoj verziji.
Kada projekt stvarno radi?
U radionici nećemo procjenjivati projekt samo po tome je li se LED-ica jednom upalila. Pitat ćemo i:
- Radi li sklop svaki put kada ga uključimo?
- Što se događa ako korisnik brzo pritisne tipkalo?
- Što se događa ako senzor daje neočekivanu vrijednost?
- Može li se sklop jednostavno ponovno spojiti?
- Jesu li žice i komponente uredno organizirane?
- Možemo li iz koda i sheme razumjeti kako uređaj radi?
- Možemo li pronaći kvar bez nasumičnog mijenjanja svega?
- Troši li uređaj previše struje?
- Jesu li motor, LED-ice i Arduino pravilno napajani?
To su pitanja koja razlikuju demonstraciju od pouzdanog uređaja.
Što će polaznici moći?
Na kraju ciklusa polaznici bi trebali moći:
- Sigurno sastaviti i testirati jednostavan elektronički sklop
- Prepoznati osnovne elektroničke komponente i objasniti njihovu ulogu
- Koristiti breadboard, osnovne alate i multimetar
- Programirati Arduino u C++-u
- Očitati tipkalo, potenciometar i osnovne senzore
- Upravljati LED-icama, zujalicom, zaslonom i drugim izlazima
- Razumjeti osnovnu razliku između analognog i digitalnog signala
- Koristiti serijski monitor za testiranje i debugging
- Organizirati Arduino projekt u Arduino IDE-u i PlatformIO-u
- Nacrtati osnovnu shemu u KiCadu
- Dizajnirati jednostavan PCB raspored
- Suradnički izraditi dio većeg uređaja
- Objasniti zašto njihov sklop radi – i kako bi pronašli problem kada ne radi

