ZZBlocks 0.3 — aggiornamento 13 ottobre 2026

LED Matrix 8×8: il blocco di inizializzazione permette di scegliere V1 o V2
e genera rispettivamente setType(0) o setType(1), come nel codice Keyestudio.
Il menu della toolbox imposta correttamente V2 come valore iniziale; corretta
anche la configurazione che impediva di mostrare i blocchi della categoria.
Rimosse le correzioni manuali delle coordinate che non corrispondevano alla
prova hardware. Il blocco di rotazione resta disponibile per adattare
l’orientamento dell’immagine. Il launcher sincronizza le librerie incluse
all’avvio e con «Prepara / aggiorna strumenti», anche se la cartella esiste
già. Test automatici per entrambe le versioni superati; serve prova fisica.

Attuatori > Relè: aggiunti i blocchi per il modulo relè Keyestudio 5 V. Configura un pin digitale, imposta lo stato acceso/spento; il modulo è attivo HIGH e parte spento nel Setup. Tooltip con pin di segnale, alimentazione e contatti COM/NO/NC. Test automatico e sintassi C++ superati; hardware non provato.

Sensori > Robotica > Luce e prossimità > TMD27713: aggiunti i blocchi per inizializzare via I²C il sensore, leggere la luce ambientale in lux, leggere il valore grezzo di prossimità e confrontarlo con una soglia regolabile. Riutilizza la libreria APDS9930 già inclusa nel pacchetto. Il modulo richiede 3,3 V; su Arduino UNO usa SDA=A4 e SCL=A5. TMD27713 e APDS-9930 non si possono inizializzare insieme nello stesso progetto perché condividono l’indirizzo I²C 0x39. Test automatici e sintassi C++ superati; prova hardware non eseguita.

Sensori > Robotica > Accelerazione e inclinazione: aggiunto il modulo MMA8452Q con configurazione dell’indirizzo I²C (0x1C/0x1D), del fondo scala (±2/±4/±8 g) e della frequenza di campionamento (da 1,56 a 800 Hz). I blocchi aggiornano i campioni nel Loop, leggono accelerazione X/Y/Z in g o i valori digitali grezzi e restituiscono/confrontano l’orientamento verticale, orizzontale o piatto/incerto. Libreria SparkFun inclusa. Test dei blocchi, validazioni Setup/Loop e compilazione sintattica C++ superati; prova hardware non eseguita.

Controllo generale del progetto (13 ottobre 2026)
- Verifica approfondita dei blocchi: 36 test mirati superati.
- Generazione codice e salvataggio/riapertura: 1.128 combinazioni; 858
  combinazioni incomplete o con pin in conflitto sono state bloccate dalla
  validazione, 270 configurazioni valide generate e confrontate dopo roundtrip.
- Risolto un caso in cui i blocchi di lettura del rilevatore di linea e del
  microfono potevano generare codice con variabili pin non dichiarate se usati
  senza il rispettivo blocco di configurazione nel Setup. Ora la verifica
  segnala la configurazione mancante prima di esportare/caricare.
- Sintassi C++: 668 programmi verificati con API Arduino sostitutive, zero errori.
- DOM simulato: 16 esempi, 372 tipi di blocco, nessun errore di caricamento.
- 36 regressioni con campi compilati, roundtrip dei progetti 0.2, 7 guardrail,
  4 verifiche GPS, sincronizzazione delle librerie e sintassi Python del launcher
  superati.
- Il compilatore Arduino CLI incluso termina con segmentation fault in questo
  ambiente; non è stato possibile certificare la compilazione AVR reale qui.
  Restano da eseguire su Windows la compilazione con Arduino CLI e le prove
  fisiche con UNO, sensori, attuatori e periferiche.

Nuovo supporto Keyestudio KS0357 LED Matrix 8×16
- Aggiunta in Visualizzazione la sottocategoria LED Matrix 8×16 con blocchi
  inizializza SDA/SCL, luminosità 0–7, cancella, punto e disegno interattivo
  degli 8×16 LED.
- Il codice usa il protocollo a due fili software documentato per AIP1640,
  senza librerie aggiuntive. Pin predefiniti per UNO: SDA=A4, SCL=A5.
- La mappatura logica mette (0,0) in alto a sinistra seguendo l'ordine dati
  documentato; la prova sul pannello reale resta da fare.
- Verifiche: test del KS0357, guardia per inizializzazione assente, pin uguali,
  conflitto con periferiche I²C/LED Matrix 8×8, roundtrip progetto, test DOM,
  compilazione C++ simulata e tutti i 37 test mirati superati.
