promo eddy_em june 4, 15:05 1
Buy for 10 tokens
Выложил окончательный код на гитхаб. Входы/выходы работают, АЦП опрашивает. ЦАП за ненадобностью не задействовал, аналогично с RS-485 (т.к. когда на борту есть CAN, 485 может понадобиться разве что какое-нибудь УГ модбасовое в качестве раба подключить). Дальнейшую модификацию кода каждый по своим…
flag

Новые AS3935

Что-то совсем китайцы нарукожопили! Получил сегодня еще 2 датчика (теперь уже хотя бы не за свои деньги покупал). Втыкаю первый, а у нас тут гроза вдалеке. Смотрю: о, показывает что-то! Полез в калибровки, а все частоты почти в 2 раза завышены, видимо, кондеры перепаивать надо.
Взял второй датчик: о, после калибровки SRCO уже в районе мегагерца с копейками (но до нужных 1.1МГц не дотягивает), а TRCO 31.5кГц — вместо нужных 32768Гц. Вывел на IQR 500кГц с делением на 16, т.е. должен получить 31.25кГц. Однако, вижу 30.5кГц. Начинаю увеличивать регистры внутренних калибровочных кондеров — частота только уменьшается. Т.е. опять кондеры не те припаяли, но хотя бы уже ближе!
Как-нибудь попозже снова этим займусь. А вдруг оно "и так сойдет"?
flag

Modbus-релюшка

Купили на работу несколько вот таких релюшек.
Продавец вообще не описал ни скорость подключения, ни протокол. ОК, пробую просто прочесть широковещательным запросом: 00 01 00 01 00 01 [CRC] — хрена с два! В поле адреса ставил 1, FF - тоже без отклика. Сейчас попробую другие скорости помимо 9600. Но что-то хрень какая-то…

UPD: нашел здесь описание протокола. Вообще дичь какая-то! Ни хрена это не "нормальный модбас"! В "нормальном" в случае ошибки (ну отправил я неправильную команду) раб должен ответить сообщением с пометкой "ошибка" (FC+0x80) и следующим за пометкой байтом данных - кодом исключения (1..4). А тут - тупо тишина…

UPD1: релюшками пощелкал, состояние входов получил, Slave ID поменял. Все работает. Теперь можно с чистой совестью вернуться к реализации Modbus-RTU на STM32 (все равно понадобится на БТА, пусть уж "FX3U", где уже RS-485 распаян, и станут первыми подопытными). Правда, блин, я поначалу-то думал элементарно CAN-протокол повторить, но коль уж решился модбас, то и придется по стандарту делать. Т.е. нумерацию регистров оставлю той же, а вот формат посылки будет по стандарту модбаса. И ответ нужно будет в случае ошибок формировать соответствующий стандарту… Определять конец пакета решил по прерыванию IDLE. Почему-то, пройдя по первым нескольким ссылкам в гугле на "stm32 modbus-rtu example" такой простой реализации не встречал, зачем-то народ заморачивается с таймерами. Вот же делать нечего! Ну какова вероятность, что при передаче N байт произойдет внезапная пауза на 1-2 байта?
flag

А не завалялся ли у кого протокол управления инверторами SILA?

На четырех из пяти телескопах нашего комплекса "Астро-М" стоят инверторы SILA V 300P. На них есть USB и RS-232 (разъем RJ45). Для аварийного отключения на время грозы (да и просто знать, что сети нет, а аккумуляторы уже прилично разрядились) хотелось бы иметь возможность управления с компьютера. Не могу никак найти протокол.
Да и распиновку RJ-45 неплохо бы.
Подозреваю, что "в ширнармассы" производитель максимум, что выпустил — убогий софт под не менее убогий маздай. А мне нужен лишь протокол.
Пока что планирую на выходе каждого бесперебойника поставить пускатели и по датчику грозы все намертво отключать (после того, как будет получен сигнал о закрытии купола и отключении компьютера, конечно). Но ведь можно было бы это делать и силами самого инвертора…
flag

А теперь — про "made in Deutschland"

Сегодня завалили столб с райнхардовской метеостанцией (как я уже писал, там изначально не работали влажность с давлением, а потом еще и крыльчатка анеморумбометра заклинила). Ну, что ж: конечно, качество куда круче, чем у канадцев, но тоже говна хватает…
Collapse )
В общем, китайская метеостанция (которая на алике около 40тыр стоит) показывает пока что себя куда как лучше. Если цену этой фашистской поделить на цену китайской, можно вообще каждый год новую покупать и менять их, хватит почти на сорок лет!
flag

И это — "made in Canada"!..

Еще с июня мы с Амирычем хотим сделать профилактику райнхардтовской метеостанции (а то там померло все, кроме датчика облачности; к слову, тоже "made in Germany", а по факту — дерьмо). Но датчик облачности жизненно необходим: без него невозможны наблюдения (кто телескоп закроет, если затянет небо?). Поэтому я решил: есть же у нас на Ц1000 старый датчик Boltwood Cloud Sensor II (у фашистов примерно за 500 баксов продается). Подцепили его к компьютеру — какой-то мусор вместо данных. Сегодня мне его спустили на посмотреть, а там…
Collapse )
Вот слышал я от кого-то идею, что потреблядство — "культура", специально взрощенная ЦРУшниками и прочими выблядками, чтобы уменьшить у людей тягу к социализму. И в итоге появились хипари, потребляди — и всем хорошо, о социализме и равенстве никто и не думает. И даже наоборот: рабы с пеной у рта отстаивают рабовладельческий строй!!!
А вот и плоды этого потреблядства. Жутко дорогие и ненадежные. Хоть печатай на 3D-принтере корпус, да городи из того, что есть под рукой (а у меня дома под 2 десятка разнообразных метеодатчиков, нет только УЗ для анеморумбометра), "хоть какую-то метеостанцию", которую ты сможешь пасти и легко заменять помершие элементы (те же гигрометры, даже достаточно дорогие, буквально за 2-3 года деградируют).

