LINUX.ORG.RU

Сообщения Vit

 

rust для embedded - почти готов

https://github.com/rust-lang-nursery/embedded-wg/issues

Не так давно задавался вопросом, готов ли раст к программированию микроконтроллеров. Прошло всего 2 месяца, но изменилось очень много.

- Сделали embedded workgroup, и поставили четкую цель закрыть все косяки к выпуску rust 2018 edition.
- В трекере EW запротоколировали все хвосты
- Начали размечать книжку по embedded rust.
- В RTFM запланировали к лету добавить виртуальные таски, эвенты и прочий сахар, чтобы было не хуже классических RTOS. RTFM вообще интересная концепция, для простеньких систем подходящая идеально (когда добавят что запланировали)
- Из кучи хвостов, из-за которых эмбеды не компилировались на stable, закрыли все кроме одного (он в процессе).
- Я не понял, в каком состоянии генераторы, но макросы await! есть, и вроде все это должно нормально приземлиться в stable к edition 2018.

В общем, теперь есть конкретное место, где можно наблюдать прогресс, и сам прогресс очень радует.

Также стоит отметить, что нужен не только язык, но и библиотеки. Из того что пригорает у меня лично

- заметный пробел по гуям
- нема клавиатурной абстракции для фильтрации дребезга и приворачивания енкодеров вроде EC11 (по крайней мере мне так показалось)

 ,

Vit
()

Посоветуйте графических библиотек для embedded

Сейчас в расте туго с графическими библиотеками для микроконтроллеров, и я пытаюсь систематизировать, что надо написать. Подскажите пожалуйста, что есть в природе, что можно было бы взять за основу. В первую очередь, под мелкие дисплеи типа OLED 128*64 spi/i2c. Интересуют эти направления:

1. Что-то низкоуровневое, типа u8g2 (рисование текстов и базовых примитивов).
2. Рисование менюшек
3. Рисование графиков (особо не надо, но посмотрел бы что-то простенькое)

Если что-то забыл - добавьте по вкусу, что еще надо для типичных микроконтроллерных применений.

 ,

Vit
()

Посоветуйте на чем делать вебсервер для esp8266, чтобы потом легко прошивался

Возможно дурацкий вопрос... Мне хочется сделать для esp8266 вебсервер, который бы легко заливался из командной строки (чтобы потом простые юзеры осилили). Хотя все кажется простым, на практике всплывает следующее:

- надо прошить «операционку» (если есть)
- надо прошить сам код (либо полный образ, либо аплет)
- надо залить файлы вебсервера (html/js)

Как ни странно, файловую систему почему-то везде заливают отдельно (либо я не вкурил как ее вмержить в общий образ).

Пока из самого простого нашел Mongoose OS. Там есть утилита «mos» под все операционки, которая умеет делать все операции. Какие еще варианты? Главный критерий - чтобы потом юзеру было не сложно запрограммировать.

 

Vit
()

Проверьте схемы и разводку самоделок пожалуйста

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

1. Регуль для бормашинки (со стабилизацией оборотов) - https://easyeda.com/speed/AC_speed_control_for_grinder-55eba57594ea46788b39b1...

2. Компактный девайс для пайки волной (на инфракрасном нагревателе) - https://easyeda.com/reflow/Mini-reflow-soldering-heater

 ,

Vit
()

Чем смотреть дебажный выхлоп с кристалла в линупсе?

Хочется просто смотреть результаты printf() на компе, без навернутой IDE, отладки и т.п. Родная приблуда только под венду, опенсорсная байда для китайского St-Link не умеет SWO (только прошивает).

Посоветуйте, что оптимальнее купить + поставить, чтобы заработало. Только без доработки плат, как в разных статьях пишут. По железу пока нарыл такие штуки:

- Альтернативный китайский программатор - больше сигналов на разъеме, но не знаю, хватит или нет.
- Точная (вроде) копия оригинального ST-Link
- J-Link - вроде закос под Onboard J-Link, по идее поддерживает RTT (хотя он кажется медленнее SWO).
- J-Link v8 - что-то еще, фик знает какого качества

Остальное, где надо проводочки допаивать, я пропустил. С софтом вообще не разбирался. Посоветуйте, что из недорогого есть смысл взять и какой ставить софт. Нужно для хоббийных применений - я не сижу круглый день за программированием контроллеров, зарабатывая этим на жизнь, и подключаться 20-метровыми шлейфами и эзернетом тоже не надо.

 

Vit
()

Посоветуйте IDE + билиотеки под STM32 на C/C++

Я в курсе про CubeMX, но это только драйверы, а у проекта чуть больше задач:

- пакетный менеджер для библиотек (чтобы не копировать ручками)
- библиотеки uart, LCD (хз, как выбрать качественные и поддерживаемые)
- какое-то совсем примитивное подобие async/await и эвентов, можно через «псевдо-rtos». Грубо говоря, чтобы проверка состояния кнопки с контролем дребезга выглядела как линейный код, а не FSM.
- IDE (?).

С виду platform.io - «прям то што хотел». Но когда начал копать - запутался в библиотеках и погиб. Там протухшая свалка какая-то. Искать актуальные версии терпения не хватило, пошел плакаться сюда :)

Напишите кто пилит под stm32, как нынче можно организовать разработку модного молодежного проекта. Он rust пришлось временно отказаться, но хочется хотя бы на плюсах или си сделать так чтобы не стыдно было.

Надо чтобы любой желающий в полтора пинка мог поставить что надо и включиться в разработку.

 

Vit
()

rust вообще готов для embedded?

http://blog.japaric.io/embedded-rust-in-2018/

Кто-нибудь может по-простому объяснить, стоит ли развлекаться с переписыванием мелкого проекта на rust или нет? Все проекты - регуляторы для моторчиков на stm32f103c8t6. В принципе, вся память выделяется заранее, поэтому обычные плюсы тоже сойдут.

Rust хотелось попробовать потому что без приключений жить скучно, и потому что там есть пакетный менеджер. Но в принципе под плюсы пакетопроблемы решаются через platform.io. В rust смутило, что похоже надо будет ставить nightly builds. КМК это остановит желающих слать патчи. Есть подозрения, что жизнь может стать продвинутой, но весьма неудобной :).

Кто-нибудь уже делал опенсорсную эмбедщину на расте? Пора на раст валить или не выделываться?

 , ,

Vit
()

Кажется в хроме канвас доломали

https://jsfiddle.net/uyczfLdk/21/

При нажатии на resize лиса работает, а хром и савари отжирают памяти сколько могут и потом пендык.

В ресайзилке точно зацикливаться нечему (я с тем кодом слегка знаком, гы). Похоже что-то с записью в канвасы размером меньше 6х6.

 

Vit
()

Кто хочет покодить под ESP8266 на lua/js?

https://easyeda.com/speed

Нужно запрограммировать модуль конфигуривания регуляторов скорости через WiFi. Это Wemos D1 mini.

Как оно должно работать:

- Читается конфигурация через serial port, в формате JSON Form.
- Наружу выставляется точка доступа с вебсервером.
- Юзер заходит с любого девайса и видит форму, которая сгенерирована на основе конфигурации.
- После заполнения и отправки формы девайс генерит пачку команд в serial port.

Дополнительные нюансы:

- Нужно привернуть captive portal для редиректа на нужную страницу
- Нужно отделить содержимое веб-страниц, чтобы можно было отдельно разрабатывать html/js и потом включить файлы в прошивку
- Команды имеют формат modbus («В ячейку A записать значение B»)
- Название точки доступа и пароль надо хранить отдельно, чтобы их можно было подпатчить без пересборки прошивки (я потом сделаю веб-страничку для кастомизации)

Особых сложностей вроде не предвидится:

- Плата Wemos D1 Mini полностью независима от остальных частей проекта и шьется по USB
- Все модули есть либо в виде встроенных бибилиотек (access point, web server, dns), либо в виде отдельных проектов (captive portal)
- С вебнёй готов помочь (чтобы формочки красиво показывались)

По деньгам не знаю сколько, договоримся. Т.к. опенсорсы и все такое, то принципиально чтобы вам было интересно и было желание сделать хороший код.

Кто хочет поучаствовать - пишите на vitaly@rcdesign.ru

 , ,

Vit
()

Посоветуйте формат для описания форм

Нужно сделать приблуду на ESP8266 (плата Wemos D1 mini), которая бы по JSON-конфигу генерился формочку, и при отправке потом генерила пачку команд в UART.

Вопрос чисто архитектурный - откуда можно потырить готовый формат, который позволял бы описывать и валидировать формы? Надо что-то такое:

- Поля для ввода чисел, с ограничением по диапазону
- Чекбоксы
- Селектбоксы

Я в курсе про JSON Schema, но его явно мало чтобы описывать тексты к полям и как потом сгенерить команду (приклеивать к описанию переменных метаданные). Лисапедить можно, но не хочется. Может есть что-то готовое?

 

Vit
()

google's woff2 -> node.js webassembly

https://github.com/fontello/wawoff2

Иногда так складывается, что код написан на сишечке, и переписывать его на жыэс не рационально. Было интересно разобраться, как лепить в ноде подобие бинарных биндингов без необходимости пересборки. То есть, через webassembly.

Ну что могу сказать... тема сыровата, но в принципе рабочая. Из нюансов - во враперах emcc асинхронная инициализация, поэтому яваскриптовый интерфейс надо делать из асинхронных функций.

Можно ли сделать синхронный интерфейс - не знаю. Теоретически можно, если переписать враперы ручками, и если в ноде не стоит ограничений на размер файлов webassembly для синхронной загрузки (в браузерах подобный лимит точно есть). Пока ни у кого руки не дошли разобраться.

Как-то так.

 

Vit
()

Каким «дисплеем» можно прикинуться по USB, без драйверов?

Есть девайс, регулятор скорости для мотора (на самом деле - несколько разных девайсов под разные типы моторов). Нужно как-то реализовать возможность настройки (значения крайних положений ручки скорости и т.п.). Т.к. операция одноразовая, то городить кастомные клавиатуры и т.п. очень не хочется.

Надо чтобы работало на разнообразных операционках (девайсах?) без гимора для пользователя (с установкой драйверов и т.п.).

Пока пришли в голову такие варианты:

- Использовать внешний комп, прикинуться по USB COM-портом и присоединяться эмулятором терминала.
- Прицепить по UART ESP8266 (nodemcu mini за 3 бакса) и сделать на нем веб-сервер c конфигуратором (по окончании настройки отцепить девайс, чтобы не светил вафлей)
- Прикинуться по USB сетевой картой, которая видит сетку с вебсервером, как yota-вские модемы.

Какие еще возможны современные хипстерские варианты?

 , ,

Vit
()

Кто пробовал китайские аналоги STM32?

https://lcsc.com/product-detail/GigaDevice_GD32F103C8T6_C77994.html

Ссылка только для примера, и не претендует на самую низкую цену. Но в среднем по больнице гигадевайсы в полтора с лишним раза дешевле.

Я из внушающего доверия пока нашел только https://olimex.wordpress.com/2015/12/21/gd32f103rbt6-the-stm32-pin-to-pin-com...

Вопрос в студию, почему все еще не свалили с ST на гигадевайсы? Цена очень вкусная. Даже в «дорогом» LCSC всего полтора бакса (на али по баксу).

 gd32,

Vit
()

Есть ли альтернативы Nextion?

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

Для этого прекрасно подходят дисплеи Nextion, но там софт не опенсорсный и некоторые заморочки со шрифтами.

Есть ли у Nextion альтернативы? Опенсорсные. Либо хотя бы с разработкой из браузера, как в easyeda.

 , nextion

Vit
()

Посоветуйте как прокинуть периферию между микроконтроллерами.

Нужно сделать оптоизоляцию на входах управления в регуляторе оборотов. Если развязывать высоковольстную часть в лоб - будет до фига оптронов и усилителей.

Вроде получается намного проще поставить 2 микроконтроллера с отдельными питаниями, и соединить цифровым каналом (тогда надо всего 2 опторазвязки). Один контроллер на силовую часть, и второй на ручки-кнопочки. Звучит странно, но проще и по деталям и по размерам.

А теперь вопрос - есть ли для C и/или Rust решения, чтобы прозрачно прокидывать пины, АЦП и UART в подобных связках? То есть, чтобы дергать в коде регулятора HAL и не заморачиваться, что данные на самом деле берутся из буфера, куда они прилетели от другого микроконтроллера.

Можно конечно на коленке это все накостылять, но что-то мне подсказывает, что подобное должны были давно сделать и как следует отладить.

 , ,

Vit
()

Железячники есть? Помогите нарисовать схему регулятора DC мотора 220v

Я сильно отстал от современной элементной базы, и не силен в высоковольтных цепях. Кто-нибудь может нарисовать схему регулятора оборотов для щеточного двигателя с магнитами, от постоянного напряжения 220v (да, я не перепутал, мотор высоковольтный)?

Вот под такие хотелки:

- с контролем тока
- с измерением эдс самоиндукции для контроля оборотов (когда ключ закрыт)
- на микроконтроллере (можно не ставить специализированных микросхем, и половину функций реализовать программно)

Ну или скажите где какие-нибудь app notes на эту тему можно посмотреть.

 привод

Vit
()

Покритикуйте коробку для выключателя 220в к дельта-принтеру

https://www.thingiverse.com/thing:2671454

Попытался нарисовать симпатичный бокс для выключателя с гнездом 220 вольт. Посмотрите пожалуйста, что еще надо учесть.

Расчитывал что печать будет со сплошным заполнением, стенки сделал везде 3мм. Внизу крышка лежит на 1мм выступах, зазор 0.1мм с каждой стороны. Решил не извращаться с печатью без поддержек, т.к. без них нормального вида трудно добиться, да и выламывать не много.

Насчет зазоров и стенок не уверен - не печатал ни разу. Можно еще сделать трапецию на нижней крышке, чтобы поддержек не было, но не знаю стоит ли.

Из готовых моделей было только это страховидло https://www.thingiverse.com/thing:1000217, поэтому решил налисапедить свое.

 ,

Vit
()

А давно стали делать маркеры где надо сначала на нос жамкать?

Купил тут белый перманентный маркер какой-то хитрой системы. Его надо сначала носом нажать и подождать, чтобы нос прописался краской, а потом можно писать (соответственно, кто не знает - выходит на орбиту с криками что маркер не пишет).

Первый раз такое вижу. Впрочем я и маркером раз второй или третий в жизни пользуюсь :). Это у маркеров в порядке вещей что нос с клапаном на пружинке? Или это для каких-то особо ядреных чернил?

 ,

Vit
()

**berry вебка, по USB или все-таки по CSI?

Хочу привернуть камеру к 3d-принтеру.

У контроллеров типа Orange PI есть разъем CSI для втыкания камер. Зачем через него подключают камеры на странных шлейфах, если можно за 5 баксов купить китайскую вебку:

- с тем же (хреновым) разрешением
- со встроенной подсветкой
- с креплением
- на понятном USB-проводе, который не надо удлинять

Якобы CSI быстрее. На современных кортексах (H3, H5, S905) разницу хотя бы под микроскопом увидеть можно? Речь о примитивных вебках 640x480, а не гигапикселях для фотографирования земли из космоса.

 ,

Vit
()

Как быстро читать и подсвечивать слова в google document?

https://github.com/d-kirsanov/fresheye - хочется улучшить скорость забавной штуки, которая анализирует повторы произношений в тексте.

Как улучшить скорость молотилки букв мне примерно понятно. Но не очень понятно как оптимальнее всего сканировать и токенизировать документ.

токен =

- слово (из букв)
- инфа о предыдущем разделителе, если был
- source mapping (element + start/end), чтобы потом результаты подсвечивать.

Т.е. из гуглодокумента надо сделать плоский список слов-токенов, забив на разметку.

Кто-нибудь изучал производительность Google Apps Script? Как быстрее всего вытягивать инфу из документа?

 , google script

Vit
()

RSS подписка на новые темы