Avvio completo — versione 0.4.35 TEST
Durante l’avvio compare il caricamento degli strumenti. I file temporaneamente indisponibili vengono ritentati automaticamente; se manca ancora un componente, compare un errore con il pulsante Riprova avvio. Estrai sempre tutto lo ZIP e lascia aperta la finestra del launcher. Dettagli in AGGIORNAMENTO_0.4.35_TEST.md.
LilyGO TTGO V1.6.1 — versione 0.4.34 TEST
In Comunicazioni > LoRa > LilyGO TTGO V1.6.1 trovi 7 blocchi radio e 11 per l’OLED integrato. Seleziona ESP32 WROOM. Inizializza LoRa e OLED direttamente nel Setup; per il display usa “disegna schermata”. Tre esempi: prova OLED, trasmettitore con ID e ricevitore con OLED/RSSI. Per comunicare con RFM95W imposta la stessa frequenza e lo stesso profilo sui due dispositivi. Pin interni già configurati; microSD generica non supportata. Istruzioni complete in AGGIORNAMENTO_0.4.34_TEST.md.
ZZBlocks 0.4.35 TEST
Arduino UNO, Mega 2560 ed ESP32 WROOM. Le indicazioni storiche sui pin in questa pagina si riferiscono a UNO; i blocchi e i controlli seguono la scheda selezionata. Setup e Loop sono indipendenti, come nel riferimento SteaMakersBlocks. La sezione KS0183 è in fondo; il suo supporto è conservato.
Versione TEST: consulta il rapporto delle verifiche incluso. Riavvia il nuovo launcher dopo aver estratto lo ZIP. Se gli strumenti ESP32 sono già pronti non serve riprepararli. Il collaudo sulla scheda e sulla rete dell'utente rimane da eseguire.
Motor Shield LM293D e L298P
In Attuatori > Motori trovi due nuove categorie: Motor Shield LM293D · 4 motori e Motor Shield L298P · 2 motori. Ogni categoria offre inizializzazione, comando motore avanti/indietro a velocità 0–255, movimento robot e arresto. Inizializza una sola volta direttamente nel Setup. Sono disponibili quattro nuovi esempi per UNO e Mega; le librerie sono già incluse.
LM293D usa L293D + 74HC595 e AFMotor (Adafruit V1). L298P usa il cablaggio del manuale allegato: A D12/D10 e B D13/D11; D4 è il buzzer, tenuto spento. Il verso dipende dai fili: nel robot collega i motori come indicato dall’esempio. ESP32 non supportato. Pin e timer in conflitto vengono segnalati. Dettagli in AGGIORNAMENTO_0.4.32_TEST.md.
DX-BT24 BLE 5.1 · seriale hardware D0/D1
In Comunicazioni > Bluetooth > DX-BT24 BLE 5.1 è disponibile una nuova inizializzazione hardware per UNO/Mega: RX D0, TX D1, baud 9600. Gli altri blocchi DX-BT24 restano gli stessi. D0/D1 sono condivisi con USB: scollega temporaneamente il modulo Bluetooth prima di caricare il programma e ricollegalo a scheda spenta.
Apri Esempi > KS0556 · rover DX-BT24 su D0/D1: comandi maiuscoli F/B/L/R/S, velocità 200. Dal telefono usa un’app BLE compatibile. I comandi non richiedono fine riga; LF/CR vengono ignorati. Il movimento prosegue fino al comando successivo, quindi invia S per fermare. L’esempio non riconfigura nome o PIN del modulo. Dettagli e collegamenti in AGGIORNAMENTO_0.4.31_TEST.md.
KS0556 · Shield motori 8833
In Attuatori > Motori > Keyestudio KS0556 · 8833 trovi quattro blocchi: inizializza, comanda un motore, muovi il robot e ferma. Inizializza una sola volta direttamente nel Setup. Pin fissi: sinistro direzione D4/PWM D6; destro direzione D2/PWM D5. Non assegnarli ad altri componenti. Velocità 0–255, con zero per fermare.
Due esempi per UNO e Mega: KS0556 · avanti, indietro e rotazioni e KS0556 · prova separata dei motori. Provare inizialmente con le ruote sollevate; collegamenti e jumper secondo la guida Keyestudio. La shield non è supportata su ESP32. Guida completa in AGGIORNAMENTO_0.4.30_TEST.md. La libreria è inclusa e non richiede nuovi strumenti.
Risparmio energetico ESP32 — 0.4.29 TEST
In Sistema > Risparmio energetico - ESP32 trovi dieci blocchi per deep sleep temporizzato o da GPIO RTC, motivo del risveglio, contatore di avvii, otto numeri RTC e modalità sleep/ricezione del RFM95W. Su UNO/Mega sono visibili ma barrati.
Inizia da Energia ESP32 · deep sleep di 10 secondi, verifica/carica e osserva il monitor a 115200. Al risveglio il programma riparte dal Setup; le normali variabili si reinizializzano. I numeri RTC sono conservati durante il sonno, ma questa versione li azzera a ogni normale reset/accensione.
Altri esempi: pulsante fra GPIO33 e GND con pull-up interno; trasmettitore LoRa DHT22 che invia un pacchetto compatibile con la base mappa e dorme cinque minuti. La radio LoRa viene messa automaticamente in sleep prima del sonno della ESP32. La base ricevente/dashboard deve restare sveglia. Guida e collegamenti in AGGIORNAMENTO_0.4.23_TEST.md. Non serve reinstallare gli strumenti ESP32 già pronti; la corrente effettiva va misurata sulla scheda completa.
Dashboard Mappa — 0.4.22 TEST
In Comunicazioni > WiFi - ESP32 > Dashboard > Mappa trovi nove blocchi per mappe Leaflet, sfondo topografico OpenTopoMap o stradale OpenStreetMap, coordinate numeriche/GPS, etichette e colori. Il pannello mappa si aggiunge direttamente nel Setup dopo «Dashboard crea pannello». Per aggiornare una stazione usa sempre lo stesso ID.
Prima prova: Dashboard Mappa · prova senza sensori, configura WiFi, verifica/carica e apri l'indirizzo stampato sulla seriale a 115200. Il browser deve raggiungere la ESP32 e Internet per la cartografia. Leaflet è incluso nella scheda, senza CDN. Disponibili anche esempi GPS e coppia trasmettitore/base LoRa RFM95W.
Larghezza 0 automatica o 240–2048 px, altezza 160–1200 px; massimo 4 mappe entro 16 pannelli e 24 punti complessivi. Testo 256 byte, anche con ritorni a capo; colori #RRGGBB controllabili con se/altrimenti. I punti non ricentrano automaticamente la vista. Usa «Dati delle stazioni» per l'elenco testuale. Istruzioni complete in AGGIORNAMENTO_0.4.22_TEST.md. Non serve aggiornare strumenti già pronti; occorre ricaricare il programma sulla ESP32 della dashboard.
DS18B20: temperatura digitale
In Sensori > Temperatura > DS18B20 trovi sette blocchi per inizializzare il bus, aggiornare le letture, controllare fine conversione e validità, leggere temperatura, numero sonde e indirizzo ROM. La risoluzione è interna al sensore: valori iniziali 10 bit su UNO/Mega e 12 bit su ESP32, modificabili da 9 a 12 bit. Non è la lettura ADC della scheda.
Gli esempi DS18B20 · temperatura sulla seriale e DS18B20 · lettura senza attesa usano DATA D2 su Arduino e GPIO4 su ESP32. Servono tre fili e pull-up sulla linea dati alla tensione logica della scheda. Alla prima verifica le librerie mancanti sono installate automaticamente; serve Internet, senza reinstallare il core. Tabella dei collegamenti e spiegazioni in AGGIORNAMENTO_0.4.21_TEST.md.
LoRa: Shield Arduino e modulo RFM95W
In Comunicazioni > LoRa trovi Shield Arduino con i blocchi esistenti e RFM95W con sette comandi equivalenti per UNO, Mega ed ESP32 WROOM. La shield resta barrata su ESP32; il modulo è utilizzabile su tutte le schede. Inizializza una sola volta direttamente nel Setup e controlla la ricezione nel Loop.
Gli esempi LoRa RFM95W · ricevitore / trasmettitore usano 868,0 MHz e profilo standard. Su ESP32: MOSI 23, MISO 19, SCK 18; predefiniti CS 5, DIO0 26, reset 27. Il modulo nudo usa alimentazione e segnali a 3,3 V: su UNO/Mega occorre adattare i livelli. Tabella completa e istruzioni in AGGIORNAMENTO_0.4.20_TEST.md.
Non serve aggiornare gli strumenti gia pronti: la nuova libreria viene copiata all’avvio del launcher. Gli sketch che usano i nuovi blocchi vanno verificati e caricati. Il formato dei pacchetti resta compatibile con i programmi ZZBlocks della shield, usando frequenza e profilo uguali.
Monitor seriale: recupero degli errori temporanei
La versione 0.4.16 TEST usa un buffer di 64 KiB e riprende la lettura dopo errori temporanei di ricezione, formato, parità o segnale. I messaggi sono in italiano. Dopo più di otto errori in cinque secondi il monitor si chiude con indicazioni per il controllo. Il Plotter conserva i dati; dopo una perdita scarta la riga potenzialmente incompleta e continua dalla successiva. I campioni persi non possono essere ricostruiti.
Non serve aggiornare gli strumenti o ricaricare lo sketch per questa correzione. Chiudi il vecchio launcher, avvia la nuova versione e riapri il monitor con baud e formato corrispondenti al programma sulla scheda.
Tema e colori dell’editor
Apri Tools > Tema e colori…. Scegli Originale, Chiaro, Scuro o Contrasto alto per l’interfaccia; scegli separatamente i colori originali o una palette di colori distinti per i blocchi. Personalizza categorie e sottocategorie con la tavolozza o con codici #RRGGBB. L’anteprima usa un blocco reale e mostra subito l’effetto nel programma.
Con Applica conservi le preferenze in questo browser; con Annulla o Esc torni all’aspetto precedente. Importa tema e Esporta tema permettono di trasferire i colori. Le preferenze non entrano nei progetti e non cambiano il codice generato. Gli avvisi rossi di incompatibilità restano attivi.
Questa modifica non richiede aggiornamento strumenti o caricamento sulle schede. La guida completa è in AGGIORNAMENTO_0.4.18_TEST.md.
Copie di sicurezza
Apri Tools > Copie di sicurezza…. Puoi creare una copia, scegliere un progetto dello storico, scaricare una versione oppure ripristinarla. Prima del ripristino viene conservato il progetto aperto. Il normale salvataggio dei file e il recupero del browser restano disponibili.
La copia automatica viene creata ogni minuto se hai modificato il progetto, al salvataggio e prima di cambiare progetto o ripristinare. Restano le ultime 20 copie per progetto, fino a 100 MB complessivi; le copie più vecchie vengono sostituite. Le copie identiche consecutive non si duplicano. Le copie su disco richiedono il launcher, restano sul PC anche dopo un cambio di versione e includono scheda, blocchi e immagini OLED. La finestra mostra il percorso effettivo in “Dove sono le copie?”.
Istruzioni in AGGIORNAMENTO_0.4.19_TEST.md. Non serve aggiornare gli strumenti.
Dashboard senza scritte nei pannelli
Le righe “Ultimo aggiornamento” sono state rimosse da tutti i pannelli. Restano grafici, valori, colori e comandi. In fondo compare solo ZZBlocks · Dashboard locale.
Per vedere questa modifica verifica e ricarica il programma sulla ESP32 che ospita la dashboard, poi aggiorna la pagina. Non serve ricaricare le altre schede.
ESP NOW per ESP32
In Comunicazioni > ESP-NOW - ESP32 trovi 22 blocchi per messaggi e numeri fra schede: unicast a MAC, broadcast, peer con LMK facoltativa, eventi indipendenti di ricezione e completamento invio, MAC locale, canale, RSSI e stato. Su UNO e Mega sono visibili ma barrati e non trascinabili.
Prima prova con due ESP32: ricevitore e MAC locale su una, invio broadcast senza router sull'altra. Stesso canale 1, monitor 115200. Non servono SSID/password. Per unicast copia il MAC stazione del ricevitore al posto del segnaposto.
Inizializza una volta nel Setup. Gli eventi ricevuto e invio terminato stanno fuori da Setup e Loop; il servizio è automatico. Usa un timer e «non invio in corso?»; c'è un solo invio pendente. Il successo radio non conferma l'esecuzione di un comando: per quello fai rispondere il ricevitore.
Con router o Access Point usa modalità con WiFi già attivo dopo WiFi e allinea le altre schede al suo canale. Il MAC è quello della stazione anche con AP. ESP-NOW usa WiFi: niente letture analogiche ADC2, usa ADC1. Payload UTF-8 1–250 byte; messaggi non numerici restituiscono NaN nel getter numero. La radio resta senza risparmio modem per ricezione continua.
Sette esempi, collegamenti e limiti in AGGIORNAMENTO_0.4.15_TEST.md. Non serve aggiornare strumenti ESP32 già pronti; i programmi vanno caricati su entrambe le schede.
Colori dashboard — 0.4.14 TEST
Il nuovo blocco Dashboard · personalizza colori va una sola volta nel Setup dopo «crea pannello». Scegli barra e testo del titolo, sfondo pagina e riquadri, testo riquadri e colore di barre/grafici/comandi. Clicca il campo colorato: tavolozza, selettore libero o codice #RRGGBB, poi Applica. I colori restano nel progetto; verifica e carica di nuovo lo sketch per vederli sulla scheda.
Senza il blocco resta l'aspetto precedente. Prova Dashboard ESP32 · colori personalizzati. Per i dettagli leggi AGGIORNAMENTO_0.4.14_TEST.md.
Dashboard WiFi — 0.4.13 TEST
In Comunicazioni > WiFi - ESP32 > Dashboard trovi 14 blocchi per creare un pannello locale con indicatori numerici, testo, grafici, interruttori e cursori. Su UNO/Mega restano visibili, barrati e non trascinabili.
Prova Dashboard ESP32 · prova senza sensori: inserisci nome e password della rete nei blocchi WiFi, verifica e carica. Apri il monitor a 115200 baud e, dal telefono collegato alla stessa rete, visita l'indirizzo stampato http://IP/dashboard. Non occorrono account né servizi esterni. L'interruttore dell'esempio pilota un LED esterno su GPIO13.
Nel Setup: WiFi, crea pannello, aggiungi gli elementi con ID diversi. Nel Loop aggiorna i valori, preferibilmente con «ogni … ms». Gli eventi quando cambia il comando ID stanno fuori da Setup e Loop e gestiscono interruttori e cursori. La gestione HTTP è automatica.
La dashboard avvia già il server: non aggiungere «HTTP Server avvia». Puoi comunque aggiungere eventi HTTP per altri percorsi. Il grafico mostra gli ultimi 300 aggiornamenti ricevuti mentre la pagina è aperta; ricaricarla azzera il suo storico. Per conservare e salvare misure usa il Plotter seriale, utilizzabile insieme.
Disponibile anche un esempio Access Point: collega il telefono alla rete della ESP32 e apri http://192.168.4.1/dashboard. Il telefono può segnalare assenza di Internet: resta su quella rete. Il pannello è accessibile ai dispositivi della rete locale, senza login. I dettagli, limiti ed esempi sono in AGGIORNAMENTO_0.4.13_TEST.md.
Plotter seriale — 0.4.12 TEST
In Comunicazioni > Seriale > Plotter trovi due nuovi blocchi per configurare serie e inviare misure. Funzionano su UNO, Mega ed ESP32 senza WiFi né nuove librerie. Nell’area inferiore puoi scegliere Monitor oppure Grafici.
Prova Plotter · onde simulate: verifica, carica e apri Grafici. Selettore a 115200 baud; premi Avvia acquisizione e scegli la porta. Colori, curve separate/sovrapposte, scale, intervallo e vista ingrandita sono regolabili. Pausa grafico ferma il disegno mentre l’acquisizione continua.
PNG salva la vista corrente; CSV e Salva registrazione comprendono tutti i campioni. Apri registrazione riapre .zzplot e CSV esportati, anche senza scheda. Limite dichiarato: 200.000 campioni totali / 32 serie; al limite l’acquisizione si ferma con avviso senza eliminare i dati vecchi. Salva prima di chiudere la pagina.
Tre esempi e istruzioni complete in AGGIORNAMENTO_0.4.12_TEST.md. Le funzioni precedenti sono conservate.
HTTP, HTML e JSON — 0.4.11 TEST
Quattro nuove categorie in Comunicazioni > WiFi - ESP32: HTTP Server, HTTP Client, HTML e JSON. 56 blocchi; su UNO/Mega restano visibili ma barrati e non trascinabili. Gli eventi richiesta stanno fuori da Setup e Loop; il server gestisce i client automaticamente.
Per la prima prova scegli HTTP Server · pagina e LED dal telefono, inserisci il WiFi, verifica e carica. Monitor a 115200: apri sul telefono collegato alla stessa rete l’indirizzo HTTP stampato. LED esterno su GPIO13. C’è anche un esempio con Access Point.
GET/POST con Auth nessuna, Basic o Bearer, codici/esiti/errori e HTTPS con certificati verificati. Le richieste sono sincrone con timeout; risposta massima 16 KB. HTML compone pagine UTF-8 adatte al telefono. JSON legge chiavi/array, itera oggetti anche con analisi annidate e crea oggetti con escape automatico.
Sette esempi e istruzioni in AGGIORNAMENTO_0.4.11_TEST.md. Le librerie sono incluse; non serve ripreparare ESP32 già configurato. Chiudi il vecchio launcher prima di avviare questa versione.
MQTT Client, ThingSpeak e Adafruit IO — 0.4.10 TEST
In Comunicazioni → WiFi - ESP32 → MQTT Client trovi inizializzazione generica, pubblicazione, sottoscrizioni anche a variabili, evento indipendente e stato del client. ThingSpeak e Adafruit IO hanno inizializzazioni guidate e blocchi per i topic; ThingSpeak include il payload per più campi. Un solo broker per progetto. Inizializza dopo WiFi e inserisci le sottoscrizioni nel Setup, dopo il client. Lascia «nuovo messaggio ricevuto» fuori da Setup e Loop. Polling, keepalive e riconnessione sono automatici.
TLS verifica i certificati e richiede orologio sincronizzato. Intervalli prudenziali fra invii: ThingSpeak 15000 ms, Adafruit IO 2100 ms, configurabili rispettando il proprio account. Usa un timer (esempi ogni 20 s); per più campi ThingSpeak usa un solo messaggio, Retain spento. Gli invii troppo ravvicinati o offline sono ignorati con avviso: nessuna coda. «Ultimo invio riuscito» conferma la scrittura QoS 0, non l’archiviazione sul servizio.
Gli esempi contengono credenziali segnaposto. Il progetto serra usa DHT22 GPIO4 e sensori analogici GPIO35/34, ADC1 con WiFi. La libreria è inclusa: chiudi il vecchio launcher e avvia questa versione, senza ripreparare ESP32 se già configurato. Leggi AGGIORNAMENTO_0.4.10_TEST.md.
Telegram HTTPS — 0.4.9 TEST
Ripristinato il collegamento ai certificati prima di ogni richiesta: nel core ESP32 3.3.2 la chiusura HTTPS lo azzerava, causando possibili errori dopo il primo invio. Nuovi messaggi seriali confermano ricezione attiva e arrivo di un messaggio; gli errori distinguono invio/ricezione e riportano i codici HTTPClient/TLS. Chiudi il vecchio launcher, avvia la 0.4.9 TEST, apri il progetto e caricalo nuovamente sulla scheda. Non serve aggiornare strumenti ESP32 già pronti.
Correzione Telegram nel Setup — 0.4.8 TEST
Corretto il falso errore d'ordine che bloccava invia a Chat ID dopo l'inizializzazione del bot nel Setup. Ora vengono accettati anche messaggi seriali intermedi, testo composto e invii dentro un se/ciclo successivo all'inizializzazione. Restano bloccati gli invii effettivamente precedenti. L'evento nuovo messaggio ricevuto resta fuori da Setup e Loop. Questa correzione resta inclusa nella versione corrente. Non serve aggiornare gli strumenti.
Bluetooth ESP32 — novità 0.4.7 TEST
In Comunicazioni > Bluetooth - ESP32 > BT / BTLE trovi due gruppi di dieci blocchi per la radio integrata. I moduli HC-05, HC-08 e DX-BT24 restano nella categoria Bluetooth precedente. Nessun RX/TX esterno né baud. Su UNO/Mega i blocchi integrati sono barrati e non trascinabili.
Inizializza una sola volta nel Setup. BT è server SPP con PIN legacy facoltativo (testo vuoto o 1–16 cifre); BTLE è server UART Nordic, con RX WRITE e TX NOTIFY. Dal telefono serve un'app del tipo corretto; per ricevere risposte BLE abilita le notifiche TX. Nome 1–29 byte. I blocchi consentono testo con CRLF opzionale, byte 0–255, letture testo/numero/ASCII, timeout e stato client.
Leggi una volta il comando e salvalo in una variabile per confrontarlo più volte. Le letture possono attendere il timeout e restituire testo parziale; per CRLF viene eliminato CR prima di LF. BLE mantiene automaticamente code, notifiche e pubblicità nel Loop. Dopo la riconnessione riabilita le notifiche.
Prova gli esempi BT rispondi, BTLE rispondi e rover L298N; il rover usa F/B/L/R/S e arresta entrambi i motori con S o disconnessione. Seriale USB a 115200. I nuovi progetti integrati usano automaticamente la partizione applicazione da 3 MiB su WROOM flash 4 MiB; compilazione e caricamento mantengono la stessa opzione. Non serve aggiornare strumenti già pronti. Dettagli, UUID, code e limiti in AGGIORNAMENTO_0.4.7_TEST.md.
NTP client — versione 0.4.6 TEST
In Comunicazioni > WiFi - ESP32 > NTP client trovi inizializzazione server/GMT, cambio fuso, componenti numerici, testo ora, testo data e disponibilità. Metti una sola inizializzazione direttamente nel Setup, dopo WiFi STA o Multi-AP. Server iniziale pool.ntp.org. Italia: +1 ora solare, +2 ora legale, cambio manuale. Fusi da -12 a +14, anche frazionari.
Il controllo del server avviene automaticamente: prima richiesta nel Setup, poi ogni ora dopo un successo oppure dopo 60 s in caso di errore. Le letture non generano richieste. Risposta UDP attesa fino a 1 s, più eventuale DNS. Prima della sincronizzazione i testi sono vuoti e i numeri zero: usa data e ora disponibili?. Dopo una sincronizzazione l'ora continua anche offline. Nessun GPIO aggiuntivo; valgono i limiti ADC2 del WiFi.
Apri l'esempio NTP ESP32 · data e ora, inserisci SSID/password, verifica e carica; monitor a 115200. L'esempio NTP e Telegram · rispondi con l'ora conserva l'evento Telegram fuori da Setup e Loop. Cambiare il GMT non modifica l'orologio UTC usato da HTTPS. Librerie incluse nello ZIP. Dettagli in AGGIORNAMENTO_0.4.6_TEST.md.
Telegram Bot — versione 0.4.5 TEST
In Comunicazioni > WiFi - ESP32 > Telegram Bot trovi inizializzazione API Token, invio, dati dell'ultimo messaggio, coordinate, presenza posizione ed esito invio. Nuovo messaggio ricevuto è un evento indipendente fuori da Setup e Loop. Nel Setup inizializza dopo WiFi; nel corpo dell'evento puoi rispondere usando il Chat ID ricevuto. Esempi e guida dettagliata inclusi. Solo ESP32: su UNO/Mega i blocchi sono barrati e non trascinabili.
WiFi ESP32 — versione 0.4.4 TEST
Rete singola o Multi-AP nel Setup, riconnessione automatica, stato/IP/RSSI, configurazione statica, access point e mDNS. Reti a 2,4 GHz. ADC2 non disponibile per letture analogiche quando il WiFi è attivo: usa ADC1 GPIO32, 33, 34, 35, 36 o 39. Il solo access point non fornisce Internet.
Progressi e cache — dalla versione 0.4.3 TEST
Durante preparazione, verifica e caricamento compaiono la fase corrente, il tempo trascorso e i messaggi dello strumento. Le percentuali e i byte sono mostrati quando disponibili; la barra indeterminata indica che lo strumento sta lavorando senza fornire una percentuale. La preparazione non ha più il limite totale di 30 minuti. Le compilazioni successive riutilizzano i file disponibili per progetto e scheda. Annullare la scelta della porta mostra «Nessuna porta seriale selezionata.».
Avvio e progetti precedenti
Estrai lo ZIP in una nuova cartella e avvia AVVIA_WINDOWS.bat con Python 3.10+. Chiudi prima il launcher della 0.2 e controlla la scritta VERSIONE 0.4.10 TEST.
Apri un vecchio progetto: il blocco unificato si divide automaticamente in Setup e Loop, conservando blocchi, variabili e valori. Salva con un nome nuovo: i file 0.3 non sono leggibili dalla 0.2. Conserva gli originali.
Variabili
| Tipo | Uso | Codice Arduino |
|---|
| Numero | Misure e conteggi | double (4 byte su UNO) |
| Testo | Messaggi, seriale, LCD/OLED | String, memoria dinamica |
| Booleano | Stati vero/falso e condizioni | bool (1 byte) |
Apri Variabili e usa uno dei tre pulsanti Crea variabile. I menu dei blocchi mostrano il tipo compatibile. Puoi rinominare dal menu della variabile. Per testi modificati spesso usa riserva caratteri per testo una volta nel Setup; evita concatenazioni molto grandi.
Funzioni e liste
Funzioni: definisci una procedura senza ritorno o una funzione con risultato numerico, poi richiamala dalla stessa categoria. Parametri solo numerici in questa versione. Le definizioni restano indipendenti fuori da Setup/Loop.
Liste: usa lo stesso nome sui blocchi della stessa lista. Ogni lista contiene al massimo 16 numeri e usa circa 65 byte su UNO. Indici da zero; letture fuori intervallo restituiscono zero, scritture fuori intervallo sono ignorate. Una lista piena ignora ulteriori aggiunte. Non sono liste dinamiche o di testo.
Timer e sensori
Ogni … millisecondi nel Loop esegue istruzioni periodicamente senza bloccare il resto del programma. Ogni blocco ha un timer indipendente e gestisce il rollover di millis(). MQ-2, MQ-3, MQ-4, MQ-5, MQ-6, MQ-7, MQ-8 e MQ-135: in Sensori > Gas e qualità dell’aria configura separatamente i pin analogico A0 e digitale D0. I moduli usati in laboratorio espongono entrambi i segnali: l’analogico legge 0–1023 o percentuale relativa, il digitale indica il superamento della soglia regolata dal potenziometro (LOW). «Alcol rilevato?» legge D0 dell’MQ-3; «Metano oltre soglia?» legge D0 dell’MQ-4; i blocchi MQ-5 e MQ-6 restituiscono vero quando D0 segnala il superamento della soglia. «CO oltre soglia (indicativo)?», «Idrogeno oltre soglia (indicativo)?» e «Aria oltre soglia (indicativo)?» sono letture sperimentali: non forniscono ppm/AQI calibrati e non sono allarmi di sicurezza. L’MQ-7 richiede un ciclo del riscaldatore a temperatura alta/bassa per la risposta specificata; i blocchi di ZZBlocks leggono le uscite del modulo ma non realizzano tale ciclo. L’MQ-135 risponde a più gas e, secondo Keyestudio, richiede almeno 48 ore di preriscaldamento per raggiungere le condizioni specificate. Le percentuali sono relative alla scala ADC. Lascia scaldare i sensori MQ prima di valutare letture stabili. DHT11/DHT22: leggere ogni 2 secondi e controllare NaN. PIR: configura il pin in Sensori > PIR, poi usa il controllo booleano movimento rilevato; dopo l’accensione attendi 30–60 secondi perché il sensore si stabilizzi. Touch capacitivo Keyestudio KS0031: in Attuatori > Pulsanti > Touch capacitivo configura nel Setup un pin digitale D2–D13; collega S al pin, V a 3,3–5 V e G a GND. Il blocco Touch capacitivo: tocco rilevato? restituisce vero quando l’uscita è HIGH, come nell’esempio Keyestudio. Sensore di fiamma LM393: collega AO a un ingresso analogico, DO a un digitale, V al 5V e G a GND; il valore analogico è disponibile come 0–1023 o percentuale, mentre il blocco digitale restituisce vero quando la fiamma è rilevata (uscita LOW). Regola la soglia col potenziometro. Livello acqua Keyestudio KS0048: in Sensori > Acqua leggi il segnale analogico 0–1023 o la percentuale relativa; il blocco “sopra soglia?” usa inizialmente 700, valore d’esempio della guida Keyestudio. Collega S a un ingresso analogico, + a 5 V e − a GND. La percentuale non è un’altezza in centimetri: dipende dal contatto dell’acqua con le piste del sensore. TEMT6000 KS0098: collega S a un ingresso analogico, V a 5 V e G a GND; scegli il pin nel blocco. La lettura va da 0 (molto buio) a 1023 (molto luminoso); la modalità percentuale è una conversione relativa, non una misura in lux. S12SD UVR GUVA-S12SD: collega S a un ingresso analogico, V a 5 V e G a GND; la lettura è 0–1023 o percentuale relativa, non un indice UV calibrato. Monitor cardiaco Keyestudio KS0015: in Sensori > Salute configura pin analogico, soglia (valore iniziale 8) e verso del picco nel Setup. Collega S al pin scelto, + a 5 V e − a GND. Il blocco aggiorna stima battito va messo direttamente nel Loop, fuori da timer lenti e senza delay lunghi; campiona ogni 20 ms, filtra il segnale e calcola una media degli ultimi quattro intervalli validi (300–2000 ms). Il blocco BPM restituisce 0 dopo 2,5 s senza rilevamenti. Regola soglia e verso osservando prima il segnale grezzo; il risultato è una stima sperimentale e non è uno strumento medico. Keyestudio campiona ogni 20 ms nel proprio esempio. Sensore line tracking Keyestudio KS0050: in Sensori > Robotica configura il pin digitale e il livello HIGH/LOW che identifica la linea nera; i blocchi consentono anche di leggere il segnale grezzo. Collega S al pin digitale, V a 5 V e G a GND. L’uscita è TTL, la sensibilità si regola col potenziometro; il nero di solito produce HIGH. Microfono analogico Keyestudio KS0035: in Sensori > Robotica configura l’ingresso analogico A0–A5. Puoi leggere il segnale grezzo 0–1023 oppure l’ampiezza picco-picco misurata su 5–500 ms. La seconda lettura è un indice relativo, non una misura in decibel; il potenziometro regola il guadagno. Il modulo ha uscita analogica S, alimentazione 3,3–5 V e GND. Sensore vapore KS0203: in Sensori > Acqua scegli A0–A5 e leggi il valore 0–1023 oppure una percentuale relativa. Collega S al pin analogico, + a 3,3 o 5 V e − a GND. Il valore aumenta con l’umidità sulla superficie; non è una misura calibrata. La parte dei collegamenti non è impermeabile: non immergere il modulo. Potenziometro: in Sensori > Potenziometro scegli A0–A5 e leggi 0–1023 oppure una percentuale relativa. Collega il centrale al pin analogico e i due terminali esterni a 5 V e GND; non serve configurazione nel Setup. HC-SR04: TRIG ed ECHO distinti, -1 se manca l’eco. BH1750: SDA A4, SCL A5, indirizzo 0x23 o 0x5C e alimentazione conforme al modulo.
Polveri sottili GP2Y1014AU: in Sensori > Gas e qualità dell’aria > Polveri sottili configura Vo analogico e LED driver digitale. Nel Loop usa prima acquisisci campione, poi leggi ADC, tensione o densità stimata. Sequenza LED: LOW per 280 µs, campionamento, attesa di 40 µs, HIGH e attesa di 9680 µs. La stima usa 170 × tensione − 0,1; non è una misura PM2.5 certificata. Nel progetto LCD allegato la formula 0,17 × tensione è mille volte più piccola del codice seriale: ZZBlocks usa 170 × V.
SDS011: PM2.5 e PM10
In Sensori > Gas e qualità dell’aria > Particolato PM2.5 / PM10, inserisci SDS011 inizializza nel Setup e SDS011 aggiorna lettura nel Loop. I blocchi PM2.5 e PM10 restituiscono l’ultima lettura valida in µg/m³; è arrivata una nuova lettura? diventa vero quando viene ricevuto un pacchetto valido. Il sensore trasmette normalmente circa una volta al secondo. È incluso un esempio che stampa entrambe le misure sulla seriale. Per Arduino UNO il sensore usa SoftwareSerial: non abbinarlo a GPS, Bluetooth o un’altra seriale software nello stesso sketch. Il pin TXD del sensore (logica 3,3 V) va al pin RX Arduino; tra il TX Arduino a 5 V e RXD del sensore usa un partitore o un convertitore di livello. Alimenta VCC con 5 V stabili adeguati (datasheet: potenza superiore a 1 W), collega GND in comune e attendi la prima misura dopo l’avvio. I valori sono concentrazioni PM, non un indice AQI.
Attuatori e conflitti timer
In Attuatori > Uscite trovi il blocco LED pin … stato ON/OFF. Scegli il pin dal menu; ZZBlocks lo configura automaticamente come uscita nel Setup e lo imposta inizialmente su OFF. Per un LED esterno usa una resistenza in serie. Il blocco LED PWM regola la luminosità con un numero, una variabile o un’espressione da 0 (spento) a 255 (massima luminosità). Scegli solo i pin PWM D3, D5, D6, D9, D10 o D11; il pin viene inizializzato nel Setup e il valore limitato automaticamente a 0–255. Su UNO, D3 e D11 condividono Timer2 con Tone e IRremote: ZZBlocks segnala i conflitti.
| Funzione | Risorsa UNO | Conflitto segnalato |
|---|
| Servo | Timer1 | PWM D9/D10 |
| Tone e IRremote | Timer2 | Tone con IR, PWM D3/D11 |
| RGB KS0183 PWM | D9/D10/D11 | Servo, Tone/IR |
In Attuatori > Pulsanti, trascina il controllo Pulsante pin … premuto/rilasciato dentro una condizione se. Scegli D2–D13 dal menu. Il blocco legge lo stato stabile (antirimbalzo 50 ms) e configura il pin come INPUT, come nell’esempio SteaMakers. Per un modulo Keyestudio collega S al pin scelto, V a 5V e G a GND; usa Inverti se il modulo segnala la pressione con livello LOW. Il LED resta acceso finché la condizione premuto è vera. In Attuatori > Semaforo, inserisci imposta pin nel Setup e scegli tre pin digitali distinti per rosso, giallo e verde. Nel Loop usa semaforo colore acceso/spento per comandare ciascun LED. In Attuatori > LED RGB, collega V al 5V: il modulo KS0522 non ha un pin GND separato e G significa verde. Nel Setup configura tre pin PWM distinti (predefiniti Keyestudio: rosso D10, verde D9, blu D11) e seleziona anodo comune o catodo comune secondo il componente. Nel Loop imposta i valori R/G/B tra 0 e 255 e scegli acceso/spento. ZZBlocks adatta automaticamente i livelli PWM al tipo selezionato; 255 indica luminosità massima e 0 canale spento. Tone/IR e servo possono essere incompatibili con alcuni pin PWM e ZZBlocks segnala i conflitti noti. Servo e motori richiedono alimentazione adeguata e massa comune. In Attuatori > Motori > L298N configura nel Setup i pin ENA, IN1, IN2, IN3, IN4 ed ENB; i pin ENA/ENB devono essere PWM e i sei pin distinti (predefiniti: ENA D9, IN1 D5, IN2 D6, IN3 D7, IN4 D8, ENB D10). Nel Loop seleziona motore A o B, avanti/indietro e velocità 0–255; il blocco ferma motore disabilita il canale e lo lascia arrestare per inerzia. Per regolare la velocità rimuovi i jumper ENA/ENB. Alimenta i motori con una sorgente esterna adatta e collega la massa a GND Arduino. Il blocco motore usa un ponte H con IN1, IN2 ed enable PWM, tre pin distinti. Velocità -255…255; zero arresta per inerzia.
I pin configurabili staticamente sono selezionabili da menu: D0–D13 e A0–A5 (questi ultimi possono essere usati anche come digitali D14–D19). I blocchi che ricevono il numero del pin da una variabile mantengono invece l’ingresso numerico.
Display e seriale
Configura LCD/OLED/seriale software direttamente nel Setup, prima dell'uso. OLED mantiene il buffer a pagine da 128 byte. Dentro la schermata metti solo disegni e valori salvati; sensori, casualità, seriale ed effetti collaterali vanno prima del disegno.
La seriale conserva stampa, formati, ricezione testo/byte, timeout, find/findUntil, flush e invio dal monitor. Il monitor aggiorna la schermata a intervalli regolari e conserva solo una finestra degli ultimi messaggi, così un flusso continuo non appesantisce la pagina. Per gli sketch, limita comunque la frequenza di stampa con il blocco ogni … millisecondi; a 9600 baud la seriale trasmette circa 960 caratteri al secondo. D0/D1 sono usati dalla seriale hardware. All’apertura compare Connessione stabilita!; alla chiusura o allo scollegamento Connessione terminata!. Per il monitor usa Chrome o Edge.
Guida precedente: KS0183, pin e display (All'avvio = Setup; Ripeti sempre = Loop).
HC-05: in Comunicazioni > Bluetooth > HC-05 configura nel Setup RX, TX, baud (9600 predefinito) e timeout; nel Loop controlla i byte disponibili, leggi byte o testo e invia testo, righe o byte. RX Arduino va al TXD del modulo e TX Arduino al RXD; i pin predefiniti sono D2/D3. Il blocco facoltativo STATE restituisce HIGH se connesso. Su UNO usa un solo ricevitore SoftwareSerial alla volta; il generatore segnala l’uso simultaneo con GPS o seriale software.
HC-08 BLE: in Comunicazioni > Bluetooth > HC-08 BLE trovi gli stessi comandi UART: inizializzazione nel Setup, lettura di byte o testo, invio di testo/riga/byte e lettura facoltativa del pin STATE. La comunicazione tra Arduino e HC-08 avviene via seriale; sul telefono usa un’app BLE compatibile, come Bluetooth Electronics. Collega RX Arduino a TXD HC-08 e TX Arduino a RXD HC-08. Su UNO non usare contemporaneamente HC-08 e HC-05, GPS o un’altra seriale software.
Testo: il blocco rimuovi spazi iniziali e finali dal testo modifica la variabile String selezionata e rimuove anche tab e ritorni a capo ai bordi. È utile dopo la ricezione di un comando seriale o Bluetooth. DX-BT24 BLE 5.1: in Comunicazioni > Bluetooth > DX-BT24 BLE 5.1 usa i blocchi UART per inizializzare nel Setup, ricevere byte/testo e inviare testo, righe o byte. Il baud predefinito è 9600. Collega RX Arduino al TX del DX-BT24 e TX Arduino al RX del modulo; usa un’app BLE compatibile sul telefono. Su UNO il DX-BT24 condivide il limite SoftwareSerial: non usarlo insieme a HC-05, HC-08, GPS o altra seriale software.
Orologio DS3231, RAM, EEPROM e I²C
In Periferiche > Orologio, inserisci inizializza DS3231 una sola volta nel Setup, poi usa presenza, lettura di secondi/minuti/ore/giorno della settimana/giorno/mese/anno, temperatura interna o impostazione di data e ora. Su Arduino UNO collega SDA ad A4, SCL ad A5, VCC all’alimentazione e GND a GND. L’indirizzo è 0x68. I blocchi usano Wire senza richiedere una libreria aggiuntiva. Se imposti l’ora, metti i blocchi imposta ora e imposta data nel Setup e rimuovili o disattivali dopo il caricamento, così l’ora non viene riscritta a ogni riavvio.
Più blocchi disponibili nell'editor non occupano RAM sulla scheda: solo quelli usati entrano nello sketch. Variabili, liste, String e periferiche realmente usate consumano memoria. L'occupazione mostrata da Verifica non comprende tutta la memoria dinamica delle String.
EEPROM aggiorna solo se il byte cambia: non scrivere in continuazione nel Loop. I²C generico richiede avvia bus nel Setup; A4/A5 devono restare dedicati al bus. AREF esterno: non applicare tensione ad AREF mentre è selezionato DEFAULT/INTERNAL.
File CSV su scheda SD
Usa Scheda SD crea intestazione CSV nel Setup e lascia disattivata sovrascrivi se esiste: crea il file e l'intestazione solo la prima volta, mantenendo i dati quando Arduino viene riavviato. Spuntando la casella, il file viene azzerato e l'intestazione riscritta ogni volta che il blocco viene eseguito, quindi usala nel Setup. Nel Loop usa aggiungi riga CSV per accodare i dati. Il blocco separato elimina file cancella il file solo quando vuoi tu.
Sequenza consigliata di test
- LED lampeggiante: verifica, carica e sposta Setup/Loop.
- Variabili numeriche, testo e booleane: monitor 9600, conteggio e alternanza 0/1.
- Salva .zzblocks, Nuovo, riapri e confronta i blocchi.
- Due timer senza delay: LED a 500 ms e messaggio a 2 s.
- Lista numerica e media: risultato atteso 20.
- Funzione personalizzata: lampeggio tramite funzione.
- Importa i tuoi progetti LCD/OLED/KS0183 della 0.2.
- Prova singolarmente i nuovi sensori e attuatori.
Per segnalare errori allega il progetto .zzblocks, i messaggi completi di Verifica e i componenti/pin utilizzati.
Classi didattiche GP2Y1014AU
Il blocco GP2Y classe qualità dell’aria, in Sensori > Gas e qualità dell’aria > Polveri sottili, restituisce una stringa: Molto bassa, Bassa, Moderata, Alta o Molto alta. Collega il blocco «densità stimata» al valore e modifica le quattro soglie, mostrate una per riga, collegando numeri o variabili. I valori iniziali (150, 250, 400 e 600 µg/m³) sono solo sperimentali e vengono ordinati automaticamente. La densità GP2Y non è calibrata né certificata: usa queste classi per confronti didattici sul tuo esemplare, non come indice ufficiale o allarme.
MQ-2: stima didattica in ppm
In Sensori > Gas e qualità dell’aria > MQ-2 trovi due nuovi blocchi. Configura prima il pin analogico nel Setup. In aria pulita, dopo aver lasciato scaldare e stabilizzare il sensore, usa MQ-2 R0 stimato in aria pulita una sola volta e conserva il risultato in una variabile numerica. Il blocco fa la media di 20 letture e stima R0 assumendo Rs/R0=9,8 in aria pulita, come nel tutorial STEMpedia. Per il calcolo ppm seleziona il gas, collega R0, imposta RL in ohm e collega temperatura e umidità dai blocchi o dalle variabili di un altro sensore. Il modello presume ADC e alimentazione a 5 V; il grafico di compensazione ambiente è una lettura approssimata della curva H₂ del datasheet e vale nel campo mostrato. Anche i profili dei gas sono interpolazioni delle curve tipiche: il modulo è sensibile a miscele e non distingue il gas. Il risultato non è certificato né adatto ad allarmi di sicurezza. RL è la resistenza di carico del circuito analogico e non il trimmer della soglia D0; controlla il valore del tuo modulo. Il blocco restituisce 0 sotto 200 ppm, limita a 10000 ppm sopra la curva e restituisce -1 per dati non validi.
NeoPixel RGB
In Visualizzazione > NeoPixel RGB, inserisci una sola inizializzazione nel Setup e seleziona il pin dati, il numero di LED, l’ordine RGB e la frequenza. Nel Loop imposta il colore di un LED con indice da 0 a N−1 oppure riempi la striscia, poi usa “mostra colori”. Per assegnare rapidamente un colore predefinito usa “NeoPixel imposta LED # colore”: clicca il campione e seleziona una delle 70 caselle della tavolozza. La scelta resta salvata nel progetto. La luminosità si regola da 0 a 255. Il buffer usa circa 3 byte per LED: su Arduino UNO mantieni corto il numero di pixel. Per strisce o matrici estese usa un’alimentazione adeguata separata, con massa in comune con Arduino; non alimentarle dal pin 5 V della scheda.