Pull to refresh
21
0
Шауэрман Александр @Shamrel

Разнорабочий

Графический спектроанализатор с динамической индикацией на жесткой логике

Level of difficulty Medium
Reading time 7 min
Views 5.1K
Timeweb Cloud corporate blog Circuit design *Manufacture and development of electronics *DIY Electronics for beginners
Case
image

Когда деревья были большими, а я был юным, но в меру упитанным электронщиком, мне доводилось проектировать весьма немаленькие светодиодные штуковины. Естественно, делалось это все на микроконтроллерах. Старые фотографии одной из таких штуковин навеяли мне идею собрать схему спектроанализатора, но без использования микроконтроллеров.

Я поставил для себя задачу получить схему с функциональностью, аналогичной тому, что показано на видео. Также хотелось сэкономить драгоценные микросхемы LM3914, запасы которых у меня истощились. Для этого решено было делать динамическую индикацию. Да, вам не почудилось, динамическая индикация и никаких микроконтроллеров. К тому же, динамическая индикация с легкостью позволит решить задачу одновременного отображения столбиков и точек. Количество светодиодных столбиков я решил ограничить до четырех, чтобы не раздувать слишком большую схему.


Как всегда, под катом вас ждет беспощадная схемотехника на основе только жесткой логики и не менее жестких операционниках.
Читать дальше →
Total votes 60: ↑60 and ↓0 +60
Comments 18

Электронный конструктор, не бьющий током

Reading time 13 min
Views 27K
RUVDS.com corporate blog Circuit design *DIY Electronics for beginners
Tutorial

Дайте угадаю: вы в детстве заворожённо рассматривали печатные платы? Вам было любопытно узнать, как работает этот мини-город из разноцветных деталек? Возможно, у вас был опыт сборки электронных схем по книгам Борисова и Свореня? Советский сорокаваттный паяльник, кусочек канифоли в спичечном коробке? А ещё штаны с намертво влипшей в ткань каплей припоя?

Современные программные средства иллюстрируют процессы, происходящие в электрических цепях, с недосягаемыми для радиолюбителей недавнего прошлого наглядностью и интерактивностью. Они визуализируют протекающие по схеме токи и показывают напряжения в её различных частях. Это снижает порог понимания для людей, которым сложно даются абстрактные знания и язык формул.
Читать и смотреть картинки
Total votes 163: ↑163 and ↓0 +163
Comments 151

Операционные усилители: 10 схем на (почти) все случаи жизни

Reading time 15 min
Views 340K
Circuit design *Manufacture and development of electronics *DIY Electronics for beginners
Всем привет!

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


Читать дальше →
Total votes 139: ↑137 and ↓2 +135
Comments 54

Надежность контрольной суммы CRC16

Reading time 8 min
Views 33K
Programming *C *
Не так давно по долгу службы столкнулся с довольно интересной проблемой.

У нас имеется устройство, которое осуществляет интенсивный обмен по внутренней шине RS485, число проходящих пакетов составляет порядка нескольких тысяч в секунду, каждый пакет имеет длину в 7 байт, два из которых предназначены для хранения контрольной суммы CRC16 в ее CMS варианте (полином = 0x8005, стартовое значение = 0xFFFF). Прием осуществляется в FIFO-буфер, который сдвигается вверх с вытеснением после приема каждого последующего байта. Индикатором получения реального пакета является факт совпадения его контрольной суммы со значением, переданным в самом пакете. Никаких заголовков или дополнительных параметров.

Проблема заключалась в следующем – периодически, примерно раз в 5 минут, при передаче данных проскакивал пакет, данные которого давали выброс данных для одного из каналов, причем чаще всего выброс происходил до одного и того же значения. Сначала мы смотрели в сторону физических коллизий, но дело оказалось в другом – время от времени в буфере, где собирались полученные данные, оказывался пакет, состоящий из конца предыдущего пакета и начала следующего, причем контрольная сумма у такого комбинированного пакета оказывалась верной. То есть, налицо коллизия контрольной суммы: пакет не имеет смысла, но дает верную контрольную сумму.
Читать дальше →
Total votes 51: ↑48 and ↓3 +45
Comments 121

50 оттенков matplotlib — The Master Plots (с полным кодом на Python)

Reading time 39 min
Views 280K
Python *Data visualization *Machine learning *Matlab *
Translation
Те, кто работает с данными, отлично знают, что не в нейросетке счастье — а в том, как правильно обработать данные. Но чтобы их обработать, необходимо сначала проанализировать корреляции, выбрать нужные данные, выкинуть ненужные и так далее. Для подобных целей часто используется визуализация с помощью библиотеки matplotlib.



Встретимся «внутри»!
Читать дальше →
Total votes 67: ↑67 and ↓0 +67
Comments 15

Это просто бомба-2. Li-Ion — как не взлететь

Reading time 14 min
Views 69K
Manufacture and development of electronics *Energy and batteries Electronics for beginners

За последний десяток лет литий-ионные аккумуляторы из дорогостоящей экзотики перешли в разряд самых распространенных источников автономного питания. Неудивительно, что они стали популярными и в руках самодельщиков, в том числе и начинающих. Иногда от технических решений в их творениях волосы становятся дыбом – ведь особенностью аккумуляторов данного типа является их повышенная опасность, в первую очередь – пожарная. Мой рассказ о том, как правильно «готовить» эту «рыбу фугу», чтобы никто не сгорел и не взорвался.

Читать далее
Total votes 66: ↑66 and ↓0 +66
Comments 77

Роботаракан Петя за десять баксов

Reading time 10 min
Views 29K
Programming *C *Programming microcontrollers *DIY Electronics for beginners
Tutorial

Знакомьтесь с Петей, шестиногом о трёх сервоприводах


Продолжаю публикацию статей из серии "ардуино головного мозга". Петя — это очень дешёвый (примерно десять баксов) гексапод. Он может быть прекрасным проектом на один ненастный выходной, который развлечёт как и взрослых, так и детей. Раз уж мы про развлечения, вот вам видеоролик с Петей, танцующим под фанк-музыку:


Читать дальше →
Total votes 104: ↑104 and ↓0 +104
Comments 48

Микрофонный усилитель и УНЧ для ЦАП и АЦП микроконтроллера

Reading time 5 min
Views 30K
Programming microcontrollers *Circuit design *
Tutorial

Усилители сигналов для АЦП и ЦАП микроконтроллера


В статье изложены подходы по построению схемотехники усилителей для микрофона и динамиков в микроконтроллерной технике. Занимаемое элементами усилителей пространство не превышает $5 см^2$




Total votes 34: ↑33 and ↓1 +32
Comments 35

Книга «Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд.»

Reading time 9 min
Views 14K
Издательский дом «Питер» corporate blog Python *Professional literature *
image Привет, Хаброжители! Мы выпустили третью версию #1 Best Seller in Python Programming Amazon — популярного в мире руководства по языку Python.

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

Во второй части вы примените новые знания на практике и создадите три проекта: аркадную игру в стиле Space Invaders, визуализацию данных с удобными библиотеками Python и простое веб-приложение, которое можно быстро развернуть онлайн. Работая с книгой, вы научитесь: ∙ Использовать мощные библиотеки и инструменты Python: Pygame, Matplotlib, Plotly и Django ∙ Создавать 2D-игры разной сложности, которыми можно управлять с клавиатуры и мыши ∙ Создавать интерактивную визуализацию данных ∙ Разрабатывать, настраивать и развертывать веб-приложения ∙ Разбираться с багами и ошибками

Новое издание было тщательно переработано и отражает последние достижения в практиках программирования на Python. Первая часть книги была дополнена новой информацией о f-строках, константах и управлении данными. Во второй части был обновлен код проектов. Структура проектов и код стали более чистыми и понятными, теперь они используют всю мощь популярных библиотек и инструментов, таких как Plotly и Django.

Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 8

Схемы электрические. Типы схем

Reading time 4 min
Views 397K
Circuit design *
КДПВ


Привет Хабр!
Чаще в статьях приводят вместо электрических схем красочные картинки, из-за этого возникают споры в комментариях.
В связи с этим, решил написать небольшую статью-ликбез по типам электрических схем, классифицируемых в Единой системе конструкторской документации (ЕСКД).
Читать дальше →
Total votes 41: ↑40 and ↓1 +39
Comments 61

Самый полезный модуль стандартной библиотеки Python, о котором все постоянно забывают

Reading time 2 min
Views 40K
Python *Programming *Perfect code *
Translation


В Python много отличных доступных «из коробки» модулей. Один из самых полезных — collections. Он содержит «специализированные типы для создания контейнеров», являющихся альтернативами универсальным dict, list, set и tuple. Ниже мы рассмотрим три содержащихся в модуле класса, с которыми большинство питонистов сталкивались, но постоянно забывают применять на практике.

Читать дальше →
Total votes 58: ↑49 and ↓9 +40
Comments 26

Неблокирующая отрисовка и обновление графиков с помощью bokeh

Reading time 3 min
Views 2.7K
Debugging *Data visualization *
image

Есть у меня один Python-скрипт с расчётами. Там был цикл примерно на 2000 итераций, каждая из которых считалась несколько минут.

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

Проще всего проделать это с помощью bokeh. Точнее, с помощью bokeh-сервера для отрисовки графиков. Как — сейчас расскажу.

Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Comments 5

ACPI: Добавление устройств без перекомпиляции ядра

Reading time 4 min
Views 4K
Development for Linux *Development for IOT *
Как выясняется, далеко немногие знают о существовании режима оверлеев в ACPICA и их поддержки в ОС Linux. Я хочу восполнить этот пробел на примере добавления ведомых устройств I2C в систему без перекомпиляции.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 4

Разработка boost преобразователя на DSP: принцип работы, расчеты, макетирование

Reading time 15 min
Views 51K
Programming microcontrollers *Circuit design *Manufacture and development of electronics *DIY Electronics for beginners
Tutorial
Я уже писал подобную статью про топологию buck, то есть про понижающий преобразователь, сегодня рассказ пойдет о том, как сконструировать повышающий (boost) преобразователь напряжения с управлением не на аналоговом ШИМ-контроллере, а на DSP/МК. Макет будет собран на основе моего "комплекта разработчика" с STM32F334R8T6 на борту и изолированным драйвером полумоста.


Total votes 65: ↑64 and ↓1 +63
Comments 94

Простейшее профилирование памяти на STM32 и других микроконтроллерах

Reading time 7 min
Views 39K
Manufacture and development of electronics *Electronics for beginners
«С опытом приходит стандартный, научный подход к вычислению правильного размера стека: взять случайное число и надеяться на лучшее»
— Jack Ganssle, «The Art of Designing Embedded Systems»


Привет, Хабр!

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

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

Такие контроллеры позволяют делать вполне себе серьёзные штуки (ну вот у нас, например, такая вполне себе годная измериловка сделана на STM32F042K6T6 с 6 КБ ОЗУ, от которых свободными остаются чуть больше 100 байт), но при обращении с памятью при работе с ними нужна определённая аккуратность.

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

Читать дальше →
Total votes 58: ↑57 and ↓1 +56
Comments 230

Делаем ST-Link V2.1 из китайского ST-Link V2

Reading time 3 min
Views 123K
Programming microcontrollers *DIY Lifehacks for geeks Electronics for beginners
Tutorial
Sandbox
Привет, Хабр!

В данной статье расскажу как модифицировать ST-Link V2 до ST-Link V2.1.

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

Кому интересно — прошу под кат.
Читать дальше →
Total votes 36: ↑36 and ↓0 +36
Comments 103

Опытное производство электроники за минимальный прайс

Reading time 10 min
Views 56K
Manufacture and development of electronics *Electronics for beginners
Привет, Хабр!

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


А вот, например, совет держать включённый паяльник за ручку — полезный!

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

  • регулярно надо делать 5-10-50-100 плат с SMD-компонентами
  • по возможности быстро
  • по возможности дёшево

Если вы можете позволить себе — что по срокам, что по деньгам — услуги «Резонита» или «Компэла» (сотрудничающего, впрочем, с «Резонитом») по сборке модулей под ключ, то текст ниже в общем и целом не для вас. Однако, на практике даже в достаточно крупных компаниях люди, занимающиеся опытными образцами, часто собирают их сами — потому что это занимает пару дней вместо недели, потому что всегда можно на ходу что-то подправить, потому что не надо бегать между начальством и бухгалтерией со счетами и актами… В мелких же вопрос упирается попросту в деньги.

Тем более, что в наше время базовое оборудование, позволяющее делать подобные вещи достаточно быстро и достаточно дёшево, доступно даже любителю-одиночке.
Читать дальше →
Total votes 170: ↑167 and ↓3 +164
Comments 413

Субподряд? Круто, ты попал

Reading time 7 min
Views 21K
Start-up development Legislation in IT
Субподряд достаточно популярная тема на просторах нашей экономики. Причём не только для больших, но и для маленьких проектов. Ни для кого не секрет, как достаточно популярные фрилансеры берут хороший заказ благодаря своей репутации, а потом спускают его своим менее удачливым коллегам. И имеют неплохой доход без особых усилий (да, я знаю, что они трудом эту репутацию заработали). Кстати, для некоторых это тоже будет открытием, что их схема называется субподрядным договором (хотя в шапке соглашения написано вообще что-то другое) и достаточно хорошо урегулирована законодательством. Что это такое и как с этим надо работать? Об этом и идёт речь дальше.

image
Читать дальше →
Total votes 26: ↑24 and ↓2 +22
Comments 13

Проверка корректности адресов в памяти на Cortex-M0/M3/M4/M7

Reading time 9 min
Views 13K
Programming microcontrollers *Manufacture and development of electronics *Electronics for beginners
Привет, Хабр!

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


Одна из весьма полезных и при этом почему-то в готовом виде нигде не описанных возможностей на микроконтроллерах Cortex-M (всех) — это возможность проверки корректности адреса в памяти. С её помощью можно определять размеры флэша, ОЗУ и EEPROM, определять наличие на конкретном процессоре конкретной периферии и регистров, прибивать упавшие процессы при сохранении общей работоспособности ОС и т.п.
Читать дальше →
Total votes 72: ↑72 and ↓0 +72
Comments 41

Силовой модуль разработчика. Работа над ошибками

Reading time 8 min
Views 31K
Programming microcontrollers *Circuit design *Manufacture and development of electronics *DIY Electronics for beginners
Приветствую! В моих предыдущих статьях (раз и два) вы ознакомились с силовым модулем полумоста, который позволяет построить преобразователь практически любой топологии. Я показал как можно быстро и без особых усилий получить макет силового преобразователя и обкатать идею, а в процессе их реализации были выявлены определенные недостатки.

Увы, но даже в достаточно простых устройствах требуется 2-я ревизия железа, чтобы «подчистить» плохие реализации того или иного функционала, улучшить компоновку и конструктив. В итоге была проведена работа по оптимизации технических параметров и по улучшению удобства работы с модулем. Сегодня в статье я как раз расскажу подробнее о данных изменениях, объясню почему именно так, а в конце статьи вы увидите обновленные исходники. Поехали!



Читать дальше →
Total votes 61: ↑58 and ↓3 +55
Comments 76

Information

Rating
Does not participate
Date of birth
Registered
Activity