Съдържание:
- Стъпка 1: Компоненти
- Стъпка 2: Сървърна платка
- Стъпка 3: Кодиращ сървър: Копиране и поставяне
- Стъпка 4: Клиентски съвет
- Стъпка 5: Клиентски код: Копиране и поставяне
- Стъпка 6: Забележка относно кода:
Видео: Безжично серво управление: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Този проект контролира безжично въртенето на серво посредством потенциометър (копче). Ротацията е ограничена до 180 градуса.
Стъпка 1: Компоненти
Този проект се състои от
- 2 контролни платки Arduino UNO с USB конектор
- 2 nRF24L01-2.4GHz RF трансийвър модула (за помощ с тези модули вижте
- 2 адаптерни платки за гнездо (чипове за раница) за nRF24L01
- 1 допълнителна съвместима с Arduino 328 ProtoShield прототипна платка за разширение
- 1 серво
- 1 аналогов потенциометър
- поялник и спойка
- тел
- клещи с иглени носове
- изолационна обвивка, използвах електрическа лента
Стъпка 2: Сървърна платка
Сървърната платка се състои от трансийвър модул, щит (който се свързва директно към платката Arduino само по един начин) и серво. Реших да включа щита за щитове, за да избегна тромавия чертеж и да придам на проекта и цялостния по -изчистен завършек.
Кодът и уеб ресурсът, включени в списъка с компоненти, подробно описват връзките на модула на трансивъра. Реших да запоя връзките, вместо да използвам временни връзки, както в предишните проекти. Тъй като съм начинаещ, изолирах всяка спойка с електрическа лента (не бяха хубави).
Щифтовете на щита отговарят директно на щифтовете на Arduino. Преди да прикрепя щита за щит, свързах земята и 5 -волтовите щифтове към релсите на платката с тел и спойка. Също така запоявах 5 -волтовите и заземяващите проводници на компонентите към релсите на щитната платка, след което най -накрая прикрепих Arduino към щитната платка.
Сервото е прикрепено към 3 -волтовия щифт за захранване и цифров щифт 2 за комуникация.
** Забележка: едва след завършване на тази компилация забелязах, че дъските ми Arduino не са идентични. Сървърният ми трансивер се захранва от 5 -волтовата шина на щита за щитове, докато клиентският трансийвър се захранва от 3 -волтовия щифт, въпреки че бях накаран да вярвам, че функция на адаптерния чип на трансивъра е да осигури подходящото напрежение. Всичко, което мога да кажа със сигурност, е, че предоставеният код, съчетан с конфигурацията, показана на изображенията, произвежда описания ефект.
Стъпка 3: Кодиращ сървър: Копиране и поставяне
// СЕРВЕРСКИ КОД/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Не се използва GND> GND VCC> 5V */// окабеляване на трансивера
#включва
// серво библиотека
#включва
// приемо -предавателна библиотека
#дефинирайте Servopin 2
// декларация за изход на серво серво
ServoTimer2 сервиз;
// декларация за име на серво
RH_NRF24 nrf24;
// деклариране на името на трансивъра
int timeOUT = 0;
// променлива за серво
int импулси = 90;
// променлива за съхраняване на импулси
void setup ()
{serv.attach (Servopin); // серво неща
Serial.begin (9600); // приемо -предавателни неща
ако (! nrf24.init ())
Serial.println ("init failed"); // сериен монитор, ако (! nrf24.setChannel (12)) // настройте канала на 125 Serial.println ("setChannel неуспешно"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF неуспешно"); // сериен монитор}
void loop ()
{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // неща за сериен монитор {Serial.print ("got request:"); импулси = strtol ((const char*) buf, NULL, 10); // промяна на типа данни
int prin = карта (импулси, 750, 2250, 0, 180); // промяна на типа данни
Serial.println (prin); serv.write (импулси); // кара серво да се движи}}
}
Стъпка 4: Клиентски съвет
Клиентската платка се състои от трансийвър модул и потенциометър. Модулът на трансивъра е свързан по същия начин ** като сървърната платка, с изключение на това, че без щитната платка, той е свързан директно към щифтовете на платката Arduino.
Потенциометърът приема 5v, заземен и е свързан към аналогов щифт 2.
** Забележка: както е споменато в стъпката на сървърната платка, моите Arduino платки не са идентични. В този случай трансивърът е свързан към щифта, обозначен с 3.3V, директно в непосредствена близост до 5V щифта, но отново всичко изглежда добре.
Стъпка 5: Клиентски код: Копиране и поставяне
// КЛИЕНТСКИ КОД/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Не се използва GND> GND VCC> 5V */// окабеляване на трансивера
#включва
// приемо -предавателна библиотека
int potpin = A2; // забавяне на потенциометъра
int val;
char tempChar [5];
Низ valString = ""; // промяна на типа данни
RH_NRF24 nrf24; // приемо -предавателни неща
void setup ()
{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("init failed"); // По подразбиране след init са 2.402 GHz (канал 2), 2Mbps, 0dBm if (! Nrf24.setChannel (12)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF неуспешно"); } // приемо -предавателни неща
void loop () {
val = analogRead (potpin); // потенциометър неща
val = карта (val, 0, 1023, 750, 2250);
valString = val; Низ str = (valString); str.toCharArray (tempChar, 5); // промяна на типа данни nrf24.send (tempChar, sizeof (tempChar));
}
Стъпка 6: Забележка относно кода:
Кодът съдържа някои ограничени функции за отстраняване на неизправности под формата на обратна връзка от серийния монитор в софтуерния интерфейс на Arduino. Когато гледате серийния монитор от кода на SERVER (ctrl + shift + M), трябва да можете да видите състоянието на потенциометъра под формата на число между 1 и 180.
Също така, тук е библиотеката за безжична връзка и серво:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
Препоръчано:
Безжично зарядно устройство Qi за дистанционно управление ESkate: 3 стъпки
Безжично Qi зарядно устройство за ESkate Remote: Използвам ESkate от известно време и понякога дистанционното ще започне да мига червено в средата на пътуването с молба да се зареди. И тъй като няма начин да разберете колко енергия остава в дистанционното, без да е включен, това е досадно
Безжично дистанционно управление на ITunes - Packrat Style !: 4 стъпки
Безжично дистанционно управление на ITunes - Packrat Style !: < BackStory > Купих си комплект от тези безжични слушалки, защото ми беше омръзнало да бъда привързан към работното си място за лаптоп с обикновени слушалки. О, каква свобода! Обичам да слушам библиотеката си в iTunes при разбъркване и понякога ще отблъскам
Робот -кола с безжично управление Arduino: 5 стъпки
Робот -кола за безжично управление на Arduino: В тази публикация ще научите как да изградите кола за безжично управление на Arduino. Ще изградим както предавателната, така и приемната страна. Предавателната страна ще включва Arduino nano, джойстик модул и NRF24L01 за изпращане на кабел за данни
Роботизиран комплект за кола Сглобяване и управление чрез PS2 безжично дистанционно: 6 стъпки
Роботизиран комплект за кола, сглобяване и управление чрез безжично дистанционно управление PS2: Този проект е свързан с основните стъпки в света на роботиката, ще се научите да сглобявате 4WD роботизиран автомобилен комплект, като поставите хардуер върху него и го управлявате с безжично дистанционно PS2
Безжично управление на RC серво през UDP: 3 стъпки
Безжично управление на RC серво през UDP: В този проект искам да използвам своя iPhone за управление на RC серво. Ще използвам акселерометъра, за да контролирам два серво през UDP връзка. Това е проект за доказателство за концепция, за да се провери дали връзката между iPhone и периферно устройство може да постигне високи резултати