- Vereisten
- PyFirmata installeren in Arduino met Raspberry Pi
- Code Uitleg
- Vervagende LED op Arduino met pyFirmata
Hoewel Raspberry Pi en Arduino twee verschillende hardware zijn in termen van hun toepassingen en structuur, worden ze allebei beschouwd als twee concurrerende open source hardwareplatforms. Ze hebben allebei een zeer sterke gemeenschap en steun. Vandaag zullen we de dingen enigszins veranderen en u laten zien hoe we van beide kunnen profiteren. Als je zowel Arduino als Raspberry pi-kaarten hebt, laat dit artikel je zien hoe je Raspberry pi en Python gebruikt om de Arduino te besturen.
We zullen PyFirmata-firmware gebruiken om opdrachten aan Arduino te geven met behulp van het Raspberry Pi-python-script. PyFirmata is in feite een vooraf gebouwd bibliotheekpakket van python-programma dat in Arduino kan worden geïnstalleerd om seriële communicatie tussen een python-script op elke computer en een Arduino mogelijk te maken. Dit python-pakket kan toegang geven tot het lezen en schrijven van elke pin op de Arduino. Dus hier zullen we het python-programma op Arduino uitvoeren met Raspberry pi.
Dus in deze tutorial zullen we profiteren van deze bibliotheek en deze gebruiken in ons Arduino-bord om Arduino te besturen met Raspberry Pi.
Vereisten
- Raspberry Pi met Raspbian OS erin geïnstalleerd
- Arduino Uno of een ander Arduino-bord
- Arduino USB-kabel
- LED
In deze tutorial gebruik ik External Monitor met een HDMI-kabel om verbinding te maken met Raspberry Pi. Als u geen monitor heeft, kunt u SSH-client (Putty) of VNC-server gebruiken om verbinding te maken met Raspberry pi met behulp van een laptop of computer. Als u problemen ondervindt, volg dan onze Gids voor Staren met Raspberry Pi.
PyFirmata installeren in Arduino met Raspberry Pi
Om PyFirmata-firmware in Arduino te uploaden, moeten we Arduino IDE in Raspberry Pi installeren. Volg deze stappen om te installeren:
Stap 1: - Verbind de Raspberry Pi met internet. Open de opdrachtterminal en typ de volgende opdracht en druk op enter
sudo apt - get - y install arduino python - seriële mercurial
Wacht een paar minuten, het zal even duren. Met deze opdracht wordt de Arduino IDE in je Raspberry Pi geïnstalleerd.
Stap 2: - Nu zullen we pyFirmata-bestanden installeren met behulp van de gegeven github:
git clone https://github.com/tino/pyFirmata
Voer vervolgens de volgende opdracht uit:
cd pyFirmata sudo python setup.py installeren
Stap 3: - We hebben alle benodigde bestanden en setups geïnstalleerd.
Verbind nu uw Arduino-bord met Raspberry Pi met behulp van een USB-kabel en start Arduino IDE door arduino in het terminalvenster te typen.
Stap 4: - Typ vervolgens het commando lsusb om te controleren of Arduino is verbonden met uw Raspberry Pi.
Ga in Arduino IDE naar tools en kies je bord en seriële poort.
Stap 5: - Upload de PyFirmata-firmware op de Arduino door te klikken op Bestand -> Voorbeelden -> Firmata -> Standaard Firmata en vervolgens op de uploadknop. Zoals hieronder getoond.
We hebben de pyFirmata-firmware met succes geïnstalleerd op het Arduino-bord. Nu kunnen we onze Arduino besturen met Raspberry Pi.
Ter demonstratie laten we een LED op de Arduino knipperen en vervagen door pythoncodes in Raspberry Pi te schrijven.
Code Uitleg
Voor het coderingsgedeelte moet u de documentatie van pyFirmata lezen voor een beter begrip. We zullen pyFirmata-functies gebruiken om onze code te schrijven. U kunt pyFirmata-documentatie vinden door de link te volgen.
Dus laten we beginnen met het schrijven van de code
Open uw favoriete teksteditor op de Raspberry Pi en importeer de pyFirmata-bibliotheek.
importeer pyfirmata
Definieer de pin op de Arduino om de LED aan te sluiten
led_pin = 9
Nu moeten we de seriële poort naam te schrijven waarop Arduino boord is aangesloten via pyfirmata.Arduino () functie en maak dan een instantie door het toewijzen van de haven in board variabel.
board = pyfirmata.Arduino ("/ dev / ttyACM0") print "Code wordt uitgevoerd"
Maak in de while- lus de led-pin HOOG en laag met de functie board.digital.write () en geef vertraging met de functie board.pass_time () .
while True: board.digital.write (0) board.pass_time (1) board.digital.write (1) board.pass_time (1)
Onze code is klaar, sla deze code op door de extensie .py aan de bestandsnaam toe te voegen.
Open de opdrachtterminal en typ python blink.py om de code op het Arduino-bord uit te voeren. Zorg ervoor dat uw Arduino-bord is verbonden met uw Raspberry Pi-bord via een USB-kabel.
Nu kunt u een knipperende LED op het Arduino-bord zien.
De volledige code voor knipperende LED met pyFirmata wordt aan het einde gegeven.
Vervagende LED op Arduino met pyFirmata
Nu gaan we code schrijven voor het vervagen van de LED om u meer vertrouwd te maken met de pyFirmata-functies. Deze code is eenvoudig als de vorige. Je moet er twee gebruiken voor loops, één om de helderheid te verhogen en één om de helderheid te verlagen.
In deze code hebben we de pinnen op een andere manier gedefinieerd, zoals led = board.get_pin ('d: 9: p') waarbij d digitale pin betekent . Dit is een functie van de pyFirmata-bibliotheek. Lees de documentatie voor meer details.
De volledige code voor het vervagen van LED met pyFirmata wordt aan het einde gegeven.
Nu kun je meer sensoren aan je systeem toevoegen en het cooler maken, onze andere Arduino-projecten bekijken en proberen ze te bouwen met Raspberry pi en python-script.