Новый регулятор скорости с реверсом

romychs

А, захотелось легко заполучить цифровую серво ?

Mark_Haskov
romychs:

А, захотелось легко заполучить цифровую серво ?

цифровая - это прошивка должна быть очень сильно заточена под конкретную модель механики. и вылизана до последнего байтика 😉
имхо конечно.
мне бы поуши хватило бы чтоб это по скорости работало на уровне стандартного серво.

ps: а вот вашего вопроса я в принципе не понял. что вы хотели этим сказать?
кому нужно в принципе ваше высказывание? или это попытка устроить флейм?
если хотели о чем-то предупредить dynaco то надо было написать ему в личку наверное…

romychs

Ну если вопроса не поняли, то и отвечать было не нужно… 😃 Извините, обижать не хотел.

Я просто копал в этом направлении, и схему паял и софт писал, даже работает, но того, чего хотелось, так и не получил, просто дело было летом, времени жалко на это дело было, летать хотелось…

Я просто хотел сказать, что на самом деле не так легко написать софт для этого дела. Но в процессе написания и отладки, появился ряд идей, появится время, обязательно реализую.

Вот, даже софт могу показать, схемы на работе нету, где то дома валяется. Да и что там схема - пик+питание+мост

servo.rar

Mark_Haskov
romychs

Ну если вопроса не поняли, то и отвечать было не нужно… 😃 Извините, обижать не хотел.

все. замнем для ясности. 😉

Я просто хотел сказать, что на самом деле не так легко написать софт для этого дела. Но в процессе написания и отладки, появился ряд идей, появится время, обязательно реализую.

я вот как раз это все понимаю - лично у мя очень мало опыта по програмированию под пики. вот и спросил.

[quote;121957]Вот, даже софт могу показать, схемы на работе нету, где то дома валяется. Да и что там схема - пик+питание+мост
[/quote]

общая концепция схемы ясна. эта прошивка работает хотя бы как стандартное серво? если совсем не влом будет - черкани поподробнее схему на всякий случай… ( в принципе из файла все вроде понятно, но на всякий случай 😉

dynaco

оооох
начнем с плохого
пик есть 8 мибитный контроллер который медленно умножает (очень медленно). Для отработки скорости и положения нужно завести обратные связи по току и положению, можно еще бемф мотора мерять. Но все это дополнительная обвязка. В качестве драйвера двигателя теоретически можно использовать драйвер мощного фет транзистора гдето на сайтах роботеров я видел применение какогото максима. Далее обьем кода. Я как то раз подключал асмовские библиотеки с плавающей запятой для логарифмов и еще пары действий - вылез за 3 килобайта. Если писать на си - компилятор с оптимизацией вталкивает это в килобайт - полтора. ну и плюс механика. Короче - я с удовольтвием поучаствую, но я был плохим студентом и тау проспал, заодно и половину привода.

Да - если нужно - то всЁ какоето можно поискамши заменить на конкретные названия

pdfserv.maxim-ic.com/en/ds/MAX4426-MAX4428.pdf вот эти спаренные 1.5а максимальный ток, дип8
максим высылает пару микросхем разработчикам бесплатно
до 8 типов за раз (16 корпусов) =))

Добавлено

Сорри, ни схему ни новую прошивку я так и не выложил.
В новой версии программы оказалась маленькая ошибочка которая уже исправлена. Сегодня приду с работы и проверю программу, если все будет ок - будет обновление.

офтоп - поставил себе халфлайф2 =) я просто приятно поражен. играл до пол четвертого утра. Теперь вот пью кофе…

romychs

Вот, как и обещал, схемы

Первая, это та, на которой я экспериментировал, вторая - проект. Главный недостаток первой, не излишнее количество “ненужных” элементов (резисторы там лишние, еще кое что), они нужны для защиты, в первой схеме отсутствует тормоз. Из за этого качалка сервы чуть пролетает нейтраль и возвращается на место. Боюсь, что практического применения ни схема ни софт не имеют. Все нуждается в доработке. Меня еще мучают сомнения в необходимости PWM для управления мотором. Думаю, что без арифметики с плавающей точкой в данном случае обойтись можно, а складывает, вычитает, умножает и делит на 2 PIC быстро.

Комментарии по второй схеме - приветствуются. Например, D1 - там не нужен, он “встроен” в PIC. X4,X5,X6 - контакты для переменного резистора (X4-ползунок). X1,X2 - питание, X3 - сигнал. X7,X8 - электродвигатель.

PS
А ТАУ я тож подзабыл уже, надо будет лекции перечитать, но как не хочется ворошить прошлое 😃

dynaco

я вот тут чего удумал. У пика ножки свободные остались.

Можно на них сигналы тормоза и реверса повесить. Ну белый фонарь при заднем ходе и сигнал на красные фонари при снижении скорости.

Кстати я порылся по тем транзисторам которые доступны и чтобы цена не кусалась вот к примеру IRF1405 170A выдерживает, и сопротивление у него 0.01 ома (реально там еще меньше - чтото около 0.007) открывается полностью напряжением большим чем 4.5 вольта.

короче следующий буду делать с бутстрепной цепочкой и транзисторы одинаковые. Единственное ограничение будет минимальное напряжение питания 7-8 вольт для стопроцентной гарантии открытия транзисторов.

Опобровал прошивку с нелинейным регулированием - не понравилось.Себе вернул линейный вариант, а на сайте выложу оба.

хочу обсудить алгоритм безопасности. А то в моем коде вы можете не разобраться.

При старте контроллер производит конфигурацию всей периферии и счетчик подтверждения у станавливается в 100 - ровно столько ППМ импульсов нейтрального (1.5мс) положения ждет регулятор для подтверждения безопасного включения. это приблизительно 2 секунды нужно продержать регулятор в нейтрали. Если из-за потери сигнала будут пропущены 3 ППМ импульса подряд то вотчдог сбрасывает контроллер - ну и все с начала. Двигатель останавливается и ждет 2 секунды в нейтрали чтобы начать работу.

Времена - предмет обсуждения и изменения по желанию трудящихся

romychs

Только уж нужно ждать не четко 1,5 мс импульсов, а там ±5%, а то не дождешся никогда 😃

dynaco
romychs:

Только уж нужно ждать не четко 1,5 мс импульсов, а там ±5%, а то не дождешся никогда 😃

ну если точно то времена такие

нейтралка от 1475 до 1525 мкс
вперед от 1025 до 1475
назад от 1525 до 1975
Это в линейном регулировании.

Иван

Народ, может кто подскажет схему JDM программатора? а а то не чем пик этот шить… 😊

dynaco

ищи усовершенствованный вариант JDM с отключением Vdd - а то серия 12ф будет глючить

BABYLON
romychs:

Вот, как и обещал, схемы

Первая, это та, на которой  я экспериментировал, вторая - проект.

Комментарии по второй схеме - приветствуются. Например, D1 - там не нужен, он “встроен” в PIC. X4,X5,X6 - контакты для переменного резистора (X4-ползунок). X1,X2 - питание, X3 - сигнал. X7,X8 - электродвигатель.

Думаю выходной каскад лучше сделать несколько иначе. Кварц это намёк на генератор.

Mark_Haskov
BABYLON:

Думаю выходной каскад лучше сделать несколько иначе. Кварц это намёк на генератор.

пока мне не понятно почему в выходной каскад должен быть на транзисторах.
это имхо сложно 😉
чем не устраивают драйверы коллекторных двигатлей?
в футабе же стоят. и ничего, работает. сам лично ремонтировал футабувскую машинку (3001 или 3003… непомню точно ) в которой подох это драйвер (точнее изначально не работал, как из коробки достали). заменил на LB1638 (даташит можно посмотреть на www.chipinfo.ru )

схема соответственно сводится к трем микрухам - стабилизатор, контроллер, драйвер двигателя. из обвязки в основном конденсаторы по питанию…

romychs

Я понял Вашу идею. Чем больше копаю теорию, тем больше понимаю, что тормоз не особо то и нужен. ПИД (PID) алгоритмы нормально работают без него. Намек на кварц, вовсе и не намек 😃 скорее всего так и придется поступить, если 4-х мегагерц не хватит для нормальной разрешающей способности сервы.

Вот, что еще интересно mstar2k.com/servo.htm - где там стабилизатор напряжения? На сколько я знаю у Меги те же 5.5В - максимальное напряжение питания? И что там за мост такой.

И кстати, для сервы, как мне кажется будет куда удобнее использовать новые PIC12F683 (как 675 но еще и ШИМ, и памяти больше) либо 16F684 - будут свободные выводы под RS-232. Но пока в посылторге их не найду.

Добавлено

чем не устраивают драйверы коллекторных двигатлей?

Ну как чем, найти сложнее, а так, конечно удобнее. Да, и биполярный совсем не хочется - не современно 😃

BABYLON
Mark_Haskov:

чем не устраивают драйверы коллекторных двигатлей?
в футабе же стоят. и ничего, работает. сам лично ремонтировал футабувскую машинку (3001 или 3003… непомню точно ) в которой подох это драйвер (точнее изначально не работал, как из коробки достали). заменил на LB1638 (даташит можно посмотреть на www.chipinfo.ru )

схема соответственно сводится к трем микрухам - стабилизатор, контроллер, драйвер двигателя. из обвязки в основном конденсаторы по питанию…

Я тоже смотрел на LB1638M (SOIC8), пойдёт только на микро вариант или взамен родной в машинку HS-55. Если нужно получить большое усилие да ещё
и быструю перекладку без полевиков не обойтись. В машинке HS700 стоит конкретно мост на полевиках в ТО220х корпусах.

Добавлено

romychs

Я понял Вашу идею. Чем больше копаю теорию, тем больше понимаю, что тормоз не особо то и нужен.

ПИД (PID) алгоритмы нормально работают без него. Намек на кварц, вовсе и не намек 😃 скорее всего так и придется поступить, если 4-х мегагерц не хватит для нормальной разрешающей способности сервы.

Вот, что еще интересно mstar2k.com/servo.htm - где там стабилизатор напряжения? На сколько я знаю у Меги те же 5.5В - максимальное напряжение питания? И что там за мост такой.

И кстати, для сервы, как мне кажется будет куда удобнее использовать новые PIC12F683 (как 675 но еще и ШИМ, и памяти больше) либо 16F684 - будут свободные выводы под RS-232. Но пока в посылторге их не найду.

По поводу тормоза я не соглашусь на схемке как раз и имелось ввиду использовать именно такую развязку и для торможения и по питанию.

Не знаю!

Кроме фото там то практически ничего нет, но МЕГУ8 Гордон Андерсон как всегда круто загнул.

Может быть да, а вот с 16F*** можно ещё дальше пойти отказавшись от колекторного мотора

romychs

По поводу тормоза я не соглашусь на схемке как раз и имелось ввиду использовать именно такую развязку и для торможения и по питанию.

Да, я понял, понял, хороший способ выключить верхнии полевики

1 month later
Mark_Haskov
bvv:

{}

Теперь перейдем к Вашим действиям. Перед программированием (или стиранием) PIC12F675 нужно считать память программ и записать на листочек значение из ячейки 3FFh. Далее стираем память PIC12F675, проверяем. Загружаем hex-файл регулятора. Изменяем значение в ячейке 3FFh на то, что Вы записали на листочек. Программируем. Проверяем. Всё!

Для тех, кто сначала стер PIC12F675 (так же как и я в первый раз). У меня в PIC12F675 по этому адресу было значение 3490h. Программировал с помощью IC-PROG и JDM-programmer.

Надеюсь помог тем, кто уже наступил или хочет наступить на этот граблик:)))
Успехов!

Руки к теме вернулись только вчера… 😉

действительно, проблема была именно в этом. перед програмированием микросхемы надо занести калибровочную константу. и будет счастье!
Спасибо!

Иван

а для IC 12F629 по какому адресу калибровочная находится?

Mark_Haskov
Иван:

а для IC 12F629 по какому адресу калибровочная находится?

там же. по последнему. проверено.

Иван

Спешу поделиться радостью!!!

Пик прошился(629-й) дело было в калибровочной константе, а то самое приславутое гофиг. слово это описане того как пик шить какой ген, и тд.

вот осталось разобраться почему мост не пашет.(полевики в поряде, вроде.)

26 days later
Morkva
Иван:

вот осталось разобраться почему мост не пашет.(полевики в поряде, вроде.)

У меня тоже не завелась с первого раза - забыл припаять эммитеры на 3102 😁
Открытие нижних полевиков можно проконтролировать и мультиметром там либо 0 либо 1. К верхним можно попробовать светодиод подоткнуть…

Идеальный способ проверки - вытащить pic, подать питание, закоротить 5 и 6 ногу на +5v (1 нога) - должен закрутиться, то же самое для 2-ой и 3-ей.

Если не пашет, то какойнить, битый. Или 3102 дохлые.

А вообще, p-канальные полевики греются как сволочи… на них падает около 0,5 вольт считай выделяют около 1,5W. Сейчас думаю вместо них поставить n. Где то видел схему подобного ключа… Найти никак не могу 😦
Может кто видел?