Raspberry Pi a Arduino sú dve najpopulárnejšie dosky s otvoreným zdrojom v komunite elektroniky. Nie sú populárne iba medzi inžiniermi elektroniky, ale aj medzi študentmi škôl a nadšencami kvôli svojej ľahkosti a jednoduchosti. Dokonca niektorí ľudia práve začali mať radi elektroniku kvôli Raspberry Pi a Arduino. Tieto dosky majú veľké právomoci a je možné zostaviť veľmi komplikovaný a Hi-fi projekt v niekoľkých jednoduchých krokoch a s malým programovaním.
Vytvorili sme množstvo projektov a tutoriálov Arduino, od veľmi jednoduchých po komplikované. Tiež sme vytvorili Series of Raspberry Pi Tutorials, odkiaľ sa každý môže začať učiť od nuly. Toto je malý príspevok pre komunitu elektroniky z našej strany a tento portál sa osvedčil ako skvelý vzdelávací zdroj pre elektroniku. Dnes teda spájame tieto dve skvelé dosky od spoločnosti Interfacing Arduino s Raspberry Pi.
V tomto výučbe vytvoríme sériovú komunikáciu medzi Raspberry Pi a Arduino Uno. PI má iba 26 GPIO pinov a nulové kanály ADC, takže keď robíme projekty ako 3D tlačiareň, PI nemôže robiť všetky interakcie sám. Potrebujeme teda viac výstupných pinov a ďalšie funkcie. Na pridanie ďalších funkcií k PI nadviažeme komunikáciu medzi PI a UNO. S tým môžeme využívať všetky funkcie UNO, ako to boli funkcie PI.
Arduino je veľká platforma pre vývoj projektov s mnohými doskami ako Arduino Uno, Arduino Pro mini, Arduino Due atď. Sú to dosky založené na radičoch ATMEGA určené pre elektronických inžinierov a fandov. Aj keď na platforme Arduino existuje veľa dosiek, Arduino Uno získal veľa ocenení za ľahkú realizáciu projektov. Vývojové prostredie programu založené na Arduine je ľahký spôsob, ako napísať program v porovnaní s ostatnými.
Požadované komponenty:
Tu používame Raspberry Pi 2 Model B s Raspbian Jessie OS a Arduino Uno. Všetky základné hardvérové a softvérové požiadavky týkajúce sa Raspberry Pi sú už diskutované. Môžete si ich vyhľadať v úvode k Raspberry Pi, okrem toho, čo potrebujeme:
- Spojovacie čapy
- 220Ω alebo 1KΩ rezistor (2 kusy)
- LED
- Tlačidlo
Vysvetlenie obvodu:
Ako je znázornené na schéme vyššie, UNO pripojíme k USB portu PI pomocou USB kábla. K dispozícii sú štyri porty USB pre PI; môžete ho pripojiť k niektorému z nich. Je pripojené tlačidlo na inicializáciu sériovej komunikácie a kontrolka LED (blikaním) označuje, že sa údaje odosielajú.
Vysvetlenie k práci a programovaniu:
Časť Arduino Uno:
Najskôr naprogramujme UNO, Najprv pripojte UNO k PC a potom napíšte program (časť Kontrola kódu nižšie) do softvéru Arduino IDE a nahrajte program do UNO. Potom odpojte UNO od PC. Po naprogramovaní pripojte UNO k PI a pripojte LED a tlačidlo k UNO, ako je znázornené na schéme zapojenia.
Teraz tu program inicializuje sériovú komunikáciu OSN. Keď stlačíme tlačidlo pripojené k UNO, UNO pošle niekoľko znakov do PI sériovo cez USB port. LED pripojená k PI bliká, aby indikovala odosielané znaky.
Časť Raspberry Pi:
Potom musíme napísať program pre PI (časť Kontrolný kód nižšie), aby sme tieto údaje mohli zaslať UNO. Preto musíme porozumieť niekoľkým príkazom uvedeným nižšie.
Budeme importovať sériový súbor z knižnice, táto funkcia nám umožní odosielať alebo prijímať dáta sériovo alebo cez USB port.
importovať sériové číslo
Teraz musíme uviesť port zariadenia a bitovú rýchlosť, aby PI prijímal údaje z UNO bez akýchkoľvek chýb. Nasledujúci príkaz uvádza, že na porte ACM0 povoľujeme sériovú komunikáciu 9600 bitov za sekundu.
ser = serial. Seriál ('/ dev / ttyACM0', 9600)
Ak chcete zistiť port, ku ktorému je OSN pripojená, prejdite na terminál PI a zadajte
ls / dev / tty *
Budete mať zoznam všetkých pripojených zariadení na PI. Teraz pripojte Arduino Uno k Raspberry Pi pomocou USB kábla a zadajte príkaz znova. Pripojený port UNO môžete ľahko identifikovať podľa zobrazeného zoznamu.
Nasledujúci príkaz sa používa ako večná slučka, s týmto príkazom sa budú príkazy vo vnútri tejto slučky vykonávať nepretržite.
Zatiaľ čo 1:
Po sériovom prijatí údajov budeme zobrazovať znaky na obrazovke PI.
print (ser.readline ())
Po stlačení tlačidla pripojeného k jednotke UNO teda uvidíme, ako sa na obrazovke PI vytlačia znaky. Preto sme medzi Raspberry Pi a Arduino vytvorili základné komunikačné spojenie.