Weblogs
Weblogs
Eenvoudige introductie tot embedded systemen (1) - Wat is MicroPython?
2022-03-08 1222

Toen Python de dominante programmeertaal werd, werd MicroPython steeds populairder op het gebied van embedded systemen, vooral in de populaire ESP32 en de RP2040-microcontrollergebaseerde Pico-module die zojuist door de Raspberry PI Foundation is uitgebracht.

Als bannon die geen regel code kon schrijven, voelde ik me meestal erg beperkt en beloofde ik een goed moment te vinden om een ​​programmeertaal te leren. Ik wijdde mezelf aan MicroPython tijdens de 7-daagse nationale feestdag en realiseerde alle functies van randapparatuur op het bord op het door mijzelf ontworpen Pico-uitbreidingsleerbord:

  • Fancy verlichting - monochroom, RGB drie kleuren, allerlei combinaties, kan ook worden bestuurd door knoppen en sensoren

  • Het OLED-scherm geeft tekst, afbeeldingen en golfvormen weer

  • Het audiosignaal wordt verzameld en weergegeven op het OLED-scherm, waardoor een coole golfvormweergave ontstaat

  • Speel 'Ik en mijn land' met de zoemer op het bord

  • De code van iemand anders overbrengen om willekeurige golfvormen te genereren - golfvormen veranderen, frequentie veranderen, grootte veranderen, enz.



Wat tijdens de 7-daagse "verkenning" het meest indruk op mij maakte, was hoe gemakkelijk het was om aan de slag te gaan met embedded systemen in MicroPython - rijke open source bronnen, verschillende vormen van referentie, zoals videocursussen, tekstcases, enz.

MicroPython is echt een geweldige programmeertaal: objectgeoriënteerd, flexibel, eenvoudig, elegant!

Mijn persoonlijke leerproces profiteert van het delen van anderen (open source), en de beste manier om kennis door te geven is door te delen wat ik heb geleerd en wat ik heb geleerd. Daarom ben ik van plan een Micro Python embedded programmeertutorial te lanceren, gebaseerd op Pico, die over een maand officieel gelanceerd zal worden. Natuurlijk, In de beginfase zullen er 15 live cursussen PCB-ontwerp plaatsvinden, waarmee u zelf een Pico-leerbord kunt ontwerpen. In de handige omgeving van gratis printplaat en gratis verzending, op basis van een Pico-kernplaat, kan iedereen immers PCB's ontwerpen om in de toekomst verschillende interessante toepassingen te maken. Leren hoe je een PCB ontwerpt, kan ook een voordeel zijn voor ingebedde systeemingenieurs.

Vanaf nu zal er een reeks technische artikelen verschijnen die verband houden met deze cursus. Vandaag is de eerste:

1. Wat is MicroPython

MicroPython is een kleine open source Python-programmeertaaltolk die draait op een klein ingebed ontwikkelingsbord. Met MicroPython kun je schone, eenvoudige Python-code schrijven om de hardware te besturen zonder dat je complexe onderliggende talen zoals C of C++ (Arduino voor programmeren) hoeft te gebruiken.


MicroPython-logo

De eenvoud van de programmeertaal Python maakt MicroPython een ideale keuze voor beginners in programmeren en hardware. MicroPython is zeer compleet en ondersteunt de meeste Python-syntaxis, dus zelfs ervaren Python-veteranen zullen het gebruik van MicroPython vertrouwd en leuk vinden.

Naast dat het eenvoudig te gebruiken is, heeft MicroPython enkele unieke kenmerken die het onderscheiden van andere embedded systemen:

Gebruik een interactieve tolk: REPL (Read Read- Evaluate Evaluate- Print Print- Loop Loop) - hiermee kunt u verbinding maken met een bord en code laten uitvoeren zonder te compileren of uploaden - perfect voor snel leren en experimenteren met hardware!

Rijke softwarebibliotheken - Net als de reguliere programmeertaal Python heeft MicroPython een groot aantal ingebouwde bibliotheken om veel taken te ondersteunen. Via de ingebouwde bibliotheken van MicroPython is het bijvoorbeeld eenvoudig om JSON-gegevens van webservices te parseren, tekst te doorzoeken met behulp van reguliere expressies en zelfs netwerksocket-programmering uit te voeren.

Uitbreidbaarheid - Voor gevorderde gebruikers kan MicroPython worden uitgebreid met C/C++-functies op laag niveau, zodat u indien nodig expressieve MicroPython-code op hoog niveau kunt combineren met snellere code op laag niveau.

MicroPython is een variant van de Python 3-taal. Het is het geesteskind van Darrien P. George, Ph.D., van de Universiteit van Cambridge, die in 2013 met een crowdfundingteam werkte aan de ontwikkeling van een voor microPython geschikt hardwareontwikkelingsbord genaamd PyBoard. MicroPython1.0 werd gepresenteerd op de Python-conferentie ( PyCon) in 2014. Dr. George heeft ook de website Micro Python.org (www.micropython.org) opgezet ter ondersteuning van MicroPython en Pyboard.


Het officiële MicroPython.Org-logo

MicroPython.Org PyBoard, gebaseerd op de STM32-controller.


2. Wat kan MicroPython doen?

MicroPython is ontworpen om snel en efficiënt ingebedde systeembesturingsprogramma's te creëren. Embedded systemen kunnen eenvoudigweg worden gedefinieerd als elk project dat het gebruik van microcontrollers vereist om aan technische behoeften te voldoen. Typische ingebedde systemen maken doorgaans gebruik van sensoren en soms elektromechanische actuatoren om te communiceren met microcontrollers. Ze kunnen worden aangesloten op mens-machine-interfaceapparaten voor eenvoudige interactie, maar zijn meer geautomatiseerd, voor stand-alone werking of externe toegang tot de cloud.

Net als Arduino-borden kan MicroPython hardware en aangesloten apparaten besturen - je kunt GPIO-pin-knipperlichten bedienen, schakelaars lezen en meer; Kan het PWM-signaal aansturen dat de server en LED kan aansturen; Analoge sensoren kunnen worden uitgelezen en uitgelezen via een analoog-digitaalomzetter. Ook is het eenvoudig om te communiceren met I2C- of SPI-apparaten. Op sommige borden kun je zelfs netwerk- en WiFi-ondersteuning vinden. MicroPython heeft zelfs bibliotheken voor het besturen van andere hardware, zoals NeoPixels en LED-strips, miniatuur OLED-schermen, enzovoort. Kortom, MicroPython kan veel dingen!

Wat zijn de beperkingen van MicroPython?

MicroPython heeft zeer weinig beperkingen, en bijna alles wat Arduino kan doen, kan via MicroPython-borden worden gedaan. Het is echter belangrijk op te merken dat MicroPython-code niet zo snel is en mogelijk meer geheugen vereist dan vergelijkbare Arduino of andere op C/C++ gebaseerde low-level code, hoewel dit meestal niet uitmaakt omdat de snelheids- en geheugenverschillen niet groot genoeg zijn om beïnvloeden de meeste toepassingen. Houd er rekening mee dat code die tijd- of prestatiekritisch is, mogelijk niet werkt in MicroPython. Het is bijvoorbeeld misschien niet het beste idee om software volledig te gebruiken om IO-pinnen aan te sturen om enkele snelle seriële communicatieprotocollen in MicroPython te implementeren. Er zijn echter manieren om MicroPython en low-level C/C++-code te combineren, zodat we het beste van beide werelden kunnen hebben - de belangrijkste logica is schone en gemakkelijk te begrijpen MicroPython-code, terwijl de prestatiekritische delen zijn geschreven in snellere code op laag niveau.

De MicroPython-taal implementeert het grootste deel van de kerntaal van Python 3, maar MicroPython implementeert niet de volledige Python 3-standaardbibliotheek. Python staat bekend om zijn uitgebreide standaardbibliotheek, maar het is onmogelijk om zo'n grote bibliotheek op een klein bord met slechts kilobytes geheugen te comprimeren. In plaats daarvan implementeert MicroPython enkele kleinere versies van de standaardbibliotheek van Python, wat een geweldige ontwikkelingservaring biedt.


Disclaimer: dit artikel is herdrukt uit "electronic forest", dit artikel vertegenwoordigt alleen de persoonlijke mening van de auteur, vertegenwoordigt niet de mening van Sakwei en de industrie, alleen gereproduceerd en gedeeld, ondersteunt de bescherming van intellectuele eigendomsrechten, geef de originele bron aan en auteur, als er sprake is van inbreuk, neem dan contact met ons op om deze te verwijderen.



Related Recommendations
whatsapp

Service Hotline

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950