Съдържание:

UChip - Проста скица към двигатели и/или сервоустройства за дистанционно управление чрез 2.4GHz Radio Tx -Rx !: 3 стъпки
UChip - Проста скица към двигатели и/или сервоустройства за дистанционно управление чрез 2.4GHz Radio Tx -Rx !: 3 стъпки

Видео: UChip - Проста скица към двигатели и/или сервоустройства за дистанционно управление чрез 2.4GHz Radio Tx -Rx !: 3 стъпки

Видео: UChip - Проста скица към двигатели и/или сервоустройства за дистанционно управление чрез 2.4GHz Radio Tx -Rx !: 3 стъпки
Видео: Управление 32 сервомоторами с помощью PCA9685 и Arduino: V3 2024, Ноември
Anonim
Image
Image
UChip - Проста скица към двигатели и/или сервоустройства за дистанционно управление чрез 2.4GHz Radio Tx -Rx!
UChip - Проста скица към двигатели и/или сервоустройства за дистанционно управление чрез 2.4GHz Radio Tx -Rx!
UChip - Проста скица към двигатели и/или сервоустройства за дистанционно управление чрез 2.4GHz Radio Tx -Rx!
UChip - Проста скица към двигатели и/или сервоустройства за дистанционно управление чрез 2.4GHz Radio Tx -Rx!

Наистина харесвам света на RC. Използването на RC играчка ви създава усещането, че контролирате нещо изключително, въпреки че е малка лодка, кола или дрон!

Не е лесно обаче да персонализирате играчките си и да ги накарате да правят каквото искате. Обикновено сте ограничени да използвате настройките на предавателя по подразбиране или специално проектираните комбинации от ключове и копчета.

Да се контролира всичко, както наистина искате, е доста трудно, главно защото светът на RC изисква доста дълбоки познания за програмиране на хардуерно ниво, за да извлечете най-доброто от него.

Опитах много платформи и настройки, но винаги струваше огромни усилия, за да се запозная достатъчно с кода, преди да направя реална персонализация на моята RC играчка.

Това, което ми липсваше, е обикновена скица, която бих могла да заредя с помощта на Arduino IDE и която лесно би ми позволила да преведа стойностите, излизащи от Radio RX (приемник), в желания двигател/серво управление.

Ето защо ето какво създадох, след като поиграх малко с uChip и Arduino IDE: Проста скица за двигатели и/или сервоустройства за дистанционно управление чрез 2.4GHz Radio Tx-Rx!

Сметка на материалите

1 x uChip: Arduino IDE съвместима платка

1 Радиосистема xTx-Rx: всяка радиосистема с cPPM приемник е добра (моята комбинация е стар Spectrum DX7 Tx + Orange R614XN cPPM Rx), уверете се, че следвате правилната процедура за свързване, за да свържете Tx и Rx.

1 x Батерия: батериите с висок ток на разреждане са необходими при работа с двигатели и серво.

Двигатели/сервомотори: според вашите нужди

Електронни компоненти за задвижване на двигатели/сервомотори: прости резистори, MOSFET и диоди ви позволяват да постигнете целта на шофирането.

Стъпка 1: Окабеляване

Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации

Свържете компонентите заедно, както е описано в схемите.

Rx е свързан директно към uChipand не изисква никакви външни компоненти. В случай, че използвате различен приемник, проверете дали имате нужда от превключвател на нивата или не. Не забравяйте да свържете cPPM сигнала към uChip PIN_9 (който е PORTA19 в случай, че искате да адаптирате кода към друга платка SAMD21).

Останалото окабеляване е необходимо за задвижване на двигателя и/или серво. Приложената схема представя основната схема, за да предпази uChip от скокове/превишения, които обикновено възникват при задвижване на индуктивни товари. Ключовият компонент за запазване на безопасността на uChip е стабилизиращият диод от 5.1V (D1 в схемата), който трябва да поставите успоредно на VEXT (uChip pin 16) и GND (uChip pin 8). Като алтернатива, вместо да използвате ценеровия диод, можете да изберете опционалната схема, представена от D2, C1 и C2, която предотвратява обратните шипове да повредят компонентите на uChip.

