rDUINOScope
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 10 | ||||
| × | 1 | ||||
| × | 1 |
Об этом проекте
Описание
Первый в мире автономный телескоп на базе Arduino для управления Goto.
Все доступные элементы управления телескопами с открытым исходным кодом либо используют Raspberry Pi, который потребляет много энергии, либо использует Arduino в качестве расширения для компьютера, смартфона или планшета. rDUINOScope - первое автономное устройство на базе Arduino, позволяющее астрономам-любителям наслаждаться ночным небом.
Первоначальная идея заключалась в создании дешевой и простой в сборке альтернативы коммерчески доступным продуктам GOTO, подобным тем, которые производятся SkyWatcher, Orion, Vixen и другими. Таким образом, аппаратная архитектура построена на плате Arduino DUE и дешевых датчиках, доступных на рынке. Инструкции по сборке и руководство пользователя были созданы на сайте проекта. В основе системы лежит плата Arduino DUE, загруженная программным обеспечением, которое постоянно разрабатывается для добавления функциональности.
rDUINOScope со Stellarium:
Подробности
rDUINOScope - это система управления телескопом (GOTO) на базе Arduino Due с открытым исходным кодом. Разработанный как отдельная система, rDUINOScope не требует ПК, планшета или мобильного телефона, а также подключения к Интернету для работы и предоставления потрясающих изображений!
В основном у него есть база данных с ЛУЧШИМИ 250 звездными объектами (Каталоги Мессье и Скрытых сокровищ) и 200 звездами , вычисляет их положение на небе и наводит телескоп. Реализованные процедуры юстировки позволяют «всегда находиться в окуляре» при наведении на выбранные объекты, и как только объект оказывается в окуляре, система отслеживает его.
Однако если вы хотите воспользоваться преимуществами своих электронных устройств, #rDUINOScope использует связь Bluetooth . (беспроводная установка) для подключения ко всем электронным устройствам и приема команд на основе протокола связи MEADE LX200.
Система работает с шаговыми двигателями всех типов и может быть установлена как на самодельных креплениях, так и на коммерчески доступных продуктах, таких как SkyWatcher, MEADE, Orion, Vixen и т. Д.
Функциональность:
Что внутри rDUINO SCOPE?
rDUINOScope на Github
Инструкции по сборке
ШАГ 1 Подготовка
Прежде чем мы начнем, важно, чтобы вы понимали, как работает программное обеспечение, чтобы иметь возможность вносить изменения и настраивать его для вас. Ведь это одна из самых сильных сторон этого проекта!
Чтобы понять эту часть, вам необходимо загрузить код из файлов проекта вместе с файлами «библиотек» ... или просто загрузить весь пакет из: http://rduinoscope.co.nf/downloads.php . Все указанные номера строк соответствуют коду V2.1. Эквалайзер Бойана
Вы должны знать, как работает код Arduino. Обычно программа Arduino имеет 2 раздела - НАСТРОЙКА (); и LOOP (); SETUP () выполняется в начале программы и в основном использует систему; LOOP () - это функция постоянного цикла, которая запускается несколько раз в секунду. Итак, чтобы гарантировать, что у нас есть экраны, сенсорные вводы и т. Д., И экран не мерцает из-за LOOP (), нам нужно изобрести механизм, позволяющий Arduino знать, что от него ожидает пользователь. Таким образом, в разделе LOOP () вы увидите очень небольшую часть кода, в которой говорится только «Примите во внимание прикосновение .. или учитывайте время ...» и т. Д. Остальные действия происходят в этих функциях, что позволяет нам изменять поток программы, чтобы экраны не обновлялись несколько раз в секунду.
Расчеты :Я использовал информацию, найденную в Интернете, о том, как рассчитывать положение звездных объектов. Большую часть информации я собрал по следующей ссылке:http://www.stargazing.net/kepler/altaz.html - Описывает необходимые формулы и подход для расчета часового угла (HA), зная местоположение, текущее время и звездный объект RA. и DEC.
Как только я создал код для вычисления HA / row 678:void calculateLST_HA () /
, Я использовал эту страницу, чтобы проверить, работает ли она нормально:http://www.jgiesen.de/astro/astroJS/siderealClock/, а на более позднем этапе, когда я добавил БД с объектами Мессье, я использовал Stellarium (http:// www.stellarium.org/) для тех же проверок.
Основная проблема, которую я обнаружил, заключалась не в самих формулах, а в том, как Arduino работает с типами переменных и, в частности, с точностью вычислений.
Теперь, когда у нас есть рассчитанные HA и DEC для данного объекта, мы хотим сделать точку монтирования телескопом, и для этого нам нужно каким-то образом узнать, на сколько именно двигатели должны повернуться. Чтобы добиться в этом успеха, мне нужно знать, каково передаточное отношение червяка к передаче, то есть сколько оборотов должен сделать червяк, чтобы шестерня сделала 360 °. У меня есть Vixen Super Polaris, и быстрый поиск в Интернете показал, что в нем используется 144 зубчатая передача для валов RA и DEC. Я создал простой файл Excel (* .XLS - http://rduinoscope.co.nf/downloads/Gears_Stepper_Calculation.xlsx), чтобы рассчитать, сколько двигателей должны вращаться после того, как я рассчитал HA и DEC, а также как часто "срабатывать" "двигатели для компенсации вращения Земли.
Gears_Stepper_Calculation.xlsxТа же математическая модель, которую я использовал в XLS, также реализована в коде, поэтому вам нужно просто подставить значения для вашего монтирования в начале кода (строки с 34 по 37).
// ЗДЕСЬ НАХОДИТСЯ ИНФОРМАЦИЯ О ГОНКЕ, ШЕСТЕРНЯХ И ПРИВОДЕ. --------------------------------------- // NB:RA и DEC используют одну и ту же передачу соотношение (144 зуба в моем случае)! // --------------------------------------- ------- int WORM =144; int REDUCTOR =4; // Понижение передачи 1:4 DRIVE_STP =200; // Шаговый привод имеет 200 шагов на оборот int MICROSteps =16; // Я буду использовать режим 1/16 микрошага для управления звездой - также определяет САМОЙ НИЗКОЙ скорости.
Теперь, когда мы вычислили отношения, код будет знать, на сколько повернуть двигатели, чтобы навести телескоп на соответствующие координаты, а также какова тактовая частота, чтобы монтировка могла отслеживать объект. Функции, отвечающие за вышеуказанное, начинаются в строке 906 и строке 917:
void Sidereal_rate () {} void cosiderSlewTo () {}
Рекомендации :Вы знаете, это не потребительский продукт. Он позволяет вам настраивать его под свои нужды и, таким образом, очень гибкий, но с гибкостью есть некоторые недостатки. Я включил этот раздел «соображения», чтобы убедиться, что они не исключены из вашего списка дел.
- Монтаж двигателей это простая задача, которая, однако, влияет на то, как должны работать ваши расчеты. В моем сценарии оригинальные шестерни Vixen Super Polaris размещены с правой стороны вала червяка. Однако я обнаружил, что эти валы были короткими, чтобы заменить шестерни на шкивы, и, таким образом, переместил шкивы на противоположную сторону вала (слева). Это привело к тому, что двигателю действительно нужно повернуться назад, чтобы увеличить положение телескопа, и поэтому мне пришлось пересмотреть исходный код, который я создал. Вам обязательно нужно пересмотреть направления, в которых двигатели поворачивают, иначе вы закончите с неправильным подсчетом шагов, а, следовательно, с неправильным положением. Позвольте мне показать вам, что я имею в виду:см. Строку 1028, где я задаю двигателю команду STP_BACK, но в строке 1031 я увеличиваю счетчик + =... (Все указанные номера строк соответствуют коду V2.1. Boiana EQ ).
if (SLEW_RA_microsteps> RA_microSteps) {digitalWrite (RA_DIR, STP_BACK); digitalWrite (RA_STP, HIGH); digitalWrite (RA_STP, LOW); RA_microSteps + =RA_mode_steps;} еще {digitalWrite (RA_DIR, STP_FWD); digitalWrite (RA_STP, HIGH); digitalWrite (RA_STP, LOW); RA_microSteps - =RA_mode_steps;}
ДЕЙСТВИЕ: Измените следующие части кода: void think_Manual_Moveint xP, int yP ), void cosiderSlewTo () и void Sidereal_rate ().
- Северный VS Южный Полушария:код также инвертирует движение ВПЕРЕД в зависимости от того, в каком полушарии вы находитесь. Это делается в части кода, где я занимаюсь сенсорными вводами. Возможно, вам потребуется изменить раздел кода.
- Зубчатая передача по DEC и оси прямого восхождения :Мой код работает при условии, что и DEC, и прямая ось используют 144 зубчатую передачу. Так обстоит дело с Vixen Super Polaris. Если у вас другая настройка, вам может потребоваться изменить некоторые части кода. Если у вас есть проблемы с идентификацией этих частей кода, напишите мне, и я постараюсь вам помочь!
Планируйте свою деятельность: Теперь мы достигли точки, когда нам нужно спланировать наши действия по созданию системы rDUINO Scope GoTo. По приблизительным оценкам, вы сможете завершить систему за 2-3 дня, учитывая, что у вас есть все необходимое (оборудование, инструменты и материалы). На его выполнение у меня ушло примерно 4-5 месяцев, учитывая, что я мог работать только ночью (не каждую ночь), а также мне нужно было провести много исследований. Сложив все это вместе, я подумал:
- 1 день на сборку платы Shield и приведение в действие системы.
- 1 день, чтобы упаковать все в коробку.
- 1 день на крепление двигателей и шкивов к креплению.
ШАГ 2 Материалы
Теперь, когда мы знаем, как в основном работает программа, вам нужно спланировать закупки и получить необходимые материалы.
Спецификация :Большинство материалов, которые я использовал, покупаются у китайских поставщиков в Интернете. Некоторые из них, однако, я решил покупать на месте, в основном потому, что они считались хорошими, и я хотел избежать задержек:GPS, Bluetooth и джойстик. Это обошлось мне примерно в 190 долларов США . получить все это, так что это действительно низкая стоимость по сравнению с тем, насколько дорого стоит покупать такую систему у производителей. Вы можете найти список материалов вместе с их ценами и где их можно купить на сайте проекта:http://rduinoscope.co.nf/rDUINO_step2.html, но список также доступен на этом сайте в разделе «КОМПОНЕНТЫ» .
Если вы можете найти их дешевле или доставить быстрее, я настоятельно рекомендую вам это сделать.
Кроме того, в зависимости от вашего дизайна вам может потребоваться 40-контактный разъем. кабель с разъемами для TFT, несколько пластиковых болтов для крепления джойстика, USB-кабель для обеспечения возможности программирования Arduino Due в коробке, вентилятор и другие.
Если у вас их нет дома (как у меня), вам также следует купить некоторые паяльные материалы, припой, кусачки, цифровой мультиметр и другие.
Программное обеспечение, которое вам понадобится :Одной из важных частей построения rDUINOScope является загрузка и установка Arduino IDE и всего сопутствующего программного обеспечения (драйверов, определений плат и библиотек). Следуйте приведенному ниже списку, чтобы установить необходимое на вашем компьютере:
- Перейдите на сайт Arduino и загрузите IDE:https://www.arduino.cc/en/Main/Software. Установите программное обеспечение. После того, как программное обеспечение установлено, оно также установит необходимые драйверы, чтобы ваш компьютер распознавал плату Arduino при подключении.
- Запустите IDE Arduino и перейдите к: Инструменты . -> Доска -> Менеджер плат , как только там Загрузите и установите определение платы Arduino Due «Платы Arduino SAM (32-битная ARM Cortex-M3)»;
- Загрузите пакет библиотек, который я использовал как часть программы, и скопируйте и вставьте их в папку «библиотеки» вашей установки Arduino IDE. (ПРИМЕЧАНИЕ:«библиотеки» - это папка на вашем компьютере, но это также и папка в ПОЛНОМ ПАКЕТЕ, доступном на веб-сайте проекта: http://rduinoscope.co.nf/downloads.php , поэтому вам нужно загрузить пакет, переименовать расширение в .ZIP, открыть его и скопировать содержимое папки «_libraries» из ZIP-архива в папку «библиотеки» на вашем компьютере.)
- Перезапустите среду IDE и откройте главный файл программы - «_02_Boiana_EQ.ino». Вы заметите, что еще 4 файла откроются в отдельных вкладках. Это вспомогательные файлы, обслуживающие различные части программного обеспечения.
Теперь вы сможете скомпилировать код и загрузить его на плату Arduino Due после подключения Arduino к компьютеру.
Примечание. Если вы не знаете, как работает IDE Arduino и что необходимо сделать для программирования Arduino, см. Веб-сайт и руководства:https://www.arduino.cc/en/Tutorial/HomePage
ШАГ 3 Сборка
Для получения более подробных инструкций посетите веб-сайт проекта:http://rduinoscope.co.nf/rDUINO_step3.html
Пришло время создать доску щита. Плата Shield - это плата с распиновкой, которую вы складываете поверх платы ArduinoDUE. Некоторые компоненты должны быть на этой плате, а некоторые лучше разместить на коробке корпуса. Мой раскол выглядит так:
- На плате Shield Board:оба привода DRV8825, часы RTC3231, модуль Bluetooth HC-05, пьезоспекер, разъем на 12 В и распиновка для остальных компонентов;
- На коробке установлены следующие компоненты:модуль GPS NEO 6M - RX, чтобы антенна всегда была направлена в небо, датчик температуры DHT22, вставленный вне коробки через отверстие, джойстик PS2, экран TFT и все переключатели (ВКЛ. / OFF и переключатель дневного / ночного режима). Кроме того, я просверлил отверстия для разъемов моторных приводов, разъема источника питания 12 В и порта USB-кабеля, который идет к собственному порту ArduinoDUE, чтобы можно было обновлять программное обеспечение, не открывая коробку.
Как подключить компоненты к плате ARDUINO DUE:
Компонент .... Аппаратный вывод .... Вывод Arduino
GPS
- GPS NEO 6M .... RX .... 16
- GPS NEO 6M .... TX .... 17
RTC
- RTC DS3231 .... SDA .... A4
- RTC DS3231 .... SCL .... A5
Bluetooth
- BT HC-05 .... TXD .... 14
- BT HC-05 .... RXD .... 15
DHT
- DHT22 .... out .... 3
Спикер
- Пьезо-динамик ... 2
PS2
- Джойстик PS2 .... VRx .... A1
- Джойстик PS2 .... VRy .... A0
Склонение DRV8825
- DEC DRV8825 .... ШАГ .... 6
- DEC DRV8825 .... DIR .... 7
- DEC DRV8825 .... M0 .... 10
- DEC DRV8825 .... M1 .... 9
- DEC DRV8825 .... M2 .... 8
- DEC DRV8825 .... СБРОС DEC DRV8825 .... SLEEP
Right Ascention DRV8825
- RA DRV8825 .... ШАГ .... 4
- RA DRV8825 .... DIR .... 5
- 3 В
- RA DRV8825 .... M0 .... 11
- RA DRV8825 .... M1 .... 13
- RA DRV8825 .... M2 .... 12
- RA DRV8825 .... СБРОСИТЬ RA DRV8825 .... SLEEP
Экран TFT
- использовать с TFT Shield .... контакты (22-53) + SPI
- День / Ночь .... Переключение режима .... A3
Верно ... Теперь мы готовы собрать щит щитка. Получите прототип печатной платы и оцените, как ее вырезать, чтобы в ней можно было удерживать все компоненты, чтобы было место для проводки, и распайку контактов таким образом, чтобы ее можно было уложить поверх Arduino. Обратите внимание, что вам нужно припаять все контакты, используемые Arduino, и подключить их либо к компонентам на плате Shield, либо к разъему на этой плате экрана, чтобы компоненты, расположенные на самой коробке, также могли быть подключены.
Ниже я привожу несколько фотографий этого процесса:
Как только это было сделано, я подключил плату и протестировал щит! Он не работал! :( Я проверил проводку, и оказалось, что я создал мост между двумя соединениями, и мне пришлось это исправить. Обратите внимание, что с этого момента я начал проверять каждую пайку на наличие проблем, так как мне действительно повезло, что я не сжег свой Arduino или что-нибудь еще с неправильной проводкой. NB:Убедитесь, что вы проверили все соединения! Обязательно соблюдайте следующую схему подключения DRV8825 и моторных приводов, поскольку это важно.
Убедитесь, что вы используете подходящий адаптер питания (12 В, 1,6 А) и подключаете моторные приводы до включения питания! NB:никогда не подключайте моторные приводы, когда DRV8825 находится под нагрузкой, так как это может сжечь драйверы!
Теперь, когда все компоненты припаяны, я предлагаю вам также подключить моторные приводы, загрузить программное обеспечение на плату Arduino и протестировать всю установку. На данный момент все должно работать без сбоев.
Теперь вы можете поиграть с программным обеспечением и познакомиться с пользовательским интерфейсом. Чтобы помочь с интерфейсом, я создал страницу РУКОВОДСТВА ПОЛЬЗОВАТЕЛЯ на веб-сайте проекта:http://rduinoscope.co.nf/guide.html
Ваша установка должна выглядеть примерно так:
ШАГ 4 Соберите все вместе
Как только щитовой щит будет готов, возьмите коробку и начните раскладывать все оставшиеся компоненты и спланировать, где вам нужно просверлить отверстия, а также какой формы и размера. Лучше всего вырезать дыры небольшим перочинным ножом (по крайней мере, для меня). Неважно, круглое ли это отверстие или квадратное. Вы можете легко вырезать его маленьким острым ножом.
Единственное исключение - экран, где действительно нужно длинное ровное квадратное отверстие. Я попросил о помощи, и мой отец сделал это на своих режущих станках.
Как только вы будете довольны макетом и сочтете его выполнимым, начинайте вырезать отверстия. Это долгий процесс, который создает беспорядок, но не должен занимать у вас более 2-3 часов. Иногда я использовал дрели, когда мне приходилось проделывать обведенные кружками отверстия, например:разъем питания 12 В, разъемы двигателя RA и DEC.
Подготовьте пистолет для горячего клея и начните приклеивать компоненты к коробке горячим способом, как показано ниже:
Теперь все соединено и упаковано в коробку, за исключением компонента на лицевой стороне коробки. Я решил разместить там TFT-экран, джойстик PS2 и переключатель дневного / ночного режима. Когда я добрался до экрана TFT, я создал простое соединение ленточным кабелем с разъемами «папа» и «мама» и подключил его к экрану. Однако это не сработало! Причина в том, что контакты стали зеркальными, и поэтому экран TFT больше не может работать. Поэтому я решил разработать несколько сложных преобразований 2D в 3D и проработать разъемы, которые у меня были с ленточным кабелем, чтобы решить эту проблему
Короче говоря: Это не ракетостроение, но у меня были тяжелые времена, пока я не нашел решение. Уродливое решение, но оно сработало и год спустя все еще работает. Ниже вы можете понять, что я имею в виду.
В основном вы видите следующее:
- Ленточный кабель
- 40-контактные розетки
- контакты для пайки на печатной плате, вырезанные для формирования массива (2 x 20 контактов)
Это сработало как шарм и позволило мне завершить коробку!
ШАГ 5 Немецкая экваториальная гора
Как бы я ни хотел рассказать вам, как подключить моторные приводы к вашему креплению, я не могу. Дело в том, что любой производитель создает свой собственный дизайн, и поэтому не существует решения, подходящего для всех.
Я использую Vixen Super Polaris из 80-х, и метод ниже работает для него. Напомню, что решения, которые вы приняли на ШАГЕ 1 где вам нужно было изменить значения в коде, теперь повлияет на нашу работу. Ниже вы можете увидеть мою настройку шкивов и ремней.
Я купил 2 комплекта для своей установки. Я просто не знал, как это будет работать, поэтому купил набор с редукцией 1:4 и набор с редукцией 1:3. Размер ремня также должен отличаться, поскольку уменьшение влияет на расстояние между обоими шкивами. Я признаю, что при хорошем планировании и дизайне вы можете заранее решить, как действовать, и сэкономить немного денег, но я очень торопился. Мне нужно было заставить его работать!
цифра>После того, как передо мной были ремни, шкивы и крепление, я решил, что лучшим подходом для меня будет использование редуктора 1:4, потому что все, казалось, идеально подходит для крепления, и я начал работать над корпусом двигателя. Через полдня я пришел к следующему:
Я протестировал всю установку и должен был внести некоторые изменения в программное обеспечение (обновить значения переменных до 4 в строке 35), чтобы они отражали мое окончательное дизайнерское решение. Протестировал еще раз, и все заработало как шарм.
Пришлось дождаться хорошей звездной ночи, чтобы как следует ее протестировать, но пока я дождался, понял, что что-то не так!
У меня была лучшая система управления телескопом GOTO, намного лучше, чем то, что я могу купить на свой бюджет на хобби, но она выглядела неправильно. Требовались последние штрихи, которые впоследствии заставили меня гордиться своим rDUINOScope!
Наконец, мой rDUINOScope Vixen SP Ferrari выглядит так, как я считаю, он должен выглядеть!
Файлы
_READ_ME.txt:Описание финальной версии v.2.1 Boiana EQ вместе с некоторыми F.A.Q.
_READ_ME.txt_02_Boiana_EQ.ino:Основной файл Arduino
_02_Boiana_EQ.inographic_screens.ino:ГРАФИЧЕСКИЙ ФАЙЛ - связан с основным файлом
graphic_screens.inotouch_inputs.ino:ФАЙЛ СЕНСОРНЫХ ВХОДОВ - связан с основным файлом
touch_inputs.inoBT.ino:СВЯЗЬ BLUETOOTH - связана с основным файлом
BT.inoregular_updates.ino:ОБНОВЛЕНИЯ ВРЕМЕНИ - связаны с основным файлом
regular_updates.ino
Код
- Фрагмент кода №1
- Фрагмент кода №3
Фрагмент кода №1 Обычный текст
// ЗДЕСЬ НАХОДИТСЯ информация о креплении, шестернях и приводе. // ... используется для расчета отношения HourAngle к микрошагам // ОБНОВЛЕНИЕ ЭТОЙ ЧАСТИ в соответствии с вашими НАСТРОЙКАМИ // --------- ------------------------------------ // Примечание:RA и DEC используют одинаковое передаточное число (144 зуб в моем случае)! // ------------------------------------------ ---- int WORM =144; int REDUCTOR =4; // Понижение передачи 1:4 DRIVE_STP =200; // Шаговый привод имеет 200 шагов на оборот int MICROSteps =16; // Я буду использовать режим 1/16 микрошага для управления сидерией - также определяет САМОЙ НИЗКОЙ скорости.
Фрагмент кода 3 C / C ++
если (SLEW_RA_microsteps> RA_microSteps) {digitalWrite (RA_DIR, STP_BACK); digitalWrite (RA_STP, HIGH); digitalWrite (RA_STP, LOW); RA_microSteps + =RA_mode_steps;} еще {digitalWrite (RA_DIR, STP_FWD); digitalWrite (RA_STP, HIGH); digitalWrite (RA_STP, LOW); RA_microSteps - =RA_mode_steps;}
Github
https://github.com/dEskoG/rDUINOScopehttps://github.com/dEskoG/rDUINOScopeСхема
Как подключить шаговые двигатели и DRV8825 и подключить их к Arduino DUE Как подключить все датчики и подключиться к Arduino DUEПроизводственный процесс