Tartalomjegyzék:

Vezeték nélküli szervo vezérlés: 6 lépés
Vezeték nélküli szervo vezérlés: 6 lépés

Videó: Vezeték nélküli szervo vezérlés: 6 lépés

Videó: Vezeték nélküli szervo vezérlés: 6 lépés
Videó: Szoboszlai és az andorrai vagány srác #foryou #foryoupage #liverpool #liverpoolfc #szoboszlai 2024, November
Anonim
Vezeték nélküli szervo vezérlés
Vezeték nélküli szervo vezérlés
Vezeték nélküli szervo vezérlés
Vezeték nélküli szervo vezérlés

Ez a projekt egy potenciométer (gomb) segítségével vezeték nélkül vezérli a szervó forgását. A forgás 180 fokra van korlátozva.

1. lépés: Alkatrészek

Alkatrészek
Alkatrészek
Alkatrészek
Alkatrészek
Alkatrészek
Alkatrészek

Ez a projekt a következőkből áll

  • 2 Arduino UNO vezérlőkártya USB csatlakozó kábellel
  • 2 nRF24L01-2,4 GHz-es RF adó-vevő modul (ezekkel a modulokkal kapcsolatban lásd:
  • 2 foglalatos adapterlap (hátizsák chip) az nRF24L01 számára
  • 1 opcionális Arduino -kompatibilis 328 ProtoShield prototípus bővítő kártya
  • 1 szervó
  • 1 analóg potenciométer
  • forrasztópáka és forrasztópáka
  • huzal
  • tű orrú fogó
  • szigetelő fóliát, elektromos szalagot használtam

2. lépés: Szervertábla

Szervertábla
Szervertábla

A kiszolgálópanel egy adó -vevő modulból, az árnyékoló táblából (amely csak egy módon kapcsolódik közvetlenül az Arduino kártyához) és a szervóból áll. Úgy döntöttem, hogy beépítem a pajzs táblát, hogy elkerüljem az ügyetlen kenyértáblát, és a projektet és az általánosabb befejezést adjam.

Az összetevők listájában szereplő kód és webes erőforrás részletezi az adó -vevő modul csatlakozásait. Úgy döntöttem, hogy a kapcsolatokat forrasztom ahelyett, hogy ideiglenes kapcsolatokat használnék, mint a korábbi projektekben. Mivel kezdő vagyok, minden forrasztási kötést szigeteltem elektromos szalaggal (nem voltak szépek).

A pajzslemez csapjai közvetlenül az Arduino csapoknak felelnek meg. A pajzslemez rögzítése előtt dróttal és forrasztással összekötöttem a földet és az 5 voltos csapokat a tábla síneivel. Az alkatrészek 5 voltos és földelő vezetékeit is forrasztottam az árnyékoló táblák síneire, majd végül az Arduino -t a pajzslaphoz rögzítettem.

A szervó a 3 voltos csaphoz van csatlakoztatva a tápellátáshoz, és a digitális 2 -es tüske a kommunikációhoz.

** Megjegyzés: csak az építkezés befejezése után vettem észre, hogy az Arduino tábláim nem egyformák. A szerver adó -vevőm a pajzslapon lévő 5 voltos sínről táplálkozik, míg a kliens adó -vevő a 3 voltos tüskéről, bár úgy véltem, hogy az adó -vevő adapter chipjének feladata a megfelelő feszültség biztosítása. Annyit biztosan állíthatok, hogy a képeken látható konfigurációnak megfelelő kód megadja a leírt hatást.

3. lépés: Szerverkódoló: Másolás és beillesztés

// SZERVER KÓD/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nem használt GND> GND VCC> 5V */// adó -vevő vezeték

#befoglalni

// szervo könyvtár

#befoglalni

// adó -vevő könyvtár

#define Servopin 2

// deklarációs szervo kimeneti csap

ServoTimer2 szerv;

// szervo név deklarációja

RH_NRF24 nrf24;

// az adó -vevő nevének deklarálása

int timeOUT = 0;

// szervo változó

int impulzusok = 90;

// változó impulzusok tárolására

üres beállítás ()

{serv.attach (Servopin); // szervo cucc

Sorozat.kezdet (9600); // adó -vevő cucc

ha (! nrf24.init ())

Serial.println ("init failed"); // soros monitor cucc if (! nrf24.setChannel (12)) // a csatorna beállítása 125 Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF nem sikerült"); // soros monitor cuccok}

üres hurok ()

{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // soros monitor cuccok {Serial.print ("got request:"); impulzusok = strtol ((const char*) buf, NULL, 10); // adattípus -változtatás

int prin = térkép (impulzusok, 750, 2250, 0, 180); // adattípus -változtatás

Serial.println (prin); serv.write (impulzusok); // mozgatja a szervót}}

}

4. lépés: Ügyféltanács

Ügyféltanács
Ügyféltanács

Az ügyféllap egy adó -vevő modulból és a potenciométerből áll. Az adó -vevő modul ugyanúgy ** van bekötve, mint a szerverlap, azzal a kivétellel, hogy az árnyékolólap nélkül közvetlenül az Arduino kártya csapjaihoz.

A potenciométer 5V -os, földelt, és a 2 -es analóg érintkezőhöz van csatlakoztatva.

** Megjegyzés: amint azt a szervertábla lépésben említettük, az Arduino tábláim nem egyformák. Ebben az esetben az adó -vevő a 3.3V jelű tüskéhez van kötve, közvetlenül az 5V -os tű mellett, de úgy tűnik, minden rendben működik.

5. lépés: Ügyfélkód: Másolás és beillesztés

// ÜGYFÉLKÓD/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nem használt GND> GND VCC> 5V */// adó -vevő vezeték

#befoglalni

// adó -vevő könyvtár

int potpin = A2; // potenciométer delaráció

int val;

char tempChar [5];

Karakterlánc valString = ""; // adattípus -változtatás

RH_NRF24 nrf24; // adó -vevő cucc

üres beállítás ()

{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("init failed"); // Az alapértelmezett értékek az init után 2,402 GHz (2. csatorna), 2 Mbps, 0 dBm, ha (! Nrf24.setChannel (12)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF nem sikerült"); } // adó -vevő dolgok

void loop () {

val = analogRead (potpin); // potenciométer cucc

val = térkép (val, 0, 1023, 750, 2250);

valString = val; Karakterlánc str = (valString); str.toCharArray (tempChar, 5); // adattípus megváltoztatása cucc nrf24.send (tempChar, sizeof (tempChar));

}

6. lépés: Megjegyzés a kódról:

A kód tartalmaz néhány korlátozott hibaelhárítási funkciót, az Arduino szoftver interfészében lévő soros monitor visszajelzése formájában. Amikor a soros monitort a SERVER -kódból nézi (ctrl + shift + M), látnia kell a potenciométer állapotát 1 és 180 közötti szám formájában.

Ezenkívül itt van a vezeték nélküli és a szervo könyvtára:

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

github.com/nabontra/ServoTimer2

Ajánlott: