Инструментарий
Этот раздел посвящен техническим и программным средствам, необходимым для работы над проектом.
Отладочный стенд
Для предварительной работы с контроллером и его софтом можно использовать отладочный стенд, представленный на фото:
Программатор
Автор bodja
Программирование контроллеров AVR, используемых в проекте, можно выполнить с помощью такого программатора:
Данный программатор позволяет кроме того обмениваться данными между контроллером и компьютером после программирования.
Плата подключается непосредственно в разьем контроллера двигателей и не требует соединительного шлейфа. К компьютеру подключается к свободному СОМ-порту через обычный шнур-удлинитель СОМ-порта.
Для программирования контроллера необходимо установить на компьютер программу PONYPROG версии не ниже 2.06. и произвести настройки как на рисунке.
Свободную для использования версию программы вы можете найти по адресу www.lancos.com . Перед программированием нужно установить перемычку J1. Для обмена между компьютером и контроллером через эту плату программатора необходимо убрать перемычку J1.
В качестве примера, демонстрирующего обмен данными и управление контроллером ML2313-485 с помощью компьютера, мною была написана простая программка для ПК (на VisualBasic 6.0) и прошивка для контроллера (на AlgorithmBuilder 4.90 и AVRstudio 4.11).
С их помощью можно управлять скоростью и направлением вращения одного двигателя.
Краткое описание принципа работы :
СОМ-порт эмулирует работу шины SPI и отправляет один байт данных в контроллер. Контроллер принимает байт данных, при этом генереруется прерывание "USI_Overflov". В подпрограмме обработки прерывания значение полученного байта присваивается регистрам OCR0A? и OCR0B?.
Так так выводы OC0A? и OC0B? при инициализации таймера были настроены на противоположное изменение своего состояния при совпадении счетного регистра и регистра сравнения, соответственно скважность ШИМ на выводах OC0A? и OC0B? будет обратно пропорциональна друг другу. Тем самым обратно пропорционально изменяется генерируемое напряжение на выводах двигателя, что дает возможность регулировать не только скорость, но и направление вращения.
Полная версия данного материала со схемами, прошивками и пр.:
prog2313.zip (191кБ)
Прошивка контроллера ML 2313 v 2_0
Прошивка для управления двумя двигателями со стабилизацией скорости или без нее по шине
RS 485.Написана под плату контроллера двигателей ML 2313-485
Скачать прошивку. Attach:ML2313v20.bin
Прошивка контроллера ML 2313 v 2_1
Скачать прошивку. Attach:ML2313v2_1.bin
Прошивка контроллера ML 2313 v 2_2
Скачать прошивку. Attach:ML2313v2_2.bin
Прошивка контроллера ML 2313 v 2_3
Скачать прошивку. Attach:ML2313v2_3.bin
Прошивка контроллера ML 2313 v 2_4
Скачать прошивку. Attach:ML2313v2_4.bin
Поддерживаемый протокол:
:M0PFxx00 - оба двигателя вперед без стабилизации скорости
:M1PFxx00 - первый двигатель вперед без стабилизации скорости
:M2PFxx00 - второй двигатель вперед без стабилизации скорости
:M0PRxx00 - оба двигателя назад без стабилизации скорости
:M1PRxx00 - первый двигатель назад без стабилизации скорости
:M2PRxx00 - второй двигатель назад без стабилизации скорости
где xx - значение от 01 до 99 (задаваемая скорость в %)
:M0SFx000 - оба двигателя вперед со стабилизацией скорости
:M1SFx000 - первый двигатель вперед со стабилизацией скорости
:M2SFx000 - второй двигатель вперед со стабилизацией скорости
:M0SRx000 - оба двигателя назад со стабилизацией скорости
:M1SRx000 - первый двигатель назад со стабилизацией скорости
:M2SRx000 - второй двигатель назад со стабилизацией скорости
где x - значение от 1 до 9 (задаваемая скорость в 10%)
:M0SF0000 - выключение обоих двигателей ,остановка по инерции
:M1SF0000 - выключение первого двигателя ,остановка по инерции
:M2SF0000 - выключение второго двигателя ,остановка по инерции
:M0PF0000 - остановка с торможением обоих двигателей
:M1PF0000 - остановка с торможением первого двигателя
:M2PF0000 - остановка с торможением второго двигателя
Для версии v 2.1 дополнительно
:M0TIxx00 - Время между импульсами датчика энкодера при максимальной мощности.
где хх - число от 01 до 40 (с дискретностью 0.5 милисекунд)
Комманда :M0TIxx00 дает возможность прямо с компьютера настроится на энкодеры с разным количеством импульсов за секунду при максимальных оборотах двигателя.(от 50 импульсов в секунду до 2000).Чем больше количество импульсов за секунду тем более быстро и точно будет производиться стабилизация скорости вращения двигателя.Поэтому рекомендуется не менее 100 импульсов за секунду при максимальных оборотах двигателя.
Для версии v 2.2 дополнительно
:M0ZBxx00 - выключение обоих двигателей ,остановка по инерции через заданое количество импульсов от датчика
:M1ZBxx00 - выключение первого двигателя ,остановка по инерции через заданое количество импульсов от датчика
:M2ZBxx00 - выключение второго двигателя ,остановка по инерции через заданое количество импульсов от датчика
:M0ZCxx00 - остановка с торможением обоих двигателей через заданое количество импульсов от датчика
:M1ZCxx00 - остановка с торможением первого двигателя через заданое количество импульсов от датчика
:M2ZCxx00 - остановка с торможением второго двигателя через заданое количество импульсов от датчика
где хх - число от 01 до 99 (количество импульсов от датчика)
Комманды :MхZBxx00 и :MхZCxx00 могут применятся для
для более точного поворота на определленный угол или для
прохождения короткого отрезка пути.Данные комманды выключают (останавливают) двигатель(ли) через заданное количество импульсов,вне зависимости от того включены двигатели или нет.
Пример.
:M1ZC5000 - остановка с торможением первого двигателя через 50 импульсов от датчика
:M2ZC9000 - остановка с торможением второго двигателя через 90 импульсов от датчика
:M0PF3300 - оба двигателя вперед без стабилизации скорости +33%
Примечания:
При изменении режима работы одного из двигателей (например с режима" вращение со стабилизацией" во "вращение без стабилизации" или наоборот) другой двигатель так же переходит в этот режим.Поэтому при переходе на другой режим
вращения необходимо предварительно подать команду СТОП (:M1PF0000) или ВЫКЛЮЧЕНИЕ (:M0SF0000) обоих двигателей.
Предварительно команду СТОП (:M1PF0000) или ВЫКЛЮЧЕНИЕ (:M0SF0000) нужно подать также при реверсе вращения двигателя в режиме "вращение со стабилизацией скорости".
Коммадна :M0TI0000 - в прошивке v2.1 некоректна и будет проигнорированна контроллером.
Например:
:M0SF3000 - оба двигателя вперед со стабилизацией скорости +30%
:M0SF0000 - выключение обоих двигателей ,остановка по инерции
:M1PR8800 - первый двигатель назад без стабилизации скорости -88%
Для версии v 2.3 дополнительно
:L1ON0000- открыть ключ OUT1?
:L1OF0000- закрыть ключ OUT1?
:L2ON0000- открыть ключ OUT0?
:L2OF0000- закрыть ключ OUT0?
На плате контроллера есть 2 вывода (OUT1? и OUT0?) для управления (включения/выключения) произвольным устройством.
Выше приведенные комманды как раз предназначены для управления этими выводами с помощью протокола.
Интерфейс ML 2313-485 commander v 2.0
Технический интерфейс для начального программирования (в этой версии отключено),
автоматической и ручной генерации комманд управления двигателями платы контроллера
ML 2313-485 через СОМ порт (с помощью переходника RS 232<->RS 485) , начального
тестирования платы контроллера и отладки прошивки контроллера.
Скачать программу. Attach:RCcommander.zip
Интерфейс ML 2313-485 commander v 2.1
Скачать программу. Attach:Commanderv21
Интерфейс ML 2313-485 commander v 2.2
Скачать программу. Attach:Commanderv22
Интерфейс ML 2313-485 commander v 2.3
Скачать программу. Attach:Commanderv23
Интерфейс ML 2313-485 commander v 2.4
Скачать программу. Attach:Commanderv24
Интерфейс автоматически генерирует в полном обьеме выше приведенный протокол
с помощью кнопок или слайдеров (скролов),для задания специфических комманд или
задания комманд заведомо неверного формата (для проверки реакции контроллера
на неверную команду) есть режим ручного ввода команды (кнопка "комманда")
Перед началом работы вам необходимо выбрать СОМ порт к которому подключен контроллер.
Комманды передаются со скоростью 9600 бод/сек ,негативная полярность,1 стоп-бит.
Обмен информацией односторонний (полудуплексный режим)
Переходник RS 232<-> RS 485
Переходник RS 232<->RS 485 позволяет принимать комманды плате контроллера
по шине RS 485 от от персонального компьютера через СОМ порт (RS 232).
Скачать схему,печатную плату переходника.
Attach:232_485.zip
Продолжение следует
Средства разработки
Продолжение следует