Image of eBits Academy fundamentals illustration

MicroPython

  • January 20, 2022
  • |
  • Jesper Nielsen

Varför använda MicroPython? - MicroPython är enkelt och snabbt att använda. Det är inte lika lågnivå som C, C++ och Arduino, vilket gör koden mer intuitiv och snabbare att skriva. Å andra sidan kan MicroPython inte matcha den låga processor- och minnesbelastning som går att uppnå med C och C++.

MicroPython är fullt av praktiska funktioner, bland annat en interaktiv REPL (read-eval-print loop) som låter dig skriva kod direkt i kommandotolken till en ESP32. Du kan manuellt tända och släcka en lysdiod utan att bygga och kompilera koden. 

Målet är att vara så kompatibelt som möjligt med vanlig Python-kod och göra det enkelt att överföra kod från skrivbordsprogram till inbyggda system. Som hobbyutövare kan du därför skapa spännande mikrokontrollerprojekt med ett trevligt språk som Python. 

 

 

INNEHÅLL

LADDA NED

För att komma igång med MicroPython laddar du ned Thonny från Thonny, Python IDE for beginners. Webbplatsen erbjuder nedladdningar för Windows, Mac och Linux.

THONNY

Det är enkelt att installera Thonny; följ bara guiden nedan.

MICROPYTHON

Nu när Thonny är installerat laddar du ned MicroPython-firmware från dess webbplats: MicroPython - Python for microcontrollers 
Bilden nedan visar några tillgängliga MicroPython-versioner. Välj gärna den senaste stabila versionen för stabilitet och färre buggar. Nyare versioner låter dig också importera fler bibliotek till projekten.
Ladda ned filen till din dator/Mac; den används för att installera MicroPython via Thonny. 

HITTA COM-PORTEN

När du installerar MicroPython behöver du identifiera COM-porten som din ESP32 använder. För att hitta den högerklickar du på Windows-ikonen i vänstra hörnet --> Enhetshanteraren.

Välj sedan Portar (COM och LPT). ESP32 kan på det visade kortet heta Silicon Labs CP210x USB to UART Bridge (COMX).

INSTALLERA MICROPYTHON

För att installera MicroPython på din ESP32, anslut först kortet till din dator/Mac. Välj sedan Run -> Select interpreter.

 

Välj sedan MicroPython (ESP32), i rullgardinsmenyn.

 

I den nedre rullgardinsmenyn väljer du COM-porten där din ESP32 har identifierats. Den visas som Silicon Labs CP210x USB to UART Bridge. Om du inte hittar din går du tillbaka till avsnittet HITTA COM-PORTEN

Välj sedan port och firmware som du laddade ned tidigare. Välj firmware för exakt rätt ESP32-variant. Säkerhetskopiera filerna på kortet: följande alternativ raderar flashinnehållet: Erase flash before installing
Klicka sedan på Install. Fönstret ser ut som nedan. Vänta tills installationen är klar.

 

KOMPILERA KOD

För att kompilera och köra kod på ESP32, spara projektet genom att välja File -> Save As.

 Välj sedan MicroPython device.

Döp projektet till main.py. Vid start kör MicroPython boot.py och söker sedan efter en fil med namnet main.py.
Tryck sedan på den gröna knappen i verktygsfältet.

 

HELLO WORLD!

Låt oss prova ett enkelt program som tänder och släcker en lysdiod på GPIO2 på ESP32-kortet. Kontrollera kortets schema: inte alla ESP32-kort har en inbyggd lysdiod på GPIO2. Anpassa stiftnumret eller anslut en extern lysdiod med seriemotstånd. Skriv in koden nedan i Thonny.

from machine import Pin
from time import sleep

led = Pin(2,Pin.OUT)

for _ in range(1000):
       led.value(1)
       sleep(1)
       led.value(0)
       sleep(1)
Spara projektet och tryck sedan på den gröna knappen.

LÄGG TILL EN SENSOR

Du kan också lägga till sensorer som DHT11 temperatur- och luftfuktighetssensor. Här visar MicroPython en av sina styrkor: kodningen är otroligt enkel. Importera dht och ange stiftet där DHT11-sensorn är ansluten på ESP32. Anropa sedan temperature() eller humidity() beroende på vilken avläsning du vill ha. Länken nedan ger ett kodavsnitt och utförlig dokumentation för DHT11-sensorn med MicroPython.

13. Temperature and Humidity — MicroPython 1.17 documentation

from machine import Pin
import dht
import time
 
while True:
    sensor = dht.DHT11(Pin(23))
    sensor.measure()
 
    print('Temperature = %.2f' % sensor.temperature())
    print('Humidity = %.2f' % sensor.humidity())
    time.sleep(3)

När koden ovan kompileras och körs i Thonny kan du läsa resultatet i skalet. I exemplet skrivs temperatur och luftfuktighet ut var 3:e sekund.

REPL

MicroPython erbjuder en REPL (read-eval-print loop), en interaktiv programmeringsmiljö. Du kan programmera ESP32 direkt utan ett separat kompilerings- och byggsteg. Du kan exempelvis tända och släcka den inbyggda lysdioden som du vill. Det är mycket användbart för att snabbt testa kod. Videon nedan visar några praktiska funktioner, exempelvis att skriva ut den interna temperaturen för övervakning.

 

Dokumentation för fler MicroPython-funktioner

Länken innehåller dokumentation för inställning av drivrutiner, WiFi, timers, SPI, I2C och annat:

Getting started with MicroPython on the ESP32 — MicroPython 1.17 documentation 

Lämna en kommentar

Observera att kommentarer måste godkännas innan de publiceras.