Python heeft de codeerwereld stormenderhand veroverd. Naast de opkomst van deze nieuwe taal, heeft de doe-het-zelf elektronica-scene ook een grote vlucht genomen. Ontwikkelingsborden en enkele boordcomputers van bedrijven zoals Arduino What Is Arduino & What Can You Do With It? Wat is Arduino en wat kun je ermee doen? De Arduino is een opmerkelijk klein elektronisch apparaat, maar als je er nog nooit een hebt gebruikt, wat precies zijn ze dan, en wat kun je ermee doen? Lees meer en Raspberry Pi Raspberry Pi: De onofficiële zelfstudie Raspberry Pi: de onofficiële zelfstudie Of je nu een Pi-eigenaar bent die meer wil leren of een potentiële eigenaar van dit apparaat voor creditcardformaat, dit is geen gids die je wilt missen. Read More heeft de manier veranderd waarop mensen zelf gebrouwen elektronica maken. Zou het niet geweldig zijn als je een Arduino kon programmeren met Python?
Er is geen beter gevoel dan het combineren van twee coole dingen. Helaas is het onmogelijk om een Arduino rechtstreeks met Python te programmeren, omdat de borden geen optie hebben voor de interpretatie van de taal aan boord. Wat wel mogelijk is, is directe controle over USB via een Python-programma.
Dit artikel zal je laten zien hoe je een Arduino UNO opzet (hoewel elk Arduino-compatibel bord Arduino Koopgids: welke kaart moet je kopen? Arduino Koopwijzer: welk bord moet je kopen? Er zijn zoveel verschillende soorten Arduino-kaarten die er zijn, Het zou je vergeven zijn als je in verwarring was. Wat zou je voor je project moeten kopen? Laat ons helpen, met deze Arduino koopgids! Read More kan hier werken) om geprogrammeerd en bestuurd te worden vanaf de commandoregel met behulp van Python-programma's. Deze tutorial is geschreven voor Windows 10, maar werkt ook voor Mac en Linux. Je zou deze workflow zelfs kunnen gebruiken om een Arduino rechtstreeks vanuit een Raspberry Pi Home Automation Guide met Raspberry Pi en Arduino Home Automation Guide met Raspberry Pi en Arduino te besturen. De domotica markt wordt overstroomd met dure consumentensystemen, incompatibel met elkaar en kostbaar om te installeren . Als je een Raspberry Pi en een Arduino hebt, kun je in principe hetzelfde bereiken op ... Lees meer voor de ultieme double-down-DIY-ervaring.
Uw Arduino instellen voor Python
Voor het project van vandaag zullen we een Arduino Uno gebruiken, samen met de pyFirmata-interface voor Python. Je kunt hiervoor vrijwel elk Arduino-compatibel bord gebruiken, maar op het moment van schrijven worden alleen de Arduino Uno, Mega, Due en Nano ondersteund door de pyFfirmata-interface. Als je al een Python-goeroe bent, kun je je eigen board-ondersteuning toevoegen aan pyFirmata - zorg ervoor dat je hun GitHub bijwerkt als je dat doet!
Installeer de Arduino IDE als je dat nog niet hebt gedaan. Als je helemaal nieuw bent in de wereld van microcontrollers, is onze beginnershandleiding voor Arduino Aan de slag met Arduino: een beginnershandleiding Aan de slag met Arduino: een beginnersgids Arduino is een prototype-platform met open source-elektronica op basis van flexibele, gebruiksvriendelijke hardware en software. Het is bedoeld voor kunstenaars, ontwerpers, hobbyisten en iedereen die geïnteresseerd is in het maken van interactieve objecten of omgevingen. Meer lezen helpt u alles op zijn plek te krijgen.
Verbind uw Arduino-bord en open de IDE. Zorg ervoor dat u het juiste board en de juiste poort hebt geselecteerd in het menu Tools . Laad de StandardFirmata- voorbeeldschets en upload deze naar het bord. Hiermee kunt u de Arduino rechtstreeks besturen, zolang deze via USB op de computer is aangesloten. Als de schets zonder fouten naar je bord is geüpload, ben je klaar om verder te gaan.
Python en Command Line Control
We zullen Python 3.4 gebruiken om onze Arduino te besturen, omdat de module die je gaat installeren dit specificeert als de nieuwste compatibele versie. Elke versie hiervoor zou goed moeten werken en latere versies zouden werken. U kunt Python 3.4 voor Windows 10 downloaden van de site van de Python Software Foundation. Als je meerdere versies van Python wilt gebruiken, onze handleiding voor virtuele omgevingen van Python. Leer hoe je de virtuele omgeving van Python gebruikt Leer hoe je de virtuele omgeving van Python kunt gebruiken Of je nu een ervaren Python-ontwikkelaar bent, of je bent net begonnen, leert hoe je moet het opzetten van een virtuele omgeving is essentieel voor elk Python-project. Lees Meer zal u kunnen helpen.
Als je Python eenmaal hebt geïnstalleerd, willen we het toevoegen aan de PATH-variabele van je systeem. Hiermee kunnen we Python-code rechtstreeks vanaf de opdrachtregel uitvoeren zonder dat dit in de directory hoeft te zijn waarin deze is geïnstalleerd. Dit doet u door het Configuratiescherm te openen, naar Environment te zoeken en op Bewerk de systeemomgevingsvariabelen te klikken. Selecteer onder in het venster Omgevingsvariabelen . Dit zal dit venster openen:
Als je PATH al in de lijst ziet, klik je op bewerken en voeg je je Python- en Python / Scripts- map toe. Als u geen variabele PATH heeft, klikt u op new en voegt u deze toe. Merk op dat Python hier rechtstreeks in de C: \ is geïnstalleerd. Als u het elders hebt geïnstalleerd, moet u dit aanpassen om dit weer te geven. Klik op OK terug in de reeks vensters en je bent bijna klaar om je Arduino met Python te besturen!
The Magic Grease
Je hebt nog een laatste stukje van de puzzel nodig om Python goed te laten praten met onze Arduino. Dit komt in de vorm van een Python-interface genaamd pyFirmata . Deze interface, gemaakt door Tino de Bruijn, is beschikbaar om te downloaden via github, maar je kunt het rechtstreeks vanaf de opdrachtregel installeren door het volgende te typen:
pip install pyfirmata
Als alles goed gaat, zou het moeten installeren en er zo uitzien:
Als het mislukt, ga dan over het toevoegen van Python aan de Omgevingsvariabele sectie en zorg ervoor dat je het juiste pad naar je Python-map hebt gegeven.
Het laten gebeuren
Nu is alles ingesteld en kun je een Python-programma voor je Arduino maken om het te testen. Open een IDE naar keuze. We zullen Eclipse 8 gebruiken Meest bruikbare sneltoetsen voor beginners Eclipse IDE-gebruikers 8 Meest bruikbare sneltoetsen voor beginners Eclipse IDE-gebruikers Als nieuwsvriendelijk als de Eclipse IDE (interface), ben je het aan jezelf verplicht om deze sneltoetsen te leren. Meer lezen vandaag, maar u kunt net zo gemakkelijk elke teksteditor gebruiken Teksteditors versus IDE's: welke is beter voor programmeurs? Teksteditors versus IDE's: welke is beter voor programmeurs? Kiezen tussen een geavanceerde IDE en een eenvoudigere teksteditor kan moeilijk zijn. We bieden enig inzicht om u te helpen bij het nemen van die beslissing. Lees meer, of zelfs een IDE in de cloud Codenvy IDE: een online IDE voor Ruby, HTML, Java, Python, en meer Codenvy IDE: een online IDE voor Ruby, HTML, Java, Python, en meer Lees meer.
Maak een nieuw script en sla het op als blink.py . Door traditie te breken met het standaard knipperende LED-programma, ga je een programma maken dat de gebruiker vraagt hoe vaak ze willen dat de LED knippert voordat ze deze uitvoert. Het is een kort programma, dat je hier kunt downloaden als je er meteen bij wilt zijn, maar laten we het opsplitsen.
Allereerst wil je wat je nodig hebt importeren vanuit de pyFirmata- module, samen met de standaard Python Time- module.
from pyfirmata import Arduino, util import time
Nu wil je het Arduino-bord opstellen. In dit artikel wordt ervan uitgegaan dat je een Arduino Uno- board gebruikt, hoewel verschillende Arduino-boards worden ondersteund. Raadpleeg de pyFirmata github voor meer informatie over boordondersteuning.
Controleer welke COM-poort u gebruikt in de Arduino IDE en voer deze in uw code in als het variabele bord .
board = Arduino("COM3")
Nu gaat u de gebruikersprompt instellen. Diegenen die bekend zijn met Python zullen alles hier herkennen. U drukt een vraag af op het scherm met behulp van de invoerfunctie en slaat het antwoord op als een variabele. Nadat de gebruiker een nummer heeft opgegeven, meldt het programma hoe vaak de LED zal knipperen.
loopTimes = input('How many times would you like the LED to blink: ') print("Blinking " + loopTimes + " times.")
Om de LED het juiste aantal keren te laten knipperen, gebruikt u een for-lus . Als je de Python 10 basis-pythonvoorbeelden nog niet eerder hebt geleerd die je snel zullen helpen snel te leren 10 basale Python-voorbeelden die je zullen helpen snel te leren Dit artikel van eenvoudige python-voorbeelden is voor degenen die al wat programmeerervaring hebben en gewoon snel naar Python willen overstappen als mogelijk. Lees Meer, pas op met de inspringing, want in tegenstelling tot andere talen maken de spaties deel uit van de syntaxis. Merk op dat pin 13 de ingebouwde LED is voor de Arduino Uno, u moet dit aanpassen als uw bord anders is.
for x in range(int(loopTimes)): board.digital[13].write(1) time.sleep(0.2) board.digital[13].write(0) time.sleep(0.2)
Je plaatst de variabele loopTimes hier op een geheel getal, omdat de invoer van de gebruiker automatisch als een tekenreeks wordt opgeslagen. In deze eenvoudige demo gaan we ervan uit dat de gebruiker een numerieke waarde invoert. Elke andere invoer zoals 'acht' zal een fout veroorzaken.
Sla je script op en open de opdrachtprompt .
Knipperende lampjes en andere openbaringen
Alles is klaar om te gaan, alles wat je hoeft te doen is navigeren naar waar het script zich bevindt en het uitvoeren. Doe dit door cd [pad naar de map van het script] te typen en vervolgens python blink.py te typen.
Als alles goed gaat, begint je programma met een kleine vertraging als de Arduino wordt geïnitialiseerd, wordt je om een nummer gevraagd en knippert dat vervolgens vaak met de ingebouwde LED.
De uitvoer van het programma zou er als volgt uit moeten zien:
Zodra u na het door u gekozen aantal knipperingen op enter drukt, moet de Arduino uw orders uitvoeren.
Klein begin
Dit project is een barebone beginnen te communiceren tussen Python en een Arduino-bord. Deze aanpak is heel anders dan de gebruikelijke workflow van het uploaden van scripts naar de Arduino zelf, maar het opent een geheel nieuwe manier van werken met het platform, vooral als je de programmeertaal Python leuk vindt.
Als u een Linux-server gebruikt 12 Best Linux-serverbesturingssystemen en wie moet ze gebruiken 12 Best Linux-serverbesturingssystemen en wie zou ze moeten gebruiken Een server bouwen? Linux is ideaal, meestal met verbeterde rechten, verhoogde flexibiliteit en stabiliteit. Maar welke moet je kiezen? Bekijk de 12 beste Linux-serverbesturingssystemen en wie ze moet gebruiken. Thuis lezen, deze manier van communiceren met Arduino-borden kan die server uitbreiden tot een volwaardig DIY Home Automation-systeem. Door Python-scripts te combineren die de microcontroller besturen met een DIY-automatiseringscircuit Arduino Projectideeën voor een geautomatiseerd huis Arduino Projectideeën voor een geautomatiseerd huis Zou het niet geweldig zijn om uw kas water te geven zonder uw stoel te verlaten? Een Arduino kan worden ingeschakeld als het belangrijkste onderdeel van sommige domotica-projecten - hier zijn er vijf! Meer informatie, uw NAS-opslagbox kan een hele reeks nuttige functies aannemen.
Om het de ultieme DIY-ervaring te maken, waarom zou u uw eigen NAS-box niet samenstellen? Noodzaak van netwerkopslag? Hier leest u hoe u uw eigen NAS-box samenstelt Vereist netwerkopslag? Hier leest u hoe u uw eigen NAS-box maakt NAS staat voor Network Attached Storage. Windows werd gemakkelijker te gebruiken met op het netwerk aangesloten apparaten en de hardwareprijzen daalden. Deze term begon te worden gebruikt in de consumentenmarkt. Tegenwoordig is er een grote variëteit ... Lees meer en gebruik het om ook uw apparaten te bedienen? Stel je voor hoe cool het zou zijn om op je Plex te drukken. Jouw gids voor Plex - The Awesome Media Center Jouw gids voor Plex - The Awesome Media Center Als je veel lokaal opgeslagen films en tv-programma's hebt, moet je Plex installeren. En dit is de enige gids om met Plex aan de slag te gaan die u ooit zult moeten lezen. Lees Meer server en laat de lichten zichzelf automatisch uitschakelen!
Bestuurt u Arduino al met Python? Zijn er verbazingwekkende oplossingen die we nog niet kennen? Laat het ons weten in de commentaarsectie hieronder!