Archivi tag: espressif

ESP32 – IDF Sdk con IDE Eclipse

Dopo aver configurato l’ambiente di sviluppo IDF nell’articolo precedente

ESP32 – IDF Sdk

vediamo ora come utilizzare Eclipe come IDE per lo sviluppo del codice. Le istruzioni sono disponibili al link

Configurazione Eclipse

Scaricare Eclipse per C/C++ per Linux

Download Eclipse

Scompattare il file e spostarlo su /opt/

Eseguire ecplise

Impostare il workspace per eclipse

eclipse-workspaceUna volta aperto l’IDE selezionare File–>Import–>C/C++- -> Existing Code as Makefile Project

eclipse-importPremere Next; alla schermata successiva selezionare la cartella contenente il Makefile di un progetto di esempio ne campo “Existing Code Location” e scegliere come “Toolchain for indexer settings” CrossGcc come ad esempio indicato di seguito

eclipse-import2Una volta caricato il progetto con il tasto destro sul nome del progetto si sceglie l’opzione properties

eclipse-project-propertiesSotto C/C++ Build–>Envinronment aggiungere la variabile

eclipse-batchAggiungere sempre nella medesima sezione la variabile IDF_PATH che punta all’SDK IDF scaricato

eclipse-idf-pathEditare la variabile PATH ed aggiungere il path ai bin del cross compilatore /home/sviluppo/Esp32/espressif/esp/xtensa-esp32-elf/bin

eclipse-pathAccedere sempre in “C/C++ General”–> “Preprocessor Include Paths”; scelgliere il tab Providers e cliccare su “CDT Cross GCC Built-in Compiler Settings”

eclipse-cross-cdtSostituire ${COMMAND}

eclipse-cross-cdt1con xtensa-esp32-elf-gcc

eclipse-cross-cdt2Accedere ora nei providers e scegliere “CDT GCC Build Output Parser”

eclipse-cross-cdt3ed inserire all’inizio del Compiler command pattern xtensa-esp32-elf-

eclipse-cross-cdt4Salvare le configurazioni.

Le impostazioni del progetto vanno fatte sempre da make menuconfig nella shell unix. Accedere nella shell ed impostare come GPIO del led da spegnere ed accendere il valore 2; questo perché nel nostro caso la scheda è una doit il cui design è illustrato nel presente documento

SchematicsforESP32

Accedere a Example configuration

blink-configurationed impostare il valore del gpio a 2

blink-gpioSalvare la configurazione. Riandare su Eclipse e procedere alla pulizia con

eclipse-clean-blinke successiva compilazione con Project–> Build

eclipse-build-blinkPer eseguire il flash del firmware da eclipse, selezionare il progetto e con il tasto destro scegliere Build Targets -> Create…

eclipse-create-targetInserire nel campo target il valore flash, lasciando di default tutto il resto

eclipse-create-target-flashA questo punto si procede al caricamento dell’immagine cliccando due volte sulla nuova voce flash all’interno dei target del progetto

eclipse-run-flash Le impostazioni per eseguire il flash devono essere impostate con make menuconfig, come visto nell’articolo precedente

ESP32 – Idf Sdk

 

ESP32 – IDF Sdk

In questo articolo si descrive come impostare l’ambiente di sviluppo per ESP32 della Espressif.

Dal link alle risorse per il soc

https://www.espressif.com/en/products/hardware/esp32/resources

si accede alla guida per la compilazione del firmware sulle piattaforme Windows, OSX e Linux

http://esp-idf.readthedocs.io/en/latest/get-started/index.html

Le operazioni elencate di seguito sono eseguite sempre su Linux Debian 9, configurato come già descritto in precedenza

MicroPython – Python su dispositivi embedded

Si utilizza l’IDF del github.  Su Debian 9 con l’utenza utilizzata per collegarsi sul sistema si crea sotto la Home dell’utente la cartella Esp32 ed all’interno la cartella espressif

Installare i prerequisiti

Scaricare il cross compilatore

Creare la cartella esp e dall’interno scompattare il toolchain

Aggiungere al PATH la cartella bin del cross compilatore

Aggiungere al gruppo dialout, l’utenza utilizzata per le operazioni

Clonare il repository IDF dal $HOME/Esp32/espressif

Aggiungere la variabile di ambiente IDF_PATH

