Pull to refresh
20
0
Сергей @byte46

Программист/радиоэлектронщик

Send message

STM32. Процесс компиляции и сборки прошивки

Level of difficultyEasy
Reading time30 min
Views20K
Многие из начинающих разработчиков софта для микроконтроллеров реализуют свои проекты исключительно в средствах разработки, которые предоставляются производителем. Многое скрыто от пользователя и очень хорошо скрыто, из-за чего некоторые воспринимают эти процессы сродни настоящей магии. Я, в свою очередь, как человек в пытливым умом и природной любознательностью, решил попробовать собрать проект без использования IDE и различного рода автоматизаций.

Так родилась идея для этой статьи: не используя ничего, кроме текстового редактора и командной строки, собрать проект мигания светодиодом на отладочной плате STM32F0-Discovery. Поскольку я не до конца понимал, как происходит процесс компиляции и сборки проекта, мне пришлось восполнять пробелы в знаниях. Разобравшись с этим вопросом, я подумал — а почему бы не рассказать другим об этом?

Всем кому интересно — добро пожаловать под кат! 🙂

Читать дальше →
Total votes 124: ↑123 and ↓1+122
Comments67

Реверс-инжиниринг и ремонт платы зарядного устройства

Level of difficultyEasy
Reading time18 min
Views4.7K
image

Волею случая у меня в руках оказались две неисправные платы от зарядного устройства тяговых аккумуляторов LiFePo. Параметры платы вызывают уважение – она выдает в номинале 48 В при токе до 60 А, то есть мощность платы порядка 3 кВт. Плата подключается к однофазной сети 220/230В. Всего в зарядном устройстве стоит несколько таких плат, они все подключаются параллельно и работают на общую нагрузку. Выпускаются варианты таких зарядных устройств с разным числом плат, соответственно, на разный зарядный ток. Например, как на фото ниже — 3 платы, 180 А.
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments21

Компилятор за выходные: синтаксические деревья

Level of difficultyMedium
Reading time11 min
Views24K

Вам когда-нибудь приходилось задаваться вопросом, как работает компилятор, но так руки и не дошли разобраться? Тогда этот текст для вас. Мне тоже не доводилось заглядывать под капот, но тут так случилось, что мне нужно прочитать курс лекций о компиляторах местным третьекурсникам. Кто встречался с некомпетентными преподавателями? Здравствуйте, это я :)

Итак, чтобы самому разобраться в теме, я собираюсь написать транслятор с эзотерического языка программирования wend (сокращение от week-end), который я только что сам придумал, в обычный ассемблер. Задача уложиться в несколько сотен строк питоновского кода. Основной репозиторий живёт на гитхабе (не забудьте заглянуть в мой профиль и посмотреть другие tiny* репозитории).

Читать далее
Total votes 75: ↑75 and ↓0+75
Comments28

16-, 8- и 4-битные форматы чисел с плавающей запятой

Level of difficultyMedium
Reading time15 min
Views23K

Уже лет 50, со времён выхода первого издания «Языка программирования Си» Кернигана и Ритчи, известно, что «числа с плавающей запятой» одинарной точности имеют размер 32 бита, а числа двойной точности — 64 бита. Существуют ещё и 80-битные числа расширенной точности типа «long double». Эти типы данных покрывали почти все нужды обработки вещественных чисел. Но в последние несколько лет, с наступлением эпохи больших нейросетевых моделей, у разработчиков появилась потребность в типах данных, которые не «больше», а «меньше» существующих, потребность в том, чтобы как можно сильнее «сжать» типы данных, представляющие числа с плавающей запятой.

Я, честно говоря, был удивлён, когда узнал о существовании 4-битного формата для представления чисел с плавающей запятой. Да как такое вообще возможно? Лучший способ узнать об этом — самостоятельно поработать с такими числами. Сейчас мы исследуем самые популярные форматы чисел с плавающей запятой, создадим с использованием некоторых из них простую нейронную сеть и понаблюдаем за тем, как она работает.

Читать далее
Total votes 132: ↑131 and ↓1+130
Comments99

Как воспитать в своей семье юного инженера и не разориться?

Level of difficultyEasy
Reading time8 min
Views19K

Говорят, собственный пример – это самое лучшее обучение для ребёнка. Рассказываю, как я проверил справедливость этого высказывания на себе, с нуля погрузился в робототехнику и в итоге у меня даже получилось сконструировать нечто стоящее. А ещё в процессе я поднаторел в вопросах экономии средств на покупке довольно дорогостоящих деталей для такого вида хобби.

Короче, слушайте
Total votes 64: ↑62 and ↓2+60
Comments32

Магнитный левитатор-ночник

Level of difficultyEasy
Reading time5 min
Views14K

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

Читать далее
Total votes 76: ↑76 and ↓0+76
Comments43

Прекратите превращать программирование в религию (восклицательный знак)

Level of difficultyEasy
Reading time8 min
Views49K

Как вы меня задолбали, священники, святые отцы и монахи с кадилами. Сколько можно это терпеть? Я учился в университете, чтобы получить диплом по специальности, но вместо этого я получил пропуск в какую-то конспирологическую теоретическую секту.

Не верите?

Давайте я покажу вам.
Total votes 239: ↑205 and ↓34+171
Comments302

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

Level of difficultyMedium
Reading time10 min
Views6.2K
После обзора на Tang Primer 20K — стало очевидно, что она вызывает немалый интерес и было решено немедля сделать разбор о том, каким образом можно настроить свой ПК и IDE для того чтобы начать взаимодействовать с отладочной платой, которую я рассмотрел в прошлой статье. Изначально, до момента пока я не познакомился сам лично с ПЛИС от Gowin и не запустил демо-проект — юзабельность, скорость и простота работы с их IDE вызывала сомнение. Но как только попробовал — все опасения были развеяны и я остался доволен.

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

image
Читать дальше →
Total votes 58: ↑58 and ↓0+58
Comments14

Обзор платы Tang Primer 20K на Gowin GW2A-LV18

Level of difficultyMedium
Reading time8 min
Views10K
После получения большого количества отзывов и комментариев на обзор платы на Cyclone IV из части из них четко прослеживались мысль: “А почему Cyclone IV, это же старый хлам!”. В ответ на это я решил сделать обзор на что-нибудь современное, функциональное и очень недорогое. И такой вариант нашелся — это отладочная плата Tang Primer 20K на ПЛИС от небезызвестной компании Gowin. На неё я и сделаю обзор в этой статье и расскажу про примеры проектов, доступных для этой платы.

Кого заинтересовала тема — добро пожаловать под кат! =)

image
Читать дальше →
Total votes 63: ↑63 and ↓0+63
Comments39

Слушаем и декодируем в реальном времени радиосигнал точного времени из интернета

Level of difficultyMedium
Reading time20 min
Views18K
image

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

Технология передачи точного времени по радио не нова. Сигналы точного времени начали передавать практически сразу, как появился радиотелеграф. Сейчас передача сигналов точного времени осуществляется с помощью различных технологий. Помимо радио, информация о времени с разной степенью точности передаётся:

  • в интернете (NTP);
  • в сетях мобильной связи (NITZ);
  • в системах спутниковой навигации GPS, ГЛОНАСС, BeiDou-3, Galileo.

Хотя в этих случаях используются более современные технологии, передача сигналов точного времени по радио продолжает существовать и выполнять свои функции. Промышленностью выпускаются различные устройства, принимающие эти сигналы, например, часы Casion Wave Ceptor. Изучив основы передачи точного времени по радио, вы узнаете много интересного, а также закрепите свои знания в различных областях.
Читать дальше →
Total votes 71: ↑70 and ↓1+69
Comments40

Математическая продлёнка. Самый правильный угол

Level of difficultyEasy
Reading time18 min
Views6.5K

Что такое прямой угол? Почему дома, вагоны, книжки и коробки преимущественно прямоугольные? Почему расстояние от точки до прямой вычисляется вдоль перпендикуляра? Как построить прямой угол без циркуля и линейки? Что такое вертикаль и горизонталь и почему с горизонтального стола ничего не скатывается? Почему декартовы координатные оси располагаются под прямым углом? Почему ортогональные геометрические векторы перпендикулярны? Как работает теорема Пифагора в неевклидовых геометриях?

Мы найдём ответы на все приведённые выше вопросы, используя одно единственное свойства прямого угла.

Что же это за свойство?
Total votes 29: ↑29 and ↓0+29
Comments13

Математическая оптимизация и моделирование в PuLP: задача о назначениях

Level of difficultyEasy
Reading time11 min
Views6.6K

Приветствую! Я, Ложкинс Алексей, консультант и разработчик оптимизационных решений и математических моделей для бизнеса. Это первая в цикле работ обучающая статья, часть личного образовательного проекта "Make optimization simple". Цель проекта – продемонстрировать доступность технологий и показать на примерах, что моделировать можно без глубокого математического фундамента.

Из статьи вы узнаете об основных компонентах математической оптимизационной задачи на примере классической задачи о назначениях, в частности, распределение машин такси на заказы. Далее, я покажу, как реализовать программный прототип математической модели посредством Python и библиотеки PuLP, а также продемонстрирую, как получить оптимальное решение задачи всего в одной строке кода без реализации специальных алгоритмов.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments8

Математическая продлёнка. Математика кривого пропеллера

Level of difficultyEasy
Reading time3 min
Views15K

Вы, наверняка, знаете отчего "гнётся и рвётся" пропеллер на цифровых фото и видео. А какую именно форму принимают лопасти винта? Как зависит их видимая форма от скорости вращения? И причём здесь гиперболы?

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

Читать далее
Total votes 125: ↑125 and ↓0+125
Comments22

Какая ты кривая, или математика вокруг нас

Level of difficultyEasy
Reading time15 min
Views20K

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

Читать далее
Total votes 94: ↑94 and ↓0+94
Comments37

