Raspberry Pi in Arduino sta dve najbolj priljubljeni odprtokodni plošči v skupnosti Electronics. Zaradi enostavnosti in enostavnosti niso priljubljeni le med inženirji elektronike, temveč tudi med učenci in ljubitelji šol. Tudi nekateri ljudje so zaradi Raspberry Pi in Arduina ravno začeli imeti radi elektroniko. Te plošče imajo velike moči, zato lahko v nekaj preprostih korakih in malo programiranja zgradite zelo zapleten in Hi-fi projekt.
Ustvarili smo številne projekte in vaje za Arduino, od zelo preprostih do zapletenih. Ustvarili smo tudi serijo vadnic za Raspberry Pi, od koder se lahko vsak začne učiti od začetka. To je majhen prispevek k elektronski skupnosti z naše strani in ta portal se je izkazal kot odličen učni vir za elektroniko. Danes torej združujemo ti dve odlični plošči, tako da povežemo Arduino z Raspberry Pi.
V tej vadnici bomo vzpostavili serijsko komunikacijo med Raspberry Pi in Arduino Uno. PI ima le 26 zatičev GPIO in nič ADC kanalov, zato pri projektih, kot je 3D tiskalnik, PI ne more izvajati vseh interakcij sam. Torej potrebujemo več izhodnih zatičev in dodatne funkcije, za dodajanje več funkcij PI vzpostavimo komunikacijo med PI in UNO. S tem lahko uporabimo vse funkcije UNO, kot so bile funkcije PI.
Arduino je velika platforma za razvoj projektov, saj ima veliko plošč, kot so Arduino Uno, Arduino Pro mini, Arduino Due itd. So plošče, ki temeljijo na krmilniku ATMEGA in so namenjene elektronskim inženirjem in ljubiteljem. Čeprav je na platformi Arduino veliko plošč, pa je Arduino Uno dobil veliko priznanj zaradi enostavnosti izvajanja projektov. Razvojno okolje programov, ki temelji na Arduinu, je preprost način za pisanje programa v primerjavi z drugimi.
Potrebne komponente:
Tu uporabljamo model Raspberry Pi 2 Model B z OS Raspbian Jessie in Arduino Uno. Vse osnovne zahteve glede strojne in programske opreme, ki se nanašajo na Raspberry Pi, so že obravnavane, poglejte jih v uvodu Raspberry Pi, razen tistega, kar potrebujemo:
- Povezovalni zatiči
- Upor 220Ω ali 1KΩ (2 kosa)
- LED
- Gumb
Pojasnilo vezja:
Kot je prikazano v zgornjem vezju zgoraj, bomo UNO s kablom USB povezali na vrata PI USB. Obstajajo štiri vrata USB za PI; lahko ga povežete s katerim koli od njih. Za inicializiranje serijske komunikacije je povezan gumb in lučka (utripa), ki označuje, da se podatki pošiljajo.
Pojasnilo o delu in programiranju:
Del Arduino Uno:
Najprej programirajmo UNO, Najprej povežite UNO z računalnikom in nato v programsko opremo Arduino IDE napišite program (odsek za preverjanje kode spodaj) in ga naložite v UNO. Nato odklopite UNO iz računalnika. Po programiranju pritrdite UNO na PI in na UNO priključite LED in gumb, kot je prikazano na vezju.
Zdaj program tukaj inicializira serijsko komunikacijo UNO. Ko pritisnemo gumb, pritrjen na UNO, UNO pošlje nekaj znakov v PI zaporedno prek vrat USB. Lučka LED, pritrjena na PI, utripa, da označi poslane znake.
Del Raspberry Pi:
Po tem moramo napisati program za PI (oddelek za preverjanje kode spodaj), da bomo te podatke pošiljali UNO. Za to moramo razumeti nekaj spodaj navedenih ukazov.
Uvozili bomo serijsko datoteko iz knjižnice, ta funkcija nam omogoča pošiljanje ali prejemanje podatkov zaporedno ali prek vrat USB.
uvozi serijsko
Zdaj moramo navesti vrata naprave in bitno hitrost, da bo PI brez napak prejemal podatke iz UNO. Spodnji ukaz navaja, da na vratih ACM0 omogočamo serijsko komunikacijo 9600 bitov na sekundo.
ser = serial.Serial ('/ dev / ttyACM0', 9600)
Če želite izvedeti vrata, na katera je pripet UNO, pojdite na terminal PI in vstopite
ls / dev / tty *
Na PI boste imeli seznam vseh priloženih naprav. Zdaj povežite Arduino Uno z Raspberry Pi s kablom USB in znova vnesite ukaz. Na prikazanem seznamu lahko zlahka prepoznate priključena vrata UNO.
Spodaj se ukaz uporablja kot zanka za vedno, s tem ukazom se bodo stavki znotraj te zanke izvajali neprekinjeno.
Medtem ko 1:
Po zaporednem prejemu podatkov bomo znake prikazali na zaslonu PI.
natisni (ser.readline ())
Po pritisku gumba, pritrjenega na UNO, bomo na zaslonu PI videli natisnjene znake. Zato smo vzpostavili osnovno komunikacijsko rokovanje med Raspberry Pi in Arduino.