Как стать автором
Обновить
36
Карма
0.1
Рейтинг
Константин @jakushev

embedded разработчик (bare-metal)

  • Подписчики 12
  • Подписки 1
  • Публикации
  • Комментарии

Трансформаторные датчики тока

Схемотехника *Электроника для начинающих
Представьте себе, что у вас встала задача измерения тока потребления в бытовой сети 220 В, 50 Гц. Причем главное ваше требование — невмешательство в существующую проводку. Мое непоколебимое мнение — в питающей ваш дом линии должно быть как можно меньше всякого, потому что каждый лишний агрегат есть потенциальная точка отказа. Если не сам по себе (как УЗО в старых загородных домах, где трудно избежать утечек), то как минимум из-за дополнительных контактных соединений, и хорошо, если эти соединения сделаны по стандартам, а не из оцинкованной стали в контакте с медью.

Винтажный измеритель тока и напряжения совершенно загадочного назначения. Но эффектно придумано, согласитесь!

Иными словами, в качестве решения задачи измерения тока в бытовой сети отпадает все, устанавливаемое в разрыв проводки — и фирменное и самодельное. Традиционные шунты понятно почему (ко всему остальному они еще и пожароопасны), но не годятся и измерители на основе датчиков Холла (вроде популярных ACS7хх). Они требуют точной ориентации относительно проводника, а, значит, все равно устанавливаются в разрыв провода.

Остаются трансформаторы тока. Вот их сейчас и рассмотрим с упором на самостоятельное изготовление: коли мы не вмешиваемся в проводку, ничего потенциально опасного мы соорудить не можем. Но сможем ли сделать удобнее и дешевле покупных?
Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Просмотры 5.4K
Комментарии 30

Балансирующий робот на Arduino Nano и шаговых моторах

Программирование *Алгоритмы *Математика *Разработка под Arduino *Робототехника

Моя версия популярного балансирующего робота. Для тех, кто хочет разобраться в математике, железе и алгоритме стабилизации.

Читать далее
Всего голосов 64: ↑64 и ↓0 +64
Просмотры 13K
Комментарии 22

Работа с кучей в Rust

Rust *
Tutorial

Продолжаем изучать Rust нетрадиционным способом. В этом раз будем разбираться в нюансах работы с кучей, для их понимания понадобятся: сырые указатели, выделение памяти в куче, размер экземпляра типа, запись значений в кучу и чтение из нее, const и static, unit-like структуры, переопределение глобального аллокатора, печать стека вызовов.


Это, определенно, overkill для одной статьи, а вот половину списка вполне можно освоить.


Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 4.2K
Комментарии 9

Ассемблер RISC-V для начинающих

Программирование *Assembler *Программирование микроконтроллеров *Процессоры
Перевод
Tutorial

Если вы не знаете ни одного ассемблера, или, возможно, не имеете большого опыта кодинга как такового, то ассемблер RISC-V может быть одним из лучших вариантов для того, чтобы погрузиться в эту тему. Конечно, материалов по ассемблеру x86 гораздо больше. Больше людей, которые могут в этом помочь. Но x86 - это чудовище, имеющее более 1500 различных инструкций.

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

Если вам необходим хороший старт, и вы не знаете ничего о микропроцессорах, вы можете прочесть мою статью "Как работает современный микропроцессор?" (How Does a Modern Microprocessor Work?).

Если вы хотите чего-нибудь простого и весёлого, можете начать с различных игр, в основе которых лежит программирование на ассемблере: Learn Assembly Programming the Fun Way.

Другим может понравиться ретропроцессор, такой, как 6502, использовавшийся в Commodore 64. Но проблема в том, что он окончательно устарел. При его разработке не учитывались реалии сегодняшнего дня.

Большой плюс RISC-V состоит в том, что он обладает современным и простым набором команд, спроектированным с учётом современных требований, таких как медленный доступ к памяти, использование предсказателя переходов, суперскалярного out-of-order выполнения команд и т.д.

Если вам интересно всё это, прочтите: Why Is Apple’s M1 Chip So Fast?

Перед тем, как мы начнём, можете распечатать это: James Zhu RISC-V Reference.

Читать далее
Всего голосов 52: ↑51 и ↓1 +50
Просмотры 13K
Комментарии 28

Собираем и устанавливаем свою Linux-систему на микроконтроллер STM32MP1

Блог компании Маклауд
Перевод

Примечание переводчика: эта статья уже выходила в блоге, но из-за мисклика вышла как оригинальная статья. Выпускаю ее снова, указав автора оригинала и ссылку на него

