Как стать автором
Обновить
-13
0.2
Моё имя — стёршийся иероглиф @beeruser

Пользователь

Отправить сообщение

Неизвестный UART: микросхемы

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров20K

Как было сказано в предыдущей статье, UART не является формализованным стандартом и, следовательно, при его использовании имеет смысл опираться на практику реализаций данного протокола в различных микросхемах. В данной статье будут рассмотрены микросхемы мостов USB‑UART различных производителей как с точки зрения особенностей поддержки протокола, так и с точки зрения временных/электрических характеристик, а также иных, в том числе не‑электронных соображений.

Запаять SSOP-20
Всего голосов 58: ↑57 и ↓1+74
Комментарии57

Раскладываю Swift Runtime на детали

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров8.3K

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

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

Привет, меня зовут Александр Пахомов, я работаю в Альфа-Банке на проекте для юридических лиц Альфа Бизнес Мобайл. В статье расскажу про Runtime:

— покопаемся в исходниках: узнаем на каком языке написан и что делает;
— напишем простой код, скомпилируем и посмотрим как он выглядит на уровне SIL и IR;
— добавлю в мой исходный код функцию swift_releaseи посмотрю результат;
— узнаю, что будет, если не учесть ‘name mangling’;
— и покажу ненастоящую функцию.

Читать далее
Всего голосов 37: ↑37 и ↓0+37
Комментарии1

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров11K
image

Я, как и многие мои читатели, очень люблю игры. Уже довольно обширное число моих статей было посвящено ремонту и моддингу самых разных игровых консолей — как китайских «нонеймов», так и брендовых PSP и PS Vita! Однако, меня тянет к железу не только желание отремонтировать и поставить в строй «устаревшие» девайсы, но и мания делать и созидать что-то своё! А ещё я очень люблю программировать игры и графику сам. Недавно я загорелся идеей разработать с нуля свой портативный «тетрис»: от схемы и разводки платы, до написания прошивки и игр под нее. Что получается, когда программист, который поставил электронику практически во главе своей жизни, пытается сделать свое устройство? Читайте в статье!
Читать дальше →
Всего голосов 36: ↑34 и ↓2+44
Комментарии84

Эйлер, Чёрч и Мандельброт — этюд о красоте и математике

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров13K

Довольно часто на просторах интернета можно встретить выражение "Красота - в глазах смотрящего". Действительно ли красота субъективна, или все же в ней есть нечто объективное и общее для всех? Возможно ли, что абсолютно не похожие на нас инопланетные существа с другого конца Вселенной, с которыми нам даже не суждено ни разу встретиться за все время существования наших цивилизаций, видят красоту в том же, в чем видим её и мы?

В начале 90-х годов XX века немецкий информатик Юрген Шмидхубер представил невероятно красивую и математически строгую теорию математической красоты. Согласно этой теории людям кажутся красивыми сложные объекты, обладающие наименьшей алгоритмической сложностью. Эта величина, также известная как колмогоровская сложность, названа в честь впервые описавшего её советского математика Андрея Колмогорова.

Читать далее
Всего голосов 51: ↑49 и ↓2+62
Комментарии28

Hello World на Tang Primer 20K под Linux

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров7.4K
После обзора на Tang Primer 20K — стало очевидно, что она вызывает немалый интерес и было решено немедля сделать разбор о том, каким образом можно настроить свой ПК и IDE для того чтобы начать взаимодействовать с отладочной платой, которую я рассмотрел в прошлой статье. Изначально, до момента пока я не познакомился сам лично с ПЛИС от Gowin и не запустил демо-проект — юзабельность, скорость и простота работы с их IDE вызывала сомнение. Но как только попробовал — все опасения были развеяны и я остался доволен.

Опытом настройки я с вами хотел бы поделиться в этой статье. Всех интересующихся — я по традиции приглашаю под кат!

image
Читать дальше →
Всего голосов 58: ↑58 и ↓0+58
Комментарии14

USB на регистрах: составные устройства

Время на прочтение13 мин
Количество просмотров8.8K


Еще более низкий уровень (avr-vusb)
USB на регистрах: STM32L1 / STM32F1
USB на регистрах: bulk endpoint на примере Mass Storage
USB на регистрах: interrupt endpoint на примере HID
USB на регистрах: isochronous endpoint на примере Audio device


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

Читать дальше →
Всего голосов 31: ↑29 и ↓2+39
Комментарии8

Первые шаги в импульсных нейронных сетях

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров16K

Давайте попробуем немного разобраться в теме импульсных нейронных сетей (spiking neural network, SNN). Напишем простую импульсную нейронную сеть, используя только NumPy и Pandas, для классической задачи машинного обучения с использованием кодирования рецептивными полями.

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии4

Генерация Пещер

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.8K

Генерация пещер. Генерация на языке программирования С++, на основе клеточных автоматов с регулируемыми настройками.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии3

Audio over Bluetooth: most detailed information about profiles, codecs, and devices

Время на прочтение24 мин
Количество просмотров310K
XKCD comic. How standards proliferate. SITUATION: there are 14 competing standards. Geek: 14?! Ridiculous! We need to develop one universal standard that covery everyone's use cases. Geek's girlfriend: yeah! SOON: Situation: there are 15 competing standards.

This article is also available in Russian / Эта статья также доступна на русском языке

The mass market of smartphones without the 3.5 mm audio jack changed headphones industry, wireless Bluetooth headphones have become the main way to listen to music and communicate in headset mode for many users.
Bluetooth device manufacturers rarely disclose detailed product specifications, and Bluetooth audio articles on the Internet are contradictory and sometimes incorrect. They do not tell about all the features, and often publish the same false information.
Let's try to understand the protocol, the capabilities of Bluetooth stacks, headphones and speakers, Bluetooth codecs for music and speech, find out what affects the quality of the transmitted audio and the delay, learn how to capture and decode information about supported codecs and other device features.

TL;DR:

  • SBC codec is OK
  • Headphones have their own per-codec equalizer and post processing configuration
  • aptX is not as good as the advertisements say
  • LDAC is a marketing fluff
  • Voice audio quality is still low
  • Browsers are able to execute audio encoders compiled to WebAssembly from C using emscripten, and they won't even lag.

Всего голосов 24: ↑23 и ↓1+22
Комментарии8

DIY наушники: реализация мониторного звука

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров16K

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

Читать далее
Всего голосов 88: ↑88 и ↓0+88
Комментарии52

Linux на esp32s3

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров27K

Вопрос о том, можно ли загрузить линукс на микроконтроллерах Espressif я
впервые услышал в 2015, в период бума esp8266. Тогда мой ответ на него
был: "нет, не это ядро и не на этом железе". Но прошло 8 лет и ответ
изменился на "да, и у меня есть рабочий пример". Дальше рассказ о том,
как это произошло.

Читать далее
Всего голосов 120: ↑119 и ↓1+148
Комментарии21

Andrej Karpathy: глубокие нейросети 33 года назад и 33 года спустя

Время на прочтение10 мин
Количество просмотров6.7K

На мой взгляд, статья Янна Лекуна с соавторами Backpropagation Applied to Handwritten Zip Code Recognition (1989 год) имеет определённую историческую ценность, поскольку, насколько мне известно, это первое реальное применение нейронной сети, от начала до конца обученной при помощи обратного распространения (backpropagation). Если не учитывать крошечный датасет (7291 изображений цифр в градациях серого размером 16x16) и крошечный размер использованной нейронной сети (всего тысяча нейронов), эта статья спустя 33 года ощущается вполне современной — в ней описана структура датасета, архитектура нейронной сети, функция потерь, оптимизация и приведены отчёты об величинах экспериментальных ошибок классификации для обучающего и тестового датасетов. Всё это очень узнаваемо и воспринимается как современная статья о глубоком обучении, только написанная 33 года назад. Я решил воспроизвести эту статью 1) для развлечения, а ещё 2) чтобы использовать это упражнение как исследование природы прогресса глубокого обучения.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии12

Пишем телеграм-бота на Rust, предварительно спаяв сетевую карту

Время на прочтение11 мин
Количество просмотров19K

Что делать, если ваш микроконтроллер не умеет работать с сетью, а бота для телеграма написать хочется? Конечно же, сделать свой сетевой адаптер на логических микросхемах!

Читать далее
Всего голосов 117: ↑116 и ↓1+145
Комментарии23

Простая процедурная генерация мира, или Шумы Перлина на Python

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров20K

Недавно я выпустил статью, в которой рассказал о библиотеке Ursina Engine и показал, как создать свою трехмерную игру на Python. Между разделами вскользь упомянул про шум Перлина. Это один из базовых алгоритмов процедурной генерации, который можно использовать для создания красивых игровых миров. Хочу рассказать о нем подробнее и показать, как работать с модулем perlin-noise.

Если вам интересно, как просто генерировать реалистичные трехмерные ландшафты на Python, добро пожаловать под кат!
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии2

Управление параметрами FPV видеопередатчиков по протоколам IRC Tramp и TBS SmartAudio

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров26K

Управление параметрами FPV видеопередатчиков по протоколам IRC Tramp и TBS SmartAudio

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии2

Воссоздание существующего фрагмента улицы в 3D

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров8.1K

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

Меня зовут Максим и сейчас я опишу, как это сделал.

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

Читать далее
Всего голосов 53: ↑52 и ↓1+62
Комментарии10

Очередной драйвер SPI флэшек… Но уже с кэшем и «нормальным» api

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров7.6K

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

Будем пытаться писать быстрый драйвер флешки и при этом попробуем сэкономить её ресурс при перезаписях.

Читать далее
Всего голосов 19: ↑18 и ↓1+22
Комментарии33

MIDI chiptune + detune

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров7.3K

Добавляем функциональность к музыкальному MIDI-синтезатору на двух чипах AY-3-8910, а также вспоминаем, что общего между музыкой и математикой.

Читать далее
Всего голосов 33: ↑32 и ↓1+44
Комментарии43

Ретро-компьютер уровня «Радио-86РК» с RISC-V процессором на плате OMDAZZ

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K

Статья про то, как из недорогой отладочной платы OMDAZZ c ПЛИС  CycloneIV EP4CE6 получить ретро-компьютер с монитором, клавиатурой и тетрисом, но с современным процессором на базе RSIC-V и компилятором GCC.

Как же это сделать
Всего голосов 60: ↑60 и ↓0+60
Комментарии14

«Midjourney на коленке». Как развернуть нейросеть в облаке за 5 минут, или начало работы с Diffusers

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров23K

Построить свою конвейерную ленту по разработке нейронок не так сложно. Нужен «всего лишь» сервер с GPU и настроенное окружение с библиотекой Diffusers. Если вам интересно, что это такое, как создать свою «Midjourney на коленке» и генерировать вайф в режиме 24/7, добро пожаловать под кат!
Читать дальше →
Всего голосов 53: ↑50 и ↓3+61
Комментарии19

Информация

В рейтинге
2 586-й
Дата рождения
Зарегистрирован
Активность