Sommario:
Video: UChip - Semplice schizzo per il controllo remoto di motori e/o servi tramite radio Tx-Rx a 2,4 GHz!: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Mi piace molto il mondo RC. Usare un giocattolo RC ti dà la sensazione di avere il controllo di qualcosa di straordinario, nonostante sia una piccola barca, un'auto o un drone!
Tuttavia, non è facile personalizzare i tuoi giocattoli e fargli fare quello che vuoi che facciano. Di solito, si è costretti a utilizzare le impostazioni predefinite del trasmettitore o le combinazioni di interruttori e manopole appositamente progettate.
Riuscire a controllare tutto come si vuole veramente è piuttosto difficile, soprattutto perché il mondo RC richiede una conoscenza abbastanza profonda della programmazione a livello hardware per ottenere il meglio da esso.
Ho provato molte piattaforme e configurazioni, ma è sempre costato uno sforzo enorme per prendere confidenza con il codice prima di fare una vera personalizzazione al mio giocattolo RC.
Quello che mi mancava è un semplice schizzo che potrei caricare usando l'IDE di Arduino e che mi permetterebbe facilmente di tradurre i valori in uscita dalla Radio RX (ricevitore) nel controllo Motore/Servo desiderato.
Pertanto, ecco cosa ho creato dopo aver giocato un po' con uChip e l'IDE Arduino: Un semplice schizzo per controllare a distanza Motori e/o Servi tramite Radio Tx-Rx a 2,4 GHz!
Distinta base
1 x uChip: scheda compatibile con Arduino IDE
1 xTx-Rx Sistema radio: qualsiasi sistema radio con ricevitore cPPM va bene (la mia combo è un vecchio Spectrum DX7 Tx + Orange R614XN cPPM Rx), assicurati di seguire la corretta procedura di associazione per associare Tx e Rx.
1 x Batteria: sono necessarie batterie ad alta corrente di scarica quando si ha a che fare con motori e servi.
Motori/Servo: secondo le tue esigenze
Componenti elettronici per pilotare i Motori/Servo: semplici resistenze, MOSFET e Diodi permettono di raggiungere lo scopo di pilotaggio.
Passaggio 1: cablaggio
Collegare i componenti insieme come descritto negli schemi.
L'Rx è collegato direttamente a uChipand non richiede alcun componente esterno. Nel caso in cui utilizzi un ricevitore diverso, verifica se hai bisogno di un traslatore di livello o meno. Assicurati di collegare il segnale cPPM a uChip PIN_9 (che è PORTA19 nel caso in cui desideri adattare il codice a un'altra scheda SAMD21).
Il cablaggio rimanente è necessario per azionare il motore e/o il servo. Lo schema allegato rappresenta il circuito di base per proteggere uChip da picchi/overshoot che di solito si verificano durante il pilotaggio di carichi induttivi. Il componente chiave per preservare la sicurezza di uChip è il diodo Zener di potenza da 5.1V (D1 nello schema) che è necessario mettere in parallelo a VEXT (pin 16 uChip) e GND (pin 8 uChip). In alternativa, invece di utilizzare il diodo Zener, è possibile optare per la circuiteria opzionale rappresentata da D2, C1 e C2, che impedisce ai picchi inversi di danneggiare i componenti uChip.
Puoi pilotare tutti i motori/servi di cui hai bisogno semplicemente replicando lo schema e cambiando i pin di controllo (puoi usare qualsiasi pin tranne i pin di alimentazione (PIN_8 e PIN_16) e il pin cPPM (PIN_9)). Si tenga presente che, mentre è necessaria una sola circuiteria di protezione che è rappresentata dal diodo Zener (o dai componenti per la circuiteria opzionale), i componenti elettrici relativi al pilotaggio motore/servo devono essere replicati tante volte quanti sono i motori/ servo che intendi pilotare.
Dato che volevo pilotare almeno 2 motori e 2 servocomandi, ho realizzato un piccolo PCB che implementava la circuiteria descritta e che potete vedere in foto. Tuttavia, il primo prototipo è stato realizzato su una protoscheda utilizzando cavi volanti.
Pertanto, non sono necessarie competenze di progettazione di saldatura/PCB per implementare questo semplice progetto:)
Passaggio 2: programmazione
Ecco la magia! È qui che le cose si fanno interessanti.
Nel caso tu abbia costruito il circuito descritto nello schema precedente, puoi semplicemente caricare lo sketch “DriveMotorAndServo.ino” e tutto dovrebbe funzionare.
Dai un'occhiata al codice e controlla come funziona.
All'inizio ci sono poche #define usate per definire:
- il numero di canali della Rx (6Ch con Orange 614XN)
- i perni su cui sono fissati i motori/servi
- Max e min utilizzati per servo e motori
- Max e min utilizzati per la gamma dei canali radio
Poi c'è la sezione di dichiarazione delle variabili dove vengono dichiarate le variabili dei motori/servi.
Nel caso in cui guidi più di un motore e di un servo collegato come descritto nello schema precedente, devi modificare lo schizzo e aggiungere il codice che gestisce i motori/servi aggiuntivi collegati. Devi aggiungere tanti Servo, servo_value e motor_value quanti servo/motori stai usando.
All'interno della sezione di dichiarazione delle variabili sono presenti anche alcune variabili volatili utilizzate per il Capture Compare del segnale cPPM. NON CAMBIARE QUESTE VARIABILI!
Quello che devi fare dopo è nella funzione loop(). Qui puoi decidere che uso fare del valore dei canali in entrata.
Nel mio caso ho collegato il valore in ingresso direttamente al motore e al servo, ma sei più che benvenuto a modificarlo in base alle tue esigenze! Nel video e nelle immagini linkate in questo tutorial ho collegato 2 motori e 2 servocomandi, ma potrebbero essercene 3, 4, 5, …fino al massimo di pin liberi disponibili (13 in caso di uChip).
Puoi trovare il valore del canale catturato all'interno dell'array ch[index], il cui “indice” va da 0 a NUM_CH - 1. Ogni canale corrisponde a uno stick/interruttore/manopola sulla tua radio. Sta a te capire cosa-è-cosa:)
Infine, ho implementato alcune funzioni di debug per rendere più semplice la comprensione di ciò che sta accadendo. Commenta/decommenta il #define DEBUG per stampare sul SerialUSB nativo il valore dei canali.
SUGGERIMENTO: c'è più codice sotto la funzione loop(). Questa parte del codice è necessaria per impostare i pin di alimentazione di uChip, gestire gli interrupt generati dalla funzione di confronto della cattura, impostare i timer e lo scopo del debug. Nel caso in cui ti senti abbastanza coraggioso da giocare con i registri, sentiti libero di modificarlo!
Modifica: schizzo aggiornato, corretto un bug nella funzione di mappatura.
Passaggio 3: gioca, guida, gareggia, vola
Assicurati di collegare correttamente il sistema Tx e Rx. Accendilo collegando la batteria. Verifica che tutto funzioni. Puoi espandere le funzionalità o modificare la funzione di ciascun canale a tuo piacimento, perché ora hai il pieno controllo del tuo futuro modello RC.
Ora costruisci il tuo modello RC personalizzato!
P. S.: poiché l'associazione può essere piuttosto noiosa da fare, ho intenzione di rilasciare presto uno schizzo che consenta di collegare il tuo sistema Tx-Rx senza doverlo fare manualmente. Resta sintonizzato per gli aggiornamenti!
Consigliato:
Controllo di 2 servi tramite joystick analogico: 5 passaggi (con immagini)
Controllo di 2 servi usando il joystick analogico.: Ciao ragazzi, questo è il mio primo istruibile e in questo post sto condividendo come usare il joystick analogico per controllare i servi usando Arduino UNO. Cercherò di spiegarlo nel modo più semplice possibile spero vi piaccia esso
Controllo guidato in tutto il mondo tramite Internet tramite Arduino: 4 passaggi
Controllo guidato in tutto il mondo tramite Internet tramite Arduino: Ciao, sono Rithik. Realizzeremo un led controllato da Internet usando il tuo telefono. Useremo software come Arduino IDE e Blynk. È semplice e se ci riesci puoi controllare tutti i componenti elettronici che desideri Cose di cui abbiamo bisogno: Hardware:
Controllo della luminosità Controllo LED basato su PWM tramite pulsanti, Raspberry Pi e Scratch: 8 passaggi (con immagini)
Controllo della luminosità Controllo LED basato su PWM tramite pulsanti, Raspberry Pi e Scratch: stavo cercando di trovare un modo per spiegare come funzionava il PWM ai miei studenti, quindi mi sono posto il compito di provare a controllare la luminosità di un LED utilizzando 2 pulsanti - un pulsante aumenta la luminosità di un LED e l'altro lo attenua. Per programmare
ESP8266 RGB LED STRIP Controllo WIFI - NODEMCU Come telecomando IR per strisce LED controllate tramite Wi-Fi - STRIP LED RGB Controllo smartphone: 4 passaggi
ESP8266 RGB LED STRIP Controllo WIFI | NODEMCU Come telecomando IR per strisce LED controllate tramite Wi-Fi | Controllo Smartphone STRIP LED RGB: Ciao ragazzi in questo tutorial impareremo come utilizzare nodemcu o esp8266 come telecomando IR per controllare una striscia LED RGB e Nodemcu sarà controllato dallo smartphone tramite wifi. Quindi in pratica puoi controllare la STRISCIA LED RGB con il tuo smartphone
Controllo dei servi RC in modalità wireless tramite UDP: 3 passaggi
Controllo dei servi RC in modalità wireless tramite UDP: in questo progetto voglio usare il mio iPhone per controllare i servi RC. Userò l'accelerometro per controllare due servi tramite connessione UDP. Questo è un progetto Proof Of Concept per verificare che una connessione tra un iPhone e una periferica possa raggiungere livelli elevati