Turinys:
- 1 žingsnis: komponentai
- 2 žingsnis: serverio lenta
- 3 veiksmas: serverio kodavimo priemonė: nukopijuokite ir įklijuokite
- 4 žingsnis: Klientų valdyba
- 5 veiksmas: kliento kodas: nukopijuokite ir įklijuokite
- 6 žingsnis: Pastaba apie kodą:
Video: Belaidis servo valdymas: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Šis projektas valdo servo sukimąsi belaidžiu būdu, naudojant potenciometrą (rankenėlę). Sukimasis ribojamas iki 180 laipsnių.
1 žingsnis: komponentai
Šį projektą sudaro
- 2 „Arduino UNO“valdiklių plokštės su USB jungties laidu
- 2 nRF24L01-2,4 GHz RF siųstuvo-imtuvo moduliai (pagalbos dėl šių modulių ieškokite
- 2 lizdinės adapterio plokštės (kuprinės lustai), skirtos nRF24L01
- 1 pasirenkama su „Arduino“suderinama 328 „ProtoShield“prototipo išplėtimo plokštė
- 1 servo
- 1 analoginis potenciometras
- lituoklis ir lituoklis
- viela
- replės su adatomis
- izoliacinė plėvelė, naudojau elektros juostą
2 žingsnis: serverio lenta
Serverio plokštę sudaro siųstuvo -imtuvo modulis, skydo plokštė (kuri tiesiogiai jungiasi prie „Arduino“plokštės tik vienu būdu) ir servo. Aš nusprendžiau įtraukti skydo lentą, kad išvengčiau gremėzdiškos duonos lentos ir suteikčiau projektui ir visapusiškam apdailai.
Į komponentų sąrašą įtrauktas kodas ir žiniatinklio ištekliai išsamiai apibūdina siųstuvo -imtuvo modulio jungtis. Aš nusprendžiau lituoti jungtis, o ne naudoti laikinus ryšius, kaip ir ankstesniuose projektuose. Kadangi esu pradedantysis, kiekvieną litavimo jungtį apšiltinau elektros juosta (jos nebuvo gražios).
Skydo plokštės kaiščiai tiesiogiai atitinka „Arduino“kaiščius. Prieš pritvirtindamas skydo plokštę, aš prijungiau įžeminimo ir 5 voltų kaiščius prie lentos bėgelių viela ir lydmetaliu. Aš taip pat litavau komponentų 5 voltų ir įžeminimo laidus prie skydo bėgių, tada galiausiai pritvirtinau „Arduino“prie skydo plokštės.
Servo yra prijungtas prie 3 voltų kaiščio, kad būtų galima maitinti, o skaitmeninis - 2 kontaktas.
** Pastaba: tik baigęs šį kūrimą pastebėjau, kad mano „Arduino“plokštės nėra tapačios. Mano serverio siųstuvas -imtuvas maitinamas 5 voltų bėgeliu, esančiu skydo plokštėje, o kliento siųstuvas -imtuvas maitinamas 3 voltų kaiščiu, nors buvau priverstas manyti, kad siųstuvo -imtuvo adapterio lusto funkcija yra užtikrinti tinkamą įtampą. Tikrai galiu pasakyti, kad pateiktas kodas, suderintas su paveikslėliuose nurodyta konfigūracija, sukuria aprašytą efektą.
3 veiksmas: serverio kodavimo priemonė: nukopijuokite ir įklijuokite
// PASLAUGOS KODAS/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nenaudojama GND> GND VCC> 5V */// siųstuvo -imtuvo laidai
#įtraukti
// servo biblioteka
#įtraukti
// imtuvo biblioteka
#define Servopin 2
// deklaravimo servo išvesties kaištis
ServoTimer2 servas;
// servo pavadinimo deklaracija
RH_NRF24 nrf24;
// imtuvo pavadinimo deklaracija
int timeOUT = 0;
// kintamasis servo
int impulsai = 90;
// kintamasis impulsams saugoti
negaliojanti sąranka ()
{serv.attach (Servopin); // servo dalykai
Serial.begin (9600); // imtuvo dalykai
jei (! nrf24.init ())
Serial.println ("nepavyko inicijuoti"); // serijinio monitoriaus medžiaga if (! nrf24.setChannel (12)) // nustatyti kanalą į 125 Serial.println ("setChannel nepavyko"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF nepavyko"); // serijinio monitoriaus medžiaga}
tuštumos kilpa ()
{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // serijinio monitoriaus medžiaga {Serial.print ("got request:"); impulsai = strtol ((const char*) buf, NULL, 10); // duomenų tipo keitimo dalykai
int prin = žemėlapis (impulsai, 750, 2250, 0, 180); // duomenų tipo keitimo dalykai
Serial.println (prin); serv.write (impulsai); // priverčia servo judėti}}
}
4 žingsnis: Klientų valdyba
Kliento plokštę sudaro siųstuvo -imtuvo modulis ir potenciometras. Siųstuvo -imtuvo modulis yra prijungtas taip pat ** kaip ir serverio plokštė, išskyrus tai, kad be skydo plokštės jis yra prijungtas tiesiai prie „Arduino“plokštės kaiščių.
Potenciometras maitinamas 5 V įtampa ir yra prijungtas prie 2 analoginio kaiščio.
** Pastaba: kaip minėta serverio plokštės žingsnyje, mano „Arduino“plokštės nėra tapačios. Šiuo atveju siųstuvas -imtuvas yra prijungtas prie kištuko, pažymėto 3.3V, tiesiai greta 5V kištuko, tačiau vėl viskas atrodo gerai.
5 veiksmas: kliento kodas: nukopijuokite ir įklijuokite
// KLIENTO KODAS/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nenaudojama GND> GND VCC> 5V */// imtuvo laidai
#įtraukti
// imtuvo biblioteka
int potpin = A2; // potenciometro deformacija
int val;
char tempChar [5];
Eilutė valString = ""; // duomenų tipo keitimo dalykai
RH_NRF24 nrf24; // imtuvo dalykai
negaliojanti sąranka ()
{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("init nepavyko"); // Pagal numatytuosius nustatymus po init yra 2,402 GHz (2 kanalas), 2Mbps, 0dBm if (! Nrf24.setChannel (12)) Serial.println ("setChannel nepavyko"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF nepavyko"); } // imtuvo dalykai
void loop () {
val = analogRead (potpin); // potenciometro dalykai
val = žemėlapis (val, 0, 1023, 750, 2250);
valString = val; Eilutė str = (valString); str.toCharArray (tempChar, 5); // duomenų tipo keitimo medžiaga nrf24.send (tempChar, sizeof (tempChar));
}
6 žingsnis: Pastaba apie kodą:
Kodekse yra keletas ribotų trikčių šalinimo funkcijų, gaunamų kaip atsiliepimai iš nuoseklaus monitoriaus „Arduino“programinės įrangos sąsajoje. Žiūrėdami nuoseklųjį monitorių iš SERVER kodo („Ctrl“+ „Shift“+ M), turėtumėte matyti potenciometro būseną skaičiumi nuo 1 iki 180.
Be to, čia yra belaidžio ryšio ir servo biblioteka:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
Rekomenduojamas:
Ryškumo valdymas PWM pagrįstas LED valdymas naudojant mygtukus, „Raspberry Pi“ir „Scratch“: 8 žingsniai (su nuotraukomis)
Ryškumo valdymas PWM pagrįstas LED valdymas naudojant mygtukus, „Raspberry Pi“ir „Scratch“: bandžiau rasti būdą, kaip paaiškinti, kaip PWM veikė mano mokiniams, todėl iškėliau sau užduotį pabandyti valdyti šviesos diodo ryškumą naudojant du mygtukus - vienas mygtukas padidina šviesos diodo ryškumą, o kitas - jį pritemdo. Programa
ESP8266 RGB LED juostelės WIFI valdymas - „NODEMCU“kaip IR nuotolinio valdymo pultas „Led Strip“, valdomas per „Wifi“- RGB LED STRIP išmaniojo telefono valdymas: 4 žingsniai
ESP8266 RGB LED juostelės WIFI valdymas | „NODEMCU“kaip IR nuotolinio valdymo pultas „Led Strip“, valdomas per „Wifi“| „RGB LED STRIP“išmaniojo telefono valdymas: Sveiki vaikinai, šioje pamokoje mes išmoksime naudoti „nodemcu“arba „esp8266“kaip IR nuotolinio valdymo pultą, norint valdyti RGB LED juostą, o „Nodemcu“bus valdomas išmaniuoju telefonu per „Wi -Fi“. Taigi iš esmės galite valdyti RGB LED juostelę savo išmaniuoju telefonu
Belaidis nuotolinis valdymas naudojant 2,4 GHz NRF24L01 modulį su „Arduino“- Nrf24l01 4 kanalų / 6 kanalų siųstuvo imtuvas keturkopteriui - Rc sraigtasparnis - Rc lėktuvas naudojant „Arduino“: 5 žingsniai (su nuotraukomis)
Belaidis nuotolinis valdymas naudojant 2,4 GHz NRF24L01 modulį su „Arduino“| Nrf24l01 4 kanalų / 6 kanalų siųstuvo imtuvas keturkopteriui | Rc sraigtasparnis | Rc lėktuvas naudojant „Arduino“: valdyti Rc automobilį | Kvadopteris | Dronas | RC plokštuma | RC valtis, mums visada reikia imtuvo ir siųstuvo, tarkime, kad RC QUADCOPTER mums reikia 6 kanalų siųstuvo ir imtuvo, o tokio tipo TX ir RX yra per brangus, todėl mes jį pagaminsime savo
Belaidis MQTT lovos galvūgalio valdymas: 5 žingsniai (su nuotraukomis)
Belaidis MQTT lovos galvūgalio valdymas: Prieš keletą metų įsigijome naują atminties putų lovą ir, kaip ir daugelyje lovų, taip pat turėjote įsigyti vieną iš jų „patvirtintų pagrindų“. norint išlaikyti garantiją. Taigi, mes pasirinkome pigiausią bazę, į kurią taip pat įėjo
Lengvas belaidis belaidis antenos stiprintuvas - „Wi -Fi“- „Wlan“: 6 žingsniai
„Easy Wardriving“belaidžio antenos stiprintuvas - „Wi -Fi“- „Wlan“: šioje instrukcijoje aš jums parodysiu, kaip praktiškai be pinigų sukurti labai paprastą belaidę anteną. Aš tai padariau perdirbdamas kai kuriuos daiktus, kuriuos kitu atveju tiesiog išmetėme. Taigi jis taip pat žalias! =) Idėja yra sugauti „Wi -Fi“bangas, kurias