Satellite hunter

Level of difficultyMedium
Reading time6 min
Views7K

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

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments41

Как отправлять и обрабатывать графические уведомления на bash

Level of difficultyMedium
Reading time11 min
Views9K


Всем привет! Сегодня будет разбор интересной задачи: как рисовать красивые графические уведомления и взаимодействовать с ними из скриптов bash.

Демонстрация будет осуществляться не на абстрактных примерах, а на вполне реальной задаче — необходимо уведомить пользователя о скором истечении пароля и дать возможность его сменить. Ситуация не надуманная — компьютер в домене, sssd даёт возможность авторизоваться/аутентифицироваться пользователю, но вот демонстрировать ему информацию о необходимости смены пароля не может — не его уровень. Вроде как gdm готов этим заняться, только весьма специфически — при удачном логине быстро проскакивает малозаметная строчка с информацией о последнем входе и количестве дней до смены. Раньше, когда все пользователи Linux в большинстве своём были сисадминами/гиками, это никого особо не напрягало. А вот сейчас, из-за активного импортозамещения, появилось большое количество «начинающих» пользователей Linux и, как следствие, достаточно глупые заявки — учётка заблочилась, потому что кто-то не поменял пароль вовремя.
Читать дальше →
Total votes 58: ↑57 and ↓1+56
Comments9

Маленькие китайские хитрости, или Чоппер, но не мотоцикл

Level of difficultyMedium
Reading time8 min
Views14K

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

Однако сегодня я обнаружил более интересный кульбит: выпуск вполне себе крупным производителем (достаточно крупным, чтобы продукция его попала к основным дистрибьюторам, от LCSC до российских компаний) микросхемы, которая названием и частью функций мимикрирует под популярный чип Texas Instruments — в достаточной степени, чтобы во многих случаях «прокатило», а также чтобы не слишком опытный разработчик не заметил разницы.

Итак, встречайте: HGSEMI OPA376M, в девичестве — GS8591. К практически одноимённому (суффикса «M» у оригинала не бывает) и очень популярному TI OPA376 не имеющий никакого отношения, кроме цоколёвки и названия.

Читать далее
Total votes 92: ↑87 and ↓5+82
Comments12

Безграничные возможности FFmpeg на примерах

Level of difficultyEasy
Reading time12 min
Views45K

FFmpeg — швейцарский нож для мультимедиа. Совершенно незаменимая программа, которую использует в повседневной жизни почти каждый, даже не зная об этом. Например, вы сняли видео и заливаете на видеохостинг — оно перекодируется и публикуется уже в другом разрешении/формате/размере. Как вы думаете, какая программа выполнила транскодирование? Вполне возможно, что под капотом на сервере работает FFmpeg.

FFmpeg объединяет более 300 видео/аудио/графических кодеков, декордеров, муксеров, демуксеров и фильтров. Благодаря ему вы можете написать собственный видеоплеер в тысячу строчек кода, не разбираясь с кишочками видеообработки.

Это «движок» почти всех современных инструментов для обработки/сжатия/редактирования видео. Они просто предлагают графический интерфейс с кнопками, а ffmpeg делает реальную работу.
Читать дальше →
Total votes 133: ↑130 and ↓3+127
Comments84

Жидкий микрофон, или «в этом доме тебя слушают даже стены»

Level of difficultyEasy
Reading time10 min
Views26K
Картинка Нина Ватолина, Николай Денисов / gallerix.ru

За долгие годы жизни, окружённые привычными вещами, мы даже не задумываемся об этом и принимаем как данность, что они должны выглядеть именно так, как выглядят для выполнения своей функции.

Однако зададимся вопросом, а могут ли привычные для нас предметы быть выполнены в несколько ином, так скажем «форм-факторе» и при этом их функция будет сохраняться?

Читать дальше →
Total votes 77: ↑70 and ↓7+63
Comments76

Припой припою рознь, или Несколько слов о флюсах

Reading time7 min
Views38K

Общаясь сейчас со связистами на предмет «сообщите, кому какой припой нужен», получил достаточно типовой ответ — «хороший, чтобы всё паял». Углублённое обсуждение вопроса вынесло на поверхность несколько запомнившихся людям торговых марок — в первую очередь Asahi — но и только. Про флюсы и их различия сказано ничего не было.

Спектр задач по пайке при этом у связистов простирается от антенно-фидерного хозяйства (кабели, разъёмы), через аксессуары (зарядки, гарнитуры) и до ремонта собственно радиоаппаратуры (SMD-компоненты).

В связи с этим я не только провёл краткий ликбез и показал пару табличек, но и хочу написать про это здесь, чтобы потом было удобно давать ссылку :)

Итак: какие бывают флюсы в припоях, что лучше — ORL0 или ROM1 (я проверил гуглем, обе аббревиатуры на Хабре встречались 0 раз), где искать эту информацию и зачем вообще это надо.

Читать далее
Total votes 141: ↑133 and ↓8+125
Comments92
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity