Заголовок сообщения: Управление сервомашинками через COM порт ПК
Добавлено: Ср дек 07, 2016 05:40:26
Вымогатель припоя
Карма: 4
Рейтинг сообщений: 14
Зарегистрирован: Чт мар 05, 2009 05:31:16 Сообщений: 600 Откуда: г. Кемерово
Рейтинг сообщения:0
Задумалось мне сделать управление сервомашинками от компьютера, для новогодней аниматроники, и желательно попроще. В результате получилась схемка на «голом» контроллере. Как думаете , будет достаточно или что то все же надо добавить ?
Вложения:
Комментарий к файлу: Контроллер сервомашинок на PIC12F629 SERV_629.GIF [14.24 KiB]
Скачиваний: 667
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Заголовок сообщения: Re: Управление сервомашинками через COM порт ПК
Добавлено: Ср дек 07, 2016 17:15:03
Вымогатель припоя
Карма: 4
Рейтинг сообщений: 14
Зарегистрирован: Чт мар 05, 2009 05:31:16 Сообщений: 600 Откуда: г. Кемерово
Рейтинг сообщения:0
А.... нет необходимости. Уровни ограничиваются до уровней источника питания через встроенные на входе контроллера защитные диоды. В целом все получилось, жаль что при использовании внутреннего 4 мГц генератора, точность позиционирования 2 градуса. Хотя при 2 машинках можно получить и 1 градус. Быстродействия чуток не хватает
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Заголовок сообщения: Re: Управление сервомашинками через COM порт ПК
Добавлено: Ср дек 07, 2016 18:01:44
Вымогатель припоя
Карма: 4
Рейтинг сообщений: 14
Зарегистрирован: Чт мар 05, 2009 05:31:16 Сообщений: 600 Откуда: г. Кемерово
Рейтинг сообщения:0
Можно. Можно и любой радио модуль, можно и просто алгоритм вшить. Там половина памяти свободна осталась, при том что программа не оптимизирована, многое решено прямо в лоб, тяжело и громоздко
жаль что при использовании внутреннего 4 мГц генератора, точность позиционирования 2 градуса.
Надо было вместо PIC12F629 поставить STM32F030F4P6 (у которого тактовая частота не 4, а 48 МГц ). Задействовать 4 канала ШИМ одного из таймеров и получить гораздо большую разрешающую способность. У него USART может работать с полудуплексном режиме используя один вывод для приема и передачи.
Заголовок сообщения: Re: Управление сервомашинками через COM порт ПК
Добавлено: Ср дек 07, 2016 19:23:01
Вымогатель припоя
Карма: 4
Рейтинг сообщений: 14
Зарегистрирован: Чт мар 05, 2009 05:31:16 Сообщений: 600 Откуда: г. Кемерово
Рейтинг сообщения:0
Этот тоже может работать быстрее, но встроенный генератор именно 4 мГц, а для большей скорости нужен внешний резонатор, а это лишняя обвязка. Люблю минимализм в железе
Опять же разные архитектуры, так что быстродействие исходя из тактовой сравнить не получится. Да и по привык я к Гарвардской
Разница в надежности. Программный UART и программный ШИМ для сервоприводов могут не всегда дружить друг с другом. Или UART что-то не то примет или передаст, или стабильность частоты/скважности ШИМ может "поплыть".
Заголовок сообщения: Re: Управление сервомашинками через COM порт ПК
Добавлено: Чт дек 08, 2016 07:11:23
Вымогатель припоя
Карма: 4
Рейтинг сообщений: 14
Зарегистрирован: Чт мар 05, 2009 05:31:16 Сообщений: 600 Откуда: г. Кемерово
Рейтинг сообщения:0
Большая надежность аппаратной реализации, это на мой взгляд, из области верований Ни в одном мануале не встречал рекомендаций использовать аппаратную периферию исходя из ее большей надежности. А вопрос надежности программной реализации исключительно вопрос прямизны рук программиста
Посмотрел исходник... Во первых, на сервопривод нужно подавать импульсы с частотой 50 Гц и длительностью импульса от 1 до 2 мс. А у вас сколько? Во вторых, где гарантия что при 500 микросекундной задержке или выполнении цикла формирующего импульсы для сервомашинок не придут данные с COM порта и они частично или полностью будут пропущены по той причине что в этот момент не выполняется функция SERIN? Есть 100% уверенность что такого не может произойти?
Alexey1969 писал(а):
А вопрос надежности программной реализации исключительно вопрос прямизны рук программиста
Ваш вариант мягко говоря не самый надежный и правильный. Выше написал почему.
Заголовок сообщения: Re: Управление сервомашинками через COM порт ПК
Добавлено: Чт дек 08, 2016 12:43:04
Вымогатель припоя
Карма: 4
Рейтинг сообщений: 14
Зарегистрирован: Чт мар 05, 2009 05:31:16 Сообщений: 600 Откуда: г. Кемерово
Рейтинг сообщения:0
Что касается длительности импульса, то не верно, она 450-2450 , смотрим датшит. В реальности, частота следования импульсов может не обязательно должна быть строго 50 герц, она совершенно спокойно может меняться в достаточно широких пределах и влияет только на скорость позиционирования, но не на положение.
По гарантиям исполнения, команды действительно могут быть пропущены, ну так контроллер возвращает подтверждения если все исполнил
Собственно все и выложено, что возможно будет предложен лучший вариант
Надо было вместо PIC12F629 поставить STM32F030F4P6
В чем преимущество STM32F030F4P6 в данном случае? Во первых, аппаратный USART с поддержкой полудуплексного режима с приемом и передачей по одной линии. Это гарантирует отсутствие пропуска данных из-за занятости процессора. При приеме байта произойдет прерывание. Более того, если настроить использование DMA то можно принимать и передавать не по байтно, а по множеству байт не отвлекая процессор, т. е. аппаратно. Во вторых, есть 32-ух битный таймер которого больше чем достаточно по разрядности для генерации ШИМ для 4-ёх сервоприводов. И в третьих, стоимость PIC12F629 и STM32F030F4P6 примерно одинаковая, но если сравнить их характеристики, то становится понятно что PIC12F629 даже близко не сравнится с STM32F030F4P6 по возможностям.
Заголовок сообщения: Re: Управление сервомашинками через COM порт ПК
Добавлено: Чт дек 08, 2016 18:50:59
Вымогатель припоя
Карма: 4
Рейтинг сообщений: 14
Зарегистрирован: Чт мар 05, 2009 05:31:16 Сообщений: 600 Откуда: г. Кемерово
Рейтинг сообщения:0
Не... не приемлемо. Во первых железка собрана, во вторых там архитектура другая, пока нет времени, да и желания на изучение. Ну и самое главное , поскольку задача чисто спортивная, интересно выжать из минимального железа максимальные возможности. Так что вопросы только по алгоритму
Добавлено after 6 minutes 1 second: Вот например главный цикл:
;циекл для задержки ASM MOVLW D'100' ;загружаем количество циклов MOVWF _I MMM CLRWDT ;незабываем очищать сторожевой таймервдлинном цикле ASM ;канал 0 MOVF _I, W ;переменную цикла в W XORWF _Serv_0, W ;маскируем переменной,если 0,совпало BTFSC STATUS, Z ;пропускаем следующую если не совпало BCF GPIO, 0 ;завершим импульс
;канал 1 MOVF _I, W ;переменную цикла в W XORWF _Serv_1, W ;маскируем переменной,если 0 то совпало BTFSC STATUS, Z ;пропускаем следующую еслине совпало BCF GPIO, 1 ;завершим импульс
;канал 2 MOVF _I, W ;переменную цикла в W XORWF _Serv_2, W ;маскируем переменной,если 0 то совпало BTFSC STATUS, Z ;пропускаем следующую еслине совпало BCF GPIO, 2 ;завершим импульс
;канал 3 MOVF _I, W ;переменную цикла в W XORWF _Serv_3, W ;маскируем переменной,если 0 то совпало BTFSC STATUS, Z ;пропускаем следующую еслине совпало BCF GPIO, 5 ;завершим импульс
DECFSZ _I,F GOTO MMM
ENDASM
Установки каждой машинки сравниваются с переменной цикла, на сравнение каждой 4 команды. Что занимает много времени. Вот если бы удалось сократить... можно повысить разрешение установки
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения