Pull to refresh
24
0

Схемотехник/программист МК

Send message

USB на регистрах: bulk endpoint на примере Mass Storage

Reading time13 min
Views11K


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

В прошлый раз мы познакомились с общими принципами организации USB и собрали простое устройство, иллюстрирующее работу конечной точки типа Control. Пришло время изучать следующий тип — Bulk. Конечные точки такого типа предназначены для обмена большими объемами информации, причем чувствительной к надежности, но не скорости обмена.

Классические примеры — запоминающие устройства и переходники вроде USB-COM. Но переходники требуют еще наличия конечной точки типа Interrupt, которую мы пока «не проходили», так что остановимся на эмуляции флешки. Точнее, двух флешек одновременно.
Читать дальше →

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

Reading time13 min
Views9.6K


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


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

Читать дальше →

AbortController для отмены запросов при смене страницы (SPA)

Level of difficultyMedium
Reading time2 min
Views7.7K

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

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

Читать далее

Разделяй и властвуй. Повышение эффективности алгоритмов. Часть 3

Level of difficultyMedium
Reading time9 min
Views2.5K

В прошлой части мы рассмотрели общий подход к расчету эффективности алгоритмов с принципом "разделяй и властвуй", а также применение принципа к различным базовым алгоритмам.
Сегодня поговорим о следующем приеме. Как известно, составная часть принципа, это поделить задачу на подзадачи. Мы ни разу не касались, как именно делить. Просто делили на равные части. Но тут вот и есть нюанс, если поделить не абы как, а используя какую-то стратегию, то можно добиться применения принципа там, где это даже не очевидно. И именно эта тема станет предметом данной статьи на примере задачи умножения полиномов.
Как и в предыдущих частях, я упрощаю математическую часть, опуская различные нюансы и частные случаи, с целью сохранить научно-популярный характер публикации. При этом я пытаюсь сохранить основные элементы алгоритмов и математических основ. Я хочу подать информацию в кратком доступном виде, в виде математического пересказа, и если у кого-либо возникнет интерес, тот может легко найти полные и строгие математические выкладки по данной теме.

Читать далее

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

Level of difficultyMedium
Reading time21 min
Views18K

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

Читать далее

Полное руководство по логированию в Node.js с помощью Pino

Level of difficultyEasy
Reading time37 min
Views21K

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

Pino — это мощная платформа ведения логов для Node.js, обладающая молниеносной скоростью и широкими возможностями. Фактически именно скорость Pino и завоевала ему место логгера по-умолчанию в open-source веб-сервере Fastify. Также Pino способен очень просто интегрироваться с другими Node.js-фреймворками, что делает его лучшим выбором для всех разработчиков, ищущих надежное и гибкое решение для ведения логов.

Читать далее

Как крутить шаговый двигатель с помощью Blink

Level of difficultyMedium
Reading time15 min
Views16K

Есть много библиотек, которые позволяют управлять шаговыми двигателями. В данной статье речь будет идти про биполярный шаговый двигатель с драйвером с интерфейсом step/dir (импульс/направление). Что такое биполярный шаговый двигатель намного лучше расскажут другие статьи на Хабре, для этого достаточно вбить в поисковик (речь про поисковик Хабра) "шаговый". А в этой статье будет рассказано про практическую реализацию сигналов (импульс/направление) на отладочной плате из серии Arduino Nano.

Читать далее

16 простых и эффективных правил дизайна UI

Level of difficultyEasy
Reading time11 min
Views38K

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

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

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

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

Самый быстрый способ обучения — это практика, так что приступим!
Читать дальше →

PowerShell и LiveJournal (ЖЖ): скачивание постов журнала

Level of difficultyMedium
Reading time15 min
Views2.7K

У блог-платформы «LiveJournal» есть набор удалённых функций и протокол их вызова для сторонних веб-клиентов. В этой статье я описываю, какие из этих функций удобно использовать для загрузки к себе на компьютер всех постов своего журнала (блога). Также я даю пояснения к алгоритму загрузки всех постов, показанному в виде псевдокода в документации к клиент-серверному протоколу «LiveJournal», и привожу его перевод на русский язык с некоторыми изменениями.

В конце статьи я описываю свою практическую реализацию алгоритма загрузки постов на языке PowerShell. В статье есть иллюстрация работы полученного скрипта и ссылка на его исходный код на веб-сервисе «GitHub».

Читать далее

Внешний вид и скриншоты в пользовательской документации. Как надо и не надо делать

Reading time8 min
Views12K


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

Читать дальше →

Открытый проект файловой системы для внутренней памяти STM32H

Reading time8 min
Views9K

Зачем ставить внешнюю IC памяти или SD карту если в микроконтроллере осталось много свободной Flash памяти! 

Микроконтроллеры семейства STM32H снабжены двумя независимыми банками Flash памяти и это очень удобно. В одном банке можно расположить программный код, а в другом временные перезаписываемые данные.  

Как сделать из внутренней Flash подобие EEPROM сравнительно неплохо написано в этом апноуте от ST. Но с некоторого уровня комплексности встроенного ПО хранить данные в именованных файлах удобнее чем в жёстких структурах. Файлы упрощают реюзинг, облегчают поддержку преемственности версий, апгрейды и даунгрейды. Файлы освобождают от хлопот с планированием размещения во флэш и разруливанием конфликтов размещения, особенно если приложение модульное и модули разрабатываются отдельно. 

Читать далее

Быстрая разработка для микроконтроллеров в Simulink на примере полифункционального зарядника

Reading time12 min
Views13K

Полифункциональный зарядник - хорошая платформа чтобы показать преимущество гибридной графической нотации перед текстовой нотацией С/С++ . Для этого используется MATLAB Simulink под Windows. Метод разработки напоминает SIL (software-in-the-loop), но модель выполняется на ПК в реальном времени и при взаимодействии с реальным железом.

Читать далее

GitHub Copilot — он вам не нужен

Reading time5 min
Views34K

Я его попробовал и уверяю вас: он вам не подходит. И у меня есть несколько очень веских аргументов, почему это именно так…

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

Читать далее

Inkscape с 0 до Pro за 5 дней

Reading time17 min
Views60K

Создал мини курс по программе для векторной графики Inkscape в 2022.

Разработал методические материалы для изучения темы «Кодирование и обработка графической и мультимедийной информации» в школьном курсе информатики.

«Векторные графические редакторы позволяют пользователю создавать и редактировать векторные изображения непосредственно на экране компьютера, а также сохранять их в различных векторных форматах, например, CDR, AI, EPS, WMF или SVG». «Inkscape - редактор векторной графики, аналогичный по своим возможностям таким программам, как Adobe Illustrator, Corel Draw и другим».

Читать далее

Мега-Учебник Flask, Часть XI: Чуть-чуть косметики (издание 2018)

Reading time9 min
Views51K

Miguel Grinberg




Туда Сюда


Это одиннадцатая часть Мега-Учебника Flask, в которой я расскажу вам, как заменить базовые шаблоны HTML новыми, основанными на структуре пользовательского интерфейса Bootstrap.

Читать дальше →

Наша методика расчета стека печатных плат

Reading time7 min
Views29K
Пока мы заканчиваем последние приготовления к серийному выпуску сервера VESNIN, хочу провести образовательный эксперимент — опишу наши внутренние методики и рекомендации для расчёта стека печатных плат. С одной стороны, приятно, если наш опыт будет кому-то полезен. С другой, мы сами рады получить дельные комментарии, чтобы улучшить нашу практику. Если интересно прочитать и обсудить — добро пожаловать под кат.


Погрузиться в детали

Анатомия широты. 1 часть

Reading time7 min
Views6K

Если кратко, то постараюсь на примере рассуждений и анализа полезной технологии научить читателя пользоваться новейшим модулем математического моделирования электронных схем Mixed SIM программного комплекса Altium Designer...

“Нитка с иголкой в ткани энергии.”

Как сделать ОС для микроконтроллера

Reading time33 min
Views26K

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

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

Читать далее

Разработка контроллера резервного питания. Схемотехника

Reading time10 min
Views19K

Цель - разработка универсального контроллера, обеспечивающего резервное питание 220 В переменного и 24 В постоянного тока в случае отключения сетевого напряжения. Вот такого как на рисунке.

Читать далее

Векторное управление электродвигателем «на пальцах»

Reading time17 min
Views354K
— Что такое векторное управление?
— Держать ток под 90 градусов.


Термин «векторное управление» электродвигателями знаком всем, кто хоть как-то интересовался вопросом, как с помощью микроконтроллера управлять двигателем переменного тока. Однако обычно в любой книге по электроприводу глава про векторное управление находится где-нибудь ближе к концу, состоит из кучи волосатых формул с отсылками ко всем остальным главам книги. Отчего разбираться в этом вопросе совсем не хочется. И даже самые простые объяснения всё равно держат путь через дифференциальные уравнения равновесия, векторные диаграммы и кучу другой математики. Из-за чего появляются примерно вот такие вот попытки как-то закрутить двигатель без использования мат.части. Но на самом деле векторное управление – это очень просто, если понимать принцип его работы «на пальцах». А там уже и с формулами разбираться в случае надобности будет веселее.
Читать дальше →

Information

Rating
8,766-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity