Raspberry Pi a Arduino jsou dva nejpopulárnější open source desky v komunitě elektroniky. Nejsou populární pouze mezi elektronickými inženýry, ale také mezi studenty a fandy kvůli jejich snadnosti a jednoduchosti. Dokonce i někteří lidé právě začali mít rádi elektroniku kvůli Raspberry Pi a Arduino. Tyto desky mají velké schopnosti a lze vytvořit velmi komplikovaný a Hi-fi projekt v několika jednoduchých krocích a malém programování.
Vytvořili jsme řadu projektů a tutoriálů Arduino, od velmi jednoduchých po komplikované. Také jsme vytvořili Series of Raspberry Pi Tutorials, odkud se kdokoli může začít učit od nuly. Jedná se o malý příspěvek pro komunitu elektroniky z naší strany a tento portál se osvědčil jako skvělý zdroj učení pro elektroniku. Dnes tedy přinášíme tyto dvě skvělé desky od společnosti Interfacing Arduino s Raspberry Pi.
V tomto kurzu vytvoříme sériovou komunikaci mezi Raspberry Pi a Arduino Uno. PI má pouze 26 GPIO pinů a nulové kanály ADC, takže když děláme projekty jako 3D tiskárna, PI nemůže provádět všechny interakce samostatně. Takže potřebujeme více výstupních pinů a další funkce, pro přidání dalších funkcí do PI navazujeme komunikaci mezi PI a UNO. S tím můžeme použít všechny funkce UNO, protože to byly funkce PI.
Arduino je velká platforma pro vývoj projektů, která má mnoho desek jako Arduino Uno, Arduino Pro mini, Arduino Due atd. Jsou to desky založené na řadičích ATMEGA určené pro elektronické inženýry a fandy. Ačkoli na platformě Arduino existuje mnoho desek, ale Arduino Uno získal mnoho ocenění za jeho snadné provádění projektů. Prostředí pro vývoj programu založené na Arduinu je ve srovnání s ostatními snadným způsobem, jak program napsat.
Požadované komponenty:
Zde používáme Raspberry Pi 2 Model B s Raspbian Jessie OS a Arduino Uno. Všechny základní hardwarové a softwarové požadavky týkající se Raspberry Pi jsou již diskutovány, můžete si je vyhledat v úvodu k Raspberry Pi, kromě toho, co potřebujeme:
- Spojovací kolíky
- 220Ω nebo 1KΩ rezistor (2 kusy)
- VEDENÝ
- Knoflík
Vysvětlení obvodu:
Jak je znázorněno ve schématu výše, připojíme UNO k USB portu PI pomocí USB kabelu. K dispozici jsou čtyři USB porty pro PI; můžete jej připojit k jednomu z nich. Je připojeno tlačítko pro inicializaci sériové komunikace a LED (bliká), která indikuje odesílání dat.
Vysvětlení práce a programování:
Část Arduino Uno:
Nejprve naprogramujme UNO, Nejprve připojte UNO k PC a poté zapište program (níže v části Kontrola kódu) do softwaru Arduino IDE a nahrajte program do UNO. Poté odpojte UNO od PC. Po naprogramování připojte UNO k PI a připojte LED a tlačítko k UNO, jak je znázorněno na schématu zapojení.
Nyní zde program inicializuje sériovou komunikaci UNO. Když stiskneme tlačítko připojené k UNO, UNO pošle několik znaků do PI sériově přes USB port. LED připojená k PI bliká, aby indikovala odesílané znaky.
Část Raspberry Pi:
Poté musíme napsat program pro PI (část Kontrolní kód níže), abychom obdrželi tato data zasílaná UNO. K tomu musíme porozumět několika níže uvedeným příkazům.
Chystáme se importovat sériový soubor z knihovny, tato funkce nám umožňuje odesílat nebo přijímat data sériově nebo přes USB port.
importovat sériové číslo
Nyní musíme uvést port zařízení a bitovou rychlost, aby PI přijímal data z UNO bez jakýchkoli chyb. Níže uvedený příkaz uvádí, že na portu ACM0 povolujeme sériovou komunikaci 9600 bitů za sekundu.
ser = serial.Serial ('/ dev / ttyACM0', 9600)
Chcete-li zjistit port, ke kterému je připojeno UNO, přejděte na terminál PI a zadejte
ls / dev / tty *
Budete mít seznam všech připojených zařízení na PI. Nyní připojte Arduino Uno k Raspberry Pi pomocí USB kabelu a zadejte příkaz znovu. Ze zobrazeného seznamu můžete snadno identifikovat připojený port UNO.
Níže uvedený příkaz se používá jako navždy smyčka, s tímto příkazem budou příkazy uvnitř této smyčky prováděny nepřetržitě.
Zatímco 1:
Po sériovém přijetí dat budeme zobrazovat znaky na obrazovce PI.
print (ser.readline ())
Takže po stisknutí tlačítka připojeného k UNO uvidíme, jak se na obrazovce PI vytisknou znaky. Proto jsme vytvořili základní komunikační handshake mezi Raspberry Pi a Arduino.