Richiesta informazione riguardo a "prima" board

Ciao tutti
Torno dopo tempo immemore con una domanda. Tra una cosa e l'altra non mi sono mai messo a imparare Arduino seriamente. Ora volevo rimettermici. Quello che vorrei è avere una board con un qualche sistema per fare debugging con esecuzione istruzioni passo passo, ma ai tempi che ci guardai (2019) c'era bisogno di un costosissimo jtag esterno.
Ora che sono passati 5 anni c'è qualcosa che potrebbe fare al caso mio?
Inoltre ho bisogno anche di fare abbastanza in fretta un sistema che mi mandi una mail (tramite wifi) dopo un tot di tempo che è alimentato. C'è una soluzione all in one economica su cui poter sviluppare tale sistema?

Ti consiglio di iniziare con uno degli emulatori Arduino che ci sono in rete per iniziare a sperimentare e fare pratica (ma non solo, è utile anche per "provare" circuiti e codice a patto che non ci siano componenti particolari da dover usare, non disponibili nell'emulatore).
Ad esempio WokWi (lo preferisco) o Tinkercad circuits (anni fa lo preferivo, ma da quando l'ha preso Autodesk è peggiorato...).

Allora, hai varie possibili soluzioni ...

  1. La soluzione più professionale: utilizzare un debugger JTAG senza spendere un occhio della testa ... Segger fa una versione che è riservata per studenti, educatori, ecc. e che, ovviamente, NON deve essere utilizzata per fini commerciali ... costa attorno ai 50€, trovi tutti i dettagli QUI e la puoi acquistare presso i distributori (es. io l'ho preso da Mouser). Ovviamente devi avere una scheda interfacciabile con JTAG.

  2. soluzione fornita dal nuovo IDE: il nuovo IDE (versione 2.x) supporta su molte schede (devi verificare quali sono supportate e quale è più adatta alle tue esigenze) il "debug" via collegamento USB/seriale standard. E' sicuramente la soluzione più economica anche se, sicuramente, più lenta della soluzione con l'utilizzo di un vero "debugger".

  3. soluzione software: Esiste un prodotto, Visual Micro, che un tempo utilizzavo ... è un IDE con debugger fatto molto bene, ma, purtroppo per me, gira solo sotto Window (ed io lavoro con macOS). Prova a dargli un'occhiata se può fare al caso tuo.

Guglielmo

Innanzitutto grazie

Valuterò la prima opzione perchè alla fine la terza da quello che ho capito è comunque a pagamento e comunque mi lascerebbe un sistema leggermente monco.
Da quello che ho capito per le schede devo pescare da qua

Quello che mi lascia un po' così è non avere una scheda leggermente più completa per poi trasferire il tutto su cose più semplici, ma forse mi conviene prendere qualcosa di standard (tipo lo zero o qualcosa con una board più compatta), aggiungerci lo shield che mi serve, progettare e poi alla peggio usare una scheda più "economica" per trasferire il progetto di base e riutilizzare quella pronta per il debugging per un altro progetto

Non sò a cosa ti serve il debugger, basta che metti un print sulla seriale nel punto in cui interessa la data variabile e poi li commenti quando non ti servono più.
Con ESP32 hai già il wifi/BT integrati , I2C e una seconda seriale al prezzo di qualche Euro...vedi te

:slight_smile: ... magari fosse così semplice ... in realtà, quando i programmi diventano complessi, uno vero strumento di "debug" che ti permette di seguire "passo-passo" l'esecuzione del codice, guardando il precorso che fa, analizzando le variabili ed inserendo dei "break-point" dove occorre ... è fondamentale.

In tutti gli altri casi, comunque aiuta molto :wink:

Guglielmo

Verissimo. Però se l'OP ha detto (cito) "tra una cosa e l'altra non mi sono mai messo a imparare Arduino seriamente" non penso che abbia a che fare con programmi talmente complessi da richiedere un vero strumento di debug hardware.

Le Serial.println() oppure anche gli emulatori che avevo suggerito possono fare al caso suo, almeno fino a che non avrà fatto talmente pratica da volersi impegnare in un progetto da 12.000 righe di codice e 9 classi...:wink:

Potresti valutare una dev-board STM32 con debugger hardware STLink v2 incluso (come ad esempio quelle della famiglia Nucleo-64).

Con PlatformIO + VSCode come sistema di sviluppo "Arduino like" ci vogliono 5 minuti per configurare il debug hardware usando l'interfaccia SWD del microcontrollore.

In realtà l'esecuzione step-by-step o una watch table sono utilissimi proprio in questi casi perché hai modo di vedere in tempo reale come "reagisce" il microcontrollore ai diversi input.

Con un IDE completo e dotato di tutti gli strumenti necessari (e non castrato come Arduino IDE) e seguendo il flusso di esecuzione degli algoritmi che hai implementato, gli errori che tipicamente un principiante può fare si palesano in modo immediato e chiaro.

Ma i sistemi poi risultano poi compatibili con l’ecosistema arduino o rimangono da programmare con il vecchio C per microcontrollori?

Ormai praticamente quasi ogni microcontrollore che esce sul mercato è compatibile con il framework Arduino perché è un plus che permette di incrementare le vendite.

Comunque si, STM32 è perfettamente compatibile con Arduino. Le nucleo poi hanno anche lo stesso fattore di forma della classica Arduino Uno.

Solo una precisazione ... per STM32 e schede Nucleo, c'è un forum apposta di supporto e NON si usa questo forum.

Guglielmo

Ma se il problema è di tipo software e relativo al framework Arduino, che importanza ha la scheda che stai usando?

Lo stesso discorso allora si dovrebbe applicare ad ogni richiesta che riguarda gli ESP32 (che ormai saranno il 30% del totale in questo forum, soprattutto nella sezione internazionale) visto che anche per quell'hardware c'è il forum ufficiale Espressif.

Non lo metto in dubbio (e non ho mai detto il contrario).
Dico solo che se uno è (quasi) agli "inizi" con Arduino, per capire fa prima ad iniziare usando un emulatore e poi quando realizza fisicamente un prototipo fare Serial.println() per capire dove c'è qualcosa che non va o comunque per capire meglio come funzionano certe cose (e gli emulatori come wokwi consentono debug e passo-passo). Io tutto a costo zero.

... per le STM32 c'è il forum di supporto apposta ... e sempre stato così.

Guglielmo

Ripeto, c'è il forum di supporto anche per ESP32 con tanto di sezione Arduino, eppure questa questione non viene mai sollevata.

ESP32 è ampiamente usato su moltissime schede Arduino originali in varie forme ...
... STM è utilizzato SOLO sulla Giga R1 che ha le sue sezioni di supporto e su nessun'altra scheda originale Arduino.

Al momento le cose stanno così, in futuro magari cambiano (... anche se ho qualche dubbio ... visto che Renesas è uno degli azionisti di maggioranza :wink:).

E comunque siamo off-topic ... quindi chiudiamola qui ... grazie. :slight_smile:

Guglielmo