MicroPython is een lichtgewicht versie van de programmeertaal Python die is ontwikkeld voor het programmeren van microcontrollers, SOC's en andere embedded systeemapparaten. Het is gemaakt om ontwikkelaars in staat te stellen gebruik te maken van de " gemakkelijk te leren en te gebruiken" aard van python voor de ontwikkeling van embedded systemen. Nu Python de belangrijkste inleidende taal is op de meeste scholen en omdat het een van de meest populaire en meest gebruikte programmeertalen over de hele wereld is, kunnen tientallen Python-gebruikers via micro-python de stressvolle steile leercurve omzeilen die gepaard gaat met het gebruik van C en C ++ om microcontrollers te programmeren. Ze kunnen de kennis die ze in de loop der jaren hebben opgedaan onmiddellijk gebruiken om toegang te krijgen tot de low-level hardware, net als bij de andere talen. Micro-python is specifiek een slanke implementatie van Python 3 en is als zodanig compatibel met de syntaxis van python 3.
Hoewel MicroPython nog niet op hetzelfde populariteitsniveau is als C en C ++ voor de ontwikkeling van embedded systemen, is de populariteit ervan toegenomen met steeds meer microcontrollers, IDE's en ontwikkelingsborden die het gebruik ervan ondersteunen. Voor de tutorial van vandaag zullen we kijken naar een van dergelijke boards waarvoor firmware kan worden ontwikkeld met MicroPython.
Voor de tutorial van vandaag zullen we kijken naar het ontwikkelen van de code voor de ESP32 met MicroPython.
We zullen beginnen met te kijken waarom MicroPython goed is voor ESP32 en werken ons een weg door het opzetten van de ESP32 voor MicroPython en het uploaden van de blink sketch met MicroPython op de ESP32.
Waarom MicroPython? (MicroPython versus Arduino C)
Een van de beproefde, gemakkelijkste manieren om de ESP32 te programmeren, is door de Arduino IDE te gebruiken, wat betekent dat de Arduino-versie van C of C ++ wordt gebruikt. C en C ++ zijn al decennia lang de twee meest populaire talen voor de ontwikkeling van embedded systemen, en de Arduino-versie van de taal maakte het nog eenvoudiger, wat goed is voor de populariteit onder makers en hobbyisten vanwege het gemak waarmee codes kunnen worden ontwikkeld. Daarnaast heeft Arduino een van de grootste technische gemeenschappen ter wereld met nieuwe bibliotheken, softwarefixes, nieuwe bordondersteuning enz. Die dagelijks door de gemeenschap worden vrijgegeven. Dit alles maakt het een formidabel hulpmiddel voor het programmeren van embedded systeemborden. De enige echte beperking die je aan de Arduino C kunt hechten, is het feit dat deze alleen werkt binnen de Arduino IDE.Omdat de IDE beperkt is en een aantal functies mist die echt handig kunnen zijn bij het ontwikkelen van een grote codebasis, is de Arduino C niet de meest efficiënte.
MicroPython, aan de andere kant, is relatief nieuw. Terwijl de gebruikersgemeenschap groeit en er ondersteuning voor meer platforms wordt uitgebracht, kan de kracht ervan niet worden vergeleken met die van de Arduino. Aan de positieve kant is MicroPython in wezen een slanke versie van python, een van de meest populaire programmeertalen ter wereld en als zodanig kan elk probleem dat niet door de MicroPython-gemeenschap kan worden opgelost, inzichten uit de algemene python-gemeenschap halen.
Naast de ondersteuning door de gemeenschap, heeft MicroPython ook bepaalde functies die het ver boven de klasse van de Arduino plaatsen. Een van die kenmerken is de REPL. REPL staat voor Read-Evaluate-Print. Met deze functie kunt u verbinding maken met een bord en code snel uitvoeren zonder dat u de volledige code hoeft te compileren of uploaden. Als zodanig kunt u elk onderdeel van uw code testen terwijl u deze ontwikkelt.
Ongeacht welke van deze twee u voor uw project kiest, zorg ervoor dat u het beste van pas komt. Met dat uit de weg, laten we beginnen met het bouwen van het knippervoorbeeld met ESP32 met MicroPython.
Vereiste componenten
Om het knippervoorbeeld te bouwen, hebben we de volgende componenten nodig;
- DOIT ESP32 DevKit v1 (1)
- Een LED (1)
- 100 Ohm weerstand (1)
- Doorverbindingsdraden
- Broodplank (1)
Je kunt elk van de andere op ESP32 gebaseerde kaarten gebruiken in plaats van de DOIT ESP32 DevKit V1 en je kunt ervoor kiezen om met de ingebouwde LED te werken, wat betekent dat je alleen de ESP32-kaart nodig hebt voor deze tutorial. Eerder knipperden we ESP32 LED door deze te programmeren met Arduino IDE.
Naast de hardwarecomponenten hebben we ook software nodig zoals de Thonny IDE