eddy_em: (Default)
Хочу, точнее — надо — сделать опторазвязку на существующие RS-232 (благо, трехпроводные, а не полный 232).
Периферийных устройств пять: две метеостанции, датчик дождя, датчик грозы и ИК-allsky (который таки, надеюсь, к следующему лету будет у нас сделан). Все это я бы оформил в одну коробчонку с блоком питания и воткнул в соответствующие разъемы компьютера.
"Промышленные" развязки какие-то огромные, да еще и цена на них невменяемая.
Неужели нет такого волшебного чипа, чтобы его можно было в разрыв кабеля внедрить, и обеспечить развязку?
Перелопатил с десяток разных апноутов (там, куда нас еще пускают: многие фашистские сайты нас, унтерменьшей, заблокировали), везде предлагается изолировать каким-нибудь ADUM'ом (а то и парой простых опторазвязок) UART, а дальше уже ставить MAX232 или аналог. Подозреваю, что и в "промышленных" развязках так: с двух сторон стоят MAX232, а посередине — или пара опторазвязок (для тех, где пишут, мол, до 1Мбод), или ADUM (где до 10Мбод пишут).

Или таки посоветуете не заниматься фигней, а на основе хотя бы даже 100-ногого STM32F103 сделать преобразователь на 5 RS-232 и там уже изоляцию обеспечить? Жаль только, I2C на большое расстояние не протянешь, а то можно было бы allsky на него же повесить…
Кстати, что-то не нашел я сходу оптоизоляции для 232 наподобие ISO308x (которые я использую для 485). Неужто и правда народ городит на MAX232+опторазвязки?
eddy_em: (Default)
Пользовался долгое время xfce4-terminal, но у него появились глюки с псевдографикой. Поставил lxterminal. И, вроде все хорошо, но бесит то, что когда копируешь двойным щелчком путь, то начальная тильда не копируется!
В итоге средней кнопкой вставляешь не ~/Docs/SAO/ELECTRONICS/CAN_controller/Socket_CANserver, а путь относительно корня! Это повторяет убогое дефолтное поведение (в консоли двойной щелчок ведет себя аналогично).
Попробовал tilda — та же самая проблема. В каком эмуляторе терминала есть нормальное поведение на выделение двойным щелчком — как в xfce4-terminal, но нет проблем с псевдографикой?
eddy_em: (Default)
Скорей всего, наш спектакль "Федот-стрелец" по Филатову будет на день науки (а может даже и позже).
Но вот возникла проблема: всем артистам нужны микрофоны. Лучше всего - "прищепки", но можно и цепляющиеся за голову.
Поиск в интернете пока ничего не дал: либо мегадорогущие "зенхайзеры" и "шуры", либо что-нибудь попроще, но по одной станции на каждый микрофон.
А не известны ли кому модели с нескольмими микрофонами на станцию? Пусть актеры выключением/включением занимаются, а то даже не представляю, где около пульта разместить целых 10 принимающих станций (с каналами-то проблем нет, у пульта их 48 что ли).
Ну или хотя бы пусть будут по 1-2 микрофона на станцию, но чтобы по цене в районе 1.5тыр за точку, и чтобы батареек часа на 3 хватало.
eddy_em: (Default)
Нужен радиосуфлер хотя бы на десяток наушников. Т.е. где-то нужно купить комплект из десятка-двух радионаушников (в идеале это должен быть один незаметный наушник-втыкушка + маленькая коробочка-приемник), работающих на одной и той же частоте + передатчик (можно два - про запас) для них.
Где такое чудо найти? Даже не знаю, как гуглить!
eddy_em: (Default)
Вот хочу почитать относительно свеженького Гонсалеса-Вудса. Читалки формата А4 у меня, к сожалению, нет. Смотрю на бумажную версию: 113 баксов(!!!) в мягкой обложке на амазоне. Они там все совсем что ли охренели?
Да ей в твердой-то обложке красная цена — максимум баксов тридцать!
В принципе, я готов и 40 долларов потратить на эту книжку (с пересылкой). Пусть даже в мягкой обложке. Уж очень не хочется целый день сидеть у принтера и печатать, потом сшивать тетради, обрезать, формировать книжку, делать твердую обложку… С другой стороны, в таком случае книжка обойдется в пару сотен рублей (сколько сейчас газетная бумага в пачках стоит?).
Но таки хочется нормальную книжку. Предыдущее издание на русском языке я купил. Отдал тогда тысячи полторы. Тоже понегодовал, какие у нас охрененно дорогие книги стали!

Так где можно купить литературу на английском языке по вменяемой цене?
eddy_em: (Default)
Очень неудобно задавать размер блока флеш-памяти в заголовочных файлах, т.к. он все равно должен быть определен в линкере (для выравнивания начала "эмуляции EEPROM во флеш"). Сейчас наткнулся на косяк: и в линкере, и в дефайнах у меня размер блока руками написан как 1024 байт, хотя в STM32F072CBT6 размер - 2кБ!
Попробовал явно в линкер-скрипте для данного МК указать. В файле stm32f072B.ld задаю:
MEMORY
{
    rom   (rx) : ORIGIN = 0x08000000, LENGTH = 128K
    ram  (rwx) : ORIGIN = 0x20000000, LENGTH = 16K
}
PROVIDE(_BLOCKSIZE = 2048);
INCLUDE stm32f01234.ld


А в stm32f01234.ld пишу:
...
  .myvars :
  {
    . = ALIGN(_BLOCKSIZE);
    __varsstart = ABSOLUTE(.);
    KEEP(*(.myvars));
  } > rom


Однако, если я пытаюсь у себя в исходниках обратиться к этой переменной:
extern const uint32_t _BLOCKSIZE;

то вместо ожидаемого 2048 получаю какое-то непонятное 2953142315.

Вопрос: как мне получить значение переменной _BLOCKSIZE в своем сишном файле?

Пытаюсь вот так сделать:
static const uint32_t *blocksize = (uint32_t*)&_BLOCKSIZE;

И все равно получаю 2953142315!

UPD. Разобрался. Надо было вот так:
static const uint32_t blocksize = (uint32_t)&_BLOCKSIZE;

Сложная штука — эти линкер-скрипты. Я до сих пор внутрь них как в магию какую-то смотрю!
eddy_em: (Default)
Т.к., похоже, домашнюю сеть у нас в поселке не скоро починят (а, возможно, никогда), а протянуть с работы домой оптоволокно напрямую я не имею возможности, стал искать, как же удаленно заходить на рабочий компьютер. Пусть даже не по ssh, а как в VNC. Только для VNC нужен прямой доступ к компьютеру извне (а так любой дурак по ssh зайдет). Следовательно, нужно нечто, имеющее сторонний сервер (хоть очень не хотелось бы третьим лицам контакты доверять!).
Поставил teamviewer — не работает, зараза (нужно как-то регистрироваться, а в интерфейсе этого пункта нет).
Rdesktop на работе поставить не могу: он требует polkit, а тот — elogind (боюсь систему поломать).

Неужто никаких способов нет, кроме как арендовать сервак и делать ssh-шлюз?
eddy_em: (Default)
Полез сейчас на али цены посмотреть, а там… В среднем уже по 600-700 рублей за штучку просят! Вообще охамели. И это - гарантированно БУшные ведь!..
А в наших задачах автоматизации самый классный вариант — как раз F072. Изредка подходят F042 (если хватает тех урезанных ресурсов, что у них на борту).
В текущей моей разработке используются и CAN, и USB, и много еще чего (три таймера в режиме входа энкодера, четыре - в режиме выхода ШИМ, АЦП и т.п.).
Основная проблема одновременного независимого управления тремя шаговиками — достаточное количество "расширенных" таймеров на борту МК. Ведь для каждого ШД нужен один таймер в режиме ШИМ (генерировать тактовые импульсы) и один — в режиме энкодера (снимать данные с квадратурного энкодера — холловского или оптического — на валу двигателя).
Из всех используемых мною МК только STM32F072CxT6 для этой задачи годятся. Года полтора назад я для себя брал их на али примерно по баксу за штучку (один раз взял десяток по 90¢, но это было только один раз). Сейчас, понятное дело, для себя я их, подорожавших почти на порядок (!!!), брать, естественно не буду. Но и на работу заказывать как-то жаба жмет по таким ценам. Я уже жаловался недавно на то, что вместо новых STM32F303 прислали десяток БУшных (да еще и глюкавых).
Если заказывать официально, то и цены вообще несусветные, и непонятно, когда будет доставка (от года и выше). Идиотизм какой-то.

Вот и думаю, что надо бы осваивать уже какие-нибудь другие МК, на которые надуманный "крЫзис" не повлиял так сильно.
Может, у гигадевайса или нувотона что-нибудь подобное есть? Естественно, нужно еще и чтобы была вменяемая документация + разработка полностью из-под линукса.
eddy_em: (Default)
Купил на али вот такой модуль. У меня уже был опыт работы с монохромным P10, думал, что здесь так же просто. А оказалось все не так. Распиновку обнаружил и появилась уйма вопросов: судя по данным из интернетов, дисплей делится на две половинки, а каждая из них — на 2⁴=16 блоков (в отличие от монохромных, где было одно целое и 4 блока). Не нашел даже схемы, в каком порядке загораются пиксели. Я уж молчу о временных диаграммах! В найденных даташитах есть лишь физические данные, ничего о подробном описании протокола и особенностей адресации нет.
В общем, меня как будто бы в гугле забанили: на запросы "P4 led module protocol" и "p4 led module pinout" вылезает всякий разнообразный абдуриновский бред. А я хочу при помощи DMA по таймеру дрыгать ногами, отправляя 6 битов данных за раз. Жаль, конечно, что так через одно место китайцы все сделали, лучше бы напаяли 100500 сдвиговых регистров, чтобы по SPI можно было за один присест отправить данные на весь экран целиком.
eddy_em: (Default)
Товарищи электронщики, ну подскажите готовый контроллер управления 2-4 шаговыми двигателями, чтобы просто взял, подключил по USB к компьютеру, и управляй себе. Ток движков до 3А. Микрошаг свыше 1/32 не нужен. Главное — невысокая цена (2..4тыр) и простой текстовый протокол с документацией. Вся эта навороченная дрянь по 50..70 баксов за штучку, да еще отдай 50 баксов за исходники SDK и документацию — нафиг!
Сегодня прикинул по себестоимости, если брать 500-рублевые готовые модули с тринамиковскими драйверами и на STM32F042 (которые уже в 6-7 раз подорожали) делать управление, то себестоимость с пластиковым корпусом выйдет в полторы-две тысячи рублей. А учитывая то, что у китайцев все готовые изделия в разы дешевле суммарной себестоимости компонент, из которых эти изделия сделаны (я поражался этой арифметике, но теперь уже привык), такая штука вообще должна 300-500 рублей стоить (если без драйверов)! Пусироботовские не хочу, потому что компьютер будет в нескольких дециметрах от железяки, зачем там CAN-шина?

Или что, опять колхозить? Я уже столько этих плат управления ШД наколхозил…
eddy_em: (Default)
Что-то не получается сходу найти на алиэкспрессе готовый регулируемый внешним сигналом источник постоянного напряжения 0..12В с током до 15А (в идеале - 36В, 15А, чтобы последовательно три элемента Пельтье соединить).
Народ что только не выдумывает, но, судя по тому, что пишут в интернетах, Пельтье быстро умирают от частых переключений, т.е. ни реле, ни ШИМ использовать нельзя. Кроме того, в отключенном состоянии они отлично проводят тепло → нужен именно источник стабильного напряжения. Но вот токи смущают: это ж какой LC-фильтрище нужен, чтобы обеспечить пульсации меньше 3..5% на токах в 15А?
eddy_em: (Default)
Чертов контроллер температур главного зеркала (на orange pi) почему-то иногда зависает. Вот, опять завис, а что-то асушник не торопится пойти и перезагрузить (хотя было прошено еще пару часов назад).
Что я только не делал: уже и добавил перезагрузку по крону 1 раз в неделю + 1 раз в час пинг шлюзов с перезагрузкой (если сеть отвалится). Но, похоже, тут какая-то аппаратная проблема... Возможно, какие-нибудь наводки по питанию проскакивают. Непонятно.
И вот подумал, что можно было бы туда watchdog добавить. USB на CH552G еще неизвестно, когда подниму, а паять туда STM32F072 — как-то жирно!
Но необязательно ведь USB: можно дергать ногой GPIO одноплатника!
Вот и подумалось: ведь наверняка есть какие-то готовые микросхемы со встроенным таймером, чтобы его периодически нужно было сбрасывать. Тогда можно было бы просто после включения одноплатника один раз минут в 5 подавать на определенную ногу короткий импульс, чтобы сбросить счетчик вотчдога. А если не сбросил, то минут через 7 вотчдог бы активировал релюшку и та размыкала бы NC контакт секунд на 10, а потом обратно бы замыкала.
Или нет такого и проще на МК собрать то же самое? Подозреваю, что на дискретных элементах выйдет дороже (это минимум 2 одновибратора: один с периодом 7 минут, второй — 10 секунд).
Но, может быть, есть какое-то значительно более простое решение?
eddy_em: (Default)
Пытаюсь работать с CH552G в qt-creator. Текст испещрен подчеркиваниями. В отличие от STM'ок, здесь регистры объявляются посредством конструкции __sfr at(xx) name или __sbit at (xx) name.
А вот clang-tidy, который проверяет текст, этого не понимает!
Возможно ли как-то его настроить? Или единственное решение — отключить?
Пока что записал в конфиг такое:
#define __sfr volatile int
#define __sbit volatile int
#define __at(x)
eddy_em: (Default)
Сижу над "движком" на libonion с веб-авторизацией и вебсокетом для передачи данных. Кстати, недавно столкнулся с проблемой: больше одного вебсокета открыть было невозможно. Я и автору libonion писал (он, кстати, сказал, что вебсокеты в его библиотеке сырые и их лучше не пользовать — приплыли, что называется). Но проблема решилась по-другому: оказывается, в репах генты libonion как-то криво собирается, из-за чего и не работает. А с гита все завелось нормально. Разве что автор зачем-то захардкодил максимум 8 подключений одновременно — надо будет хотя бы на 1024 изменить…

Ну так вот, собственно в чем вопрос: я при необходимости авторизации генерирую жабоскриптом простую формочку:
<div id="shadow" class="shadow" style="display: block;">
<div>Login:</div><div><input type="text" id="login" name="username"></div>
<div>Password:</div><div><input type="password" id="passwd" name="password"></div>
<button onclick="auth.send();">OK</button></div>

На разных сайтах смотрел — вроде бы, ничего особенного.
Но почему-то везде автозаполнение форм работает, а у меня — нет!

Что надо сделать с этой формой, чтобы автозаполнение работало?

UPD: всем спасибо, расходимся. Сам нашел. Надо было все это воткнуть внутрь тега <form> с атрибутом "autocomplete=on". А я надеялся, что браузер как-то по именам <input> ориентируется…
eddy_em: (Default)
Накрылся один пусироботовский контроллер: его "не видно" по CAN-шине и не горит светодиод готовности при включении. Решили вскрыть и посмотреть, что там. Еле оторвали дно, а вот выдрать печатную плату не можем: драйвер приклеен к крышке-радиатору какой-то НËХ, аналогичная была на дне:

Похоже на силиконовый теплопроводящий клей. Однако, этанол его никак не берет, при нагреве градусов до трехста тоже ничего не происходит.

Чем это снять? Ацетон пробовать не рискую: мало ли, вдруг корпуса растворятся (кстати, китайцы, козлы, сошлифовали маркировку микросхем на плате!).
Update )
eddy_em: (Default)
Сейчас коллега дал ссылку на метеостанцию, которую планирует для БТА приобрести: Метеоблок МПВ 702.1643. Но вот непонятно, что там с грозозащитой, а еще меня напрягает, что протокол modbus RTU.

Может у кого есть на примете нормальные метеостанции, которые имеют в комплекте блок грозозащиты (чтобы не выгорел компьютер, если в метеовышку молния шарахнет, как было несколько лет назад), а также передает данные по нормальному протоколу, чтобы мне не пришлось городить горбатого с этим идиотским модбасом! В идеале бы вообще по ethernet ее включить, и получать, читая из сокета (хоть своим демоном, хоть баш-скриптом с curl или netcat), метеоданные.
eddy_em: (Default)
В связи с тем, что libwebsockets настолько ожирел, что уже как emacs стал больше походить на операционную систему, возник вопрос: есть ли вменяемая легковесная сишная библиотека для работы с SSL-вебсокетами? SSL — обязательное требование, т.к. это будет частью систем управления спектрографом и будущими телескопами-роботами.
Самым лучшим вариантом было бы наличие ебилда под генту. Либо же код должен быть не очень раздутым, чтобы я сам мог в случае чего вносить мелкие коррективы, если оно перестанет собираться.
Нашел на гитхабе libwebsock. Но останавливает то, что последний коммит был сделан 6 лет назад (а за это время протокол менялся), да еще и с сообщением "NOT-STABLE: Lots of debugging information, and fixes for threading."
Еще есть wsServer, но он без SSL. Извращаться же с авторизацией по https, а работой по http мне не хочется. Просто по http работать нельзя, т.к., насколько я знаю, не существует механизма авторизации по http, устойчивого к MITM.

April 2025

S M T W T F S
  1 23 45
67 89101112
13141516171819
20212223242526
27282930   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 21st, 2025 06:27 pm
Powered by Dreamwidth Studios