P.S. Эх, жаль, что меня почти на всех радиофорумах забанили. Потрындели бы там с народом на эту тему…
flag

А ведь вчера Егору могло бы 60 исполнится…

(Алексей напомнил перепостом)
До сих пор с удовольствием переслушиваю кое-что из творчества Летова. А вот под гитарку "Всë идëт по плану", увы, уже давненько не орал. Собственно, что-то и подзабыл уже, когда я расчехлял гитару последний раз (и ладно, электрогитару - там комбик достать нужно, педальку подключить... а ведь акустику нужно просто достать, настроить - и играй себе).
flag

Не прошло и шести лет,

как я таки нарисовал хоть какую-то документацию к системе термомониторинга ГЗ БТА.
Крайне надеюсь, что она больше не будет меня беспокоить, и мне не придется в очередной раз заниматься не своими делами. А то любят у нас в обсерватории такое: коль уж ты разработал нечто, так уж будь по гроб обязан бесплатно это нечто обслуживать и модернизировать… (я же предпочитаю принцип "разработал - и забыл", а если оно кому-то нужно, пусть этот человек и занимается; таков настоящий принцип опенсорса ☺)
flag

И таки что бы вы думали?

Элементарную длинную табличку в два столбца, как оказалось, не так-то и просто в латехе автоматом оформить. Мне совершенно лень в очередной раз Кнута читать, чтобы наваять это как надо, поэтому, как говорится, "из говна и палок".
Объявляем обычную таблицу, а внутри вручную размещаем контент. Вот так, например:
\begin{table}
\leavevmode
\hbox to 0.45\textwidth{
\begin{tabular}{|c|c|c|c|c|}
\hline
\textbf{No} & \textbf{Place} & $\Delta T$ & $X$ & $Y$ \\
\hline

100 & 36    & -0.07 & 19  & 7\\
...
\hline
\end{tabular}}\hbox to 0.45\textwidth{
\begin{tabular}{|c|c|c|c|c|}
\hline
\textbf{No} & \textbf{Place} & $\Delta T$ & $X$ & $Y$ \\
\hline
340 & 30    & 0.11  & -15 & 13\\
...
\hline
\end{tabular}}
\caption{Положение термодатчиков на ГЗ БТА.}\label{sensonm}
\end{table}

То бишь, вручную бьем таблицу на два столбца, добавляем заголовок, помещаем это внутрь горизонтальных боксов и не забываем \leavevmode (а то я поначалу, подзабыв про эту важную штуку, пытался вспомнить: а почему два горизонтальных бокса внезапно выстраиваются в вертикальный, а не продолжают горизонтальный). Окружение longtable не работает, как оказалось, в многоколоночном режиме, а supertable вообще фигня какая-то…
Кстати, вот такой простой строчкой можно сконвертировать текст, выделенный из таблице в "либре" в удобоваримый формат:
cat | column -to ' & ' | sed -e 's/$/\\\\/'

Линукс рулит! Форточки — маздай!!!!
Collapse )

Кстати, на SO (как бы мы без него жили вообще?) нашел, что очень даже красиво отображать битовые поля регистров помогает пакет bytefield.
flag

И опять термодатчики

Недавно начал глючить один из контроллеров термодатчиков на зеркале БТА: поработает минут 5, а потом начинает засорять шину (буквально флудит, не давая никому влезть) широковещательными командами "начать измерение температуры" (непонятно, с чего вообще эта дичь возникла). Вот, сел вчера радикально так заменил код USB на новый (о котором недавно писал), выкинул поддержку UART (ну его нафиг: больно тормозной). Сегодня поменял немного протокол, заменил базовый адрес идентификаторов на 0x680 (чтобы не пересечься случайно с какой-нибудь железкой на CANopen). Пока отлаживал, придумал еще несколько команд для удобства (в т.ч. "заткнись!" — чтобы контроллер ничего в шину не писал, пока разрешения не получит). Сам по себе USB-протокол оставил тем же, что и был (только запретил уже "широковещательные" команды). Как и раньше, если контроллер не находится в режиме "сниффера", реагирует лишь на посылки по его ID (а идентификатор равен 0x680 + номер, который перемычками на плате установили — от 0 до 15). Мастер (с номером 0) по умолчанию в роли "сниффера" выступает (чтобы и с другими устройствами в шине через него можно было общаться).
Поеду завтра на гору, перепрошью все шесть контроллеров. Заодно попытаюсь "глюкавого" найти — если он физически глючит, нужно будет заменить. Хотя, странно это: работает себе несколько минут, а потом вдруг начинается…
Репозиторий с кодом.