Демонстратор руки
Я писал, что есть рука и контроллер, управляющей ею: "Драйвер управления рукой". Вот демонстрация работы руки. Пока основная цель руки - раздавать визитки. Скоро она будет это делать в торговом центре на промо-акции. Я решил доработать процесс, чтобы был не нужен ноутбук.
Я поместил в пластмассовый корпус МК Attiny2313 и записал в него программу, осуществляющую подачу визитки.
Питается коробочка прямо от руки. Общение идёт через UART. Собственно, используется всего 4 провода: +, -, RX, TX. Параметры UART:
· Communication Parameters: 8 Data, 1 Stop, No Parity
· USART Mode: Asynchronous
· USART Baud Rate: 9600
Принцип работы:
· Первое нажатие зелёной кнопки - взять визитку.
· Второе нажатие зелёной кнопки - отдать визитку.
· Красная кнопка - аварийное отключение руки. Замигают зелёный и красный светодиод, рука отключится. Далее зелёная кнопка действовать не будет.
Сигнальные светодиоды:
· Зелёный - признак что есть питание. При включении несколько раз мигает, затем просто горит.
· Желтый - признак, что есть соединения (поступают данные от руки).
· Красный - признак какой-то ошибки.
В Attiny2313 мало памяти, поэтому пришлось разработать сокращённый вариант хранения последовательности управляющих команд. Для этого я доработал программу для разработки скрипта. Появилась копка "В формате для прошивки данных в МК". Исходные коды программы (проект для Visual C++).
Для хранения данных в внешних МК для управления рукой используется следующий сжатый формат данных:
· 0x10 - Подать напряжение на все сервоприводы. Но они включаются не сразу, а по очереди с задержкой.
· 0x20 - Отключить подачу напряжения для всех сервоприводов.
· 0x3X - Подать напряжение на сервопривод. X - номер сервопривода.
· 0x4X - Не подавать напряжение на сервопривод. X - номер сервопривода.
· 0x5X 0xYY - Установить значение ШИМ. X - номер сервопривода. Далее следует байт YY, задающий положение. Таким образом диапазон значений от 00 до 99.
· 0x6X 0xYY - Задержка в микросекундах (1/100 сек). X старшая часть YY - младшая. Итого диапазон значений от 0 до 0xFFF (4095). Т.е. можно задать время от 0 до 4 секунд.
Внутренне устройство:
Схема:
И последнее, собственно текст программы для МК: проект для CodeVisuonAVR.









