Оглавление:

UChip - простой эскиз для дистанционного управления двигателями и / или сервоприводами с помощью радио Tx-Rx 2,4 ГГц !: 3 шага
UChip - простой эскиз для дистанционного управления двигателями и / или сервоприводами с помощью радио Tx-Rx 2,4 ГГц !: 3 шага

Видео: UChip - простой эскиз для дистанционного управления двигателями и / или сервоприводами с помощью радио Tx-Rx 2,4 ГГц !: 3 шага

Видео: UChip - простой эскиз для дистанционного управления двигателями и / или сервоприводами с помощью радио Tx-Rx 2,4 ГГц !: 3 шага
Видео: Как выбрать ЭСКИЗ для своей ПЕРВОЙ ТАТУИРОВКИ 2024, Ноябрь
Anonim
Image
Image
UChip - простой эскиз для дистанционного управления двигателями и / или сервоприводами с помощью радио Tx-Rx 2,4 ГГц!
UChip - простой эскиз для дистанционного управления двигателями и / или сервоприводами с помощью радио Tx-Rx 2,4 ГГц!
UChip - простой эскиз для дистанционного управления двигателями и / или сервоприводами с помощью радио Tx-Rx 2,4 ГГц!
UChip - простой эскиз для дистанционного управления двигателями и / или сервоприводами с помощью радио Tx-Rx 2,4 ГГц!

Мне очень нравится мир RC. Использование радиоуправляемой игрушки дает вам ощущение, что вы управляете чем-то необычным, несмотря на то, что это небольшая лодка, автомобиль или дрон!

Однако непросто настроить игрушки и заставить их делать то, что вы от них хотите. Обычно вы ограничены использованием настроек передатчика по умолчанию или специально разработанных комбинаций переключателей и ручек.

Довольно сложно управлять всем, как вы действительно хотите, в основном потому, что мир RC требует довольно глубоких знаний программирования на аппаратном уровне, чтобы извлечь из этого максимум пользы.

Я перепробовал множество платформ и настроек, но всегда требовалось много усилий, чтобы освоиться с кодом, прежде чем приступить к реальной настройке моей игрушки RC.

Чего мне не хватало, так это простого скетча, который я мог бы загрузить с помощью Arduino IDE и который легко позволил бы мне преобразовать значения, исходящие от Radio RX (приемника), в желаемое управление двигателем / сервоприводом.

Поэтому вот то, что я создал, немного поиграв с uChip и Arduino IDE: простой эскиз для дистанционного управления двигателями и / или сервоприводами через радио Tx-Rx 2,4 ГГц!

Ведомость материалов

1 x uChip: плата, совместимая с Arduino IDE

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

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

Двигатели / сервоприводы: в соответствии с вашими потребностями

Электронные компоненты для управления двигателями / сервоприводами: простые резисторы, полевые МОП-транзисторы и диоды позволяют вам решать задачи вождения.

Шаг 1. Подключение

Проводка
Проводка
Проводка
Проводка
Проводка
Проводка
Проводка
Проводка

Соедините компоненты вместе, как описано на схемах.

Rx подключается напрямую к uChip и не требует никаких внешних компонентов. Если вы используете другой приемник, проверьте, нужен ли вам переключатель уровня или нет. Обязательно подключите сигнал cPPM к uChip PIN_9 (который является PORTA19 на случай, если вы хотите адаптировать код к другой плате SAMD21).

Остальная проводка необходима для привода двигателя и / или сервопривода. Прилагаемая схема представляет собой базовую схему для защиты uChip от скачков / выбросов, которые обычно возникают при работе с индуктивными нагрузками. Ключевым компонентом для обеспечения безопасности uChip является силовой стабилитрон на 5,1 В (D1 на схеме), который необходимо подключить параллельно VEXT (вывод 16 uChip) и GND (вывод 8 uChip). В качестве альтернативы, вместо использования стабилитрона, вы можете выбрать дополнительную схему, представленную D2, C1 и C2, которая предотвращает обратные выбросы, которые могут повредить компоненты uChip.

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

Поскольку я хотел управлять как минимум двумя двигателями и двумя сервоприводами, я сделал небольшую печатную плату, на которой реализована описанная схема, которую вы можете видеть на картинке. Однако первый прототип был изготовлен на прототипе с использованием летающих тросов.

Таким образом, для реализации этого несложного проекта вам не потребуются какие-либо навыки пайки / проектирования печатных плат:)

Шаг 2: программирование

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

Вот это волшебство! Здесь все становится интересно.

Если вы построили схему, описанную на предыдущей схеме, вы можете просто загрузить скетч «DriveMotorAndServo.ino», и все должно работать.

Взгляните на код и проверьте, как он работает.

Вначале есть несколько #define, используемых для определения:

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

- штифты, на которых прикреплены двигатели / сервоприводы

- Макс и мин, используемые для сервопривода и двигателей

- Макс. И мин., Используемые для диапазона радиоканалов

Затем есть раздел объявления переменных, в котором объявляются переменные двигателей / сервоприводов.

Если вы управляете более чем одним двигателем и одним сервоприводом, подключенным, как описано на предыдущей схеме, вам необходимо изменить эскиз и добавить код, управляющий дополнительными двигателями / сервоприводами, которые вы подключили. Вам нужно добавить столько сервоприводов, servo_value и motor_value, сколько сервоприводов / двигателей вы используете.

В разделе объявления переменных есть также несколько изменчивых переменных, используемых для сравнения захвата сигнала 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 без необходимости делать это вручную. Следите за обновлениями!

Рекомендуемые: