Cos’è la Floppy Ant Controller?
La Floppy Ant Controller (abbreviato FAC) è una scheda di controllo pensata per il controllo di piccoli robot da combattimento. Integra driver per motori DC e controllo di servomotori e ESC, con porte di espansione per letture analogiche e digitali. L’esigenza di questa scheda di controllo è nata dopo la prima esperienza di costruzione di un robot da combattimento durante la Fiera dell’Innovazione di Sovramonte, nella quale si è svolto una Mini RoboWar con robot da 300g. Il robot della mia squadra dopo il primo colpo ha avuto dei problemi all’elettronica delle ruote, quindi per risolvere ho realizzato questa scheda multifunzione, sperando che poi potesse tornare utile non solo alla mia squadra ma anche ad altri costruttori di robot.
Questo è un progetto completamente Open-Source e tutti i file li trovate in questa pagina GitHub.
Specifiche (versione 1.2)
Come cervello ho optato per un STM32F070CBT6, che mette a disposizione molti timer per la generazione di segnali PWM, 128Kbyte di FLASH e cosa più importante integra un modulo USB per la comunicazione diretta con il PC.
Le sue dimensioni ridotte, di soli 23*33mm, e un peso di soli 9g la rende perfetta per essere integrata nei robot da combattimento da 150g.
La porta USB-C permette di aggiornare il firmware anche alle persone meno esperte, così da avere sempre l’ultima versione.
Inoltre è possibile collegare la FAC al PC e tramite il tool dedicato o un semplice monitor seriale si può modificare alcune impostazioni poi salvate in EEPROM.
Con tre driver DRV8838 per motori DC dalle dimensioni ridottissime, si possono comandare carichi con una tensione massima di 12V, fino ad una corrente di 2A. Ottimi per la gestione dei motori N20 solitamente usati per le ruote dei robot.
Funzionalità
Ricevente e sistema radio
La Floppy Ant Controller è stata pensata per essere utilizzata con dei ricevitori FS2A, sia la versione che supporta solo uscite PWM sia la versione PPM. Con la seconda, si può gestire fino a 8 canali.
La scelta di questo tipo di ricevente è data dal fatto che un radiocomando Fly Sky i6, oppure i4 sono diventati molto economici (35/50€), quindi ottimi per chi vuole iniziare con questo hobby. Questi sistemi radio si basano sul protocollo ADHDS a 2.4GHz, perfettamente compatibili con i FS2A che sono anch’essi molto economici e con dimensioni molto ridotte, quindi perfetti per questa applicazione.
Il firmware scritto da me gestisce entrambe le modulazioni (PPM e PWM). Se viene utilizzato in modalità PWM i canali sono limitati a 4, se in modalità PPM si arriva fino ad 8. Nulla vieta di aggiungere al codice il supporto per altri protocolli molto usati come ExpressLRS o altri.
Mix dei canali e protezioni integrate nella scheda
La FAC avendo un cervello (un microcontrollore STM32) permette di effettuare calcoli del mix dei canali ricevuti dal sistema radio, e altre operazioni arbitrarie come la lettura della tensione della batteria.
Ogni operazione e calcolo può essere integrato nel codice della FAC, quindi si può personalizzare il suo comportamento in base alle proprie esigenze.
Tank mix
Per la gestione delle ruote, nel codice è stato aggiunto il Tank mix. Come il nome fa intuire, la scheda gestisce la velocità di due motori DC con la stessa logica dei cingoli di un carro armato.
La funzione che gestisce il mixing dei motori delle ruote, come ingresso necessita solo la velocità e la direzione (sterzo).
Con queste due informazioni calcola la velocità di ogni singola ruota, così facendo viene poi impostato correttamente la direzione della ruota e il duty cycle del segnale, ovvero la velocità.
Se questa funzionalità non servisse si può sempre disabilitare dalle impostazioni.
Protezione batteria scarica
La scheda ha integrato una lettura di tensione della batteria. Il firmware integra due protezioni che si attivano a due livelli di batteria differenti (impostabili):
- La prima è quella che si attiva ad un livello di tensione solitamente più alto e dopo 10 secondi (continui) che la tensione della batteria è sotto a questa soglia, la velocità dell’arma viene limitata così da poter permettere di finire la battaglia con l’arma ancora funzionante e ci avverte che la batteria sta per esaurire la carica.
- La seconda scatta anch’essa dopo 10 secondi continui che la tensione della batteria è sotto una certa soglia. Questa volta, la soglia è molto bassa e disabilita completamente il robot, questo avviene per evitare di danneggiare irreparabilmente la batteria.
Arming del robot
La FAC per ragioni di sicurezza ha la funzione di arming del robot. Questa funzione disattiva tutti i sistemi all’avvio della scheda. Quindi sia i driver per i motori DC che le uscite dei servomotori sono disattivate.
Ci sono due modi per attivare il robot, o si assegna un canale del ricevitore come arming, oppure se non se ne hanno a disposizione la scheda si arma in automatico solo quando gli stick del telecomando sono alla posizione di default, quindi quando il robot sarebbe fermo e con l’arma disattivata.
FAC Settings Tool
La Floppy Ant Controller permette di cambiare alcune sue impostazioni senza dover modificare una riga di codice. Questo è possibile grazie alla presenza della porta USB che una volta collegata al PC o allo smartphone si possono inviare dei comandi che corrispondono a delle impostazioni.
Un esempio di comando è: TH2CH>2, che vuol dire “imposta il canale 2 del ricevitore come acceleratore (throttle)”, ecco qui sotto una lista dei comandi disponibili:
COMANDO (con valori default) | DESCRIZIONE |
---|---|
TH2CH>2 | Assegnazione del canale all’acceleratore |
ST2CH>4 | Assegnazione del canale allo sterzo |
WP2CH>3 | Assegnazione del canale all’arma |
S12CH>6 | Assegnazione del canale all’uscita del servo 1 |
S22CH>1 | Assegnazione del canale all’uscita del servo 2 |
ARM2CH>5 | Assegnazione del canale di arming (attivazione) |
M1REV>1 | Inverte il motore 1 |
M2REV>1 | Inverte il motore 2 |
M3REV>0 | Inverte il motore 3 |
S1REV>0 | Inverte il servo 1 |
S2REV>1 | Inverte il servo 2 |
M1ASS>ML | Assegna il motore sinistro al motore 1 |
M2ASS>MR | Assegna il motore destro al motore 2 |
M3ASS>WP | Assegna il motore dell’arma al motore 3 |
WPDD>0 | L’arma ha due direzioni non solo una (motore DC) |
TNKON>1 | Attivato il tank mix |
NODISARM>0 | Nessun canale di disarmo (disarmo automatico attivo) |
VLIM>28 (= 2.8V) | Tensione di limitazione velocità arma (tensione per cella) |
VCUTOFF>35 (= 3.5V) | Tensione di disattivazione totale del robot (tensione per cella) |
RXPWM>0 | Segnale del ricevitore in PWM |
Possiamo inviare questi comandi in con due modalità:
- Utilizzando un semplice terminale come quello di Arduino IDE o Termite, altrimenti utilizzando un’app per telefono come Serial USB Terminal che permette di salvare dei comandi di default
- Oppure tramite il tool dedicato realizzato da me: FAC Settings Tool (disponibile compilato solo per windows, c’è il programma python)
Ai principianti, consiglio l’utilizzo del FAC Settings Tools, che mette a disposizione una semplice ed intuitiva interfaccia grafica per cambiare tutte le impostazioni.
Per utilizzarlo è sufficiente collegare la scheda al PC, poi:
- Selezionare la porta corretta e cliccare Connect
- Dopo che la scheda si è connessa vengono caricate in automatico le impostazioni
- Si fanno le modifiche in base alle proprie esigenze
- Se non è chiara la funzione, su alcune righe fermandosi al di sopra del nome compare una breve descrizione
- Una volta finita la modifica basta premere il pulsante Save on FAC e attendere il completamento del salvataggio
- Dopo di che si può disconnettere la scheda dal PC
Se necessario è possibile esportare ed importare le impostazioni correnti in un file .CSV, così si possono condividere e salvare le modifiche nel proprio PC.
Conclusioni
Questa versione della Floppy Ant Controller ha molte cose da migliorare come l’aggiunta della memoria EEPROM e da sistemare qualche errore realizzato durante la stesura dello schematico.
Rimane comunque un’ottima scheda pur essendo una prima versione ancora un po’ “cruda”, è stata ottima per le prime prove per la realizzazione di una scheda in futuro più completa e con di tutte le funzionalità elencate in questo articolo.
Ho già sistemato alcuni degli errori trovati durante i test su questa versione, in più sono stati aggiunti dei componenti utili per aumentare l’affidabilità della scheda e renderla più ottimizzata.
Senza l’aiuto di PCBWay che ha gentilmente offerto i PCB e un servizio super veloce ed efficiente, il tempo per la realizzazione di queste schede si sarebbe allungato, quindi grazie!
Il servizio che offrono è come sempre molto buono, le schede sono risultate ottime. In più quando si caricano i file nel carrello, i loro ingegneri controllano subito se ci sono errori o problematiche che potrebbero influire la corretta riuscita della produzione. Questo servizio aiuta i maker come me a risparmiare soldi in quanto chiedono di risolvere il problema ancora prima di procedere con il pagamento.
Come potete vedere i PCB sono molto buoni, ho dovuto scegliere il soldermusk di colore blu prechè altri colori come il nero non supportava i solderbridge con dimensione 0.2mm, ma per fortuna mi hanno scritto per notificare il “problema” e quindi ho potuto scegliere un altro colore che supportava questa spaziatura.
Spero che questo articolo vi sia tornato utile, oppure vi sia stato d’ispirazione per dei vostri progetti. Grazie e alla prossima!