socat отлично эмулирует порт. RTS2 "увидел" телескоп, и даже получилось погонять его (правда, я с ходу не нашел команды экстренной остановки, а документации с гулькин нос; надо досконально перекопать исходники). Правда, пришлось из режима "extended LX200 emulation" переключиться в обычную (в RTS2 довольно странный способ проверки, в каком режиме точности находится монтировка, и "очень повышенную" точность она считает ошибкой).
Теперь нужно еще разобраться с телескопом, и можно писать модуль управления этими товарищами. Для монтировки за основу возьму готовый код lx200 (но его надо будет сначала привести в нормальный вид) с дополнениями из 10micron'овской библиотечки INDI.

Плохо, что RTS2 такой сырой, и его еще пилить и пилить… Но ничего лучше (и желательно на С, чтобы не ломать голову над ООПщиной) мне, к сожалению, не встречалось.

CH340G

Oct. 19th, 2017 11:53 am
Я уже больше года использую вот эти переходники «USB ←→ RS-232» на чипе CH340G. И про патчи старых ядер писал, где четность не поддерживалась (без патча вообще с этим модулем нельзя было работать). И писал, как безуспешно пытался считать данные протокола "кофейника"…
А вот даташит на этот чип почитать не удосужился.
В даташите же явно написано: "CH340G USB to UART Interface", какой, нафиг, RS-232? А китаец с ибея по ссылке выше даже предупреждает: "This product used CH340 Chip,please know it"!!!
Вот оно — мое фирменное рукожопие, за что жена иной раз говорит: «золотые руки из жопы» ☺

В общем, от ±12В уровня на Tx с этим чипом ничего не происходит, а вот на выходе он, понятное дело, дает 0÷5В. Чего явно недостаточно, чтобы преодолеть пороги, описанные стандартом. Вот и получалось, что монтировка только с N-й попытки "слышала", что я ей посылал. С телескопом другая история — там и на USB шнурок 0 реакции, т.е. явно я неправильный протокол использую, подожду, что разработчики напишут.

Пошукал на ибее и али. Ничего за вменяемую цену пока не нашел. Есть вот такая штука, но к ней еще шнурок приделывать... Наверное, дешевле будет отдельно купить баксовых модулей на PL2303 и тоже баксовых на max3232, да соединить их вместе! Или заморочиться, и спаять таки нормальные переходники на этой парочке — и те, и другие чипы у меня есть.
Управление телескопом по RS-232 все так же глючит. Попытался в kstars запустить INDI-драйвер через сеть, но сетевой вариант слишком сырой, и на команды не реагирует.
На форуме 10micron все как-то совсем уныло: как будто бы астрономией одни вендузятники занимаются! Но нашлась эта тема, где человек предложил использовать socat (как я мог про эту удобную утилиту забыть?) для "превращения" сокета в терминал:
socat  pty,link=/dev/telescopemount,raw  tcp:192.168.0.100:3490

Затем меняем права доступа к псевдотерминалу, созданному socat, и запускаем kstars с подключением через RS-232, но в качестве устройства указываем /dev/telescopemount.
И все работает!

После чая схожу, все-таки с осциллографом гляну, что там такое с RS-232. Но, возможно, действительно виноват переходник на ch340g. Надо будет аналоги поискать в пределах 100 рублей.

Ну, а пока благодаря socat можно будет проверить, как работает RTS2 с монтировкой, а дальше уже добавить в RTS2 поддержку сетевого соединения. Хотя, на мой взгляд, более надежным будет подключить телескоп и монтировку по RS-232, благо у управляющих компьютеров этих портов аж четыре!

Пока складывается такая схема: на каждый из шести телескопов установлен промышленный компьютер, который непосредственно с этим телескопом работает (посредством собственных демонов RTS2), а единый управляющий компьютер стоит где-нибудь в теплом помещении и централизует работу шести.
Вечером решил подключить уже собранную на макетке схемку с генератором на 555-й и модулем с DRV8825 к двигателям фотометра — погонять, посмотреть, ничего ли не клинит (оказалось, очень даже клинит, надо будет рассверливать отверстия и по месту подгонять) и не задевают ли подвижки что-нибудь на своем пути.
Не проверив обмотки двигателя омметром, сразу подключил, положившись на цветовую схему (одна обмотка — синий+зеленый, другая — красный+желтый). Оказалось, что там синий с красным, а желтый с зеленым. Но другая проблема — драйвер шаговика сгорел от "козы"! При том, что в нем как бы внутренняя защита от КЗ и перегрева (и даже выход есть индикаторный, но как я раньше писал, на выходе напряжение как-то уж сильно позже КЗ появляется). Заменил его на менее продвинутый a4988 (все равно пиковый ток не выше 0.5А).

В общем, вывод такой: если делать на DRV8825 модуль управления шаговиками, надо ставить внешний детектор "козы". Например, на вход питания воткнуть резистор на 0.1Ом (хватит и 0805 — даже с лихвой) и измерять на нем падение. А это или 2 канала АЦП, или 1 канал АЦП + операционник.
Продолжаю мучения с телескопом ASTROSIB RC500 вкупе с монтировкой 10micron GM4000HPS.
Как-то пока безрезультатно.
RTS2 на временном компьютере установил (пришли 2 компьютера для этих телескопов, но там еще надо снести мастдайку и поставить генту, а затем повторить мучения с разворачиванием RTS2), коннекта с lx200 нет.
Решил попробовать напрямую — через терминал. Тоже безрезультатно: монтировка время от времени дает о себе знать, но где-то так на каждый 10-й запрос (а то и реже), остальные без ответа остаются. С телескопом вообще глухо: при нажатии на кнопки в терминале появляются правильные сообщения, но вот на команды он не реагирует. Зато реагирует на переполнение входного буфера: показывает состояние фокусера и открывает или закрывает крышки (причем, закрывает их неправильно).

Решил для начала хотя бы с монтировкой разобраться, по поводу телескопа разработчики обещали ответить на днях. Поставил indilib и kstars (чтобы дважды не компилять, сразу указывайте USE-флаг indi в /etc/portage/package.use/). Запустил kstars и стал пытаться запустить indi-драйвер монтировки (благо, его уже написали). И те же проблемы: команды монтировка принимает (на команду двигаться она почти сразу приходит в движение), а вот сообщения от нее поступают с большими трудностями. Изредка проскакивает ответ, но по бóльшему счету — сообщения об ошибке связи вроде "монтировка отключена".

Завтра попробую повторить эксперимент сразу после включения питания на монтировку. Хотя, маловероятно, что это поможет. Надо копать глубже.

UPD )
2-5 дюймов по диагонали, чтобы не дороже рублей 500. Желательно, чтобы тачскрин был распаян отдельно, чтобы не возиться с паяльником.

Экран желательно на 8- или 16-битной параллельной шине, но стопроцентно рабочий. К чему это я? Да к тому, что уже дважды мне попадаются совершенно нерабочие экраны: года два назад купил 4.5'', написал под STM32 эмуляцию параллельной шины (таймер+DMA), но не взлетело. Обнаружил, что китайцы зачем-то тач налепили на сигнальные контакты. Отпаял. Все равно не помогло.

Недавно получил вот такой 2'' экран. Не поленился: достал абдурину и залил туда демо-"скетч" (т.к. люди пишут, что все у них работает). Не взлетело. Проверил код "библиотеки": да, для моего чипа, да, ноги подключены правильно, но экран не инициализируется (хотя по прерыванию мигания контрольного светодиода на пару-тройку секунд после сброса видно, что что-то там происходит). Конечно, остается еще такой вариант: на плате китайцы написали, что чип 7775, а фактически впихнули что-то другое, но пока расковыривать экран не хочу (т.к. это однозначно его убьет — уж очень хорошо приклеили).

Вопрос: какой недорогой TFT можно купить, чтобы стопроцентно он работал?

И второй вопрос: что использовать на морозе (до -20°C)? Выживет ли OLED-дисплей при таких условиях?
Начну со вчерашнего мини-шашлыка:

Решили "шаббат" устроить и отдыхать.
Еще фото )
Что-то не хочет у меня RTS2 собираться: во-первых, ./configure "не видит" установленную libwebsockets (хотя вроде бы в скрипте все правильно указано, хоть вручную допиливай); во-вторых, в коде полным-полно проблем (кучами сыплются предупреждения о битовых сдвигах больше размера переменной и т.п.) вплоть до отказа собираться:

fli.cpp: В функции-члене <<virtual int rts2focusd::Fli::initHardware()>>:
fli.cpp:186:42: ошибка: некорректное преобразование из <<const char*>> в <<char*>> [-fpermissive]
   ret = FLIOpen (&dev, name, deviceDomain);
                                          ^
In file included from fli.cpp:21:0:
/usr/include/libfli.h:252:11: замечание: initializing argument 2 of <<long int FLIOpen(flidev_t*, char*, flidomain_t)>>
 LIBFLIAPI FLIOpen(flidev_t *dev, char *name, flidomain_t domain);

Придется таки в С++ ковыряться, а я надеялся, что обойдусь сишными модулями с оберткой (от ООПщины мне плохо становится!).
Да еще и флишный модуль ядра опять не хочет собираться после обновления ядра на рабочем компьютере (ядро 4.12.12) — вот же делать нечего Линусу сотоварищи — уже и между минорными релизами API ломают!
Поздравляю (запоздало) всех причастных. Учителем, к счастью, я не работал, но было и хуже: 4.5 года отработал преподавателем в "колледже". Отличная практика. Думаю, и трех лет работы в таком учреждении хватит, чтобы закалить в себе характер для работы даже преподавателем в исправительных учреждениях (т.к. клиентура по сути одна и та же, разве что решеток нет между преподавателем и учащимися).

Осень

Oct. 2nd, 2017 11:30 pm
Экскурсоводил на горе в субботу-воскресенье. Как ни странно, была тьма народу! Погода нынче угрюмая, но, к счастью, в субботу до обеда было еще ничего. И пока не начался наплыв экскурсантов, я пробежался с мыльницей по окрестностям ВНП. 30 сентября природа внешне еще никак не намекала на начало осени:

Еще фото )
Сегодня у меня последний день отпуска, завтра и послезавтра буду экскурсоводить на горе, так что уже не отдохнешь перед работой. А еще и выдался на редкость солнечный и теплый денек (до этого стояла хмарь по 6-7°C днем!), и я после обеда решил на работу не возвращаться, а добавить еще 4 USB-розетки в машину.
Дальше )
Эту неделю я еще в отпуске, поэтому на работу хожу вяло: по 6-7 часов в день. Сегодня мне в мастерских выдали уже почти готовый корпус фотометра для Z-1000, с полчаса я убил, отмывая его от грязи и машинного масла. Пока деталей не хватает, поэтому разместить внутренние элементы не могу еще, но уже можно прикинуть, как подрезать валы, и отдать их в мастерские. Чертежи всех внутренних элементов я сегодня отнес, глядишь, недели за 2-3 сделают (если, конечно, материала хватит; у нас в мастерских просто беда с дюралью: остались буквально обрезки!).
А за выходные я сделал еще 8 печатных плат (к четырем, изготовыленным до отъезда в Абхазию) для управления двумя униполярными шаговыми двигателями:

Дальше )

Online

Sep. 21st, 2017 11:24 pm
Сегодня вернулись из Абхазии. Вкратце: ничего не изменилось. Как была Абхазия лучшим местом отдыха на море, так и осталась, Крым — это не для нас!!!
Вот такое чудо[вище] за 7 лет успели отгрохать!

Дальше )

Offline

Sep. 13th, 2017 04:43 pm
С завтрашнего обеда на неделю ухожу в офлайн — уезжаем в Новый Афон.
Телефон тоже выключу. По "крайне срочным" вопросам меня можно будет найти, позвонив Аленке — она включит опцию "Абхазия".
Цéлую неделю без интернета. Кайф!!!
Я прошлый раз, намучившись с распайкой элементов на прототипе системы сбора термомониторинга ГЗ БТА, грешил на то, что при нагреве стеклотекстолит расширяется, а после остывания опять сжимается, в результате чего изображение получается мельче!
Не тут-то было!!! Решил сегодня точно это проверить. Перевел на пробный кусок калибровочную сетку. Масштаб получился 1-в-1 — сколько на сетке, ровно столько же и на стеклотекстолите. А вот на сетке масштаб совершенно не совпадал с исходным. Оказалось, что принтер при печати уменьшает изображение, да еще и неравномерно: чтобы сохранить верный масштаб, перед печатью нужно по Y увеличить изображение в 1.042 раз, а по X — в 1.048 раз!
Вот такое западло. Пока я ЛУТил всякую мелочевку, где не было "многоножек", проблемы не замечал.

Вот так-то! Доверяй принтеру, но проверяй, не масштабирует ли эта зараза при печати!
Вчера днем сгоняли в Зеленчук, купили еще 2 ящика помидоров. Если первый брали по 18р за килограмм, то вчера были уже по 26. Дальше наверняка еще дороже будет. Но мы решили, что 5 ящиков помидоров наверняка до следующего лета нам хватит. Пока я мыл помидоры, Аленка притащила Марту с гаража, и та сразу сказала, что "надо бы это зачепятлеть на фоторгафию", правда, у нее пока не очень получается:

Дальше )
Потихоньку решил сделать standalone управлялку FLI'шными ПЗСками, турелями и фокусерами. Сделал поверхностный рефакторинг "mytakepic", пока только ПЗС управляет. Решил отдельную репу не делать, а положить в тот же mytekepic отдельной директорией. Словил сегодня утром kernel panic — видимо, модуль ядра, который я в виртуалбоксе для новых ядер портировал, на компутере забыл обновить. Поставил его в автозагрузку на всякий случай.
Помимо старых функций добавил еще возможность открывать/закрывать затвор (нужная функция) и задавать старт экспозиции по внешнему триггеру. Пришлось, правда, еще и в исходниках библиотеки поковыряться: документация к ней совсем уж унылая. Очень хочется сделать в userspace, но лень.
За два вечера четверга и пятницы утилизировали еще 2 ящика помидор: лечо и сок.
Один ящик:

Еще фото )
Фух! Таки управился!
Протестировал все варианты компиляции: и с SGREAD, и без него, и с ASYNCWRITE. Не знаю, чем эти методы отличаются, но скорость считывания во всех трех случаях была примерно одинаковой — около 3.5с на весь кадр 4k×4k. По сравнению с apogee, конечно, это очень шустро. Но вот использовать для USB'шного устройства модуль ядра в 21 веке — дикость какая-то!!!

Обновил архив с модулем на гитхабе в репе "mytakepic" (вот такое дурацкое название осталось у читалки). Теперь надо будет переделать этот mytakepic, чтобы он работал с фокусером и турелью от тех же FLI (надо будет для отладочно-юстировочных работ, пока не запустим RTS2).
Модуль проверен на ядрах 4.9.4 и 4.12.5.

October 2017

S M T W T F S
1 234 5 67
8910 11121314
151617 18 192021
22232425262728
293031    

Syndicate

RSS Atom

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 20th, 2017 09:00 am
Powered by Dreamwidth Studios