Notizie
Notizie
Facile introduzione ai sistemi embedded (1) - Cos'è MicroPython?
2022-03-08 1224

Man mano che Python è diventato il linguaggio di programmazione dominante, MicroPython è diventato sempre più popolare nello spazio dei sistemi embedded, in particolare nel popolare ESP32 e nel modulo Pico basato su microcontrollore RP2040 appena rilasciato dalla Raspberry PI Foundation.

Essendo un bannon che non sapeva scrivere una riga di codice, mi sentivo molto limitato per la maggior parte del tempo e mi ripromisi di trovare un buon momento per imparare un linguaggio di programmazione. Mi sono dedicato a MicroPython durante i 7 giorni di festa della Festa Nazionale, e ho realizzato tutte le funzioni delle periferiche sulla scheda sulla scheda di apprendimento dell'estensione Pico progettata da me:

  • Illuminazione fantasia: monocromatica, tre colori RGB, tutti i tipi di combinazioni, può anche essere controllata da pulsanti e sensori

  • Lo schermo OLED visualizza testo, immagini e forme d'onda

  • Il segnale audio viene raccolto e visualizzato sullo schermo OLED, creando una fantastica visualizzazione della forma d'onda

  • Giocare a "Io e il mio Paese" con il cicalino sulla lavagna

  • Trasferimento del codice di qualcun altro per generare forme d'onda arbitrarie: modifica delle forme d'onda, modifica della frequenza, modifica dell'ampiezza, ecc



Ciò che mi ha IMPRESSIONATO di più durante i 7 giorni di "esplorazione" è stato quanto sia stato facile iniziare con i sistemi incorporati in MicroPython: ricche risorse open source, varie forme di riferimento, come corsi video, casi di testo, ecc.

MicroPython è davvero un ottimo linguaggio di programmazione: orientato agli oggetti, flessibile, semplice, elegante!

Il mio apprendimento personale trae vantaggio dalla condivisione degli altri (open source) e il modo migliore per trasmettere la conoscenza è condividere ciò che ho imparato e ciò che ho imparato. Pertanto, ho intenzione di lanciare un tutorial di programmazione embedded Micro Python basato su Pico, che sarà lanciato ufficialmente tra un mese. Ovviamente, Nella fase iniziale, ci saranno 15 corsi dal vivo sulla progettazione di PCB, che ti porteranno a progettare da solo una scheda di apprendimento Pico. Dopotutto, nel comodo ambiente del pannello di stampa gratuito e della spedizione gratuita, basato su una scheda centrale Pico, tutti possono progettare PCB per realizzare varie applicazioni interessanti in futuro. Imparare a progettare un PCB può anche essere un vantaggio per gli ingegneri di sistemi embedded.

D'ora in poi ci saranno una serie di articoli tecnici relativi a questo corso. Oggi è il primo:

1. Cos'è MicroPython

MicroPython è un piccolo interprete del linguaggio di programmazione Python open source che viene eseguito su una piccola scheda di sviluppo incorporata. Con MicroPython puoi scrivere codice Python pulito e semplice per controllare l'hardware senza dover utilizzare linguaggi sottostanti complessi come C o C++ (Arduino per la programmazione).


Logo MicroPython

La semplicità del linguaggio di programmazione Python rende MicroPython la scelta ideale per i principianti nella programmazione e nell'hardware. MicroPython è molto completo e supporta la maggior parte della sintassi Python, quindi anche i veterani esperti di Python troveranno l'utilizzo di MicroPython familiare e divertente.

Oltre ad essere facile da usare, MicroPython ha alcune caratteristiche uniche che lo distinguono dagli altri sistemi embedded:

Utilizza l'interprete interattivo: REPL (Leggi Leggi- Valuta Valuta- Stampa Stampa- Loop Loop) - questo ti consente di connetterti a una scheda e fargli eseguire il codice senza compilare o caricare - perfetto per l'apprendimento veloce e la sperimentazione con l'hardware!

Ricche librerie software: come il normale linguaggio di programmazione Python, MicroPython dispone di un gran numero di librerie integrate per supportare molte attività. Ad esempio, tramite le librerie integrate di MicroPython, è facile analizzare i dati JSON dai servizi Web, cercare testo utilizzando espressioni regolari e persino eseguire la programmazione dei socket di rete.

Estensibilità: per gli utenti avanzati, MicroPython può essere esteso con funzioni C/C++ di basso livello, in modo da poter combinare codice MicroPython espressivo di alto livello con codice più veloce di basso livello quando necessario.

MicroPython è una variante del linguaggio Python 3. È il frutto di Darrien P. George, Ph.D., dell'Università di Cambridge, che ha lavorato con un team di crowdfunding per sviluppare una scheda di sviluppo hardware abilitata per microPython chiamata PyBoard nel 2013. MicroPython1.0 è stato presentato alla conferenza Python ( PyCon) nel 2014. Il Dr. George ha anche creato il sito web Micro Python.org (www.micropython.org) per supportare MicroPython e Pyboard.


Il logo ufficiale di MicroPython.Org

MicroPython.Org PyBoard, basato sul controller STM32.


2. Cosa può fare MicroPython?

MicroPython è progettato per creare programmi di controllo del sistema embedded in modo rapido ed efficiente. I sistemi embedded possono essere definiti semplicemente come qualsiasi progetto che richieda l'uso di microcontrollori per soddisfare le esigenze ingegneristiche. I tipici sistemi embedded utilizzano in genere sensori e talvolta attuatori elettromeccanici per interfacciarsi con i microcontrollori. Possono essere collegati a dispositivi di interfaccia uomo-macchina per una facile interazione, ma sono più automatizzati, per operazioni autonome o accesso remoto al cloud.

Proprio come le schede Arduino, MicroPython può controllare l'hardware e i dispositivi collegati: puoi controllare le luci lampeggianti dei pin GPIO, leggere gli interruttori e altro ancora; Può pilotare il segnale PWM che può pilotare il server e il LED; I sensori analogici possono essere letti e letti tramite un convertitore analogico-digitale. È anche facile comunicare con dispositivi I2C o SPI. Puoi anche trovare il supporto di rete e WiFi su alcune schede. MicroPython dispone anche di librerie per il controllo di altro hardware, come NeoPixel e strisce LED, display OLED in miniatura e così via. In breve, MicroPython può fare molte cose!

Quali sono i limiti di MicroPython?

MicroPython ha pochissime limitazioni e quasi tutto ciò che Arduino può fare può essere fatto tramite le schede MicroPython. Tuttavia, è importante notare che il codice MicroPython non è così veloce e potrebbe richiedere più memoria rispetto ad Arduino simile o ad altro codice di basso livello basato su C/C++, anche se questo di solito non ha importanza perché le differenze di velocità e memoria non sono abbastanza grandi da influiscono sulla maggior parte delle applicazioni. Tieni presente che il codice critico in termini di tempo o prestazioni potrebbe non funzionare in MicroPython. Ad esempio, utilizzare interamente il software per pilotare i pin IO per implementare alcuni protocolli di comunicazione seriale ad alta velocità in MicroPython potrebbe non essere l'idea migliore. Tuttavia, ci sono modi per mescolare MicroPython e codice C/C++ di basso livello in modo da poter avere il meglio di entrambi i mondi: la logica principale è il codice MicroPython pulito e di facile comprensione, mentre le parti critiche per le prestazioni sono scritte in codice di basso livello più veloce.

Il linguaggio MicroPython implementa la maggior parte del linguaggio Python 3 principale, ma MicroPython non implementa l'intera libreria standard Python 3. Python è noto per avere una vasta libreria standard, ma provare a comprimere una libreria così grande su una piccola scheda con solo kilobyte di memoria è impossibile. MicroPython implementa invece alcune versioni più piccole della libreria standard Python, fornendo un'ottima esperienza di sviluppo.


Dichiarazione di non responsabilità: questo articolo è ristampato da "foresta elettronica", questo articolo rappresenta solo le opinioni personali dell'autore, non rappresenta le opinioni di Sakwei e dell'industria, solo riprodotto e condiviso, sostiene la protezione dei diritti di proprietà intellettuale, si prega di indicare la fonte originale e l'autore, se è presente una violazione, contattaci per eliminarli.



whatsapp

Linea diretta di assistenza

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950