На основе теоретических выкладок и результатов исследований из обзорной статьи я решил сделать свой простой астротрекер.
За основу я взял униполярный шаговый двигатель 28BYJ-48, изображённый на рисунке ниже.
Двигатель имеет следующие характеристики:
- напряжение питания – 5В или 12В;
- число фаз – 4, проводов – 5;
- коэффициент редукции – 1/63.68395;
- количество шагов в 4-фазном режиме – 32 (8-фазном – 64);
- крутящий момент – 450 г*см;
- размеры (диаметр, высота) –25x18 мм;
- масса – 40 г.
Выбор именно этого шагового двигателя обусловлен его низкой стоимостью, наличием встроенного редуктора, малыми размерами, небольшой массой, простотой обращения и совместимостью с Arduino. Управление этим мотором осуществляется через драйвер ULN2003.
Теперь более подробно о расчётах и программировании шагового двигателя. Угловая скорость вращения Земли составляет 0,25 градуса в минуту. Вспомним выкладки из предыдущей статьи и применим.
Чтобы перевести градусы поворота монтировки по оси восхождений (подставляем угол поворота Земли за минуту) в угол поворота круга в градусах, составим простую пропорцию и решим уравнение:
360 (град круга) - 2,5 (град монтировки)
x (град круга) - 0,25 (град монтировки)
Из пропорции составим уравнение:
Отклонение круга в градусах, x = 0,25*360/2,5 = 36
Таким образом, чтобы компенсировать суточное вращение земли, моторчик должен поворачиваться на 36 градусов за минуту.
Вычислим число шагов двигателя за оборот. Для этого коэффициент редукции (передаточное число) умножим на количество шагов и в результате расчетов получаем: 63,68395 * 32 = 2037,8864. То есть двигатель совершает 2038 шагов за оборот в 4-фазном режиме работы. Рассчитаем необходимое число шагов для поворота на 36 градусов: 2037,8864/360*36 = 203,78864.
Таким образом, для компенсации суточного вращения шаговый двигатель (мотор) должен совершать 204 шага за минуту. Или 203,78864/60 = 3,3964773 шага в секунду.
Составим пропорцию и рассчитаем время, за которое мотор сделает 4 шага:
3,3964773 шага - 1 секунда
4 шага - x секунд
x = 4/3,3964773 = 1,17769 секунды, то есть интервал между шагами 1,17769/4 = 0,294 секунды.
Расчеты выполнены. Можно приступать к подключению и программированию Arduino для управления шаговым двигателем. Собираем по следующей схеме:
После сборки зашиваем в Arduino (лучше использовать Arduino Nano, так как эта плата малогабаритная) предельно простой код, который вращает двигатель с задержкой между шагами в рассчитанные 294 миллисекунды:
//Код программы
# define IN1 8
# define IN2 9
# define IN3 10
# define IN4 11
int time_del=294; //милисекунд
void setup() {
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(time_del);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(time_del);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(time_del);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(time_del);
}
Астротрекер готов! Осталось закрепить его на монтировке EQ2 и можно наблюдать.
Об испытаниях в действии этого астротрекера в следующей статье.
P.S. В данном астротрекере добавлена возможность измерять и выводить температуру и влажность окружающей среды.
P.P.S. Если хотите более подробный электронно-программный обзор на астротрекер - пишите в комментариях! :)