Orodha ya maudhui:

Udhibiti wa Servo isiyo na waya: Hatua 6
Udhibiti wa Servo isiyo na waya: Hatua 6

Video: Udhibiti wa Servo isiyo na waya: Hatua 6

Video: Udhibiti wa Servo isiyo na waya: Hatua 6
Video: 28 панфиловцев. Самая полная версия. Panfilov's 28 Men (English subtitles) 2024, Novemba
Anonim
Udhibiti wa Servo isiyo na waya
Udhibiti wa Servo isiyo na waya
Udhibiti wa Servo isiyo na waya
Udhibiti wa Servo isiyo na waya

Mradi huu unadhibiti mzunguko wa servo bila waya kupitia potentiometer (knob). Mzunguko umezuiliwa hadi digrii 180.

Hatua ya 1: Vipengele

Vipengele
Vipengele
Vipengele
Vipengele
Vipengele
Vipengele

Mradi huu unajumuisha

  • 2 Bodi za mtawala za Arduino UNO na kebo ya kontakt USB
  • 2 nRF24L01 - 2.4GHz moduli za transceiver za RF (kwa msaada wa moduli hizi rejea
  • Bodi 2 za adapta tundu (chips za mkoba) kwa nRF24L01
  • 1 hiari Arduino Sambamba 328 ProtoShield Mfano wa Bodi ya Upanuzi
  • 1 servo
  • 1 Analog potentiometer
  • chuma cha kutengeneza na solder
  • Waya
  • koleo za pua zilizo na sindano
  • kuhami kufunika, nilitumia mkanda wa umeme

Hatua ya 2: Bodi ya Seva

Bodi ya Seva
Bodi ya Seva

Bodi ya seva ina moduli ya transceiver, bodi ya ngao (ambayo inaunganisha moja kwa moja na bodi ya Arduino njia moja tu), na servo. Niliamua kujumuisha bodi ya ngao kuepukana na ubao wa mkate usiofaa na kutoa mradi na kumaliza nadhifu kabisa.

Nambari na rasilimali ya wavuti iliyojumuishwa katika orodha ya vitu kwa undani unganisho la moduli ya transceiver. Niliamua kuuza unganisho badala ya kutumia unganisho la muda mfupi kama katika miradi ya awali. Kwa kuwa mimi ni mwanzoni, nilitia maboksi kila solder pamoja na mkanda wa umeme (hazikuwa nzuri).

Pini za bodi ya ngao zinahusiana moja kwa moja na pini za Arduino. Kabla ya kuifunga bodi ya ngao, niliunganisha ardhi na pini 5volt kwenye reli za bodi na waya na solder. Pia niliuza vifaa vya 5volt na waya za ardhini kwa reli za bodi ya ngao, kisha mwishowe nikaunganisha Arduino kwenye bodi ya ngao.

Servo imeambatanishwa na pini ya 3volt ya nguvu na pini ya dijiti 2 kwa mawasiliano.

** Kumbuka: ni baada tu ya kumaliza ujenzi huu ndipo niliona kuwa bodi zangu za Arduino hazifanani. Transceiver yangu ya seva inaendeshwa na reli ya 5volt kwenye bodi ya ngao, wakati transceiver ya mteja inaendeshwa na pini ya 3volt, ingawa nimeongozwa kuamini kuwa kazi ya chip ya adapta kwenye transceiver ni kutoa voltage inayofaa. Ninachoweza kusema kwa hakika ni kwamba nambari iliyotolewa inalingana na usanidi ulioonyeshwa kwenye picha hutoa athari iliyoelezewa.

Hatua ya 3: Coder ya Seva: Nakili na Bandika

// SERVER CODE / * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Haitumiwi GND> GND VCC> 5V * / // waya ya transceiver

# pamoja

// maktaba ya servo

# pamoja

// maktaba ya transceiver

#fafanua Servopin 2

// tamko pato servo pato

Huduma ya ServoTimer2;

// tamko la jina la servo

RH_NRF24 nrf24;

// tamko la jina la transceiver

wakati wa muda = 0;

// kutofautisha kwa servo

mapigo ya int = 90;

// variable kuhifadhi kunde

kuanzisha batili ()

{serv. ambatanisha (Servopin); // vitu vya servo

Serial. Kuanza (9600); // vitu vya transceiver

ikiwa (! nrf24.init ())

Serial.println ("init imeshindwa"); // vitu vya kufuatilia serial ikiwa (! nrf24.setChannel (12)) // weka kituo kwa 125 Serial.println ("setChannel imeshindwa"); ikiwa (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF imeshindwa"); // vitu vya kufuatilia mfululizo}

kitanzi batili ()

{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = saizi ya (buf); ikiwa (nrf24.recv (buf, & len)) // vitu vya kufuatilia serial {Serial.print ("got request:"); kunde = strtol ((const char *) buf, NULL, 10); // vitu vya kubadilisha aina ya data

prin = ramani (kunde, 750, 2250, 0, 180); // aina ya data kubadilisha vitu

Serial.println (prin); andika (kunde); // hufanya servo isongee}}

}

Hatua ya 4: Bodi ya Wateja

Bodi ya Wateja
Bodi ya Wateja

Bodi ya mteja ina moduli ya transceiver na potentiometer. Moduli ya transceiver imeunganishwa kwa njia ile ile ** kama bodi ya seva isipokuwa kwamba bila bodi ya ngao, imeunganishwa moja kwa moja kwenye pini za bodi ya Arduino.

Potentiometer inachukua 5v, ardhini, na imeshikamana na pini ya analog 2.

** Kumbuka: kama ilivyoelezwa katika hatua ya bodi ya seva, bodi zangu za Arduino hazifanani. Katika kesi hii transceiver imeunganishwa kwa pini iliyoandikwa 3.3V, karibu moja kwa moja na pini ya 5V, lakini tena, kila kitu kinaonekana kufanya kazi vizuri.

Hatua ya 5: Nambari ya mteja: Nakili na Bandika

// KODI YA MTEJA / * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Haitumiwi GND> GND VCC> 5V * / // waya ya transceiver

# pamoja

// maktaba ya transceiver

potpin = A2; // upunguzaji wa potentiometer

int val;

char tempChar [5];

String valString = ""; // vitu vya kubadilisha aina ya data

RH_NRF24 nrf24; // vitu vya transceiver

kuanzisha batili ()

{Serial.begin (9600); ikiwa (! nrf24.init ()) Serial.println ("init imeshindwa"); // Chaguo-msingi baada ya init ni 2.402 GHz (kituo 2), 2Mbps, 0dBm ikiwa (! Nrf24.setChannel (12)) Serial.println ("setChannel imeshindwa"); ikiwa (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF imeshindwa"); } // vitu vya kupitisha

kitanzi batili () {

val = analogSoma (sufuria); // vitu vya potentiometer

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

kambaString = val; Kamba str = (valString); str.toCharArray (tempChar, 5); // orodha ya kubadilisha data nrf24.send (tempChar, sizeof (tempChar));

}

Hatua ya 6: Ujumbe Kuhusu Msimbo:

Nambari hiyo ina utendaji mdogo wa utatuzi kwa njia ya maoni kutoka kwa mfuatiliaji wa serial katika kiolesura cha programu ya Arduino. Wakati wa kutazama mfuatiliaji wa serial kutoka kwa nambari ya SERVER (ctrl + shift + M), unapaswa kuona hali ya potentiometer kwa njia ya nambari kati ya 1 na 180.

Pia, hapa kuna maktaba ya wireless na servo:

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

github.com/nabontra/ServoTimer2

Ilipendekeza: