Bezdrôtové ovládanie serva: 6 krokov
Bezdrôtové ovládanie serva: 6 krokov
Anonim
Bezdrôtové ovládanie serva
Bezdrôtové ovládanie serva
Bezdrôtové ovládanie serva
Bezdrôtové ovládanie serva

Tento projekt riadi otáčanie serva bezdrôtovo pomocou potenciometra (gombíka). Rotácia je obmedzená na 180 stupňov.

Krok 1: Komponenty

Komponenty
Komponenty
Komponenty
Komponenty
Komponenty
Komponenty

Tento projekt pozostáva z

  • 2 dosky ovládača Arduino UNO s káblom s konektorom USB
  • 2 moduly transceiveru nRF24L01-2,4 GHz (pomoc s týmito modulmi nájdete na stránke
  • 2 dosky zásuvkových adaptérov (batohové čipy) pre nRF24L01
  • 1 voliteľná rozširujúca doska prototypu 328 ProtoShield kompatibilná s Arduino
  • 1 servo
  • 1 analógový potenciometer
  • spájkovačka a spájkovačka
  • drôt
  • kliešte s ihlovým nosom
  • izolačný obal, použil som elektrickú pásku

Krok 2: Serverová doska

Serverová doska
Serverová doska

Serverová doska sa skladá z modulu transceiveru, štítovej dosky (ktorá sa pripája priamo na dosku Arduino iba jedným spôsobom) a zo serva. Rozhodol som sa zahrnúť štítovú dosku, aby som sa vyhol nemotornému chlebu, a dal projektu a celkovému úhľadnejšiemu prevedeniu.

Kód a webový zdroj zahrnutý v zozname komponentov podrobne opisujú pripojenia modulu transceiveru. Rozhodol som sa spájkovať spojenia namiesto použitia dočasných spojení ako v predchádzajúcich projektoch. Keďže som začiatočník, izoloval som každý spájkovací spoj elektrickou páskou (neboli pekné).

Kolíky štítovej dosky zodpovedajú priamo kolíkom Arduino. Pred pripevnením štítovej dosky som drôt a spájku spojil uzemňovací a 5voltový kolík s lištami dosky. Tiež som spájkoval 5voltové a uzemňovacie vodiče súčiastok k lištám dosky štítu a potom som Arduino nakoniec pripevnil k doske štítu.

Servo je pripojené k 3voltovému kolíku pre napájanie a digitálny kolík 2 pre komunikáciu.

** Poznámka: až po dokončení tejto zostavy som si všimol, že moje dosky Arduino nie sú identické. Môj serverový transceiver je napájaný 5 -voltovou koľajnicou na štítovej doske, zatiaľ čo klientsky transceiver je napájaný 3 -voltovým pinom, aj keď som bol presvedčený, že funkciou čipu adaptéra na transceiveri je poskytnúť správne napätie. S istotou môžem povedať len to, že uvedený kód zodpovedajúci konfigurácii zobrazenej na obrázkoch vytvára opísaný efekt.

Krok 3: Server Coder: Skopírujte a prilepte

// KÓD SERVERU/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nepoužitý GND> GND VCC> 5V */// zapojenie transceiveru

#zahrnúť

// servo knižnica

#zahrnúť

// knižnica transceiveru

#define Servopin 2

// deklaračný výstupný pin servo

ServoTimer2 serv;

// deklarácia názvu serva

RH_NRF24 nrf24;

// deklarácia názvu transceiveru

int timeOUT = 0;

// premenná pre servo

int impulzy = 90;

// premenná na ukladanie impulzov

neplatné nastavenie ()

{serv.attach (Servopin); // servo veci

Serial.begin (9600); // veci s transceiverom

ak (! nrf24.init ())

Serial.println ("inicializácia zlyhala"); // veci zo sériového monitora if (! nrf24.setChannel (12)) // nastavenie kanála na 125 Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF failed"); // veci zo sériového monitora}

prázdna slučka ()

{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // veci zo sériového monitora {Serial.print ("got request:"); impulzy = strtol ((const char*) buf, NULL, 10); // veci na zmenu typu údajov

int prin = mapa (impulzy, 750, 2250, 0, 180); // veci na zmenu typu údajov

Serial.println (prin); serv.write (impulzy); // rozbehne servo}}

}

Krok 4: Klientská rada

Klientská rada
Klientská rada

Klientská doska sa skladá z modulu transceiveru a potenciometra. Modul transceiveru je zapojený rovnakým spôsobom ** ako serverová doska s tou výnimkou, že bez štítovej dosky je zapojený priamo do kolíkov dosky Arduino.

Potenciometer má uzemnenie 5 V a je pripojený k analógovému kolíku 2.

** Poznámka: Ako je uvedené v kroku serverovej dosky, moje dosky Arduino nie sú totožné. V tomto prípade je transceiver zapojený na kolík označený 3,3 V, priamo susediaci s kolíkom 5 V, ale opäť sa zdá, že všetko funguje dobre.

Krok 5: Kód klienta: Skopírujte a prilepte

// KLIENTSKY KÓD/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nepoužitý GND> GND VCC> 5V */// zapojenie transceiveru

#zahrnúť

// knižnica transceiveru

int potpin = A2; // deklarácia potenciometra

int val;

char tempChar [5];

Reťazec valString = ""; // veci na zmenu typu údajov

RH_NRF24 nrf24; // veci s transceiverom

neplatné nastavenie ()

{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("inicializácia zlyhala"); // Predvolené hodnoty po inicializácii sú 2,402 GHz (kanál 2), 2 Mb/ s, 0 dBm, ak (! Nrf24.setChannel (12)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF failed"); } // veci s transceiverom

prázdna slučka () {

val = analogRead (potpin); // veci potenciometra

val = mapa (val, 0, 1023, 750, 2250);

valString = val; Reťazec str = (valString); str.toCharArray (tempChar, 5); // zmena typu údajov veci nrf24.send (tempChar, sizeof (tempChar));

}

Krok 6: Poznámka o kóde:

Kód obsahuje niektoré obmedzené funkcie na riešenie problémov vo forme spätnej väzby zo sériového monitora v softvérovom rozhraní Arduino. Pri prezeraní sériového monitora z kódu SERVER (ctrl + shift + M) by ste mali vidieť stav potenciometra vo forme čísla od 1 do 180.

Tu je tiež knižnica pre bezdrôtové pripojenie a servo:

www.airspayce.com/mikem/arduino/RadioHead/

github.com/nabontra/ServoTimer2

Odporúča: