Как автоматизировать тестирование электроники на производстве на Python на примере тестирования и прошивки отладочной платы Nucleo-F401.
Разбор использования функций HardPy - открытого фреймворка для создания тестовых станций для производства электроники на pytest.
Линуксоид и электронщик
Рисуем рабочий процессор в Paint и запускаем на нём ОС | Ритуал по призыву демона Тьюринга
Однажды в тёмном-тёмном городе, в тёмном-тёмном подвале, очередной обезумевший контентмейкер за паяльной станцией подключал программатор к умному термосу.
Термос этот он нашёл на улице и хотел перепрошить его маленький и беззащитный Cortex-M0+.
Человек бредил. Раз в пару минут его глаза загорались и он издавал душераздирающий крик: «Если что-то существует, то на этом можно запустить Doom!».
Но действительно ли это так? И что вообще значит «запустить»?
Почему нельзя просто вывести изображение логотипа или распиновать VGA для вывода изображения на дисплей абсолютно любого устройства?
Сегодня мы узнаем, как может выглядеть самый примитивный девайс, обладающий свойствами компьютера и способный полноценно запустить любой алгоритм.
С этой целью мы обратимся к немного странным, но всё же незаслуженно забытым языкам программирования. Когнитивная сложность дальнейшего текста обещает быть минимальной, даже непосредственно ассемблерного программирования в статье не будет.
Ну а если вы всё ещё здесь — добро пожаловать под кат.
Тест самых выгодных батареек AA и AAA
Чтобы провести этот эксперимент, мне пришлось купить 400 батареек: я купил и протестировал по пять видов щелочных (alkaline) батареек AA и AAA в такой упаковке, при этом цена за штуку составила от 11 до 16 рублей. Оказалось, что батарейки с близкой ценой очень сильно отличаются.
Призыв писать компактное ПО, версия 2024 года (с примером кода)
Этот пост посвящён памяти Никлауса Вирта, первопроходца в сфере вычислительных наук, ушедшего от нас 1 января этого года. В 1995 году он написал важную статью A Plea for Lean Software, и в своём посте я постараюсь воспроизвести её почти тридцать лет спустя, с учётом современных кошмаров разработки ПО.
Очень короткая версия поста: современные способы разработки/сборки ПО смехотворны, они приводят к созданию пакетов на 350 МБ для рисования графиков, а простые продукты импортируют 1600 зависимостей неизвестного происхождения. Уровень безопасности ПО ужасен, ведь он зависит и от качества кода, и от его объёма. Многие из нас понимают, что ситуация нерациональна. К сожалению, многие программисты (и их руководство) никогда не работали как-то иначе. А остальным редко выделяют время, чтобы выполнять работу качественно.
В этом посте я сделаю краткий обзор ужасного уровня безопасности современного ПО, а затем порассуждаю о том, почему он настолько плох. Также я упомяну нормативные/юридические аспекты, которые могли бы снова сделать качество ПО приоритетным. Наконец, я расскажу о написанном мной полезном ПО , позволяющем доказать, что сегодня по-прежнему можно разрабатывать минималистичное и простое ПО, остающееся современным.
Надеюсь, этот пост станет моральной поддержкой для страдающих программистов и технологов, стремящихся улучшить ситуацию. Дело не только в вас, и мы не просто страдаем от ностальгии: ПО сегодня действительно очень странное.
Пульт от «Dendy» в любительских конструкциях
Часто радиолюбители сталкиваются с проблемой оформления выносного пульта управления устройством. Если число кнопок на нем велико, то для сокращения числа проводов в соединительном кабеле пульт оснащают шифратором команд нажатых кнопок, а устройство дешифратором. В этой ситуации может выручить старый джойстик, от некогда популярных игровых приставок «Dendy». Задача радиолюбителя сильно упрощается, так как джойстик имеет неплохой дизайн и оснащен готовым шифратором команд нажатия кнопок.
Однолинейные схемы на объектах
Довольно длительное время я занимался эксплуатацией электроустановок. В их числе были электроустановки объектов жилой и коммерческой недвижимости, которые находились в различном статусе: недавно построенные и введённые в эксплуатацию, реконструированные или ожидающие реконструкции. На каждом таком объекте существовали те или иные проблемы с однолинейными электрическими схемами. Они или вовсе отсутствовали или требовали актуализации. По причине того, что нормальная эксплуатация без подобной документации затруднительна, мне приходилось заниматься организацией сбора и документированием такой информации.
Ультразвуковая сварка
Множество технологических процессов, сопровождающих создание различных систем, связано, так или иначе, с соединением составляющих эти системы компонентов. При этом могут возникать ситуации, где преимуществом перед классическими методами создания соединений обладает ультразвук: сварка тоненького волоска проволоки и металлической детали, соединение друг с другом двух тончайших лепестков фольги, пластиковых деталей, элементов одежды и т. д. Решить все вышеперечисленные задачи даёт возможность ультразвуковая сварка, которая является высокотехнологичным способом соединения материалов между собой, и именно о ней мы и поговорим в этой статье.
Пишем приложение на Mi Band 7 с сервисной частью
Недавно я купил себе Mi band 7, по началу хотел купить 6-ую версию, пока не узнал, что на 7-ой обновилась операционная система и теперь она поддерживает установку приложений. Да, официально они об этом не заявили, но умельцы уже сделали множество приложений. Они ставят их как циферблаты, и это вполне обычные приложения. Но все эти приложения работают только локально на самом MiBand 7, не имея возможности взаимодействовать ни с телефоном, ни с интернетом. Я углубился в байткод приложения и документации по ZeppOS чтобы найти способ создавать приложения, взаимодействующие с интернетом, в этой статье я опишу свой путь. В итоге у меня получилось сделать запрос в интернет с часов и даже запустить мост для отладки приложений.
Rhasspy — опенсорсный и полностью офлайновый речевой тулкит. Распознавание русского языка. Никаких утечек в облако
Фото из сравнения микрофонных массивов для DIY-устройств типа самодельной умной колонки
Системы вроде Amazon Echo передают в облако для хранения ваши конфиденциальные разговоры (даже записанные случайно). В некоторых случаях записи прослушиваются живыми операторами. Это не просто потеря конфиденциальности. Это как добровольно впустить в свою квартиру «товарища майора», который стоит рядом 24 часа в сутки, слушает и внимательно записывает, притворяясь услужливым ассистентом.
Вместо покупки коммерческой системы у корпораций типа Google, Amazon или «Яндекс», вы можете собрать аналогичную опенсорсную систему на базе Raspberry Pi 2-3 B/B+, персонального компьютера или ноутбука.
Rhasspy — безопасный голосовой помощник, который работает автономно. Он ничего не передаёт на удалённые сервисы, при этом успешно справлятся с распознаванием речи и голосовых команд.
Система увлажнения воздуха для дома или квартиры
По многочисленным просьбам делюсь своим способом сделать недорогую стационарную высоконапорную систему увлажнения воздуха. Ниже будет описана конкретная система, работающая в моей квартире с 2016 года, с фотографиями и подробностями. Похожим образом по моей рекомендации было сделано ещё с десяток подобных систем разного масштаба.
Домашняя приточная вентиляция малыми средствами
Последнюю пару лет я живу с приточной вентиляцией в городской квартире — и очень рад этому факту.
В принципе, где-то в моменте её сооружения у меня проскальзывала мысль написать об этом, подкреплённая просьбами к фотке в фейсбуке, но в силу моей лени она быстро заглохла. Однако на днях при виде поста о приточке и дискуссии в комментах к нему — кажется, это моя судьба последней недели — она воскресла из пепла снова.
Коротко о главном:
• наружное расположение компонентов ради минимального уровня шума;
• минимум ручного труда в изготовлении и монтаже;
• общий ценник существенно ниже 50 тысяч рублей (ниже 30 тысяч — на момент изготовления два года назад).
И важное. Если вы — адепт систем рекуперации, долгих инженерных расчётов и полугода проектирования, эта статья не для вас. Я — адепт золотой середины между «я сделяль» и «я задолбался».
Что на самом деле происходит, когда пользователь вбивает в браузер адрес google.com
Эта статья является попыткой ответа на старый вопрос для собеседований: «Что же случается, когда вы печатаете в адресной строке google.com и нажимаете Enter?» Мы попробуем разобраться в этом максимально подробно, не пропуская ни одной детали.
Примечание: публикация основана на содержании репозитория What happens when...
Представленный контент изобилует большим количеством терминов, в переводе некоторых из них могут присутствовать различные неточности. Если вы обнаружите какую-то ошибку в нашем переводе — напишите личным сообщением, и мы всё исправим.
Мы перенесли перевод в репозиторий GitHub и отправили Pull Request автору материала — оставляйте свои правки к тексту, и вместе мы сможем значительно улучшить его.
Где скачать научную статью легко и доступно?
Некоторые издательства журналов предлагают доступ к научным статьям сразу после публикации, а некоторые через какое-то время.
Однако стоимость одной статьи от платных издателей может составлять 150 долларов, что не так уж и мало по сравнению с размером стипендии студента.
Здесь собраны совершенно бесплатные ресурсы, где вы можете найти интересующую Вас научную статью.
«Свет мой, зеркальце! Скажи…» – умное зеркало и другие проекты с прозрачными экранами
Жидкокристаллические экраны – это давно обыденная вещь. Они повсюду: от мобильного телефона и компьютера до самых разнообразных устройств. Новый взгляд на уже обычные вещи может дать неожиданный и интересный результат. Что может получиться, если немного разобрать обычный экран и использовать его по-другому? Давайте посмотрим.
Как спастись от «зайцев». Инструкция по борьбе с ультрафиолетом
Однажды в далекие школьные годы у меня появилась идея заняться авто-реставрацией, благо у отца был в наличии уже практически сгнивший (но с отличным мотором) АЗЛК Москвич-408. Первым делом конечно же было решено поменять пороги и укрепить раму металлическим швеллером. Самый быстрый способ — естественно сварка, благо у отца и самодельный аппарат на Ш-образных пластинах был. Электроды и я нашел и, в принципе, довольно сносно приварил куски металла. Довольный своей работой заснул, думая о том, что я буду приваривать с утра. А с утра проснулся и понял что "ослеп", а отец поздравил "с первым пойманным зайцем". Чтобы понять о чем разговор — проследуйте под cut.
Маленькие «малинки» в крупном дата-центре
В мае у нас появились новые серверы на базе Raspberry Pi 4. И ребята из Selectel Community (это такой неформальный телеграм-чат компании) часто спрашивали, как нам вообще удалось интегрировать их в систему автоматической сдачи. Спустя время мы окинули сделанное ретроспективным взором и готовы подробно ответить на этот вопрос.
Коммуникатор судного дня «Armachat» LoRa
Для этого проекта я, чтобы удобнее было выполнять паяльные работы, выбрал микроконтроллер SAMD21E18 в корпусе TQFP32 (того же размера, что и популярный контроллер ATmega328). Правда, к сожалению, этот микроконтроллер продаётся пустым. Для того чтобы прошить в него загрузчик, необходимо специальное устройство — Atmel-ICE. Прошивка загрузчика оказалась самой сложной частью проекта. А в остальном тому, кто решит воспроизвести мой проект, никаких специальных инструментов не понадобится. Всё, что нужно, собрано на плате коммуникатора. А на передней панели, что необязательно, можно разместить подсветку клавиатуры.
Сначала я назвал моё устройство «Armageddon communicator» (отсюда и его теперешнее название — «Armachat»), но я не думаю, что оно способно пережить какую-нибудь воображаемую всемирную катастрофу.
JavaScript: разрабатываем приложение для записи звука
Привет, друзья!
В этом небольшом "туториале" я хочу показать вам, как разработать приложение для записи и воспроизведения аудио-файлов.
Функционал нашего приложения будет следующим:
- запись аудио
- отображение записи с возможностью ее предварительного прослушивания и последующего сохранения или удаления
- хранение аудио-файлов на сервере
- извлечение аудио-файлов, хранящихся на сервере, и их отображение в браузере
Основная технология, которую мы будем использовать, это MediaDevices
. Данная технология входит в состав глобального объекта Navigator
. Основным методом, предоставляемым указанным интерфейсом является getUserMedia()
. Запись данных (в простых случаях вроде нашего) выполняется с помощью интерфейса MediaRecorder
.
Интерфейс MediaDevices
на сегодняшний день поддерживается всеми современными браузерами.
Для небольшой стилизации нашего приложения мы будем использовать Sass.
Выглядеть приложение примерно так:
Основным источником вдохновения для меня послужила эта замечательная статья.
Обратите внимание: данная статья рассчитана, преимущественно, на начинающих разработчиков, хотя, смею надеяться, что и опытные найдут в ней что-нибудь интересное.
Вы готовы? Тогда вперед!
Discord Slash API + Yandex Cloud Functions = ♡
Добрый день. Многие знают, что программисту приходится следить за развитием технологий, даже тех, которые не касаются его текущего стека. Ну, или ему это доставляет удовольствие, которое он оправдывает необходимостью держать руку на пульсе. Так обычно зарождаются разнообразные домашние проекты. Я решил свести в один пост свои наработки по написанию Node.js-бота для Discord Slash API с использованием Serverless-подхода в Yandex Cloud. Использование готовых библиотек сведено к минимуму.