Как-то раз мне очень захотелось сделать радиоуправляемую модель: Порывшись в Интернете нашёл сложную схему с всего четырьмя каналами. Желание собрать её как-то быстро отпало. Вот так и стартовал мой проект многофункционального дистанционного управления, главную часть которого составляет драйвер (следящий привод).
Система дистанционного управления (далее СДУ) содержит:
1) управление одним драйвером (механизм с датчиком состояния)
2) двунаправленный ШИМ канал
3) 4 цифровых канала (каждый 1 бит)
Применение системы: от радиоуправляемых моделей до мобильных систем управления и передачи данных (полная версия системы установлена на испытательном стенде) здесь показан её существенно упрощенный вариант.
Главным критерием создания предлагаемого устройства были: дешевизна и доступность деталей, минимальная сложность изготовления и отсутствие настроек. Электронная часть собирается за 2-3 часа. На рисунке можно видеть что получилось:
Система управления рулевым механизмом самоколибрующаяся, поэтому достаточно правильно собрать схему и наслаждаться.
Теперь подробнее:
Схема передатчика (transmit.hex):
Резистор R1 задаёт положение рулевого механизма, R2 регулирует скважность ШИМ и полярность, S1-S4 4 бит цифровых данных (устанавливаются по желанию). Оцифровка данных R1 и R2 основана на замере времени заряда конденсаторов C1 и C6, поэтому необходимо чтобы номинал установленных конденсаторов максимально близко соответствовал требуемому на схеме и желательно использовать конденсаторы наименее зависимые от температуры окружающей среды. Частота кварцевого резонатора на контроллере приёмника и передатчика обязательно должна быть равна 20 мГц, на более низких частотах работа схемы непредсказуема из-за недостатка машинного времени. Правильно собранная схема в настройке не нуждается.
Приёмник:
Показаны 2 варианта схемы приёмника.
Первый вариант с мостами на полевых N-канальных транзисторах с встроенными диодами Шоттки. Это обеспечивает максимальное быстродействие из-за низкого сопротивления оных и управление мощной нагрузкой при раздельном питании. При использовании единого питания применены двигатели от дохлых CD-ROM. С иными двигателями схема может быть нестабильна из-за помех возникающих при работе двигателей.
R1 R5 C1 должны совпадать с номиналами на схеме т.к. это узел АЦП. Микросхема MAX232CPE играет роль источника напряжения управления полевыми транзисторами и может быть заменена источником напряжения Uип+3В. 1561ЛИ2 используется в роли преобразователя уровня также может быть заменена на МС способную выполнять роль ПУ. Диод Шоттки VD2 нужен только при использовании единого питания. Частота контроллера только 20мгц. HL1-HL4 линии управления нагрузкой. Вариант схемы коммутации показан на рисунке:
Упрощённый вариант схемы с использованием биполярных транзисторов. Также возможна работа этой схемы от единого и раздельных источников питания.
Теперь о самой сложной части - софте.
Ниже показана конфигурация фьюзов в poneyprog
Прошивка передатчика не нуждается в подстройке.
Самая сложная часть устройства - программа приёмника. Изначально она рассчитана на плохую механику и время позиционирования от одного крайнего положения в другое равное 0,4сек. Но гибкая система калибровочных констант позволяет существенно отклоняться от расчётного режима.
При первом включении система автоматически делает калибровку параметров и запоминает их в энергонезависимой памяти после чего готова к работе. При последующих включениях автоматически берутся данные из памяти.
Теперь подробнее о калибровке, её возможных режимах и условиях.
При использовании некачественной механики (как у меня) или существенного отклонения от расчётного режима возможно неверное распознание калибровочных параметров (у меня вероятность успешной калибровки 85%. Сбой случается в случае прокрута ведущей шестерни датчика положения). Для таких случаев имеется несколько режимов калибровки и все они управляются с помощью байта в EEPROM по адресу $00. Для примера показан дамп значений EEPROM для моей механики.
Вот расшифровка значений ячеек:
; код в ячейке $00 = 3 калибровка сделана
; = 4 только калибровка динамических параметров
; = 5 только однократная калибровка крайних положений механики
; Порядок параметров (адаптивов) в EEPROM
; $03 максимальное время торможения
; $04 максимальное расстояние торможения
; $05 среднее время прохода 1го кванта
; $06 левая граница механики
; $07 правая граница механики
; $08 2/3 расстояния полного хода механики
; $09 Динамический критерий торможения
Режимы калибровки устанавливаются в том же poneyprog путём изменения нулевого байта без изменения значений остальных.
Если с первого раза точность или скорость позиционирования не устраивает то следует установить режим 4. В этом режиме при каждом включении будут калиброваться динамические параметры механики. Если при очередном включении позиционирование стало нормальным то надо прошить режим 3 при котором уже будут постоянно использоваться найденные адаптивы.
При изменении температуры окружающей среды могут измениться границы механики. Для этого используется режим 4. После определения границ автоматически устанавливается режим 3.
Также можно вручную корректировать адаптивы.
Несколько уточнений:
Полевики сняты с дохлой материнской платы. В схеме стабилизатора питания ядра их достаточно.
Механика полностью собрана из дохлых CD-ROMов.
Источник питания приёмника - 2 литиевых аккумулятора от ноутбука. Зарядник для которых опубликован в
статье
Пара фоток платы:
Ну и в заключение демка работы
А это для сравнения - подобный девайс но на 561-ой серии!!!
Прошивка контроллера -
Вы не можете скачивать файлы с нашего сервера
Автор - artem333
C сайта РадиоКОТ!