В этом посте я расскажу, как мне удалось заставить STM32F4 измерять аналоговые сигналы в указанные моменты времени с помощью DMA не расходуя вычислительных ресурсов микроконтроллера.
User
Умный дом с нуля своими руками или путешествие длиною в год
Данную статью пишу для думающих, стоит оно того или нет и начинающих построение своего умного дома, надеюсь она поможет сделать вам свой выбор. Для тех кто думает я не программист у меня ничего не получится, я тоже, хотя имею техническое (теплоэнергетик) образование, но никогда не работал в IT, не знаю не одного языка программирования. Дорогу осилит идущий. Начнем с рассуждений что такое умный дом, поверьте на слово он не решит все ваших бытовых и семейных проблем, но точно сделает жизнь немного комфортней. Что такое умный дом в моем представлении год назад: 1. Красивый планшет со схемой дома весящий на стане в прихожей с которого можно управлять всем в доме; 2. Управление всем чем можно голосом. Откровение через год планшет не нужен, так как бегать со второго этажа на первый что бы по управлять неудобно. Что бы хорошо работало голосовое управление, требуется установка умной колонки в каждую комнату, когда их две это одно. А когда значительно больше вопрос. Сейчас для меня умный дом это то, что работает само без моего участия, и не требует управления. Все о чем пойдет речь далее сделано мною лично, может можно сделать по другому, может проще и лучше. Но таков путь.
Делаем систему контроля и управления доступом (СКУД) для умного дома
Примерно год назад я начал готовиться к переезду и собирать прототип умного дома. В качестве системы управления я выбрал наиболее популярное на текущий момент и активно развивающееся решение - Home Assistant. По мере обрастания умного дома датчиками встал вопрос об охранной системе, которая в случае чего поднимет тревогу и сообщит мне (соседям) о незваных гостях. В системе от частных охранных предприятий пока не вижу необходимости, поэтому решил сделать всё сам.
Легенда на ладони: создаём крошечный компьютер PDP11
Введение
2020 год был странным для всех в мире. Конкретно в моём случае мне пришлось находиться далеко от своего дома в Шанхае, потому что, когда COVID нанёс удар, мы были в Европе, и Китай усложнил процедуру пересечения границ примерно до конца года.
Отсутствие доступа к моей лаборатории и лишь ограниченный доступ к электронному оборудованию сильно сдерживал мои возможности, однако создание новых проектов не исключалось полностью [перевод на Хабре]. После завершения этого проекта я снова попал в проектный вакуум: всё, что у меня было с собой — это куча комплектов разработки ESP32 и желание что-нибудь создать.
Поэтому я подумал: почему бы не создать ещё один эмулятор? У меня был подобный опыт, поэтому это не будет слишком сложно, и как только я доберусь до своей лаборатории, то, вероятно, смогу превратить его в ещё одну миниатюрную работающую модель компьютера, похожую на то, что я сделал с крошечным Macintosh Plus [перевод на Хабре]. Но какой компьютер выбрать на сей раз? Меня всегда интересовал PDP11. Хоть у меня никогда его не было (и я даже на нём не работал), в своё время он находился в авангарде компьютерных технологий. Его архитектура набора команд (ISA) повлияла на довольно значительное количество архитектур, появившихся позже, а солидная доля ПО, которое мы используем по сей день, основывается на идеях, впервые реализованных на PDP11.
522-фз или как умнеют счётчики электричества. Часть 1
В этом году, тема «умных счётчиков электроэнергии» вошла в топ-3 вопросов ко мне. И она на первом месте.
Я решил написать статью, где пробегусь по главным аспектам новых законов, поясню, чего нам ждать, зачем все делается. Во второй части опишу подводные камни, куда ж без них?
Сразу оговорюсь - технология на стадии внедрения, многие моменты ещё шлифуют напильником. Но общий вектор уже задан.
Создаем схему базы данных на SQLAlchemy
Много уже говорилось о том, что SQLAlchemy - одна из самых популярных библиотек для создания схем баз данных. Сегодня рассмотрим несложный пример по созданию небольшой схемы данных для приложения по поиску цитат. В качестве СУБД будем использовать PostgreSQL.
Подход к определению моделей будем использовать декларативный, так как, на мой взгляд, он проще и понятнее классического подхода, основанного на mapper.
Старый DVD-привод превращается… в лазерный микроскоп
В наше время DVD-приводы постепенно выходят из употребления, мало кто уже покупает диски или записывает их сам, а старые диски постепенно деградируют, ведь химическое покрытие на болванках не вечное.
Но для ненужного привода есть полезное применение. Например, из него можно смастерить лазерный микроскоп на Arduino (примечание: по факту требуется две лазерные головки, то есть два ненужных привода).
Это оптический микроскоп, который использует для сканирования образца сфокусированный лазерный луч.
Превращаем старый Amazon Kindle в платформу разработки с e-ink
Мне всегда хотелось заполучить экран на электронных чернилах для своих будущих проектов. Я купил небольшой экранчик с платой расширения Raspberry Pi, однако потом понял, что можно просто воспользоваться старой «читалкой» Amazon Kindle.
Когда-то давно я уже экспериментировал с Kindle: портировал на него интерпретатор Infocom и приложение для чтения манги. Мне удалось заставить ПО Amazon загружать их как Kindlet и отображать их интегрированными в «читалку». Однако сейчас мне нужна была просто дешёвая и удобная платформа разработки под Linux с eink.
Дешёвый Kindle с Ebay (и причина его дешевизны)
Итак, я отправился на ebay! Нашёл там множество очень дешёвых лотов, помеченных как «Заблокирован Amazon». Я решил, что не стоит их брать, потому что, теоретически, они могут быть краденными. В конечном итоге я выбрал Kindle 4 без сенсорного экрана за 7 фунтов.
Спустя несколько дней он приехал. Тогда я и понял, почему он был таким дешёвым: на экране постоянно отображался некий демо-режим, из которого невозможно выйти:
Установка Linux на калькулятор. Часть I
Достаточно давно я мечтаю об устройстве, которое на своём борту будет иметь экран с тачскрином, аппаратные кнопки, и на котором без особых проблем будет работать linux. Ну и конечно же у неё будет достаточное количество интерфейсов. В своё время, надежды подавал проект Vogue, но сегодня я нашел его — идеальное устройство для карманного ношения, с мощным процессором и linux на борту. Итак, это калькулятор HP Prime G2. Там стоит шикарный процессор i.mx6ull, с которым у меня достаточно богатый опыт работы, поэтому портирование linux не казалось слишком сложной задачей. Однако, как обычно, дьявол кроется в мелочах.
Хочу поведать вам о своём тернистом пути установки Linux на калькулятор, что из этого получилось, а что нет, судить вам!
Сам себе пейджинговый оператор
Привет, в этом посте я хочу рассказать как я загорелся одной больной идеей, и создал свою пейджинговую сеть в 2021 году.
В ноябре 2020 на Авито я наткнулся на объявление о продаже пейджера Motorolla Advisor всего за 100 рублей и рядом со мной. По гуглив подобные объявления, я понял что этот раритет отдается даром. Спустя всего час в руках у меня было чудо техники из 90х. И волна ностальгии, по школьным годам нахлынула на меня, с таким прибором я ходил еще в 1-3 классе. Пейджер был в идеальном состоянии почти ни царапинки. И тут в моей голове забегали тараканы, и я захотел отправить на него сообщение любым способом .
Управление LCD и OLED дисплеями на AVR-ассемблере
Основные результаты по созданию такой экосистемы изложены в книжке под названием «Программирование микроконтроллеров AVR: от Arduino к ассемблеру». Там же вы найдете подробное изложение целесообразности и границ применимости изложенного подхода. Руководствуясь приведенными в книге примерами, можно строить вполне законченные проекты с минимальной затратой сил и средств, и получить в результате девайс, ласкающий взор своей компактностью, экономичностью и скоростью работы. В этой статье я привожу один из примеров обращения с современными периферийными устройствами с помощью ассемблера, который работает лучше, быстрее и стабильнее, чем его аналог на Arduino.
Распознавание символов
Работа с изображениями — одна из самых распространенных задач в машинном обучении. Мы покажем пример обработки изображения, получение матриц (тензоров) чисел, подготовку данных обучающего множества, пример архитектуры нейронной сети.
Работа с изображениями является одной из самых распространенных задач в машинном обучении. Обычная картинка, воспринимаемая человеком однозначно, для компьютера не имеет никакого смысла и интерпретации, только если нет предварительно обученной нейронной сети, которая способна отнести изображение к одному определенному классу. Для работы такой нейронной сети необходимо ее обучение на тренировочных данных, изображениях предварительно обработанных и поданных на вход нейронной сети в виде матрицы чисел, характеризующих определенный тон (цвет) на определенной позиции в изображении. В этой статье приводится пример обработки изображения, получение матриц (тензоров) чисел, подготовка данных обучающего множества, пример архитектуры нейронной сети.
Постановка задачи: имеются цветные изображения букв и цифр (CAPTCHA). Необходимо распознать буквы и цифры, находящиеся на изображениях. Последовательность решения задачи:
— анализ изображений;
— подготовка данных;
— генерация данных;
— тренировка нейронной сети, предсказание ответов.
SIP-телефон c GUI на STM32F7
Устройство пакетной системы OpenWrt
OpenWrt использует opkg в качестве пакетного менеджера, точнее, собственный форк. Дебианщикам он во многом покажется знакомым: похожие команды, похожий формат репозитория и пакетов.
Мне захотелось запатчить LUCI (этого в статье не будет), но адекватного быстрого введения я не нашёл, пришлось самостоятельно собирать отрывки сведений из разрозненной документации, статей и примеров, поглядывая в код и на результаты работы. Бонусом собрал примитивный (но бесполезный на практике) пакет, которого ещё нет в репозитории. Собранным ликбезом делюсь ниже.
Кунг-фу стиля Linux: программное управление окнами
Как это обычно бывает в Linux и Unix, существует множество способов решения одной и той же задачи. И наша задача — не исключение. Если вам нужны средства для точного управления программами, то можно сказать, что добиться этого можно с помощью утилит, задействующих специальный механизм, называемый D-Bus. Этот механизм позволяет программам так оформлять данные и методы, что ими могут пользоваться другие программы. В идеальном мире программы, которыми нужно управлять, применяют D-Bus, но в реальности всё далеко не так просто. Поэтому сегодня мы поговорим о том, как управлять самыми разными графическими программами в Linux.
Существует несколько утилит, которые позволяют каким-то способом управлять X-окнами. Например, есть инструмент xdo, о котором вы, наверняка слышите не особенно часто. Более популярным средством из этой сферы является утилита xdotool, о которой я расскажу. Кроме того, похожим функционалом обладает wmctrl. Есть ещё программа autokey, которая родственна популярной Windows-программе AutoHotKey.
STM32F1xx — Инструменты разработчика и FreeRTOS
В процессе работы с ними, я, разумеется выбирал инструменты себе «по руке» — то есть, старался найти наиболее удобные для меня отладочные платы, программаторы, IDE. В этой статье я хочу поделиться с вами несколькими соображениями на этот счет, а также описать процесс сборки в выбранной IDE операционной системы реального времени FreeRTOS.
Миникомпьютер из роутера с OpenWRT: разрабатываем USB-видеокарту
Добрый день, уважаемые хабровчане. В этом цикле статей мы с вами пройдем достаточно длинный, но весьма интересный путь по превращению обычного роутера в мини-компьютер с LCD-дисплеем. Для этого мы разработаем сначала USB-видеокарту на базе микроконтроллера STM32F103, потом тестовый драйвер, который позволит нам выводить на него графику, и, наконец – полноценный драйвер фреймбуффера, благодаря которому можно будет запустить настоящие графические приложения, такие как x-сервер. Заодно мы научимся включать наш код в дерево исходников OpenWRT, допиливать его ядро и делать прочие полезные вещи.
Ну а в самом конце мы получим результат, который, я надеюсь, вызовет ностальгическую слезу у многих читателей. Я постараюсь излагать материал таким образом, чтобы в конце каждого этапа мы получали осязаемый результат, не дающий угаснуть энтузиазму. Итак, начнем.
Пишем драйвер фреймбуфера для Raspberry Pi с LCD
Прочитав монументальную серию статей о подключении LCD экрана к роутеру мне захотелось сделать то же самое. Однако многообразие используемого стека (openwrt, stm32, usb) в сочетании с отсутствием полных исходников кода но может плохо искал несколько затруднило задачу. Я решил начать с малого — написать свою реализацию framebuffer для raspberry и вывести графическую среду raspberry на LCD. Что из этого получилось, описываю далее.
TreeOS. 16-битная рождественская демка в загрузочном секторе
В преддверии Нового Года бороздил просторы сети, и нашёл замечательную демку на ассемблере рисования новогодней ёлки. Демка не простая,
Листовые материалы в корпусостроении — обзор и технологии
Источник
Кого заинтересовало, прошу под кат.
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity