Тел. (495) 972-27-12

Скетч для управления телескопом

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY

Re: Скетч для управления телескопом

Сообщение Mr.Kubikus » 06 июл 2015, 15:40

Привет!

Похоже, что использовать значения MOTORn_MAX_SPEED больше 1000 не получится. Разработчик библиотеки не рекомендует при использовании метода setSpeed() указывать частоту импульсов больше 1000 имп/с. Поэтому в вашем случае максимальная скорость вращения ШД с учетом ограничения метода setSpeed() и дробления шага на 8 будет = 1000 * (1/(200*8)) = 0,625 об/сек или 60*0,625 = 37,5 об/мин.

Если вам надо реализовать возможность быстрых перемещений при управлении от джойстика и медленных при работе во втором режиме, то следует подумать над динамическим изменением коэффициента дробления шага в драйвере. Для этого можно задействовать дополнительные выходы Arduino и переключаться с полного шага на 1/8 когда вы переходите из режима 1 в режим 2.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 881
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Скетч для управления телескопом

Сообщение Oleg1601 » 06 июл 2015, 16:28

Здравствуйте.
Странно, что получается только 37,5 об/мин...
Как уже писал, ставил значение MOTORn_MAX_SPEED - 8000 (в принципе эти 8000 микрошагов = 1000 шагам в режиме драйвера 1/8, что не противоречит условим AccelStepper), но в любом случае получал 96 об/мин - засекал минуту по секундомеру и просто считал полные обороты двигателя в положении джойстика - максимум.

По поводу "переключаться с полного шага на 1/8 когда вы переходите из режима 1 в режим 2" даже не знаю, получится ли - ведь на драйвере для этого (режим 1/1, 1/2, 1/4, 1/8) нужно замыкать соответствующие контакты - тут, получается, рэле нужно будет.

Что по поводу моего второго вопроса?
Oleg1601
 
Сообщения: 47
Зарегистрирован: 26 апр 2015, 11:25

Re: Скетч для управления телескопом

Сообщение Mr.Kubikus » 06 июл 2015, 17:34

Если по простому, то библиотеке AccelStepper не важно какое дробление шага используется. Она просто генерирует последовательность импульсов с частотой, которая указывается при вызове метода setSpeed(). Максимальная частота следования импульсов ограничена быстродействием микроконтроллера. Поэтому автор не рекомендует указывать более 1000 имп/с. Вы указав 8000, похоже, уперлись в ограничение на частоте 2000 имп/с, что соответствует скорости вращения 95 об/мин.

Теперь по второму вопросу. Чтобы реализовать указанные требования надо добавить в исходный код еще один конечный автомат для второй кнопки и еще добавить функцию phMotorRunMode3() в которой будет реализовано управление моторами.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 881
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Скетч для управления телескопом

Сообщение Oleg1601 » 06 июл 2015, 19:38

Спасибо за оперативный ответ!
Mr.Kubikus писал(а):Если вам надо реализовать возможность быстрых перемещений при управлении от джойстика и медленных при работе во втором режиме, то следует подумать над динамическим изменением коэффициента дробления шага в драйвере. Для этого можно задействовать дополнительные выходы Arduino и переключаться с полного шага на 1/8 когда вы переходите из режима 1 в режим 2.

Только что проверил работу моторов с разными коэфф. дробления шага - действительно скорость моторов при использовании режимов 1/4 и 1/2 выростает. В режиме 1/4 уже достаточно приемлимо для моих требований.
А как можно реализовать предложенные вами условия? В Режиме 2 желательно использовать микрошаговый режим 1/8, т.к. этот режим будет использоваться для астрофото и там нужно очень плавное ведение.
В драйвере режим 1/4 включается замыканием контакта MS1 на землю, в 1/8 контакт свободен.
Oleg1601
 
Сообщения: 47
Зарегистрирован: 26 апр 2015, 11:25

Re: Скетч для управления телескопом

Сообщение Mr.Kubikus » 06 июл 2015, 20:38

Как вариант, можно выделить два пина Arduino для управления линиями MS1 и MS2. В программе надо будет использовать функции digitalWrite() для управления этими выходами. Ну и про pinMode() в функции setup() не забывайте.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 881
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Скетч для управления телескопом

Сообщение Oleg1601 » 07 июл 2015, 13:54

Mr.Kubikus писал(а):Как вариант, можно выделить два пина Arduino для управления линиями MS1 и MS2. В программе надо будет использовать функции digitalWrite() для управления этими выходами. Ну и про pinMode() в функции setup() не забывайте.

Проверил эти пины, т.е. MS1 и MS2 - на них постоянно подается +5В. Для реализации микрошагового режима 1/4 пин MS1 замыкается на корпус, для режима 1/2 - MS2 замыкается на корпус.
Как реализовать это программно, чтобы переключать скорости с помощью Ардуино, или добавить еще одну кнопку, честно, никак не соображу - результатом утренних манипуляций стал один угробленный драйвер :cry:
Oleg1601
 
Сообщения: 47
Зарегистрирован: 26 апр 2015, 11:25

Re: Скетч для управления телескопом

Сообщение Mr.Kubikus » 07 июл 2015, 23:30

Надо подключить пины MS1 и MS2 драйвера к выходам Arduino. Уровнем на выходах управлять программно с помощью функции digitalWrite().

В качестве эксперимента нарисовал схему для одного ШД в редакторе Fritzing. Может быть она поможет вам разобраться.
p0131-telescope_bb-448.jpg

Вот схема крупнее в формате PDF:
p0131-telescope_bb.pdf
(1021.71 Кб) Скачиваний: 568
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 881
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Скетч для управления телескопом

Сообщение Oleg1601 » 07 июл 2015, 23:57

За схему спасибо.
Не понял одно, что за напряжение, согласно схемы, подается на контакт платы ардуино Vin ?
Oleg1601
 
Сообщения: 47
Зарегистрирован: 26 апр 2015, 11:25

Re: Скетч для управления телескопом

Сообщение Mr.Kubikus » 08 июл 2015, 00:09

Это питание микроконтроллера 7-12 В. Я рекомендую использовать раздельные источники питания для МК и для ШД. Вместо контакта Vin для питания МК можно использовать цилиндрический разъем на плате.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 881
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Скетч для управления телескопом

Сообщение Oleg1601 » 08 июл 2015, 00:17

Оперативно!
Вас понял - питание на драйверы ШД и МК с самого начала подаю раздельное.
Вот только с правкой имеющегося скетча (на 2-ой странице темы) возникли проблемы, программист я никакой, а простейшие примеры приводящиеся на разных форумах света на решение задачи не проливают. Сколько не писал скетчей, либо моторы стоят, либо... вышедший из строя драйвер ШД. :shock:
Помогите пожалуйста доделать этот скетч, тем более, что Вы его и писали.
Oleg1601
 
Сообщения: 47
Зарегистрирован: 26 апр 2015, 11:25

Пред.След.

Вернуться в Arduino и Ко. ♥♥♥



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron