Позиционирование шаговых двигателей
- Войдите на сайт для отправки комментариев
Всем доброго дня!
нужен скетч под Arduino.
Цель:
Упрапвление моторами позиционирования спутниковой антенны по азимуту (0-360) и вертикали (0-90).
Предполагается в дальнейшем управлять позиционированием через com-port arduino послердством компьютерной программы Oritrin Ссылка.
В данном задании только код для позиционирования антенны "в нули" и установки ее в направлении «ЮГ»
Дано:
1. Arduino Мега 2560
2. Два шаговых мотора 17PM-K020-01V (даташит пришлю) можно для отладки принять, что моторы - NEMA17
3. Один датчик холла A3144
4. Модуль GY-271 (трехосевой цифровой компас на микросхеме HMC5883L)
5. 2 Драйвера шагового двигателя – на LN 298 (по одному на мотор)
Необходимо создать скетс со следующей логикой.
При запуске скеча происходит позиционирование антенны «по нулям».
Датчик холла A3144 расположен неподвижно. На антенне стоят два магнита (один отвечает за азимут, то есть горизонтальное перемещение) другой за элевацию (вертикальное перемещение).
Антенну по горизонтали можно крутить без ограничения, там вращающееся кабельное соединение, и кабель закручиваться не будут.
По вертикали нужно установить предел от 0 до 90 градусов.
Чуть позже приложу ссылку на видео, как работает позиционирование на этой антенне, мне нужно тоже самое.
Если кратко то:
При подаче питания (запуск скетча) мотор отвечающий за вертикаль поднимается в верх н 15 градусов (это нужно, чтобы магнит, отвечающий за высоту не мешал позиционировать горизонталь).
Далее включаем горизонтальный мотор (в любую сторону, пусть будет по часовой стрелке) и двигаемся до тех пор, пока от магнита не сработает датчик холла. (Тут нужно, чтобы антенна не проскочила его, и если проскочила, то вернуть обратно и точно установить магнит над датчиком холла) (горизонтальный мотор у нас по преженему стоит на 15 градусов). Далее горизонтальный мотор нужно повернуть по часовой стрелке ровно на 180 градусов, после поворота остановить горизонтальный мотор, и запустить вертикальный мотор на снижение (то есть с ранее установленных 15 градусов до 0) вместе с антенной будет и опускаться магнит, отвечающий за вертикаль…. Как датчик сработает, остановить мотор.
Все, шаговые двигатели выставлены «в нули»
Дале так как с программы Oritrin будут идти координаты широты и долготы, то с помощью цифрового компаса GY-271 мне нужно повернуть антенну строго на ЮГ и остановить. (вертикальный мотор пусть остается в ноль градусов).
Пока все.
Когда занимался установкой спутниковых тарелок --- там миллиметры сдвига и сигнал падал.
Можно всё реализовать, но какой механизм поворотов? Точность должна быть такой чтобы не пролетать заданный угол и не возвращаться.
Если такое возможно - пишите на скайп p.masyukov или вибер +79517956505, обсудим.
Готов сделать. Пришлите ваш адрес на мой мыл ydom@mail.ru , а то тут обсуждение зачастую мгновенно превращается в базар
1 Да, могу сделать на этой плате. Если нужно строго скетч для ардуино Ide, могу скетч, но рекомендую все же профессиональное решение на честно С, без ардуиновских тормозов и костылей. Обработка данных с компаса и ПИД - регулирование - достаточно ресурсоемкое дело.
2 Этот пункт понятен. Логика для 2ф биполярных шаговиков нужна
3 тут есть тонкость . Дело в том, что у 3144 триггер шмидта, и позиционировать на этом сенсоре- непростая задача. Эти сенсоры применяют для энкодеров, как правило. Для позиционирования я применяю другие сенсоры, которые дают пропорциональный сигнал, причем по два сенсора на ость, т.е. регулировака двустадийная, это позволяет достить точности 0.1 ° (может и лучше,но у меня была задача добиться 0,1 °, делал вращающуюся раму для галереи "Москва " (это под хсс), а художники люди такие- они и 0,01° могут засечь....). Впрочем, если позиционирование будет делаться с помощью ШД (а это, как правило, 1,8 ° на шаг, редко 0,9 ° на шаг), можно обойтись и одностадийным регулятором, линейная точность на касательной будет порядка 0,2 мм, но возможно процесс стабилизации будет несколько более длительным. . Вам принципиально датчики 3144 или можно другие, линейные? Линейные датчики у меня есть, если интересно, артикулы сообщу письмом.
4 У меня есть похожий модуль, включающий сенсоры ADXL34, HMC5883L и BMP085 , для отладки достаточно будет.
5 ЭТи драйвера очень старые и на них падает по 2-3 В, они греются и в них нет встроенного ограничения тока. Я бы рекомендовал заменить на импульсные драйвера, их полно и цены приемлемые, хорошие драйвера почти не греются и работают в режиме ограничения тока, что для ШД важно.
ТЗ понятно, хорошо бы еще уточнить протокол управления, ведь после ресета нужно будет поворачивать. Пишите ydom@mail.ru или сообщите ваш адрес.
Вся механика будет использована родная - KVH tracphone 252
Вот на ebya точно такую же продают http://www.ebay.com/itm/KVH-TRACPHONE-252-COMPLETE-ANTENNA-ASSEMBLY-REPLACMENT-IN-WORKING-CONDITION-/400782400167?hash=item5d507e1aa7:g:8ccAAOSw7NNULGXY&vxp=mtr
Onkel, пожалуйста, вставляйте картинки более гуманных размеров.
пример регулятора ПИД с точностью 0,1 мм на радиусе 300 мм
https://www.youtube.com/watch?v=WjBBg8a0SUY&feature=youtu.be
Вращающаяся рама для картины Giuseppe ARCIMBOLDO, для выставки в картинной галерее "Москва" (под хсс)
Сама картина
http://phototour.pro/painting/nature_morte/ARCIMBOLDO_Giuseppe/3/
Согласно заголовку задача управлять шаговиками.
Тогда несколько непонятно, про точность 0,1мм.
Ибо вся точность = шагу или микрошагу шагового двигателя.
PCBADM На мэйл.ру.
Согласно заголовку задача управлять шаговиками.
Тогда несколько непонятно, про точность 0,1мм.
Ибо вся точность = шагу или микрошагу шагового двигателя.
это только в случае, когда ось вращения есть ось двигателя. Но случаи разные бывают.
Вот видео как антенна должна позиционироваться
https://youtu.be/gkhvvxJzv8A
магнитный датчик там используется с маркировкой A42E
для анетны уже есть готовые устройства. в зависимости от выбранной "программы" автоматом перестраиваются на нужный спутник. думаю дешевле будет взять готовое устройство чем заказывать его разработку + детали.
https://www.youtube.com/watch?v=rDcpxn5ZW2k
http://www.spacesat.ru/202.html
http://www.spektr-tv.ru/positioners.php
Когда занимался установкой спутниковых тарелок --- там миллиметры сдвига и сигнал падал.
судя по такой фразе давно этим занимались. современные приемники с полуметровой антеной неплохо ловят.
а бум на тарелки прошел. разве что есть потребность еще в глухих деревнях. где есть подключение к сети, там спрос на них падает. было время по 10 в месяц ставили в своей деревни. пришел нормальный нет с возможностью смотреть фильмы он-лайн не скачивая... и все не нужны стали.
MacSim
По Вашим ссылкам не то. Там приводы для параболических антенн. у меня другая антенна, да и я хочу сделать следящий привод (не для стационарных спутников)
да всё давно написано - https://github.com/k3ng/k3ng_rotator_controller
+ pstrotator - http://www.qsl.net/yo3dmu/index_Page346.htm
и обсуждение на рл.сайте http://forum.vhfdx.ru/povorotnye-ustroystva/ao-kotoe-oootk/msg272750/?topicseen#new
можно управлять и через орбитрон, так как в проекте реализованы стандартные команды поворотки yaesu, что надо для орбитрона
Сделаю за 7000 рублей. Brokly(at)mail.ru
Сделаю за ..... рублей. Brokly(at)mail.ru
Вы опоздали. Опять опоздали.
Ну не все же время вам опаздывать !
Сделаю за 7000 рублей. Brokly(at)mail.ru
А под какой из протоколов обмена данными сделаете?
GS-232, GS-232A, FodTrack, CI-V, IF-100, TrakBox, EASYCOMM-I?
Где в задании написано про протокол ?
Где в задании написано про протокол ?
...Предполагается в дальнейшем управлять позиционированием через com-port arduino послердством компьютерной программы Oritrin Ссылка.
В названии программы ошибка, но ссылка правильная, программа управляет повороткой через драйвер WISPDDE, а уж он поддерживает протоколы обмена, нет, ну если Вы напишите и свой драйвер, это можно только приветствовать!
В дальнейшем - другой заказ, другая оплата. Сделать можно все и драйвер напишу, протокол - какой захотите, если меня ваша оплата устроит. Пишите.
Да и не читайте между строк, это вредно для психики.
В дальнейшем - другой заказ, другая оплата. Сделать можно все и драйвер напишу, протокол - какой захотите, если меня ваша оплата устроит. Пишите.
Да и не читайте между строк, это вредно для психики.
Это не я предлагал работу!
Озвучил выше, что всё уже давно написано Антоном ( K3NG) и проект абсолютно свободный!
Бери и повторяй.
Для Орбитрона можно использовать WISPDDE тоже давно написан радиолюбителем из Южной Америки.
По спутникам, можно конечно в контроллере организовать обработку TLE, но тут сразу же придётся прикручивать интерфейс ETHERNET, организовывать взаимодействие по ежедневному обновлению оных, решать вопросы с математическим обеспечением расчёта траектории спутника, расчёт собственных координат (а от чего строить траекторию) и т.д.
При цене 7 тысяч совершенно не реальное выполнение тех.задания )))
И это написано не между строк, а прямо, контроллер должен уметь это делать из программы орбитрон, а иначе всё безсмысленно
PS
Необходимо создать скетс со следующей логикой...
...
Дале так как с программы Oritrin будут идти координаты широты и долготы, то с помощью цифрового компаса GY-271 мне нужно повернуть антенну строго на ЮГ и остановить. (вертикальный мотор пусть остается в ноль градусов). Пока все.
PPS c программы орбитрон данные приходят по одному из указанных выше протоколов, однако )))
Еще раз. Это ваши домыслы. ТС говорит совсем о другом.
Еще раз. Это ваши домыслы. ТС говорит совсем о другом.
А что говорит начальник транспортного цеха? ... что-то пропал, он жеж заказчик
PS видимо завис на компилировании скетча от K3NG )))
PPS...из тех задания...то с помощью цифрового компаса GY-271 мне нужно повернуть антенну строго на ЮГ ... вот в этом месте Вы глубокомысленно не задумались о, а о какой точке идёт разговор о ''строго на юг"???
в одних точках магнитное склонение положительное, в других отрицательное ХОТЕЛ БЫ Я ПОСМОТРЕТЬ КАК ИМЕННО ВЫ БУДЕТЕ ЭТО РЕАЛИЗОВЫВАТЬ. Строго на юг в этом случае - на ось вращения земли однако )))
ХОТЕЛ БЫ Я ПОСМОТРЕТЬ КАК ИМЕННО ВЫ БУДЕТЕ ЭТО РЕАЛИЗОВЫВАТЬ. Строго на юг в этом случае - на ось вращения земли однако )))
Величина магнитного склонения задается как параметр, по крайней мере на этом этапе.
ua6em
Только сейчас прочитал Ваши вопросы. По данному скетчу я договорился уже с участником Onkel
на ваши вопросы ответы такие:
протокл EASYCOMM-I точнее EASYCOMM-II, но использоваться будет та часть, отвечающая за позиционирование антенны, команды отвечающие за корректировку приенмика по доплеровскому сдвигу не нужны.
из всего набора протоколов выбрал именно этот, так как его поддерживает и программа PstRotator (это чтобы потом в ручном режиме управлять)
Прежде чем написать, я подробно ознакомился с трудами Антона ( K3NG) и прочих коллег, разрабатывающих эту тему... Но их разработки заточены все под распростарненные радио-любительские опорно-поворотные устройства, в том числе и yaesu, но там используются другие двигатели, да и обратная связь (положение антенны), там процессор остлеживает по энкодерам... у меня же тут шаговые двигатели и система позиционирования другая, которую переделывать не имеет смысла. Энкодеры добавить можно - но в этом случае
антенну нужно ограничивать, чтобы провода не закрутились... а так на антенну идет только радио- кабель, через вращающееся каоксильное соединение... и антенну можно крутить сколь угодно долго в одном направлении, да и согласитесь, два магнита и магнитный датчик - надежнее, чем два энкодера.
про "строго на юг" - согласен с Вам, фраза расплывчатая :) не буду расписывать "свою мысль", но тут я имел ввиду, "нулевой отсчет" для протокола EASYCOMM... так как он шлет уже координаты спутника, и антенна должна точно им следовать
ua6em
Только сейчас прочитал Ваши вопросы. По данному скетчу я договорился уже с участником Onkel
на ваши вопросы ответы такие:
протокл EASYCOMM-I точнее EASYCOMM-II, но использоваться будет та часть, отвечающая за позиционирование антенны, команды отвечающие за корректировку приенмика по доплеровскому сдвигу не нужны.
из всего набора протоколов выбрал именно этот, так как его поддерживает и программа PstRotator (это чтобы потом в ручном режиме управлять)
Прежде чем написать, я подробно ознакомился с трудами Антона ( K3NG) и прочих коллег, разрабатывающих эту тему... Но их разработки заточены все под распростарненные радио-любительские опорно-поворотные устройства, в том числе и yaesu, но там используются другие двигатели, да и обратная связь (положение антенны), там процессор остлеживает по энкодерам... у меня же тут шаговые двигатели и система позиционирования другая, которую переделывать не имеет смысла. Энкодеры добавить можно - но в этом случае
антенну нужно ограничивать, чтобы провода не закрутились... а так на антенну идет только радио- кабель, через вращающееся каоксильное соединение... и антенну можно крутить сколь угодно долго в одном направлении, да и согласитесь, два магнита и магнитный датчик - надежнее, чем два энкодера.
про "строго на юг" - согласен с Вам, фраза расплывчатая :) не буду расписывать "свою мысль", но тут я имел ввиду, "нулевой отсчет" для протокола EASYCOMM... так как он шлет уже координаты спутника, и антенна должна точно им следовать
Начну от обратного:
От строго на юг, если антенна будет эксплуатироваться в одной точке, открываем карту 500 (надеюсь найдёте такую) и смотрим магнитное склонение, его то и занесём в переменные, как написал онкел
По K3NG
Ваш датчик в проекте есть, в проекте есть и шаговые двигатели, там пусто, но это не значит, что не будет работать, открываете закладку проекта rotator_stepper.h и рисуете, что вам надо, не хватает функционально, создаете файлик rotator_stepper.cpp и будет вам счастье
Данные магнитного компаса используются в качестве энкодера
Конфигурирование, а что же вам надо из всего объемного проекта осуществляется всего в трёх файлах:
rotator_features.h, rotator_pins.h и rotator_settings.h
Да, орбитрон работает с pstrotator скормив драйверу MyDDE программу PstRotator, только вот программа PSTROTATOR о существовании ваше самопального контроллера понятия не имеет, то-есть на уровне системных команд может всё же ориентироваться на GS-232 от YAESU?
Половина вашего техзадания - стандартные настройки калибровки контроллера от K3NG
Положительное из всего этого:
будет еще один проект контроллера поворотного устройства на ардуино (если скетч выложите), я только за!!!
ua6em
по PSTROTATOR не скажу, что там она в ком порт выдает, но если он поддерживает протокл EASUCOM, то при выставлении углов азимута и элевации, должна выдавать в ком-порт значения AZxxx.x ELxx.x. Ардуино, их примет и повернет антенну, единственно только в PSTROTATOR есть индикатор "показывающий фактическое положение антенны" - вот тут да... ардуино в ком порт не будет передавать координаты шаговиков.... но пока задача не стоит... мне больше важно управление ORBITRONом
да, код K3NG можно переделать, но у меня нет столько знаний в програмировании arduino, чтобы самому написать код, или почистить лишнее из кода K3NG, поэтому и написал тут... тут же народ это умеет, и сделает в любом случае лучше и правильней.
Данные магнитного компаса используются в качестве энкодера
тут не соглашусь.... в моей задумке компас стоит стационарно на неподвижном основании... а в вашем предложении я его должен монтировать на саму антенну, а значит с нее будут свисать провода. оно конечно можно сделать по радио-каналу. (через вращающийся касоединение я могу подать питание) но от илучения этого модуля у меня попрут помехи..
А как вы будете определять реальный азимут и элевацию, расчётом? Это плохая затея, от слова совсем...
Любое устройство без отрицательной обратной связи работать будет нестабильно.
В видео, что вы приводили наглядно показано, что датчики находятся на поворотной платформе...
Не знаю, что у вас будет за антенна и какой лепесток излучения, но люди борятся за точность в доли градусов, сейчас это 0,08 градуса
В коде не надо ничего удалять, просто закомментировать ненужное, раскомментировать нужное, компилятор соберёт всё сам, если владеете английским, есть форум, помогут, можно и на радиолюбительском пообщаться, кстати ваш же исполнитель это может сделать в лёгкую, а сообществу подарить закладку rotator_шаговый_двигатель )))
Сам магнитный датчик закреплен "стационарно" а на антеннах стоят два магнита
вот на картинке, пласмасса с двумя болтами - болтами закреплен магнит.
антенна будет использоваться та же (которая на видео). все система позиционирования и механика остается без изменения... поэтому проблем с наведением не должно быть
Покажите крепление HMC5883L
Для примера настройки моего контроллера