Начну я пожалуй.
Как и обещал - подготовил универсальную прошивку для расширяемых систем. Естественно - вместе с программой настройки. Пока прошивка существует только для Arduino Mega 2560, но надеюсь скоро адаптировать ее и для Arduino Uno / Duemilanove
Прошивка написана на CodeVisionAVR. Загрузка в Arduino осуществляется утилитой Xloader
Вот некоторые фичи проекта:
- разрядность всех каналов ШИМ - 8 бит.
- поддержка любого количества осей (от 1-й до 6-и) без специальных ухищрений.
- специальный режим 2-dof совместимый по пинам с Monster Motor Shield (с двумя сигналами ДИР1/2 на ось).
- полный ПИД регулятор для каждой оси.
- несколько переключаемых режимов управления:
--- классический ШИМ+ДИР с настраиваемой частотой генерации ШИМ, ( фикс. значения от 70 Гц до 70 кГц ),
--- "аналоговый" ШИМ с нулем на уровне 2.5 вольта,
--- режим управления сервоприводами.
- экспериментальная поддержка UltraSonic обратной связи.
- программные "ограничители" для датчиков обратной связи.
- период регулирования ПИД порядка одной миллисекунды в любом режиме.
- оперативная передача данных на компьютер для визуализации и настройки.
Недоделки:
- пока не прикрутил "сквозную" трансляцию данных от SimTools сквозь xSimCtrl на Ардуину. Обязательно прикручу.
Протокол управления
Скорость обмена - 500 кБод
Управляющая "посылка" - строка (по три символа на ось).
Первый символ - название оси из списка 'L','R','X','Y','Z','W'
Второй и третий символы - байт в HEX формате (от '00' до 'FF')
ПРИМЕР L7FR00XFF
Длина "посылки" - произвольная. Для 2dof управления достаточно передать 6 символов, для 3dof - 9 символов и т.д
уфф. ладно, это затравка. Буду продолжать постепенно. Заодно и интерес пощупаем
Приглашаю коллег к тестированию и обсуждению.
ЗЫ: Прежде чем включать силовое питание обязательно убедитесь на каких нибудь "светодиодах" что все работает как надо. Ибо сказано - "ПРОГРАММ БЕЗ ОШИБОК НЕ БЫВАЕТ"
ЗЫЗЫ: Режим совместимости с MonsterMotorShield еще не проверял, возможно он пока не полный, так что пока не торопитесь с подключением "монстра". Проверю - дам отмашку.