Можете да управлявате толкова двигатели/серво, колкото ви е необходимо, като просто възпроизведете схемата и промените контролните щифтове (можете да използвате всеки щифт, с изключение на захранващите щифтове (PIN_8 и PIN_16) и щифта cPPM (PIN_9)). Имайте предвид, че макар да ви е необходима само една защитна схема, представена от ценеровия диод (или компонентите за допълнителната схема), електрическите компоненти, свързани с задвижването на мотора/серво, трябва да бъдат възпроизведени толкова пъти, колкото броя на двигателите/ серво, които възнамерявате да карате.

Тъй като исках да карам поне 2 двигателя и 2 сервомотора, направих малка платка, която реализира описаната схема и която можете да видите на снимката. Първият прототип обаче е направен на прото-платка с помощта на летящи проводници.

По този начин не се нуждаете от никакви умения за запояване/дизайн на печатни платки, за да реализирате този прост проект:)

Стъпка 2: Програмиране

Програмиране
Програмиране

Тук е магията! Тук нещата стават интересни.

В случай, че сте изградили схемата, описана в предишната схема, можете просто да заредите скицата „DriveMotorAndServo.ino“и всичко трябва да работи.

Разгледайте кода и проверете как работи.

В началото има няколко #define, използвани за дефиниране:

- числовите канали на Rx (6Ch с оранжевото 614XN)

- щифтовете, където са прикрепени двигатели/серво

- Макс и мин, използвани за серво и двигатели

- Макс и мин, използвани за обхвата на радио каналите

След това има раздел за деклариране на променливи, където се декларират променливите двигатели/серво.

В случай, че управлявате повече от един двигател и един серво приложен, както е описано в предишната схема, трябва да промените скицата и да добавите кода за обработка на допълнителните мотори/серво, които сте прикачили. Трябва да добавите толкова Servo, servo_value и motor_value колкото серво/мотори използвате.

В раздела за деклариране на променливи има и някои променливи, използвани за Capture Compare на cPPM сигнала. НЕ ПРОМЕНЯЙТЕ ТЕЗИ ПРОМЕНИМИ!

Това, което трябва да направите по -нататък, е във функцията loop (). Тук можете да решите как да използвате стойността на входящите канали.

В моя случай свързах входящата стойност директно към двигателя и сервото, но вие сте повече от добре дошли да я промените според вашите нужди! Във видеото и снимките, свързани в този урок, свързах 2 двигателя и 2 сервомотора, но може да има 3, 4, 5,… до максимално наличните свободни щифтове (13 в случай на uChip).

Можете да намерите заснетата стойност на канала в масив ch [index], чийто „индекс“преминава от 0 до NUM_CH - 1. Всеки канал съответства на стик/превключвател/копче на вашето радио. От вас зависи да разберете какво е-какво-какво:)

И накрая, внедрих някои функции за отстраняване на грешки, за да улесня разбирането на случващото се. Коментирайте/декомментирайте #define DEBUG, за да отпечатате на родния SerialUSB стойността на каналите.

СЪВЕТ: Има още код под функцията loop (). Тази част от кода е необходима, за да настроите захранващи щифтове на uChip, да се справите с прекъсванията, генерирани от функцията за сравнение при улавяне, да зададете таймери и цел за отстраняване на грешки. В случай, че се чувствате достатъчно смели да играете с регистри, не се колебайте да го промените!

Редактиране: Актуализирана скица, отстранена грешка във функцията за картографиране.

Стъпка 3: Играйте, карайте, състезавайте се, летете

Image
Image

Уверете се, че сте свързали правилно системата Tx и Rx. Включете захранването, като свържете батерията. Проверете дали всичко работи. Можете да разширите функционалностите или да промените функцията на всеки канал, както желаете, защото сега имате пълен контрол над бъдещия си модел RC.

Сега изградете своя персонализиран модел RC!

P. S.: Тъй като свързването може да бъде доста скучно, планирам скоро да пусна скица, която позволява свързването на вашата Tx-Rx система, без да се налага да го правите ръчно. Очаквайте актуализации!

Препоръчано: