А подскажите всякой жести

Узнал, что уже скоро мне придется прочитать первокурсникам магистратуры аж 20 (!) лекций про «Аппаратные платформы интернета вещей и киберфизических систем» (а потом нарезать это на 40 экзаменационных билетов, в каждом из которых по два вопроса, плюс придумать несколько вопросов «с подъебкой») — в общем, задача довольно нетривиальная (если учесть, что курс по программированию микроконтроллеров «с нуля» состоит из 8-10 лекций). Просто так лить воду не хочется, поэтому надо добавить в курс невероятной жести. Пока обдумываю следующие сюжеты:

— ЦОС в диапазоне «а вот у нас красивый Матлаб и мы получим коэффициенты для фильтра Чебышева 6 порядка» до «а это убогий Cortex-M3 и мы на нем будем делать этот фильтр в целочисленной арифметике!»;
— сети Петри/communicating sequential processes/что-то еще в этом духе, зайдет к разговору про безопасность, которая safety, и всякие там IEC 61508;
— фильтр Калмана и многочастичный фильтр — «как правильно использовать 6D-акселерометр»;
— Distributed Coordination Function в IEEE 802.11 и 802.15.4 — в первом случае это уже классика, во втором — есть мелкие подлые изменения, но очень показательные в плане отличия IoT от банальщины вроде этих ваших вайфаев;

Чего бы еще найти в категории «экзотика, но полезно»?

PS По заслуживающим доверия сведениям, магистры пришли в ужас при виде выписанной на доске формулы, описывающей ПИД-регулятор.

PS/2 Да, тут есть, от чего охуеть!

Помощь Донбассу — рабочие места для коллег-электронщиков

Олег Артамонов («Генсек Партии прямой демократии и просто неприятный человек») и Андрей «Мурз» Морозов собирают комплекты оборудования для ремонта электроники, то есть дронов и раций. Нужно практически все — от оборудования до расходников (попробуйте просто представить, как сложно найти в ЛНР или ДНР качественный припой!).

Подробности — в блоге Олега:

https://olegart.ru/?p=105

Как размножаются фрезеры, часть следующая

Собрал сегодня привод одной из осей будущего SMD-расстановщика, вроде ездит, и может ездить довольно шустро. Следующий этап — и похоже, только где-то ближе к майским — «голова».

Пока ко мне едет «доска для смузи» — точнее, Smoothieboard — погонял двигатели от того же фрезера (обычный китайский 3018 с GRBL), на котором пилил детальки.

Будни станкостроения

Когда начинаешь свой радиогубительский путь, и осваиваешь пайку DIP-микросхем 40-ваттным советским паяльником, то кажется, что это все пиздец мелко. Разъемы с шагом 0,8 мм кажутся вообще невозможными для монтажа (но с третьего раза, через кровь и слезы, все-таки осиливаешь). Потом плавненько переходишь с изготовления плат «лазерным утюгом» на заказ их в Резоните, на SMD-монтаж — сначала 0805 кажется страшноватым, а потом начинаешь ставить компоненты типоразмера 0603, микросхемы в TQFP с шагом сначала 0,8, а потом и 0,65 мм — ну и логичным образом доходишь до деталек с шагом выводов 0,4 мм — nRF52 те же. Примерно в этот же момент понимаешь, что руки от постоянного пьянства дрожат, да и начинаешь какие-то слегка серийные устройства делать — и естественным образом хочется установщик для SMD.

В общем, решился наконец-таки собрать станочек для OpenPnP — вот такой:

https://hackaday.io/project/9319-diy-pick-and-place

Как совершенно верно говорил [info]mbr, фрезеры именно так и размножаются (да, механика расстановщика очень похожа на ЧПУ-фрезер).

DipTrace начал за Украинушку топить

Напомню, что пиратство в военное время называется каперством, а лицензионный ключ для DipTrace 4 версии на 4 слоя и 1000 выводов — вот:

Имя пользователя: Для некоммерческого использования
Регистрационный код: H2W2-6K9A-PS2F-H3L5-SSW1

Денег никому никаких платить, естественно, не нужно.

И еще про фрезер

Вчера много чего насоветовали, но в основном все сводилось к универсальному для отечественного «хобби-сегмента» совету «поставь с торрентов пиратскую версию очередной мега-программы за 100500 баксов». Советчики, правда, обычно забывают, что мега-программа за 100500 баксов требует не только денег, но и дохера места на диске (это еще ладно), и некоторой квалификации пользователя, которому еще надо «доучиваться». Не сказал бы, что это дохера прикольно и нужно для вот таких разовых работ — так что для изготовления вот такого рода «двух-с-половиной-мерных» (буржуины так и пишут, 2.5D) нашел очень простой инструмент — MakerCAM. Не скажу, чтобы он был вот прямо совсем неизвестен в рунете — есть очень краткое описание, растиражированное с пикабу по куче помоек, но там не обратили внимания на пару важных вопросов.

Для начала — где взять? Сайт makercam.com, где лежала программка, давно сдох, более того, программка написана на Flash, который петушары-программисты объявили «устаревшим» и выпилили его поддержку отовсюду. К счастью, есть еще archive.org, где можно взять файл swf:

https://web.archive.org/web/20210128233629/https://www.makercam.com/makercam.swf

Для его запуска можно воспользоваться Flash Player Projector — официальным инструментом для «отладки» флешовых мультиков и прочей такой фигни.

Между прочим, исходники MakerCAM лежат на гитхабе — так что если кто очень хочет — можно на базе этого что-то более нормальное и «современное» запилить.

Итак, первым делом готовим svg-файл с «чертежом» — точнее, контурами тех частей детали, что мы будем как-то обрабатывать. Для примера возьмем что-то наподобие вот этой детали — заметно сложнее вчерашней, хочу сказать!

Рисуем что-то вроде эскиза в svg; особые эстеты могут использовать полноценные CAD, но тут достаточно буквально чего угодно. Я пока не смотрел на размеры, возможно, придется их как-то подгонять, так что просто для демонстрации сделаем так (я вообще ручками этот SVG нарисовал):

Кстати, открывая svg в MakerCAM, обязательно проверьте, сколько у вас там точек на дюйм получилось, иначе можно здорово облажаться! Да, и не забудьте сразу переключиться в метрическую систему.

В русскоязычном «руководстве» совершенно не описана операция «выборки» внутри контура — но делается она просто, выделяем границы, жмем в меню CAM-Pocket operation и вводим параметры. Четыре отверстия по бокам просто просверлим, а для центральных сделаем еще две выборки. После нажатия на calculate all наша деталь будет выглядеть примерно так (галочку view cuts ставить не надо):

Наконец, надо сделать еще одну вещь, о котором в русскоязычном руководстве совсем забыли — выделяем самую внешнюю траекторию (которая отделит нашу деталь от фанерки) и выбираем пункт меню CAM-Add tabs to selected. Он позволяет при фрезеровке внешнего контура оставить связки, соединяющие вырезаемую деталь с заготовкой. Важно! В программе есть небольшой баг, из-за которого последний пункт, высоту этой связки, надо указывать не в сантиметрах, а в миллиметрах — несмотря на подсказку слева.

После всего этого экспортируем получившееся безобразие в G-код и смотрим любым просмотрщиком (например, я взял для этого Candle):

Поеду в Леруа за фанерой.

Технику безопасности при работе на фрезерном станке знаю, как свои три пальца!

Вот, допустим, есть у меня китайская игрушечная ЧПУшка типа 3018 — примерно такая:

И, допустим, хочу я сделать на ней вот такую примерно детальку из фанеры:

Я, конечно, могу написать G-код и ручками, сложной геометрии там нет, но вообще хотелось бы запихнуть модель из CAD-а в специально обученную программку и получить требуемое. Вопрос: как такая специально обученная программка называется и чем в среде любителей китайского говна с ЧПУ положено пользоваться?

Как же я люблю алиэкспресс

Вот, например, продают там некий SMD-расстановщик — конструкция уровня «продвинутый любитель», но нечто подобное многим интересно:

https://aliexpress.ru/item/1005002328161355.html

И все было бы, может быть, неплохо, если бы не одно «но» — все картиночки в описании товара утащены с краудфандингового сайта, на котором уже несколько лет доверчивую публику кормят завтраками:

https://www.crowdsupply.com/citrus-cnc/simplepnp

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

Дети, изучайте ардуину

С «умной теплицей» на ардуине вы можете сделать очень многое:

— получить дополнительные баллы к ЕГЭ и поступить в престижный ВУЗ на востребованную околоайтишную специальность;
— поучаствовать во всяких хакатонах и конкурсах для студентов;
— защитить в ВУЗе на отличную оценку «проект», курсовую и дипломную работы;
— и все это — с одной и той же поделкой из кружка «Юный ардуинщик!»

Introduction to Embedded Systems — A Cyber-Physical Systems Approach

Прекрасная, просто замечательная книжка.

Во введении и первой главе наивного читателя заманивают рассказами про «интернет вещей», «киберфизические системы», «индустрию 4.0» и прочий набор стандартных баззвордов. Читатель уже ждет, когда же ему расскажут про то, как на Ардуине и Распберри сделать очередной умный дом — но тут же в главе 2 ему выкатывают второй закон Ньютона, на пальцах объясняют кусочки термеха, пишут всякие дифференциальные уравнения, а немногих выживших добивают преобразованием Лапласа. Дальше, конечно, становится немного полегче, всякая там дискретная математика и конечные автоматы особого полета фантазии не требуют, а местами даже предлагают написать немного кода на Си. Перевернуть свое представление о встраиваемых системах можно по ссылке:

https://ptolemy.berkeley.edu/books/leeseshia/

А если серьезно, без смехуечков — это прекрасный пример, чему надо учить магистров «околокомпьютерных» специальностей — не «рукоделию» (это бакалавр должен уметь собрать из двух ардуин и распберри подобие работающей системы), а тому, как обосновать, что эти две ардуины с засунутой туда FreeRTOS работают правильно.

Это пиздец

Вот мне интересно, лет через этак 7-10, когда этот Ярослав сможет принять участие в Worldskills, к которым он так серьезно готовится — будет ли этот ворлдскиллз все еще котироваться?

«Подготовка к международным соревнованиям», пиздец просто.

Теоретикам и практикам контроля версий

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

— схемотехника и печатная плата нескольких похожих устройств, библиотека компонентов для Eagle или DipTrace;
— прошивки — несколько, своя для каждого устройства (скорее всего, на базе Riot OS или Contiki, и возможно, с доработками самой ОС — то есть с ней обычно притаскивают целиком ее репозиторий);
— приложение для Android или какой-то там Progressive Web App;
— вебовский бекенд (скорее всего, на Django).

«Команда» — ну, по человеку (или по «полчеловека») на каждую из частей, проект новый, каждый взаимодействует с «соседями» (схемотехник-эмбеддер-фронтендер-бекендер). Вносят ли доработки в соседние части — возможно теоретически, но вряд ли.

Больше всего меня тут напрягает, что очень много вопросов будет «на стыке» частей (допустим, прошивка версии такой-то перестала работать с устройством версии такой-то, кто виноват?), в принципе, сюда просится монорепозиторий и общий для всех трекер задач — но как я представлю монорепу с вот этим всем, у меня глаз начинает дергаться. Общий трекер — возможно, но как оно будет жить с несколькими репозиториями для кода?

А как бы вы организовали контроль версий и трекинг задач в таком проекте? Интересуют все аспекты — от используемых инструментов до «оргмер».

Ардуинщики встречаются с реальным миром

Прекрасный тред в твиттере — у американского ардуинщика полыхнул пукан, когда Fedex задал ему пару невинных вопросов по растаможке партии плат из Китая:

https://mobile.twitter.com/femtoduino/status/1379714280363159560

И эти люди еще что-то говорят о позициях России в рейтинге Doing Business или как его там! Кажется, [info]sanches выдал как-то прекрасную формулировку — «У нас самая свободная страна из цивилизованных и самая цивилизованная — из свободных». Да, у нас при желании можно протащить через таможню хоть черта лысого, да и система сертификации продукции позволяет выделывать смешные выкрутасы — но при этом в целом электрочайники пользователя не убивают, а к поставившим «супер-мощную дальнобойную ви-фи точку» обычно все же приходит Роскомнадзор.

В общем, любопытно посмотреть на страдания юных радиогубителей в странах с несколько более жесткой регуляцией и сравнить с тем, что волнует наших — «а можно ли на партии в 2000 штук Bluetooth-модулей с алиэкспресса написать Gift и поставить цену 20 баксов?»

Хорошо встретил день бекапа

Вообще-то его положено отмечать 31 марта, но так уж получилось, что бекапилка у меня настроена на четверг — точнее, ночь с четверга на пятницу. Просыпаюсь утром и обнаруживаю, что домашний роутер — что-то из старых Zyxel Keenetic, кажется, Keenetic 4G или как-то так, благополучно сдох. Он уже как-то странно себя вел при обмене большим количеством данных внутри домашней сети — но вот выключился полностью впервые.

В общем, не буду писать много, выложу ровно одну картинку:

Это конденсатор, что стоял на линии питания процессора в роутере, так распучило — что аж корпус слез на половину длины.

Нашел в своей околоэлектронной помойке что-то отдаленно подходящее по номиналу и напряжению, перепаял, заработало. А если бы не бекапился ночью с четверга на пятницу — то роутер мог бы еще долго «прожить» в полуубитом виде.

Чисто по приколу померил емкость и ESR трупика — от 470 мкФ осталось 18, ESR составляет впечатляющие 600 Ом. Удивительно даже, что до недавнего времени оно как-то работало.

PS Да, что касается странного выбора — дело в том, что раньше этот Zyxel работал «раздавалкой интернета» на даче, через 4G-модем, и перестал справляться с этой почетной обязанностью с началом ковидной самоизоляции, именно тогда захотелось большего.

Вот это я понимаю — хорошее рабочее место!

Кто угадает, что за девайс и для чего я делаю?

Трафаретный принтер

Чтобы не потерять в недрах ютуба, интересная конструкция:

Кстати, впервые заказал трафарет в «Резоните», стальной (а других они там не делают), размер A4, что-то порядка 700 апертур. Нарезали на следующий же день, привезли DHL-ом, все удовольствие обошлось чуть меньше 5000 рублей. Для сравнения — пластиковый трафарет в OSH Stencils будет стоить примерно вдвое дешевле — но и ждать его две-три недели, стальной там же обойдется дороже, ну и доставку не забываем.

Главное — вовремя остановиться

Даже кратенькое описание очередного маленького электронного проекта похоже на перечисление всех известных технологий в духе «а еще я про это слышал!», а печатная плата приближается к лимиту «некоммерческой» версии DipTrace. Интересно, это так намекают, что пора на коммерческую версию переходить?