Satura rādītājs:
- 1. darbība: sastāvdaļas
- 2. darbība: servera padome
- 3. darbība: servera kodētājs: kopēšana un ielīmēšana
- 4. solis: klientu padome
- 5. darbība. Klienta kods: kopējiet un ielīmējiet
- 6. darbība. Piezīme par kodu:
Video: Bezvadu servo vadība: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Šis projekts bezvadu režīmā kontrolē servo rotāciju, izmantojot potenciometru (pogu). Rotācija ir ierobežota līdz 180 grādiem.
1. darbība: sastāvdaļas
Šis projekts sastāv no
- 2 Arduino UNO kontrollera plates ar USB savienotāja kabeli
- 2 nRF24L01-2,4 GHz RF raiduztvērēja moduļi (palīdzību saistībā ar šiem moduļiem skatiet vietnē
- 2 ligzdas adaptera plates (mugursomas mikroshēmas) nRF24L01
- 1 papildu ar Arduino saderīgs 328 ProtoShield prototipa paplašināšanas panelis
- 1 servo
- 1 analogs potenciometrs
- lodāmurs un lodētava
- vads
- knaibles ar adatas degunu
- izolācijas apvalks, es izmantoju elektrisko lenti
2. darbība: servera padome
Servera plate sastāv no raiduztvērēja moduļa, vairoga plates (kas tieši savienojas ar Arduino plati tikai vienā virzienā) un servo. Es nolēmu iekļaut vairoga dēli, lai izvairītos no neveiklās maizes dēļa un sniegtu projektam un visaptverošāku apdari.
Komponentu sarakstā iekļautajā kodā un tīmekļa resursā ir sīki aprakstīti raiduztvērēja moduļa savienojumi. Es nolēmu lodēt savienojumus, nevis izmantot pagaidu savienojumus, kā tas bija iepriekšējos projektos. Tā kā esmu iesācējs, katru lodēšanas savienojumu izolēju ar elektrisko lenti (tie nebija smuki).
Aizsargplates tapas atbilst tieši Arduino tapām. Pirms vairoga plāksnes piestiprināšanas es savienoju zemi un 5 voltu tapas ar dēļu sliedēm ar stiepli un lodmetālu. Es arī pielodēju detaļu 5 voltu un zemējuma vadus pie vairoga plāksnes sliedēm, pēc tam beidzot pievienoju Arduino pie vairoga plāksnes.
Servo ir pievienots 3 voltu tapai barošanai un digitālajai tapai 2 komunikācijai.
** Piezīme: tikai pēc šīs būves pabeigšanas es pamanīju, ka manas Arduino plāksnes nav identiskas. Mana servera raiduztvērēju darbina 5 voltu sliede vairoga panelī, savukārt klienta raiduztvērēju baro 3 voltu tapa, lai gan man ir radies uzskats, ka uztvērēja adaptera mikroshēmas funkcija ir nodrošināt pareizu spriegumu. Viss, ko es varu droši teikt, ir tas, ka kods, kas atbilst attēlos redzamajai konfigurācijai, rada aprakstīto efektu.
3. darbība: servera kodētājs: kopēšana un ielīmēšana
// SERVERA KODS/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nav izmantots GND> GND VCC> 5V */// uztvērēja vadi
#iekļaut
// servo bibliotēka
#iekļaut
// uztvērēja bibliotēka
#define Servopin 2
// deklarācijas servo izvades tapa
ServoTimer2 serv;
// servo nosaukuma deklarācija
RH_NRF24 nrf24;
// uztvērēja nosaukuma deklarācija
int timeOUT = 0;
// mainīgais servo
int impulsi = 90;
// mainīgais, lai uzglabātu impulsus
anulēts iestatījums ()
{serv.attach (Servopin); // servo lietas
Sērijas sākums (9600); // uztvērēja lietas
ja (! nrf24.init ())
Serial.println ("init neizdevās"); // sērijveida monitora sīkumi, ja (! nrf24.setChannel (12)) // iestatiet kanālu uz 125 Serial.println ("setChannel neizdevās"); ja (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF neizdevās"); // sērijveida monitora lietas}
tukša cilpa ()
{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // seriālā monitora sīkumi {Serial.print ("got request:"); pākšaugi = strtol ((const char*) buf, NULL, 10); // datu tipa maiņas lietas
int prin = karte (impulsi, 750, 2250, 0, 180); // datu tipa maiņas lietas
Serial.println (prin); serv.write (impulsi); // liek servo kustēties}}
}
4. solis: klientu padome
Klienta tāfele sastāv no raiduztvērēja moduļa un potenciometra. Raiduztvērēja modulis ir savienots tādā pašā veidā ** kā servera plate, izņemot to, ka bez vairoga plates tas ir pievienots tieši Arduino plates tapām.
Potenciometrs tiek piezemēts ar 5 V spriegumu un ir savienots ar 2. analogo tapu.
** Piezīme: kā minēts servera paneļa solī, manas Arduino plates nav identiskas. Šajā gadījumā raiduztvērējs ir savienots ar tapu, kas apzīmēta ar 3.3V, tieši blakus 5V tapai, bet atkal viss šķiet kārtībā.
5. darbība. Klienta kods: kopējiet un ielīmējiet
// KLIENTA KODS/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nav izmantots GND> GND VCC> 5V */// uztvērēja vadi
#iekļaut
// uztvērēja bibliotēka
int potpin = A2; // potenciometra delarācija
int val;
char tempChar [5];
String valString = ""; // datu tipa maiņas lietas
RH_NRF24 nrf24; // uztvērēja lietas
anulēts iestatījums ()
{Sērijas sākums (9600); ja (! nrf24.init ()) Serial.println ("init neizdevās"); // Noklusējuma vērtības pēc init ir 2,402 GHz (2. kanāls), 2 Mb/ s, 0dBm, ja (! Nrf24.setChannel (12)) Serial.println ("setChannel neizdevās"); ja (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF neizdevās"); } // uztvērēja lietas
void loop () {
val = analogRead (potpin); // potenciometra lietas
val = karte (val, 0, 1023, 750, 2250);
valString = val; String str = (valString); str.toCharArray (tempChar, 5); // datu tipa maiņa stuff nrf24.send (tempChar, sizeof (tempChar));
}
6. darbība. Piezīme par kodu:
Kods satur dažas ierobežotas problēmu novēršanas funkcijas, kas ir atsauksmes no sērijveida monitora Arduino programmatūras saskarnē. Skatot seriālo monitoru no SERVER koda (ctrl + shift + M), jums vajadzētu redzēt potenciometra stāvokli skaitļa veidā no 1 līdz 180.
Šeit ir arī bezvadu un servo bibliotēka:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
Ieteicams:
Grbl CNC vadība bezvadu tīklā: 5 soļi
Grbl CNC vadība, izmantojot Wifi: šajā apmācībā es jums pastāstīšu, kā iespējot GRBL kontroli pār WIFI. Šo metodi varat izmantot ar jebkuru sūtītāju, ieskaitot lasergrbl un Universal Gcode Sender (UGS). Īsāk sakot, mēs izmantosim arkypita darbu un citu programmatūru, lai izveidotu vi
ESP8266 RGB LED STRIP WIFI vadība - NODEMCU kā IR tālvadības pults LED joslai, kas tiek kontrolēta, izmantojot Wifi - RGB LED STRIP viedtālruņa vadība: 4 soļi
ESP8266 RGB LED STRIP WIFI vadība | NODEMCU kā IR tālvadības pults LED joslai, kas tiek kontrolēta, izmantojot Wifi | RGB LED STRIP viedtālruņa vadība: Sveiki, puiši, šajā apmācībā mēs iemācīsimies izmantot nodemcu vai esp8266 kā IR tālvadības pulti, lai kontrolētu RGB LED sloksni, un Nodemcu vadīs ar viedtālruni, izmantojot wifi. Tātad būtībā jūs varat kontrolēt RGB LED STRIP ar savu viedtālruni
Robotu automašīnas komplekta montāža un vadība, izmantojot bezvadu tālvadības pulti PS2: 6 soļi
Robotu automašīnas komplekta montāža un vadība, izmantojot PS2 bezvadu tālvadības pulti: Šis projekts ir saistīts ar pamata darbībām robotikas pasaulē, jūs iemācīsities salikt 4WD robotu automašīnas komplektu, novietot uz tā aparatūru un kontrolēt to ar bezvadu PS2 tālvadības pulti
Bezvadu MQTT gultas galvas klāja vadība: 5 soļi (ar attēliem)
Bezvadu MQTT gultas galvas klāja vadība: Pirms dažiem gadiem mēs iegādājāmies jaunu atmiņas putu gultu, un, tāpat kā lielākajā daļā gultu, jums bija jāiegādājas arī viena no viņu "apstiprinātajām pamatnēm". lai saglabātu garantiju. Tātad, mēs izvēlējāmies lētāko bāzi, kas ietvēra arī t
DIY bezvadu tālruņa lādētājs un LED vadība: 11 soļi (ar attēliem)
DIY bezvadu tālruņa lādētājs un LED vadība: šajā pamācībā es parādīšu, kā izveidot bezvadu tālruņa lādētāju un aktivizētas gaismas diodes. Es iekļaušu kodu, PDF failus, elektroinstalācijas shēmas un Gerber failus, kā arī materiālu sarakstu, lai izveidotu savu bezvadu tālruņa lādētājs. Īpaša piezīme: nav