Telecomandare macchinina rc

Ciao a tutti,
ho intenzione di cambiare l'elettronica di una macchinina radiocomandata mettendoci un esp32 e di controllarla con un altro esp32. Sono indeciso su come fare comunicare i due microcontrollori. Non ho grandi esigenze, mi basterebbe un raggio di un centinaio di metri e che non ciucci troppa energia. Ho visto che ci sono diverse opzioni:
-usare wifi direct con protocollo esp-now
-usare Bluetooth low Energy
-usare due moduli HC-12 (mi sembra la più semplice per quanto riguarda il codice)

In base alla vostra esperienza voi cosa fareste?
L'obiettivo è avere una macchinina che possa essere comandata in un raggio di 100-150 metri (in futuro ci monterò altra roba, ma per adesso l'obiettivo è avere una macchina con un cervello riprogrammabile che funge anche da semplice macchinina radiocomandata)

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Ok, mi sono presentato in quel thread e ho letto il regolamento.

Molto tempo fa (all'uscita sul mercato dei primi moduli RX-TX da due soldi) ho fatto un progetto del genere, ma me lo ricordo poco. Ricordo solo che mi sono dovuto reinventare il protocollo di trasmissione, perché non avevo idea di come agiva l'originale. Inoltre, oltre a motore (controllo velocità avanti/indietro) e sterzo (controllo sterzata destra/sinistra), volevo aggiungere anche luci di posizione, fari, retromarcia, frecce, doppie frecce e stop, che nell'originale non c'erano.

Se ho capito bene tu vorresti sostituire SOLO la parte trasmissione/ricezione con ESP32 o HC12, esatto?

Per quanto ne so il TX è composto da due sezioni: la parte di codifica dei comandi (avanti/indietro, destra/sinistra) e la parte di trasmissione vera e propria (27MHz? 40MHz? 2,4GHz?). Altrettanto per quanto riguarda il RX sulla macchinina (parte ricevente vera e propria e parte di decodifica del segnale)..

Se riesci a identificare il confine fra le due sezioni puoi fare il tentativo di sostituire la parte TX/RX con i moduli, ma dovrai capire che codifica viene usata e per questo ci vuole al minimo un oscilloscopio.

Ciao,
P.

Alepolid:
Ciao a tutti,
ho intenzione di cambiare l'elettronica di una macchinina radiocomandata mettendoci un esp32 e di controllarla con un altro esp32. Sono indeciso su come fare comunicare i due microcontrollori.

C'è un motivo particolare per cui le MCU di controllo siano ESP32?
Sono schede nate per essere usate "senza fili", quindi mi sembra strano aver scelto queste per poi volerci aggiungere moduli per comunicazioni "senza fili". Inoltre, che modulo hai di preciso? Perchè quando si parla di superare qualche decina di metri di distanza l'antenna diventa "vagamente" importante. Se hai solo quella sul PCB la faccenda è abbastanza limitata, a prescindere dal sistema di comunicazione scelto.

In ogni caso, wifi e bluetooth non sono (di base) in grado di coprire 150m, anzi.
Gli HC-12 hanno sicuramente più raggio, e come dici tu sono abbastanza semplici da usare.

Come range vedrei bene anche questi nRF24L01, un po' più complessi da utilizzare lato software (niente di assurdo) ma sono abbastanza diffusi nei radiocomandi fai da te e nelle telemetrie di veicoli radiocomandati. Anzi, a dirla tutta sono proprio i moduli che generalmente montano i telecomandi dei droni (giocattolame) sotto i 100€. Con questi moduli infatti ci si può fare da soli dei "traduttori" multiprotocollo per connettere dei telecomandi seri a quei giocattolini che vengono venduti con il loro specifico (e insostituibile) telecomandino per mani minuscole.

Come al solito i 1100m pubblicizzati sono ottenibili in condizioni ottimali, ma questo vale per tutti i dispositivi. Essendo una macchina e non un veivolo tieni presente molti più ostacoli di trasmissione, ma qualche centinaio di metri non li vedo un problema in campo aperto.
I moduli di pgiano mi stupirebbero davvero se arrivassero a 50m, invece. :sweat_smile:

pgiagno:
Molto tempo fa (all’uscita sul mercato dei primi moduli RX-TX da due soldi) ho fatto un progetto del genere, ma me lo ricordo poco. Ricordo solo che mi sono dovuto reinventare il protocollo di trasmissione, perché non avevo idea di come agiva l’originale. Inoltre, oltre a motore (controllo velocità avanti/indietro) e sterzo (controllo sterzata destra/sinistra), volevo aggiungere anche luci di posizione, fari, retromarcia, frecce, doppie frecce e stop, che nell’originale non c’erano.

Se ho capito bene tu vorresti sostituire SOLO la parte trasmissione/ricezione con ESP32 o HC12, esatto?

Per quanto ne so il TX è composto da due sezioni: la parte di codifica dei comandi (avanti/indietro, destra/sinistra) e la parte di trasmissione vera e propria (27MHz? 40MHz? 2,4GHz?). Altrettanto per quanto riguarda il RX sulla macchinina (parte ricevente vera e propria e parte di decodifica del segnale)…

Se riesci a identificare il confine fra le due sezioni puoi fare il tentativo di sostituire la parte TX/RX con i moduli, ma dovrai capire che codifica viene usata e per questo ci vuole al minimo un oscilloscopio.

Ciao,
P.

Nono, voglio sostituire tutto. Tolgo l’elettronica pre-esistente e attacco il servo e l’ESC(che è collegata a sua volta al motore) all’esp32 (o all’arduino con modulo HC-12)

Se intendi sostituire tutto è necessario sapere:

  • quante "cose" intendi comandare (SOLO sterzo e motore o anche altro?)
  • le caratteristiche del servo che comanda lo sterzo
  • le caratteristiche dell'ESC che comanda il motore.

In base a quello che vuoi comandare, dividi i comandi in due gruppi: comandi analogici (sterzo e velocità motore) e comandi digitali (marcia avanti/indietro, fari, frecce, etc.).

Poi puoi pensare al protocollo di comunicazione.

Ciao,
P.

Pgiano, il 99% dei servo e delle esc si comandano (o, almeno, si possono comandare) con un semplice PWM.
Il fatto che l'OP voglia

Alepolid:
un cervello riprogrammabile che funge anche da semplice macchinina radiocomandata

mi fa pensare che un esc e un servo siano il minore dei problemi, c'è sicuramente da pensare ad un sistema di trasmissione generico e facilmente espandibile. Infatti i sistemi proposti dall'OP non hanno limitazioni in questo senso.

In più c'è il piccolo dettaglio che la comunicazione potrebbe servire bidirezionale (ricevere indietro la tensione di batteria per vedere se si ha abbastanza carica per tornare?).
Se così non fosse, un'altra strada veloce che si potrebbe tranquillamente prendere è quella di usare una coppia telecomando/ricevente commerciale e usare solo un arduino a bordo per decodificare il protocollo di comunicazione e smistare le uscite. Si fa già tranquillamente con riceventi che forniscono PPM, o protocollo i-bus, ecc...

Con gli nRF24 da un lato "codifichi" i comandi che più ti piacciono e non c'è un limite pratico al numero, li trasmetti e dall'altro lato decodifichi e smisti in giro per gli azionamenti. In più puoi farti rimandare indietro la "telemetria", che in pratica vuol dire solo swappare chi legge e trasmette i sensori, e chi riceve i dati.

Tutto questo si può fare sia col bluetooth (che è una seriale alla fin fine), sia con gli HC-12, sia con una vera e propria rete Wi-Fi, ecc.

Personalmente andrei di nRF24 per portata del segnale e basso costo (se è quello che viene genericamente usato per queste cose ci sarà un perchè :slight_smile: ) ma anche gli HC-12 sarebbero interessanti da provare vista la semplicità del codice. Il resto non mi ispira troppo e/o non lo conosco bene.

Io avrei votato per hc12 e softserial
Poi mi è venuto in mente che softserial e servo non vanno d'accordo
Se lo op vuole si potrebbe provare con la altsoftserial o magari usare la hwserial...
Per quello che costano due hc12, varrebbe la pena...

Standardoil:
Per quello che costano due hc12, varrebbe la pena...

Più o meno come gli nRF24, non ne farei una questione di prezzo ma di funzionalità.

Ma mi sfugge una cosa: se gli HC-12 praticamente sono una "seriale senza fili", perchè avrei bisogno di seriali virtuali? Non posso semplicemente usare quella hardware del micro (ipotizzando che ne abbia solo una, se ne ha di più ancora meglio), senza dare fastidio ai servo?

Questioni de debug?

Giuseppe de Bug, quinto conte di Bug, in Cornovaglia
Scherzi a parte, solo quello sì
Per gli nrf24, vero che costano anche meno degli hc12, ma non sono semplici da usare come loro
Con un hc12 io provo usando la seriale del pc. Elimino tutti i problemi, stacco il cavo usb e metto un hc12. Lavoro finito
Poi, da esperti, anche nrf vanno alla grande...

Concorquoto Standardoil (questa te l'ho rubata! :wink: ).

Dopo gli Rx-TX da due suldi di cui sopra ho usato gli nrf24, ma effettivamente non sono semplici. Quando sono passato agli HC-12 è andato tutto più liscio. Inoltre mi è sembrato (non ho fatto esperimenti mirati) che gli HC-12 avessero una portata sensibilmente superiore agli nrf24. Ma è solo una impressione.

Alepolid è sparito?

Ciao,
P.

I 100mW sui 433-437 MHz sono decisamente illegali:

(v. Annesso 1 e Annesso 9)

Lasciate stare l’abbinata Software Serial/ Libreria Servo poiché usano lo stesso timer e quindi diventa quasi inutilizzabile il pwm. Si può aggirare il problema usando librerie diverse, ma con altre limitazioni. Esperienza personale… Al massimo usare la seriale pura del MCU…