Ako stvarno želite naučiti kako Arduino ili Raspberry Pi funkcioniraju, najbolje vam je krenuti u neki projekt.
Piše: Boris Plavljanić
Kada je prije godinu dana najavljen Raspberry Pi, mnogi su počeli govoriti da se radi o „Arduino killeru“, odnosno o hardveru koji će uništiti i zamijeniti Arduino. No, to je daleko od istine. Arduino i RPi su možda na prvi pogled vrlo slični, no namjena im je potpuno drukčija. Arduino je mikro kontroler koji se zasniva na 8-bitnom ATmega čipu i ima 2-8 kB memorije, dok se RPi zasniva na mikroprocesoru radnog takta 700 MHz, te ima 256/512 MB RAM memorije. Što želimo reći – RPi je malo računalo koje bi trebalo približiti programiranje i učenje široj publici, dok bi Arduino toj istoj publici trebao približiti elektroniku i znanje o električnim spojevima, sa sitnom primjenom programiranja. Obje platforme postižu izuzetan uspjeh, imaju ogromnu zajednicu korisnika i svjetlu budućnost. Čak se u javnosti pojavljuje sve više projekata koji kombiniraju obje komponente što je fantastično. No, mi smo ipak odlučili pokazati vam što možete napraviti sa Arduinom, a što sa RPi-jem zasebno. Naravno, ovo je tek djelić onoga što možete učiniti. Ako imate malo znanja i mašte, samo nebo je granica.
RASPBERRY PI
Media Centar
Zašto ljudi najčešće kupuju RPi? Voljeli bismo kada bi odgovor bio zato jer žele naučiti nešto novo. Jedno neslužbeno istraživanje je pokazalo da ljudi kupuju isti jer žele napraviti medijski centar, a računalo im je najčešće udaljeno od televizora pa to baš i nije spretno za spajanje. Zamislite samo koliko bi vas koštao HDMI kabel od 10 ili više metara. Zato je RPi idealna „igračka“ koja košta samo 35 dolara, a nudi mnogo toga. Ako ga pretvarate u medijski centar, tada svakako razmislite o instaliranju XBMC-a, odnosno XBian operativnog sustava koji se bazira na XBMC aplikaciji. Ona je idealna za gledanje filmova, slika i slušanje glazbe. A k tome je još i prilično fleksibilna. Nadalje, osim spomenutih radnji, RPi spojen na televizor može imati i drugu funkciju. Recimo, mnogi ga koriste za surfanje po Internetu jer im se više sviđa surfati na ekranu od 80+ cm, nego na malom monitoru. Probali smo i mi i prilično je zabavno, pogotovo puštati pjesme preko YouTube servisa, te uz to spojiti televizor na kućno kino kako bismo dobili odličan zvuk. Ono što vam mi možemo preporučiti je da uz RPi kupite i USB hub, te konvertere kako biste na njega mogli spajati i uređaje koji nemaju HDMI izlaz (konverter HDMI-to-DVI ili VGA košta svega par dolara na eBayu). Uz sve nabrojano, RPi možete pretvoriti i u mali BitTorrent server na koji ćete skidati filmove i glazbu. Iako, napominjemo da to nije legalno pa radite na svoju odgovornost.
Portabilni PC u autu
Ima jedna priča koja kaže da je Julian Assange (osnivač Wikileaksa) nosio računalo u ruksaku, a da to nije bio prijenosnik. Da li je priča istinita ili ne, ne možemo tvrditi, no znamo da se takvo računalo može vrlo lako napraviti ili složiti. Ono što vam treba je malo računalo koje će u ovom slučaju biti Raspberry Pi i nekoliko dodataka. No, mi smo odlučili malo zakomplicirali stvari pa želimo to isto malo računalo spojiti u autu. Sigurno ste mnogo puta putovali negdje sa autom i bilo vam je dosadno. Ili vama ili suputnicima. Zar ne bi bilo zabavnije da imate neku platformu koja će zabavljati ostatak putnika u autu?
Da biste spojili RPi u autu, trebati će vam dvije komponente osim samog računala. Prva komponenta je auto punjač koji s jedne strane ima klasičan konektor koji se priključuje u autu na mjestu gdje stoji upaljač, a na drugom kraju ima microUSB konektor. Po mogućnosti bi trebao davati 5V na izlazu. Druga komponenta je mali ekran veličine 7-9 inča koji će davati sliku i zamijeniti klasični monitor. Cijena varira, no može se kupiti pristojan ekran za svega 150-200 kuna, s time da mnogi već dolaze sa postoljem za auto i mogućnošću postavljanja na prednje staklo automobila. Povezivanjem svih komponenti dobivate potpuno funkcionalno računalo na kojem možete puštati glazbu, djeca mogu gledati animirane filmove i slično. Čak to isto računalo može poslužiti vozaču kao GPS navigacija. Sve što trebate je dobar navigacijski softver i antena koji treba povezati sa računalom.
Izrada meteorološke stanice
Ako malo bolje promotrite nacionalne TV programe, kao i one komercijalne, možete primijetiti da imaju svakog dana prilično različite prognoze vremena. Kako je to moguće? Lijepo – predviđanje vremena se temelji na raznim metodama koje mogu dati različite rezultate, no to nije razlog da na jednoj televiziji kažu da će padati snijeg, a da na drugoj kažu da dolazi ljepše vrijeme. Razlika u tim predviđanjima je ipak prevelika. Pa ako vam je dosta tih kontradiktornih vijesti, napravite svoju meteo stanicu. Na tržištu postoji nekoliko senzora koje se putem USB sučelja spajaju na RPi i daju meteorološke podatke. Naravno, potrebno ih je instalirati negdje van stambenog prostora (balkon, vanjski zid kuće ili slično), te uz pomoć open source softvera mjeriti parametre. Najpoznatija takva antena je N96FY USB Weather Forecaster koji košta nemalih 700 kuna (3 i pol puta više od Raspberryja). Nakon instalacije istog, trebate na svom uređaju instalirati Git, python, te nekoliko libraryja koji se nalaze na Internetu (Cython, libusb i cython hidapi), te ih konfigurirati. Vrlo brzo nakon toga ćete imati funkcionalnu meteo stanicu koja će biti sposobna pratiti vremenske (ne)prilike, a na vama je da odaberete model po kojem ćete „predviđati“ vrijeme. Vrlo zanimljiv projekt tijekom kojem možete mnogo toga naučiti.
Supercomputer
Iako se Raspberry Pi teško može natjecati na računalima ili prijenosnicima koje većina nas danas koristi, možete napraviti super računalo koje će biti u stanju raditi neke stvarno super stvari. Prvi koji je to uspio napraviti je profesor Simon Cox (University of Southampton) koji je spojio 64 RPi-ja i dobio super računalo koje ima 16 GB memorije, 1 TB mjesta na SD karticama i odlične performanse. Cijena – 25.000 kuna. Ok, znamo da si to ne može priuštiti jedan prosječan korisnik, no želimo vam pokazati da je svašta moguće učiniti. Kada složite ovakvo jedno računalo, treba ga samo konfigurirati na pravi način. Kako se to radi, nećemo objašnjavati jer bi nam trebalo puno vremena i prostora, no detaljne upute možete skinuti sa stranica navedenog fakulteta.
Što dobijete sa ovim super računalom? Dobijete računalo koje je sposobno raditi neke prilično zahtjevne matematičke operacije, brzo računalo za programiranje, računalo sposobno pokrenuti kompleksnije aplikacije i softverske pakete, pa čak i izvoditi simulacije za koje bi vam u nekim normalnim uvjetima trebalo računalo koje je barem duplo skuplje. Sve u svemu, fantastičan projekt koji bi se mogao napraviti u našim školama i vjerujemo da bi učenici puno više naučili radeći samo na tom projektu, nego slušajući program iz informatike koji je star preko 15 godina!
Pi Hacker
„Možda je mali, ali je moćan“, rekao je jedan programer iz kompanije Pwnie Express misleći na RPi. Riječ je o kompaniji koja je napravila operativni sustav koji služi za probijanje wireless mreža. Da, znamo da postoji BackTrack koji nosi preko 300 vrhunski alata, no Pi ima svoju verziju BackTracka i zove se Raspberry Pwn. To nije službeni OS za RPi, pa ga možete skinuti samo sa GitHuba, gdje ćete odmah naći i upute za konfiguriranje. Raspberry Pwn je proizvod „entuzijasta“ iz spomenute kompanije koji su odlučili probrati samo najbolje alate iz BT-a i ubaciti ih u RPi. U potpunosti su uspjeli u svom naumu jer stvar funkcionira. Neki od alata koji dolaze sa OS-om su: kismet, Fasttrack, nmap, netcat, wireshark, hping3, medusa, netdiscover, ngrep, tcpflow, openvpn, httptunnel, dnswalk… Mi pozdravljamo ovakvu distribuciju za RPi jer su u današnje vrijeme alati ovog tipa prijeko potrebni. Jedini problem je što ovi alati imaju malo širu lepezu mogućnosti, pa s njima možete raditi i neke stvari koje nisu previše legalne. Ono što radite sa tim alatima radite na svoju odgovornost (da ne bi kasnije bilo „nismo znali“). Mi vam savjetujemo da ne budete „previše radoznali“ i da se držite nekih etičkih normi. Ovo je prije svega edukacijski OS s kojim možete puno naučiti o funkcioniranju mreža i mrežnih protokola.
RPi Cloud Server
Danas je prilično popularno i korisno koristiti cloud servise za sinkroniziranje kalendara, knjiga, glazbe i općenito podataka. Pa svi mi koristimo Dropbox, Sugarsync, Picasu, Flickr, SkyDrive… Veliki igrači poput Applea, Googlea i Microsofta su prepoznali važnost tih servisa i nude stvarno puno toga, a da ne napominjemo da su mnogi servisi u potpunosti besplatni. No, postoji jedan problem – podaci su spremljeni na nekim serverskim farmama koje se nalaze tko zna gdje i pitanje je kako su podaci zaštićeni. Vrlo vjerojatno se i na neki način prodaju oglašivačima jer je to jedino logično objašnjenje zašto su ti servisi besplatni. Netko drugi plaća u vaše ime, tj. za vaše podatke. Možda je bolja solucija da napravite svoj Cloud server uz pomoć RPi-ja i softvera koji se zove Owncloud. On vam nudi nekoliko pod servisa kao što su CalDAV, CardDAV i WebDAV koji služe za sinkronizaciju kalendara, kontakata, glazbe, slika… Instalacija istog je vrlo lagana, a nakon što sve konfigurirate, morate još samo spojiti server sa svojim iOS ili Android uređajem, ograničiti pristup serveru (koristi se SSL protokol) i to je u biti to. I za svega 35 dolara koliko košta RPi imate svoj osobni server sa svojim podacima i samo vi imate njima pristup. Sjajno, zar ne? Uz to, stavite SD karticu od 32 ili 64 GB i uštedjeli ste si mnogo novaca. Primjerice, 20 GB na Skydriveu košta 20 dolara, odnosno 100 kuna. Vi ovako možete imati 3 puta više prostora i servise koji vama odgovaraju.
ARDUINO
Netduino
Prije nego se pozabavimo inačicama Arduina i onime što možete s njime napraviti, pogledajmo ipak malo detaljnije što Arduino zapravo jest. U uvodnom dijelu smo rekli da je to mikrokontroler – i on to jest. No to je programibilni kontroler kojeg možete iskoristiti za mnoge stvari. Ako ste jedan/jedna od onih koji vole rastavljati gadgete i „popravljati ih“ iako nisu pokvareni, tada je Arduino fantastična stvarčica koju morate imate. Arduino je kao mali kompjuter, no za razliku od Raspberryja Pi, on ostvaruje interakciju s vama preko elektroničkih senzora, lampica, dioda, motora… Programiranje je ovdje također vrlo važan segment, no na jedan malo drugačiji način.
I tu dolazimo do Netduina. To je Arduino samo sa nekim ograničenjima. Riječ NET bi vas mogla asocirati na.net i bili biste u pravu! Netduino je open source elektronička platforma koja koristi.net framework za programiranje, a dolazi sa 48 Mhz ARM 7 procesorom, 14 digitalnih UI pinova, 6 analognih ulaza, oklopom da ga ne oštetite i malom količinom RAM memorije. Postoji i naprednija verzija, koja uz naziv Netduino ima i sufiks Plus 2 (Zapravo postoji i Netduino 2 i Netduino Go). Plus 2 ima radni takt 168 MHz, 384 KB memorije (!!) i podržava.net micro framework 4.2. Uz to ima i ethernet ulaz (10 mbps), 22 UI pina, utor za microSD karticu, radi na temperaturi do 70C i to je u biti to.
Projekti – Pa netduino je malo ograničen s obzirom na Arduino, odnosno ima hardverska i softverska ograničenja i namijenjen je početnicima. Usudili bi se reći da je Arduino za one koji su se već prije susreli sa elektronikom i poznaju osnove iste. Netduino je više za entuzijaste koji nešto žele naučiti.
Netduino projekt: Dekoder morsove abecede
Jedan vrlo zanimljiv Netduino Plus 2 projekt je Dekoder morseove abecede. Svi znamo od čega se ona sastoji, no pitanje je kako to napraviti uz pomoć hardvera i softvera? Pa prilično lagano. Ono što vam treba su 2 Netduina ili jedan Netduino Plus 2, LDR (Light Dependent Resistor) – električni otpor/ otpornik, 1k otpornik, 10k linearni potenciometar, mali serijski LCD i maketa/model sa kratkim žicama kako biste sve povezali. Na Internetu postoji shema kako sve povezati (g33k.blogspot.com ili službeni netduino forum), što i kako priključiti, te softver koji morate u Netduino učitati kako bi sve radilo. Vjerovali ili ne, stvar funkcionira vrlo dobro. Iako ovdje vi nećete lupkati po stolu, nego ćete se igrati sa potenciometrom i tako davati signale Netduinu koji će te iste signale pretvoriti u slova. Da biste mogli i zvuk pretvarati u signale, trebati će vam dodatni hardver, a to odmah znači i puno veću cijenu projekta.
Netduino projekt: Otvaranje/Zatvaranje garažnih vrata
Dosta vam je stalnog otvaranja i zatvaranja garažnih vrata? Pogotovo u ovo vrijeme kada pada snijeg? Sustavi za automatsko otvaranje i zatvaranje garažnih vrata košta i do par tisuća kuna. Ovisno o tome kakva vrata koristiti i koji sustav. Sa Netduinom to možete sve koštati puno jeftinije. Sve što vam treba je sustav za podizanje vrata (door opener), Optoisolator sa Darling driverima (košta par dolara, možete ga kupiti preko Interneta), otpornike od 33 i 100 ohma i Netduino Plus. Spajanjem komponenti prema zadanoj shemi možete (netduinohacking.blogspot.nl) dobiti potpuno funkcionalan sustav za podizanje vrata. Jedino što ćete morati prilagoditi su brzina dizanja vrata, te još nekoliko sitnica, no to se sve radi softverskim putem (cijeli program ima manje od 100 linija koda). Također, treba ga testirati i eventualno iskodirati da se vrata automatski zatvore nakon određeno vremena. Probajte, ovo bi vam moglo biti zanimljivo i vrlo korisno.
GMail LED Notifier
Iako danas postoji mnogo dodataka za operativni sustav i za web preglednik koji vam svakih X minuta provjeravaju GMail pretinac, zašto to ne biste učinili na jedan malo zanimljiviji način? Zašto recimo na stolu ne biste imali polu prozirnu plastičnu kocku (kuglu) koja će zasvijetliti kada vam dođe email? Već zvuči zanimljivo? Je, vrlo je zanimljivo i lako za napraviti, s time da softver varira od operativnog sustava do operativnog sustava, no stvar je nijansi. Od hardvera vam treba računalo, netduino, kocka koja svijetli, te 2 kabela – jedan koji će povezati računalo sa Netduinom i jedan koji će povezati Netduino i svjetleću kocku. Prvo povezivanje možete napraviti sa serijskim kablom i USB-om, dok povezivanje Netduina i kocke najčešće ide preko onih kablova koji se koriste za unutarnje spajanje napajanja računala i dodatnih ventilatora. Proguglajte i potražite odgovarajuće kablove.
Softver je također stavka koju ne smijete zanemariti i bez koje cijela stvar ne bi funkcionirala. Trebaju vam dva programa: jedan koji će se vrtjeti na Arduinu i koji će primati signale od računala i slati ih dalje do svjetleće kocke, a drugi je softver koji će na računalu provjeravati da li imate nepročitanu poruku u pretincu. Softver je stvarno trivijalan – Arduino doslovno prima dva signala (boolean): True ako ima nepročitana poruka ili False ako je pretinac prazan ili su sve poruke pročitane. Fantastična ideja koju svaki pravi geek mora isprobati! Kako to izgleda, pogledajte sliku uz tekst.
Otključavanje i zaključavanje vrata uz pomoć boja
Jedan vrlo kompleksan projekt je otvaranje i zatvaranje kućnih vrata uz pomoć interaktivnog panela sa različitim bojama. Sigurno ste mnogo puta vidjeli vrata koja se otvaraju uz pomoć kartica ili kombinacije brojeva. Ovo je vrlo slično samo što panel svijetli, tipke predstavljaju boje (slike uz tekst), a vrata možete otvoriti samo određenom kombinacijom boja. Cijena ovakvog projekta je gotovo 350 dolara jer vam treba brava koja se može elektroničkim putem otključavati i zaključavati, Arduino, različiti tranzistori, diode, Monome keypad odnosno panel, 8 RGB dioda, regulator struje, 4 100 omska otpornika, 2 150 omska otpornika i još nekoliko manjih. Tada to sve treba povezati, ugraditi u zid kraj vrata (ili pričvrstiti) na zid, te isprogramirati. Posao koji bi mogao potrajati danima ako ne znate što radite ili nekoliko sati ako slijedite upute. Naravno, prije nego počnete razbijati zid i raditi preinake, budite sigurni da sve radi kako spada. Ovaj projekt je fantastičan, samo što postoji dosta prostora za nadogradnju. Recimo, bilo bi korisno dovesti struju i napajati Arduino direktno iz utičnice, a ne preko baterije i slično. Jer što će se dogoditi ako vi odete van, a baterija se isprazni (iako može trajati preko godinu dana)? Nećete moći otključati vrata preko tog istog panela, nego ćete morati ključem. Ista stvar će se dogoditi ako pregori dioda. No, daleko od toga da ovo nije zanimljiva ideja.
Postoji čak i jedan projekt u kojem se Arduino postavi na unutarnju stranu ulaznih vrata i „sluša“ kada netko kuca po vratima. Ukoliko čuje „tajno kucanje“, odnosno određeni način kucanja u određenom intervalu, može otključati vrata bez uporabe ključa.
Avioni, brodovi…
Vrlo često se Arduino koristi i za pokretanje dječjih igrački. Recimo, uzmite brodiće koji imaju male propelere i mogu se puštati po vodi. Znamo svi da su oni dosta spori, nemoguće je s njima upravljati na daljinu i služe djeci da se igraju s njima na malom prostoru. Uz pomoć Arduina te iste brodiće možete pokretati uz pomoć daljinskih upravljača, a uz pomoć potenciometra i raznih hardverskih spravica možete ubrzavati i usporavati brod (ili avion), skretati i raditi razne akrobacije na vodi ili u zraku. Naravno, pazeći pritom da nekoga ne ozlijedite. Jedan čovjek je bio kreativan pa je napravio morskog psa od plastike i u njega ugradio Arduino i pustio ga u vodu. Ako je priča istinita, morski pas je potrgan, a i neki kupači su se prilično gadno okomili na njega zbog ove neumjesne šale. Stoga, oprezno sa Arduinom i idejama.
Kao što vidite, Raspberry Pi i Arduino imaju potpuno drugačije funkcije i mogućnosti, pa je prilično bespotrebno govoriti o tome da će jedan uređaj ukloniti onaj drugi sa tržišta. RPi je više namijenjen softverašima koji se žele više igrati sa programiranjem nego hardverom i spajanjem, dok je kod Arduina i njegovih inačica situacija obrnuta. No, i jedan i drugi su iznimno popularni i postoji bezbroj ideja kako ih iskoristiti. Stoga, ako jednog dana i nabavite jednu od ove dvije hardverske pločice, probajte nešto napraviti. Nemojte ih ostaviti da vam na stolu skupljaju prašinu.