Creare la cartella dei progetti sotto $HOME/Esp32/espressif e copiare un esempio dalla cartella dell’IDF

Eseguire la configurazione

Accedere a Serial flasher config–> ed impostare i parametri della connessione; nel nostro caso lasciamo il default

idf-serial_flasher

Salvare la configurazione e compilare il firmware

Per caricare il firmware sulla scheda eseguire

Per caricare solo la applicazione eseguire

mentre per compilare solo la applicazione eseguire

Per eseguire il monitor del programma eseguire

hello_world

Gli altri esempi disponibili con sdk

https://github.com/espressif/esp-idf/tree/f586f5e/examples

Al seguente link invece sono presenti i riferimenti delle API dell’IDF

http://esp-idf.readthedocs.io/en/latest/api-reference/index.html

Si può anche generare la documentazione dai sorgenti del github. Posizionarsi in ~/Esp32/espressif/esp-idf/docs/en

Installare i prerequisiti

Generare i documenti in formato html

make-htmlLa documentazione è generata in _build/html.

Nel prossimo articolo imposteremo come IDE per la compilazione dei programmi Eclipe

ESP32 – IDF SDK con IDE Eclipse

ESP32 – Compilazione firmware nodemcu

Dopo aver visto nell’articolo precedente la compilazione del firmware MicroPython per ESP32

ESP32 – Compilazione MicroPython per ESP32

In questo articolo viene mostrato come generare l’immagine Nodemcu  per la scheda ESP32.

Il firmware non è ancora completo come quello esistente per ESP8266.

Le istruzioni sono reperibili sul github al link

https://github.com/nodemcu/nodemcu-firmware/tree/dev-esp32

La documentazione sulla compilazione sono elencate al link

https://nodemcu.readthedocs.io/en/dev-esp32/en/build/

Il sistema operativo è Debian 9 già incontrato in precedenza per le utility esptool ed Adafruit-ampy

MicroPython – Python su dispositivi embedded

 Collegarsi con l’utenza scelta su Debian 9, sviluppo nel nostro caso; sotto la home creare la cartella Esp32  e successivamente la cartella nodemcu

Clonare il repository

Per aggiornare il repository già clonato seguire quanto descritto al link sulla compilazione

Accedere alla cartella nodemcu-firmware-esp32 ed eseguire la configurazione

nodemcu-settingsAbilitare il bluetooth e dei moduli accedendo in

Component config–>Bluetooth ed abilitarlo

nodemcu-bluetoothComponent config–>Nodemcu modules ed abiltare i moduli che potrebbero servire

nodemcu-modulesNella configurazione per il flash  lasciamo i valori di default per la nostra scheda esp32,  Serial flasher config->

nodemcu-flashSalvare la configurazione ed uscire. Per compilare l’immagine eseguire

Alla fine della compilazione viene mostrato il comando da eseguire per flashare il dispositivo; la stessa operazione viene facilitata eseguendo semplicemente

 Per informazioni sulle partizioni delle varie versioni di ESP32 fare riferimento alla documentazione

http://api-guides/partition-tables.html

Nel prossimo articolo si mostra come compilare una applicazione utilizzando sdk di Espressif

ESP32 – IDF Sdk

ESP32 – Compilazione MicroPython per ESP32

Iniziamo una serie di articoli che trattano la scheda Espressif ESP32

Modulo WiFi-Bluetooth ESP32

Dopo aver analizzato negli articoli precedenti MicroPython per ESP8266, in questo incominciamo a trattare MicroPython su ESP32.

Di seguito viene mostrato come generare l’immagine MicroPython partendo dal codice sorgente per la scheda ESP32.

Il sistema operativo è Debian 9, già incontrato in precedenza per le utility esptool ed Adafruit-ampy

MicroPython – Python su dispositivi embedded

 Collegarsi con l’utenza scelta su Debian 9, sviluppo nel nostro caso; sotto la home creare la cartella Micropython e successivamente la cartella esp32

 Il github di MicroPython è presente al link

Github Micropython

Le istruzioni per l’ ESP32 sono presenti al link

MicroPython esp32

Clonare il repository

Accedere in micropython/ports/esp32

Eseguire

Il comando rilascia l’hash del github dell’ espidf supportato.

Al momento della nostra compilazione il risultato è il seguente

Ritornare nella cartella /home/sviluppo/Micropython/esp32 e clonare ESPIDF

Eseguire il checkout con l’hash ricavato sopra

Eseguire

Installare il cross compilatore come indicato al link

Cross compilatore

Seguendo le indicazioni del link sopra riportato, si procede quindi ad installare i prerequisiti

Scaricare il cross compilatore

Creare la cartella esp sotto /home/sviluppo/Micropython/esp32

Scompattare il cross compilatore in esp

Esportare nel PATH la cartella dei binari del cross compilatore

Accedere in

Creare il file makefile con all’interno

Accedere alla cartella micropython presente in /home/sviluppo/Micropython/esp32

Eseguire

per aggiungere le dipendenze esterne.

Si compila il cross compilatore MicroPython

Si compila infine l’immagine per l’esp32 con il comando

Il firmware è generato nella cartella ports/esp32/build con il nome firmware.bin.

Procedere al caricamento del firmware con i comandi

Nel nostro caso il deploy ha avuto esito positivo con il comando

E’ possible caricare l’immagine firmware.bin con i  comandi

dove in /dev/ttyXXX va inserito il riferimento alla porta seriale cui è connesso l’ESP32.

Nel prossimo articolo compileremo il firmware nodemcu per ESP32

ESP32 – Compilazione firmware nodemcu

MicroPython – Compilazione MicroPython per ESP8266 con moduli aggiuntivi

Dopo aver visto nel precedente articolo la compilazione del firmware MicroPython per ESP8266

MicroPython – Compilazione MicroPython per ESP8266

mostriamo ora come compilare un modulo all’interno del firmware; tale modalità ottimizza l’esecuzione del modulo e minimizza la dimensione dello stesso sul dispositivo: il modulo è congelato nel firmware.

Con il firmware compilato in modalità standard si hanno a disposizione i seguenti moduli, elencati nella consolle REPL con il comando

standardmodulesProviamo ora a compilare il firmware con i moduli mqtt già all’interno. Per tal obiettivo si copiano i sorgenti dei moduli nella cartella umqtt sotto modules

umqttfolderSi provvede a ricompilare il firmware, come visto nell’articolo pubblicato sull’argomento. Da micropython/ports/esp8266 si eseguono i comandi

Come si può notare dal log di compilazione anche questi sorgenti vengono posti nello stato frozen

frozenmodulesSi carica di nuovo il firmware. In questo caso nella lista dei moduli presenti nel firmware otteniamo

firmwarewithmodulesE’ possbile anche creare il firmware con i moduli non compilati ed ottimizzati copiando i sorgenti nella cartella scripts sotto esp8266; nel caso specifico i sorgenti vanno posti sotto la cartella scripts

I moduli sono sempre visibili nel firmware, ma non ottimizzati, per cui se serve qualche modulo lo si copia sul dispositivo durante la lavorazione e nell’ultima fase del progetto si compila il firmware con i moduli congelati.

 

 

 

 

 

 

MicroPython – Compilazione MicroPython per ESP8266

Dopo aver utilizzato in alcuni esempi il firmware MicroPython sulla scheda ESP8266

MicroPython – Esempi nodi con DHT11, Relé ed MQTT

in questo articolo viene mostrato come generare il firmware MicroPython per la scheda ESP8266.

Il sistema operativo è Debian 9 già incontrato in precedenza per le utility esptool

MicroPython – Python su dispositivi embedded

Collegarsi con l’utenza scelta su Debian 9, sviluppo nel nostro caso; sotto la home creare la cartella Micropython e successivamente la cartella esp8266

 Il codice sorgente di MicroPython è presente al link

Github Micropython

Le istruzioni per compilare il firmware per l’ESP8266 sono presenti al link

MicroPython ESP8266

Clonare il repository

Scaricare il cross compilatore, come indicato qui

Cross compilatore

Come indicato al link sopra, scarichiamo i sorgenti del cross compilatore  sempre dalla cartella esp8266

Installare i prerequisiti per la compilazione

Procedere alla compilazione del cross compilatore

Dopo la compilazione esportare nel PATH la cartella dei binari del cross compilatore

Accedere alla cartella micropython presente in ~/Micropython/esp8266

Eseguire

per aggiungere le dipendenze esterne.

Si compila il cross compilatore MicroPython

Si compila infine l’immagine per l’ESP8266 con il comando

Il firmware è generato nella cartella ports/esp8266/build con il nome firmware_combined.bin.

Procedere al caricamento del firmware sulla scheda con il comando

dove in /dev/ttyXXX va inserito il riferimento alla porta seriale cui è connesso l’ESP8266.

Nel nostro caso il deploy ha avuto esito positivo con il comando

E’ possible caricare l’immagine firmware_combined.bin con il comando

Nel prossimo articolo si analizza come compilare all’interno del firmware dei moduli aggiuntivi MicroPython

MicroPython – Compilazione MicroPython per ESP8266 con moduli aggiuntivi

MicroPython – Struttura programma MicroPython

Dopo aver esaminato diversi strumenti di sviluppo per MicroPython negli articoli precedenti

MicroPython – Strumenti di sviluppo Ampy – Eric

MicroPython – IDE MicroPython uPyCraft

in questo articolo si descrivono brevemente le principali caratteristiche di MicroPython. Esaminiamo in particolare la documentazione inerente all’ESP8266, ma i concetti possono essere estesi anche alle altre schede.

La documentazione sul soc ESP8266 e MicroPython è disponibile al link

Documentazione MicproPython ESP8266

Al link si trovano tutte le informazione necessarie per implementare il proprio codice sulla scheda e le caratteristiche di MicroPython nonché le differenze rispetto a Python.

Di seguito i punti principali per la codifica in MicroPython:

  • MicroPython ha una consolle REPL (Read Evaluate Print Loop) attraverso la porta seriale cui è connesso il dispositivo sui cui si posso impartire i vari comandi MicroPython in modo interattivo.
  • Si può accedere alla consolle REPL anche tramite connessione all’indirizzo IP del dispositivo mediante l’abilitazione della consolle WEBREPL  (Web Browser Interactive prompt)

Documentazione WebREPL

importando il pacchetto webrepl, abilitandolo ed avviandolo ad ogni ripartenza del dispositivo. Per accedere al dispositivo configurato si puo usare il link

Accesso WEBREPL

o localmente clonandolo da github

  • I file che vengono eseguiti all’avvio del dispositivo sono  boot.py e successivamente main.py.
  • Le librerie disponibili per MicroPython sono  presenti sul github al link

Librerie MicroPython

  • Pacchetti aggiuntivi

I moduli aggiuntivi possono essere scaricati dal link delle librerie presentato sopra o scaricati con la utility upip (Package Manager) dalla consolle REPL se presenti nel repository Python Package Index (PyPI)

PYPI

come descritto di seguito

upip

Di seguito un semplice esempio che si connette al router e ci permette di accedere alla consolle MicroPython con il browser e WEBREPL.

  • Codice boot.py

Al primo accesso viene richiesta l’abilitazione di webrepl da eseguire nella consolle REPL con il comando

e seguendo le istruzioni si abilita il servizio e si imposta  la  password di accesso.

La procedura genera sul dispositivo il file webrepl_cfg.py.

Dopo l’impostazione e riavvio accediamo alla consolle web aprendo il file webrepl.html clonato  localmente con un browser

WebreplPremiamo connetti e dopo aver inserito la password impostata nel setup iniziale accediamo alla consolle

WebreplConnectedInstalliamo ora dalla consolle WEBREPL, ad esempio,  il modulo stat utilizzando upip

Per  incollare del testo nella consolle eseguire Ctrl+A e Ctrl+V

WebreplupipIn questo caso il pacchetto è stato prelevato dal repository PYPI, scompattato ed installato sul dispositivo.

Abbiamo notato che alcuni moduli, sebbene presenti sul repository, danno errore in fase di installazione con upip; tali moduli li installiamo direttamente senza usare la utility upip, ma scaricando la libreria dal sito elencato sopra e trasferendo il codice sul dispositivo.

Di seguito il link al codice mostrato sopra

Webreplsample

Altra opzione disponibile è compilare il firmware con i moduli richiesti.

Nel prossimo articolo esamineremo degli esempi analoghi a quanto fatto con LUA su ESP8266 in articoli precedenti

MicroPython – Esempi nodi con DHT11, Relé ed MQTT

 

 

 

 

Micropython – Strumenti di sviluppo Ampy – Eric

Dopo aver installato uPyCraft nell’articolo precedente

MicroPython – IDE MicroPython uPyCraft

esaminiamo ora altri strumenti disponibili per lo sviluppo MicroPython su varie piattaforme.

In questo articolo si mostrano le operazioni da eseguire su Windows e Linux.

Primo pacchetto Python da installare è Ampy (Adafruit MicroPython Tool)

ampy

Il tool è presente nei repository python, per cui può essere installato mediante pip.

In Windows eseguire in una console dos

Analogamente in Linux eseguire in una shell

I comandi disponibili sono visibili eseguendo

ampyAmpy consente il trasferimento, creazione, visualizzazione, esecuzione dei file sul dispositivo.

Per quanto concerne l’IDE si può installare Eric, IDE Python generico

Eric

Eric non consente dall’IDE la comunicazione con il dispositivo come visto con uPyCraft; tale compito è demandato ad Ampy. Per l’installazione procedere come segue:

  •  Per Linux Debian 9 basta eseguire

Il tool è disponibile tra gli strumenti di sviluppo; alla prima esecuzione richiede delle impostazioni di default

ericSettingsSi definisce la posizione del workspace

ericWorkspacee si accede all’IDE

eric

  • Per Windows scaricare lo zip

Eric

Scompattare lo zip in una cartella da cui eseguirlo; installare i prerequisiti

Eseguire a questo punto l’installazione di eric cliccando due volte su install.py

ericInstallWindows

Il programma procede al controllo dei prerequisiti ed al completamento della installazione

ericWindowsProcedure

Cliccando due volte su eric6.py  o eseguendo eric6 da una finestra dos viene eseguito il programma in modo analogo a quanto visto per Linux Debian

ericWindows

Nel prossimo articolo esamineremo brevemente la struttura di un programma MicroPython

MicroPython – Struttura programma MicroPython

Micropython – IDE MicroPython uPyCraft

Dopo l’installazione del firmware sul dispositivo Nodemcu esp8266 DevKit

Firmware MicroPython

passiamo ora ad esaminare uno strumento di sviluppo può essere adatto allo sviluppo di codice Python.

 Uno strumento che permette sia di scrivere codice che di caricarlo sul dispositivo è uPyCraft

uPyCraft

 Lo strumento al momento funziona per Windows e dalla versione 0.30 è disponibile anche per Linux; il codice sorgente è presente al link

uPyCraft Source

Di seguito i passi per Windows e Linux.

  • Windows

Una volta scaricato il pacchetto lo si esegue come amministratore; viene richiesta l’installazione del font Monaco

monaco-fontDopo l’installazione del font si accede all’IDE

upycraft-v0-29Si imposta la regione corretta in Tools->Preferences->Language Location

upycraftlocationed i parametri della porta seriale in Tools->Preferences->Serial

upycraftserialsettingsColleghiamo a questo punto il dispositivo su una porta USB ed impostiamo la porta corretta uPyCraft

upycraftserialSi sceglie il dispositivo, in questo caso ESP8266

upycraftdeviceCliccando sulla icona di connessione si accede al dispositivo ed ai file presenti sullo stesso

upycraftconnectionCon l’installazione del firmware è presente solo il file boot.py sul dispositivo

upycraftfilesystemLo strumento permette di scaricare degli esempi di codice MicroPython per la scheda in esame;  scegliamo blink.py

examplesPremendo il pulsante “Download and Run” si carica sul dispositivo il codice e lo si esegue

blinkIn questo caso il led presente sulla scheda Nodemcu DevKit lampeggia.

  • Linux

Il tool è analogo nella versione Linux; si scarica il pacchetto a cui si assegna il diritto di esecuzione e lo si lancia, Occorre assegnare all’utente i diritti per l’accesso sulla porta seriale con il comando, già visto in precedenza

Nel nostro caso, su Debian 9, si hanno le seguenti schermate analoghe a quanto visto su Windows.

Si apre l’IDE

upycraft-v0-30linuxSi imposta la regione corretta in Tools->Preferences->Language Location

upycraftlocationlinuxed i parametri della porta seriale in Tools->Preferences->Serial

upycraftserialsettingslinuxColleghiamo a questo punto il dispositivo su una porta USB ed impostiamo la porta corretta uPyCraft

upycraftseriallinuxSi sceglie il dispositivo, in questo caso ESP8266

upycraftdevicelinuxCliccando sulla icona di connessione si accede al dispositivo ed ai file presenti sullo stesso

upycraftconnectionlinuxCon l’installazione del firmware è presente solo il file boot.py sul dispositivo

upycraftfilesystemlinuxLo strumento permette di scaricare degli esempi di codice MicroPython per la scheda in esame;  scegliamo blink.py

exampleslinuxPremendo il pulsante “Download and Run” si carica sul dispositivo il codice e lo si esegue

blinklinuxCome in Windows il led presente sulla scheda Nodemcu DevKit lampeggia.

Nella versione 0.30 per Windows abbiamo notato un funzionamento non sempre corretto, per cui in tale sistema operativo abbiamo continuato ad usare la versione 0.29.

Ulteriori informazioni su uPyCraft sono reperibili sul sito dello strumento

Documentazione uPyCraft

Nel prossimo articolo tratteremo un altro strumento di sviluppo Python

MicroPython – Strumenti di sviluppo Ampy – Eric

MicroPython – Python su dispositivi embedded

In questo articolo iniziamo a trattare MicroPython

MicroPython

una implementazione di Python3

Python

per dispositivi embedded.

Sul sito MicroPython sono disponibili varie immagini per diversi dispositivi, tra cui i moduli esp8266 ed esp32

MicroPython Dowloads

 Iniziamo i nostri test con una scheda nodemcu esp8266 DevKit

Nodemcu Devkit

Si procede a caricare il firmware su tale scheda.

Sul sito MicroPython si fa riferimento anche al caricamento del firmware sulla scheda con le informazioni disponibili al link

Tutorial MicroPython per esp8266

Per il caricamento del firmware su utilizza sempre il tool esptool, disponibile anche sul repository Python.

Per poter procedere all’utilizzo occorre installare Python3 sulla piattaforma di sviluppo utilizzata. Di seguito i passi da seguire per Windows e Linux.

  • Windows

Per Windows occorre innanzitutto installare l’ambiente Python3, disponibile al seguente link

Python per Windows

Nel nostro caso è stata scaricata la versione 3.6.4 per sistemi a 64 bit. Si procede alla installazione del pacchetto con diritti di amministrazione

setuppythonDopo aver proceduto ad aggiungere Python nel Path si preme “Install Now”

pythonsetupendDopo aver concluso l’installazione si apre una shell dos e si controlla la versione di Python installata

pythonversionSempre dalla consolle dos si procede alla installazione di esptool con il comando

esptoolinstallationSi può procedere a questo punto all’installazione del firmware MicroPython sulla scheda Nodemcu esp8266 DevKit. Occorre, naturalmente, aver installato su Windows i drivers del chip seriale-ttl presente sul proprio modello di scheda. Ci si posiziona nella cartella in cui si è scaricato il firmware e si eseguono i comandi da shell dos

erase_flashProcedere al caricamento del firmware

firmware_flashUna volta installato il firmware connettiamoci sulla consolle Python utilizando, nel nostro caso con la scheda nodemcu DevKit, la stessa porta già sfruttata per il caricamento del firmware.

Su Windows si può utilizzare il programma putty

Putty

ed impostare la connessione seriale ad un baudrate di 115200

repl_putty

  • Linux

Per Linux utilizziamo la distribuzione Debian 9, ma la procedura può essere estesa ad altre distribuzioni. Dopo l’installazione di Debian 9, analoga a quanto eseguito per la versione 8

Debian 8

si procede alla installazione in Python3 e del tool esptool

 Aggiungere l’utenza utilizzata su Debian al gruppo dialout

Nel nostro caso, utilizzando sviluppo come utente, il comando è il seguente

Passiamo alla installazione del pacchetto Python esptool

Si può quindi procedere alla installazione del firmware in modo analogo a quanto fatto su Windows.

Si controlla su che porta seriale è disponibile la scheda (ttyUSBX)

ttylinuxSi procede quindi alle operazioni di cancellazione e caricamento del firmware

 Per  collegarsi sulla scheda si usa screen

il cui manuale è presente al link

Manuale screen

Per eseguire il detach premere

per eseguire il resume

 Per chiudere screen

Una volta collegato si ottiene il medesimo risultato di Windows

screenNel prossimo articolo incominceremo a vedere quali IDE si possono usare per creare e caricare il nostro codice Python

IDE MicroPython uPyCraft