В этой статье мы автоматизируем процесс сборки и установки Linux-системы на микроконтроллер STM32MP157-DK2. ОС будет обладать минимальной функциональностью, но зато мы соберём из исходников собственную систему. А поможет нам в этом Buildroot — система сборки Linux-дистрибутивов. 

Что такое Buildroot?


Сначала вспомним, что Linux-система состоит из достаточно большого количества разных компонентов. Так как мы здесь говорим про embedded-платформы, выделим следующие компоненты:
Читать дальше →
Всего голосов 37: ↑34 и ↓3 +31
Просмотры 5.6K
Комментарии 1

Floppinux — Linux, умещенный на дискету

Блог компании RUVDS.com *nix *Разработка под Linux *Старое железо DIY или Сделай сам
Перевод
Tutorial

Новость по этому поводу уже была, время подавать и сам перевод. В своем руководстве Кристиан подробно излагает каждый шаг процесса создания дистрибутива и его записи на дискету формата 3.5". В конечном итоге работает такой дистрибутив даже на старых ПК с i486DX и вполне может выполнять скомпилированные приложения.
Всего голосов 67: ↑61 и ↓6 +55
Просмотры 13K
Комментарии 40

Превращаем одноплатник Cubietruck в Wi-Fi Hotspot с Captive portal, VPN-шлюзом и Ad block

Блог компании VDSina.ru Беспроводные технологии *Разработка на Raspberry Pi *Сетевое оборудование DIY или Сделай сам
Tutorial
raspap

Для построения Wi-Fi сети обычно используют готовые маршрутизаторы, функциональность которых всегда ограничен прошивкой. А если необходимо добавить блокировщик рекламы, VPN шлюз и красивый Captive portal, покупать новую железку? Стоимость устройства с такими возможностями будет уже весьма высока. Можно взять Linux с Hostapd и сделать точку доступа с Wi-Fi, но в отличие от готовых маршрутизаторов не будет наглядного Web-интерфейса. И для решения этой задачи был создан проект RaspAP, который на базе устройств с ОС Debian создает Wi-Fi Hotspot с Captive portal, VPN-шлюзом, Ad block. Для RaspAP в отличие от OpenWrt не требуется непосредственная поддержка устройства, достаточно поддержки последней версии Debian. RaspAP работает поверх уже установленных ОС: Raspberry Pi OS, Armbian, Debian, Ubuntu. Как сделать Wi-Fi Hotspot на RaspAP прошу под кат.
Всего голосов 35: ↑33 и ↓2 +31
Просмотры 10K
Комментарии 19

Embedded Linux в двух словах. Второе

Настройка Linux *Open source *C++ *C *DIY или Сделай сам
Tutorial

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

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

В этой части речь пойдет о таком инструменте автоматизации как Buildroot, о создании драйверов согласно современным веяниям драйверостроения, и реализации функционала, анонсированного в первой части, в виде отправки смайлов в топовый чат, широко известного в узких кругах, сайта,  в соответствии с командами от смайл-пульта.

Читать далее
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 9.8K
Комментарии 17

Embedded Linux в двух словах. Первое

Настройка Linux *Open source *C *DIY или Сделай сам
Tutorial

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

Платформой послужит плата BeagleBone Black с процессором производства Техасских Инструментов AM3358 и ядром Arm Cortex-A8, и, чтобы не плодить мигающие светодиодами мануалы, основной задачей устройства будет отправка смайлов в топовый чат, широко известного в узких кругах, сайта,  в соответствии с командами от смайл-пульта. Впрочем, без мигания светодиодами тоже не обошлось.

Читать далее
Всего голосов 47: ↑45 и ↓2 +43
Просмотры 17K
Комментарии 15

Использование бюджетных JTAG-отладчиков в PlatformIO

Программирование микроконтроллеров *Разработка под Arduino *DIY или Сделай сам Электроника для начинающих
Из песочницы
Tutorial

В этом туториале я хотел бы рассказать о том, как использовать ультрабюджетные JTAG-отладчики CJMCU FT232H и RV-Degugger-Lite в PlatformIO для прошивки и отладки устройств на платформах ESP32 и GD32. Полноценной инструкции на просторах интернета я не нашел, и в процессе настройки столкнулся со многими проблемами, поэтому этот туториал появляется здесь для вашего удобства. Оговорюсь сразу, что настройка прописана для Linux, но для Windows принципиальной разницы нет за исключением танцев с Zadig.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 3.8K
Комментарии 3

Программирование беспроводных модулей на MicroPython с Thonny

Блог компании Selectel Python *Программирование *Беспроводные технологии *DIY или Сделай сам
Перевод

Я неоднократно разрабатывал проекты на MicroPython для различных embedded-решений, включая парочку ESP32 WiFi модулей. Для таких проектов есть несколько инструментов:

  • Использование последовательного терминала и ampy, который не поддерживается Adafruit с 2018 года.
  • Для плат Pycom или прошивки WiFy есть плагины pymakr под Atom и Visual Studio.
  • Если же вы предпочитаете командную строку, как и я, то стоит использовать rshell от одного из самых активных представителей команды MicroPython.
Всего голосов 38: ↑38 и ↓0 +38
Просмотры 4.1K
Комментарии 2

Произвольное число аргументов любых типов на C11 и выше с помощью _Generic и variadic макросов

C++ *C *

В Си стандарта 2011 года добавили небольшую возможность "перегрузки" функций с помощью макроса. (Generic selection) Мне, очень интересно стало написать какую-нибудь функцию, которая максимально использовала бы эту возможность

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

Читать далее
Всего голосов 19: ↑15 и ↓4 +11
Просмотры 3.6K
Комментарии 37

Подключаем дисплей SPI LCD  ILI9341 к одноплатному компьютеру Banana Pi BPI-M64 или любому другому на ОС Armbian

*nix *Разработка под Linux *Интернет вещей DIY или Сделай сам
Tutorial
LCD SPI ILI9341 Banana Pi BPI-M64

Пост содержит инструкцию как подключить TFT-LCD дисплей на популярном контроллере ILI9341 к одноплатному компьютеру на ОС Armbian с помощью дерева устройств (Device Tree overlays) без танцев с бубном. В сети Интернет много материала как подключать различные LCD экраны к Raspberry Pi. Но что если у вас нет Raspberry Pi, а хочется подключить недорогой LCD экран на SPI интерфейсе? Все что вам необходимо, это любая плата с поддержкой ОС Armbian. В каталог поддерживаемых плат ОС Armbian входят платы: Asus, Pine64, Hardkernel, Orange Pi, Banana Pi, и т.д. На данный момент в каталоге более 114 моделей плат, объявлена поддержка различного оборудования из коробки. Доступны для подключения: 4G/LTE модемы, USB Wi-Fi, USB Bluetooth, USB Ethernet, сканеры DVB-тюнеры и т.д. К всем этим платам можно легко подключить  SPI LCD дисплей ILI9341, как это реализовать прошу под кат.
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 7.9K
Комментарии 1

Buildroot — часть 1. Общие сведения, сборка минимальной системы, настройка через меню

Настройка Linux *Open source **nix *Разработка под Linux *Софт
Из песочницы

Введение


В данной серии статей я хочу рассмотреть систему сборки дистрибутива buildroot и поделиться опытом её кастомизации. Здесь будет практический опыт создания небольшой ОС с графическим интерфейсом и минимальным функционалом.


Прежде всего, не следует путать систему сборки и дистрибутив. Buildroot может собрать систему из набора пакетов, которые ему предложили. Buildroot построен на make-файлах и поэтому имеет огромные возможности по кастомизации. Заменить пакет на другую версию, добавить свой пакет, поменять правила сборки пакета, кастомизировать файловую систему после установки всех пакетов? Всё это умеет buildroot.


В России buildroot используется, но на мой взгляд мало русскоязычной информации для новичков.


Цель работы — собрать дистрибутив с live-загрузкой, интерфейсом icewm и браузером. Целевая платформа — virtualbox.


Зачем собирать свой дистрибутив? Зачастую нужен ограниченный функционал при ограниченных ресурсах. Ещё чаще в автоматизации нужно создавать прошивки. Приспосабливать дистрибутив общего назначения, вычищая лишние пакеты и превращать его в прошивку путь более трудоёмкий, чем собрать новый дистриб. Использование Gentoo тоже имеет свои ограничения.


Buildroot система очень мощная, но она ничего не сделает за вас. Она может лишь дать возможности и автоматизировать процесс сборки.


Альтернативные системы сборки (yocto, open build system и прочие) не рассматриваются и не сравниваются.

Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Просмотры 30K
Комментарии 12

Разработка игр под NES на C. Главы 17-21. Своя игра

Ненормальное программирование *Assembler *Разработка игр *C *
Перевод
Tutorial

В этой части соберем все вместе и сделаем простую скроллерную стрелялку на космическую тему: корабль летит и лазерами отстреливает врагов


<<< предыдущая следующая >>>


image
Источник


Планирование

Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 7.1K
Комментарии 1

Делаем из старого усилителя многофункциональный медиа сервер с помощью Raspberry pi

Настройка Linux *Разработка на Raspberry Pi *Смартфоны Умный дом

У кого из нас нет добротной техники из прошлого, которая работает так, как и не снилось множеству ширпотребных вещей из настоящего. Старые усилители, проигрыватели пластинок и радиолы. Да, было время, когда не умели делать хрупко и недолговечно в погоне за дешевизной. Эти вещи еще проработают долго. И звучание какого-нибудь старого усилителя будет радовать и нас и наших детей.

Правда, в них отсутствует много всяких цифровых штучек. Разные flac и тому подобные форматы. Управление проигрыванием, музыкой и фильмами через телефон или компьютер. Возможность запустить музыку с Youtube, Last.fm или выбрать интернет радио. Удаленное проигрывание медиа через DLNA. Или просто возможность подключить ваш компьютер через Bluetooth и выводить весь звук через большие колонки. Или что там еще напридумывают нам в будущем для облегчения нашей аудиофильской жизни.

Но что нам мешает использовать все эти технологии в старой технике? Да и почему обязательно в старой… У вас есть RCA, miniJack 3.5 или S/PDIF разъем на вашей магнитоле? Тогда мы идем к вам и … И делаем из старого усилителя многофункциональный медиа сервер с помощью Raspberry Pi. Подключаем нашу Raspberry Pi через RCA и обновляем нашу технику до "острия технологической атаки". Не обязательно использовать RCA. Найдите аналоговый или цифровой вход на своей технике и выберите нужную комплектацию вашей Raspberry Pi. Я буду рассматривать вопрос сугубо с практической точки зрения. Как настроить все быстро на Raspberry Pi? Ведь статей профессионалов об особенностях работы той или иной технологии достаточно, чтобы не останавливаться на этом. Я возьму в качестве примера Raspberry Pi и плату для цифровой обработки звука на основе чипа PCM 5102 A .

Читать далее
Всего голосов 24: ↑24 и ↓0 +24
Просмотры 21K
Комментарии 16

Lehmann Audio Black Cube за 1000 р и 3 дня? Легко!

DIY или Сделай сам
Купил простенькие уши, чтоб по ночам можно было гаматься и иногда слушать музыку, взял недорогие, но большие KOSS UR20. Подключив к ресиверу был несколько ошарашен, звук очень и очень приятный, джаз и классика просто на ура идут. По НЧ конечно сильно проигрывают затычкам Koss the plug, и ощутимо KOSS Porta Pro, которые уже какой год таскаю как портативные. Был очень удивлен после когда решил послушать Koss Porta Pro после прослушивания композиций на KOSS UR20 — с порта про как будто в уши ваты натолкали. А я ведь считал их очень «приличными» в плане звука. Хотя может это время и атмосфера их могла так попортить? Все это к чему? Да так, решил собрать усилок для ушей, Усилок будет домашний, не портативный ни разу.
Решил для начала собрать клон Lehmann Audio Black Cube Linear doctorhead.ru/catalogue/?i=523
Вот результат:

Все вместе заняло около 3 вечеров и меньше 1000 р денег.
Кому интересно добро пожаловать под кат, будет очень много фоток с подробным описанием.
Читать дальше →
Всего голосов 192: ↑188 и ↓4 +184
Просмотры 101K
Комментарии 170

Пишем драйвер фреймбуфера для Raspberry Pi с LCD

Настройка Linux *Разработка на Raspberry Pi *
Tutorial

Прочитав монументальную серию статей о подключении LCD экрана к роутеру мне захотелось сделать то же самое. Однако многообразие используемого стека (openwrt, stm32, usb) в сочетании с отсутствием полных исходников кода но может плохо искал несколько затруднило задачу. Я решил начать с малого — написать свою реализацию framebuffer для raspberry и вывести графическую среду raspberry на LCD. Что из этого получилось, описываю далее.

Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Просмотры 8K
Комментарии 5

Изучаем RISC-V с нуля, часть 2: прерывания и стыковка с Си

Программирование микроконтроллеров *Схемотехника *


Продолжаем погружаться в строение контроллера GD32VF103CBT6. Теперь рассмотрим как он может обрабатывать прерывания работать под управлением высокоуровневого кода.
Первая часть здесь

Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 5.8K
Комментарии 12

Информация

В рейтинге
2,687-й
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность