Новый астротрекер не совсем из говна и палок
7 постов
7 постов
34 поста
7 постов
3 поста
6 постов
4 поста
4 поста
2 поста
Распечатал отсюда:
Показывать особо нечего, поэтому без картинок, просто делюсь ссылкой, если кто захочет сделать.
P.S.: добавлю всё-таки фоток
Итак, хорошие новости. Вчера как следует загуглил проблему своего тупящего трекера, а именно - судорог двигателя и отсутствия вращения.
В процессе гугления местный ИИ (Gemini), которого я попросил проанализировать скетч автора OG трекера, сообщил, что в коде есть ошибка и один недостаток, смотрим сюда:
const int EN=2; //ENABLE PIN
const int Step=3; // STEP PIN
const int dir=4; // DIRECTION PIN
void setup()
{
pinMode(EN,OUTPUT); // ENABLE AS OUTPUT
pinMode(dir,OUTPUT); // DIRECTION AS OUTPUT
pinMode(Step,OUTPUT); // STEP AS OUTPUT
digitalWrite(dir,HIGH);
}
void loop()
{
digitalWrite(dir,HIGH);
digitalWrite(Step,HIGH); // STEP HIGH
delay(66.48 ); // WAIT
digitalWrite(Step,LOW); // STEP LOW
delay(66.48); // WAIT
}
Что мы видим?
Задействованы пины D2...D4 для выходов Enable, Step и Direction соответственно.
А дальше?
Смотрим Void setup и видим, что несмотря на то, что пин D2 у нас - Enable, функция выходу не придана.
А TMC2209 любит, когда сигнал с пина Enable имеет значение LOW. А у нас никакого значения нет.
Я провел опыт, отсоединив провод от пина Enable и мотор вовсе заглох (что странно, т.к. без управляющего сигнала этого выхода все равно что нет).
Чтобы это исправить, вставляем перед строчкой digitalWrite (dit, HIGH) строчку digitalWrite (EN, LOW)
На выходе имеем:
const int EN=2; //ENABLE PIN
const int Step=3; // STEP PIN
const int dir=4; // DIRECTION PIN
void setup()
{
pinMode(EN,OUTPUT); // ENABLE AS OUTPUT
pinMode(dir,OUTPUT); // DIRECTION AS OUTPUT
pinMode(Step,OUTPUT); // STEP AS OUTPUT
digitalWrite(EN, LOW);
digitalWrite(dir,HIGH);
}
void loop()
{
digitalWrite(dir,HIGH);
digitalWrite(Step,HIGH); // STEP HIGH
delay(66.48); // WAIT
digitalWrite(Step,LOW); // STEP LOW
delay(66.48); // WAIT
}
Обратите внимание, что вместо просто delay, измеряемой в миллисекундах у нас написано delayMicroseconds и указано число в 1000 раз большее.
По мнению Gemini это должно уменьшить накапливаемую ошибку ведения, т.к. дробные значения контроллером округляются и ошибка возникает.
С другой стороны, такое большое значение в микросекундах плохо воспринимается Ардуиной, хотя, как говорится, если нельзя, но очень хочется, то можно - в простых скетчах такое делать не возбраняется. Как это будет работать - проверим позже, на натуре.
ВАЖНОЕ ДОПОЛНЕНИЕ:
Всё-таки код в этой части лучше не трогать. В случае микросекунд вращается слишком быстро.
КОД ВЫШЕ - ПРАВИЛЬНЫЙ И 100% РАБОЧИЙ!!! Все ошибки исправлены.
Ну и вишенка на торте, главная причина тупизны - это разное расположение контактов на шлейфе мотора и на колодке драйвера. Каюсь, моя вина, не подумал даже, что у разных моторов и плат расширения для драйверов разное расположение контактов, а вот поди ж ты.
Разобрал штекер, переставил контакты, все заработало ровно и тихо. Ура, я молодец! Ну и все, кто помогал советами в комментариях к предыдущему посту - вы крутые, спасибо!
Вечером соберу трекер обратно (пришлось разбирать) и буду ждать неба!
P.S.: по дурости чуть не спалил Ардуино. Когда засовывал ее в кроватку, то ошибся на зуб и она сдвинулась. Появился дымок, но я вовремя отрубил питание и ничего не успело сдохнуть.
Итак, выхожу на финишную прямую
Здесь у нас Ардуино Нано, драйвер TMC2209 и регулируемый преобразователь напряжения 5 -> 9 вольт (даже 10, тут в принципе допустимый интервал 9-12 вольт).
На драйвере не забываем выставить опорное напряжение, в моем случае 0,95 В
Задействованы выходы D2...D4 Ардуино для управления двигателем.
Собственно скетч для Ардуино, из него видно, что выходы D2, D3, D4 - это соответственно Enable, Step, Dir, т.е. Запуск, Шаг, Направление.
При подключении микротумблер микрошагового режима на плате драйвера в положении ON.
Вот в таком положении оно сейчас находится для проверки работоспособности.
Драйвер немного греется, градусов до 45-50. Также есть небольшой нагрев мотора, видимо это норма.
Мотор работает тихо, слышно только если приложить ухо к корпусу. Вообще, не помешало бы смотровое окно, чтобы сразу было видно, работает там все или впало в коматоз.
Через пару часов посмотрю, вращается ли главная ось, поставил на опорный диск метки.
На этом пока все, продолжение следует...
P.S.: Прошло больше часа, почему-то опорный диск не сдвинулся. По крайней мере, батя доложил, что не сдвинулся, но у него зрение не очень. Завтра пойду в родительский дом, где я все это мастырю, смотреть.
Вот возможная причина, хотя в коде выход А не обозначен. Попробуем завтра.
Еще причина - напряжение питания Ардуино. По даташиту оно от 7 до 12 вольт. В схеме автора этого трекера - 5 вольт. Тоже надо проверить.
Вообще, автор трекера довольно неаккуратен в том, что касается документации. Вот, например, схема соединений электронной части
Довольно позорно. На схеме не подключен пин Enable, а пины Dir и Step всё-таки подключены к выходам D3 и D4. Плюс перепутаны напряжения логики и питания на плате драйвера.
Ну да ладно, разберемся.
P.P.S.:
Думаю, что надо дописать строку
digitalWrite(EN , LOW), чтобы дрыгатель стартанул
Незаметно для себя почти дособирал трекер.



Вот какая красота получилась. Кожух натяжителя просто сверху лежит пока, ролик еще не приехал.
Из проблем столкнулся с отслоением нитей при печати деталей с тонкими стенками/поверхностями (лечится дихлорэтаном). Кроме того, ребята, которые печатали, не все детали сделали сразу (я им просто скинул ссылку на детали и они распечатали все, что там было, но там не указано количество), однако сразу сказали, что если чего-то будет не хватать или сломается, чтобы обращался и они бесплатно допечатают или перепечатают недостающее/сломавшееся.
Пришлось в итоге допечатать три держателя для подшипников из четырех и одну ручку (прямо сейчас в процессе печати).
В остальном проблем не возникло, все детали исполнены точно, вставки вставились, болты и винты закрутились, подшипники установились.
С электронной частью прошло не все гладко, я уже упоминал в предыдущей теме: Ардуино прошилась без проблем и готова к работе, а вот ESP32 закапризничала. Виной оказались дрова, точнее их отсутствие. Оказывается, есть два типа еспшек, один из которых требует драйверов и у меня как раз такой - CH340.
Даже Линукс эту штуку не увидел!
Но так или иначе, трекер практически готов. Пока без wifi, но с этим разберемся позже.
Жду только когда приедет натяжной ролик.
Сегодня без картинок и кратко.
Итак, у меня была одна плата ESP32, две платы клонов Ардуино Нано, горсть проводков и один маленький, но шустрый компьютер.
Прошивки в природе имеются трех видов:
https://github.com/OndraGejdos/OG-star-tracker-/tree/main/Fi... - это две прошивки для двигателей Nema17 с углом шага 0,9 ° и 1,8°
https://github.com/OG-star-tech/OG-star-tracker-/tree/main/e... - прошивка для esp32 с поддержкой wifi
На вид все просто, но, как я и предполагал, на самом деле - ни хрена.
Все уперлось в то, что из трех плат рабочей и безглючной была только одна - клон Ардуино Нано от Чипа и Дипа. Она с первого раза определилась в Arduino IDE как полагается и с первого же раза прошилась без проблем.
Прошилось просто: установил Arduino IDE, скопировал из первой ссылки код для скетча, выбрал сверху платформу Arduino Nano и порт /dev/ttyUSB0 (или USB1, не помню, оно само определилось), тюкнул галочку, чтобы скомпилировалось, а затем стрелочку и оно записалось в контроллер. Потратил минуты две времени.
Клон Ардуино Нано от жителей Поднебесной был дохлым.
Аналогично мертвой была плата с ESP32. И основной объем приключений произошел именно с ней.
Во-первых, разработчик предлагает компилировать прошивку в Visual Studio Code, внутри которого устанавливается расширение PlatformIO .
Для начала работы нужно скопировать с GitHub проект (вторая ссылка выше), разархивировать и в VSC через расширение PlatformIO его открыть.
Дальше тычем в файл platformio.ini и VSC начнет подтягивать все необходимые для сборки зависимости.
Затем мы тычем в кнопку "Build" и начинается сборка. У меня она завершилась успешным созданием образа.
А вот дальше уже плата сделала вид, что ее тут нет и запись образа не пошла.
При этом в процессе периодически происходили какие-то мутации самого VSC - то PlatformIO исчезало из меню расширений, то еще какая-то деталь отваливалась, приходилось бороться и с этим.
Но в итоге я успешно скомпилировал прошивку и залью ее как только куплю нормальную платформу, видимо, тоже в ЧиДе.
Попутно вспомнил, что плат Ардуино у меня было три, но куда делась еще одна, я не помню.
Продолжение следует.
P.S.: все утро читал о esp32. В голову все чаще закрадывается мысль "А ну её в пень!". Раз уж есть прошитая Нано, то не плюнуть ли всё-таки на esp?
Ничего особенного, пока просто установил латунные втулки под винты М3, подшипники 5070 (кстати, не так уж просто было найти их в полном комплекте с шайбами). Подшипник скольжения, он же втулка 50х55х25 тоже установил, причем еще вчера.
Процесс втыкания резьбовых втулок с помощью паяльника привел меня в состояние восторга и просветления - процесс медитативный, словно лопаешь пупырку)))
Кое-где обнаружил отслоения пластика, исправил с помощью дихлорэтана.
Одновременно попытался разобраться как прошивать ESP32 в PlatformIO. Как и предвидел, придется разбираться. У меня образование отнюдь не техническое, тем более не связанное с информационными технологиями и программированием, поэтому голова по первости встала раком.
Но понимание приходит, просто нужно почитать и посмотреть. Задача на самом деле проста - залить прошивку в еспшку.
Разработчик рекомендует делать это через PlatformIO, поэтому буду строго следовать инструкциям, посмотрим что получится.
В конце концов всегда есть Ардуино (их у меня накопилось аж 3 штуки случайно), с ними все гораздо проще, но и функционала в максимальном объеме не будет.
Пока все, жду подвоза остальных запчастей.
P.S.: попробовал скомпилировать прошивку в PlatformIO. Сборка прошла успешно, можно прошивать. На днях займусь когда дома никого не будет, а то младший карапуз, боюсь, оторвет плату еспшки от компа в самый ответственный момент.
Сначала предыстория:
Году примерно в 2013 повезло мне найти буквально на свалке этого красавца.
Принес его домой и первым делом задумался о немедленной реанимации (по классике - вскрытие, изучение на предмет стороннего вмешательства или погорелостей, поиск и замена неисправных элементов). Но любопытство взяло верх и потребовало включить находку в сеть.
Включил: фонит как сволочь. Подумал, что возможно надо дать ему побыть под напряжением дабы конденсаторы восстановили в какой-то степени емкость. И сработало! Через 3-4 часа этой процедуры фон напрочь исчез.
Сказать, что я обрадовался - ничего не сказать, т.к. обычно с древними аппаратами возни море.
Ну и лет 5-6 он у меня исправно работал, пока не зафонил. Тут я полез в питание и поменял конденсаторы в сглаживающих фильтрах. Мелкие в преде, мощнике и радиочастотной секции трогать не стал, т.к. проверка показала, что замены ёмкостей в БП оказалось достаточно.
И вот, на 54 году жизни наконец пришла очередь мелких конденсаторов непосредственно в усилителе и радиопринимающей секции.
Показываю разницу в габаритах старых конденсаторов и новых, аналогичных по номиналу и напряжению
Круто, да?
Пока окучил мощник. Упёрся в отсутствие неполярного кондёра 100 мкф/25 в, заказал, уже едет.
Ну и в темброблоке прошляпил 330 мкф/25 в.
В ближайшее время продолжу. Надеюсь еще лет 20-30 жизни аппарату подарю.
Люблю этот ресивер - хороший, мощный аппарат с классным звуком. Большим плюсом является наличие на борту шикарного фонокорректора.
