Sommario:
- Passaggio 1: componenti
- Passaggio 2: scheda server
- Passaggio 3: codificatore del server: copia e incolla
- Passaggio 4: scheda cliente
- Passaggio 5: Codice cliente: copia e incolla
- Passaggio 6: una nota sul codice:
Video: Servocomando wireless: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Questo progetto controlla la rotazione di un servo in modalità wireless tramite un potenziometro (manopola). La rotazione è vincolata a 180 gradi.
Passaggio 1: componenti
Questo progetto consiste in
- 2 schede controller Arduino UNO con cavo connettore USB
- 2 moduli ricetrasmettitore RF nRF24L01 – 2,4 GHz (per assistenza con questi moduli fare riferimento a
- 2 schede adattatore socket (chip per zaino) per nRF24L01
- 1 scheda di espansione prototipo ProtoShield 328 compatibile con Arduino opzionale
- 1 servo
- 1 potenziometro analogico
- saldatore e saldatore
- filo
- pinze ad ago
- involucro isolante, ho usato del nastro isolante
Passaggio 2: scheda server
La scheda server è composta da un modulo ricetrasmettitore, la scheda shield (che si collega direttamente alla scheda Arduino in un solo modo) e il servo. Ho deciso di includere la tavola dello scudo per evitare la goffa breadboard e dare al progetto e una finitura complessiva più ordinata.
Il codice e la risorsa web inclusi nell'elenco dei componenti descrivono in dettaglio le connessioni del modulo ricetrasmettitore. Ho deciso di saldare le connessioni invece di utilizzare connessioni temporanee come nei progetti precedenti. Dato che sono un principiante, ho isolato ogni giunto di saldatura con nastro isolante (non erano belli).
I pin della shield board corrispondono direttamente ai pin di Arduino. Prima di collegare la scheda di schermatura, ho collegato i pin di terra e 5 volt alle guide della scheda con filo e saldatura. Ho anche saldato i cavi da 5 volt e di terra dei componenti alle guide della scheda di schermatura, quindi ho finalmente collegato l'Arduino alla scheda di schermatura.
Il servo è collegato al pin 3volt per l'alimentazione e al pin digitale 2 per la comunicazione.
** Nota: solo dopo aver completato questa build ho notato che le mie schede Arduino non sono identiche. Il mio ricetrasmettitore server è alimentato dalla guida a 5 volt sulla scheda shield, mentre il ricetrasmettitore client è alimentato dal pin a 3 volt, anche se sono stato portato a credere che una funzione del chip adattatore sul ricetrasmettitore sia quella di fornire la tensione corretta. Tutto quello che posso dire con certezza è che il codice fornito abbinato alla configurazione mostrata nelle immagini produce l'effetto descritto.
Passaggio 3: codificatore del server: copia e incolla
//CODICE SERVER/* NRF24L01 Arduino CE > D8 CSN > D10 SCK > D13 MO > D11 MI > D12 RO > Non utilizzato GND > GND VCC > 5V */ //Cablaggio ricetrasmettitore
#includere
// libreria servo
#includere
// libreria ricetrasmettitori
#define Servopin 2
//dichiarazione pin di uscita servo
ServoTimer2 serv;
//dichiarazione del nome del servo
RH_NRF24 nrf24;
//dichiarazione del nome del ricetrasmettitore
int timeOUT = 0;
//variabile per servo
int impulsi = 90;
//variabile per memorizzare gli impulsi
configurazione nulla()
{ serv.attach(Servopin); //servo roba
Serial.begin(9600); // roba del ricetrasmettitore
if (!nrf24.init())
Serial.println("inizializzazione fallita"); //cose del monitor seriale if (!nrf24.setChannel(12)) //imposta il canale su 125 Serial.println("setChannel fallito"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF failed"); // roba del monitor seriale }
ciclo vuoto()
{ if (nrf24.available()) { uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof(buf); if (nrf24.recv(buf, &len)) //serial monitor stuff { Serial.print("got request: "); impulsi = strtol((const char*)buf, NULL, 10); // modifica del tipo di dati
int prin = map(impulsi, 750, 2250, 0, 180); // modifica del tipo di dati
Serial.println(stampa); serv.write(impulsi); //fa muovere il servo } }
}
Passaggio 4: scheda cliente
La scheda client è composta da un modulo ricetrasmettitore e dal potenziometro. Il modulo ricetrasmettitore è cablato allo stesso modo** della scheda server con l'eccezione che senza la scheda shield, è collegato direttamente ai pin della scheda Arduino.
Il potenziometro prende 5v, massa ed è collegato al pin analogico 2.
**Nota: come menzionato nel passaggio della scheda server, le mie schede Arduino non sono identiche. In questo caso il ricetrasmettitore è collegato al pin etichettato 3.3V, direttamente adiacente al pin 5V, ma, ancora una volta, tutto sembra funzionare correttamente.
Passaggio 5: Codice cliente: copia e incolla
//CODICE CLIENT/* NRF24L01 Arduino CE > D8 CSN > D10 SCK > D13 MO > D11 MI > D12 RO > Non utilizzato GND > GND VCC > 5V */ //Cablaggio ricetrasmettitore
#includere
//libreria ricetrasmettitori
int potpin = A2; //dearazione del potenziometro
valore int;
char tempChar[5];
String valString = ""; // modifica del tipo di dati
RH_NRF24 nrf24; // roba del ricetrasmettitore
configurazione nulla()
{ Serial.begin(9600); if (!nrf24.init()) Serial.println("init fallito"); // I valori predefiniti dopo init sono 2,402 GHz (canale 2), 2 Mbps, 0 dBm if (!nrf24.setChannel(12)) Serial.println("setChannel failed"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF failed"); } // roba del ricetrasmettitore
ciclo vuoto() {
val = analogRead(potpin); //roba del potenziometro
val = map(val, 0, 1023, 750, 2250);
valString = val; Stringa str = (valStringa); str.toCharArray(tempChar, 5); // modifica del tipo di dati nrf24.send(tempChar, sizeof(tempChar));
}
Passaggio 6: una nota sul codice:
Il codice contiene alcune funzionalità limitate di risoluzione dei problemi sotto forma di feedback dal monitor seriale nell'interfaccia del software Arduino. Quando si visualizza il monitor seriale dal codice SERVER (ctrl + shift + M), dovresti essere in grado di vedere lo stato del potenziometro sotto forma di un numero compreso tra 1 e 180.
Inoltre, ecco la libreria per il wireless e il servo:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
Consigliato:
Bolt - Orologio notturno con ricarica wireless fai-da-te (6 passaggi): 6 passaggi (con immagini)
Bolt - Orologio notturno con ricarica wireless fai-da-te (6 passaggi): la ricarica induttiva (nota anche come ricarica wireless o ricarica senza fili) è un tipo di trasferimento di potenza wireless. Utilizza l'induzione elettromagnetica per fornire elettricità ai dispositivi portatili. L'applicazione più comune è la stazione di ricarica wireless Qi
Robot Arduino wireless che utilizza il modulo wireless HC12: 7 passaggi
Robot Arduino wireless che utilizza il modulo wireless HC12: Ehi ragazzi, bentornati. Nel mio post precedente, ho spiegato cos'è un circuito a ponte H, IC driver motore L293D, IC driver motore L293D piggybacking per pilotare driver motore ad alta corrente e come è possibile progettare e realizzare la propria scheda driver motore L293D
Access point wireless con portata di cinquanta metri con adattatore wireless USB TP Link WN7200ND su Raspbian Stretch: 6 passaggi
Access point wireless con portata di cinquanta metri con adattatore wireless USB TP Link WN7200ND su Raspbian Stretch: Raspberry Pi è ottimo per creare punti di accesso wireless sicuri ma non ha una buona portata, ho usato un adattatore wireless USB TP Link WN7200ND per estenderlo. Voglio condividere come farloPerché voglio usare un raspberry pi invece di un router?T
Sistema wireless da microfono a chitarra wireless fai-da-te: 4 passaggi
Sistema wireless da microfono a chitarra wireless fai-da-te: ho guardato alcuni video e alcune band e quasi tutte usano un sistema wireless sulla chitarra. Impazzire, muoversi, camminare e fare quello che vogliono senza il cavo, quindi sogno di averne uno.. Ma.. per me ora è troppo costoso, quindi sono arrivato a questo
Converti Router Wireless in Wireless Extender 2x Access Point: 5 Passaggi
Converti il router wireless in un punto di accesso wireless Extender 2x: avevo una connessione Internet wireless scadente in casa a causa di un RSJ (trave di supporto in metallo nel soffitto) e volevo aumentare il segnale o aggiungere un extender extra per il resto della casa. Avevo visto estensori per circa £ 50 in un elettro