Raspberry Pi en Arduino zijn de twee meest populaire open source boards in Electronics Community. Ze zijn niet alleen populair onder elektronica-ingenieurs, maar ook onder scholieren en hobbyisten, vanwege hun gemak en eenvoud. Zelfs sommige mensen begonnen net van elektronica te houden vanwege Raspberry Pi en Arduino. Deze borden hebben grote krachten, en men kan een zeer gecompliceerd en hifi-project bouwen in enkele eenvoudige stappen en weinig programmeren.
We hebben een aantal Arduino-projecten en zelfstudies gemaakt, van zeer eenvoudige tot gecompliceerde. We hebben ook een serie Raspberry Pi-zelfstudies gemaakt, van waaruit iedereen vanaf het begin kan leren. Dit is een kleine bijdrage aan de Electronics Community van onze kant en dit portaal heeft zichzelf bewezen als Great Learning Resource for Electronics. Dus vandaag brengen we deze twee geweldige borden samen door Arduino te koppelen aan Raspberry Pi.
In deze tutorial zullen we een seriële communicatie tot stand brengen tussen Raspberry Pi en Arduino Uno. PI heeft slechts 26 GPIO-pinnen en nul ADC-kanalen, dus als we projecten zoals een 3D-printer doen, kan PI niet alle interacties alleen doen. We hebben dus meer outputpinnen en extra functies nodig, om meer functies aan PI toe te voegen, brengen we een communicatie tot stand tussen PI en UNO. Daarmee kunnen we alle functies van UNO gebruiken als PI-functies.
Arduino is een groot platform voor projectontwikkeling, met veel kaarten zoals Arduino Uno, Arduino Pro mini, Arduino Due enz. Het zijn op ATMEGA-controller gebaseerde kaarten die zijn ontworpen voor elektronische ingenieurs en hobbyisten. Hoewel er veel borden op het Arduino-platform zijn, kreeg Arduino Uno veel waardering vanwege het gemak waarmee projecten kunnen worden uitgevoerd. Een op Arduino gebaseerde programma-ontwikkelomgeving is een gemakkelijke manier om het programma te schrijven in vergelijking met andere.
Vereiste componenten:
Hier gebruiken we Raspberry Pi 2 Model B met Raspbian Jessie OS en Arduino Uno. Alle basisvereisten voor hardware en software, met betrekking tot Raspberry Pi, zijn eerder besproken, u kunt het opzoeken in de Raspberry Pi-introductie, behalve dat we nodig hebben:
- Verbindende pinnen
- 220Ω of 1KΩ weerstand (2 stuks)
- LED
- Knop
Circuit uitleg:
Zoals weergegeven in het bovenstaande schakelschema, verbinden we UNO met de PI USB-poort met behulp van een USB-kabel. Er zijn vier USB-poorten voor PI; u kunt het op elk van hen aansluiten. Er is een knop aangesloten om de seriële communicatie te initialiseren en een LED (knipperend) om aan te geven dat er gegevens worden verzonden.
Uitleg over werken en programmeren:
Arduino Uno-onderdeel:
Laten we eerst de UNO programmeren, Verbind de UNO eerst met de pc en schrijf vervolgens het programma (zie de sectie Code hieronder) in de Arduino IDE-software en upload het programma naar de UNO. Koppel vervolgens de UNO los van de pc. Bevestig de UNO aan de PI na het programmeren en sluit een LED en knop aan op de UNO, zoals weergegeven in het schakelschema.
Nu initialiseert het programma hier de seriële communicatie van UNO. Wanneer we op de knop drukken die aan de UNO is bevestigd, stuurt de UNO een paar tekens serieel naar de PI via de USB-poort. De LED die aan de PI is bevestigd, knippert om aan te geven dat de tekens worden verzonden.
Raspberry Pi-onderdeel:
Daarna moeten we een programma schrijven voor PI (Check Code sectie hieronder), om deze gegevens te ontvangen die door UNO worden verzonden. Daarvoor moeten we een paar onderstaande commando's begrijpen.
We gaan een serieel bestand uit de bibliotheek importeren, met deze functie kunnen we gegevens serieel of via een USB-poort verzenden of ontvangen.
serienummer importeren
Nu moeten we de apparaatpoort en de bitsnelheid aangeven zodat de PI de gegevens zonder fouten van UNO kan ontvangen. Het onderstaande commando stelt dat we de seriële communicatie van 9600 bits per seconde op de ACM0-poort inschakelen.
ser = serial.Serial ('/ dev / ttyACM0', 9600)
Om erachter te komen aan welke poort de UNO is gekoppeld, ga je naar de terminal van PI en ga je binnen
ls / dev / tty *
Je hebt de lijst met alle aangesloten apparaten op PI. Verbind nu de Arduino Uno met de Raspberry Pi met een USB-kabel en voer het commando opnieuw in. U kunt de UNO-aangesloten poort gemakkelijk identificeren in de weergegeven lijst.
Het onderstaande commando wordt gebruikt als forever loop, met dit commando worden de statements in deze loop continu uitgevoerd.
Terwijl 1:
Na het serieel ontvangen van de data tonen we de karakters op het scherm van PI.
afdrukken (ser.readline ())
Dus nadat de knop, die aan de UNO is bevestigd, is ingedrukt, zullen we tekens zien worden afgedrukt op het PI-scherm. Daarom hebben we een basiscommunicatiehanddruk tussen Raspberry Pi en Arduino opgezet.