Pull to refresh
4
0.3

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

Send message

Методы борьбы и обеспечения работы электронных устройств при повышенном напряжении в сети

Level of difficultyMedium
Reading time7 min
Views6.9K

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

Так же как бывают разные причины возникновения подобного, существуют и разные методы борьбы с этим и вот об этом мы сегодня и поговорим.

Читать далее

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.

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

Малоизвестные возможности языка C

Reading time4 min
Views25K

Если у вас несколько лет опыта программирования на языке C, то, вероятно, вы гораздо более уверены в своих знаниях этого языка, чем если бы вы провели столько же времени, работая с C++ или Java. И язык C, и его стандартная библиотека довольно близки к к минимально возможному размеру.

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

Читать далее

Реализуем с нуля функцию косинуса на языке C

Level of difficultyHard
Reading time10 min
Views16K

Я изучил, как реализовать функцию косинуса при помощи нескольких разных подходов. Одна из реализаций почти в три раза быстрее, чем math.h, но придётся смириться с точностью до четырёх знаков после запятой.

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

Моё исследование началось с того, что мой друг и коллега Стивен Марц работал над ядром операционной системы и я предложил, чтобы он отрисовал на экране функцию косинуса. Я часто использую косинус в качестве «hello, world» для графических приложений. Возникла проблема: его ядро не задействовало стандартную библиотеку C (а значит, прощай math.h!), а целевой платформой являлась архитектура RISC-V (а значит, никаких подобий команды fcos Intel!).

Так началось моё долгое приключение.
Читать дальше →

Конспект. STM32. CMSIS. LTDC

Level of difficultyEasy
Reading time25 min
Views9.5K

Данный конспект (гайд) предназначен для лиц, желающих ознакомиться с конфигурацией LTDC модуля микроконтроллеров STM на примере STM32F429ZIT6 подключенному по 16-битному RGB565 интерфейсу к дисплею TM043NBH02 с разрешением 480x272 и использованием одного слоя без внешней памяти для видеобуфера.

Читать далее

Проверка антенн при помощи векторного анализатора NanoVNA-F V2

Level of difficultyEasy
Reading time7 min
Views35K

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

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

Читать далее

6. Устойчивость систем автоматического управления. 6.6 Понятие об областях устойчивости

Level of difficultyMedium
Reading time12 min
Views14K

Продолжаем публикацию лекций Олега Степановича Козлова по предмету "Управление в Технических Системах".

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

1. Введение в теорию автоматического управления.2. Математическое описание систем автоматического управления 2.1 — 2.32.3 — 2.82.9 — 2.13

3. ЧАСТОТНЫЕ ХАРАКТЕРИСТИКИ ЗВЕНЬЕВ И СИСТЕМ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ РЕГУЛИРОВАНИЯ. 3.1. Амплитудно-фазовая частотная характеристика: годограф, АФЧХ, ЛАХ, ФЧХ3.2. Типовые звенья систем автоматического управления регулирования. Классификация типовых звеньев. Простейшие типовые звенья3.3. Апериодическое звено 1–го порядка инерционное звено. На примере входной камеры ядерного реактора3.4. Апериодическое звено 2-го порядка3.5. Колебательное звено3.6. Инерционно-дифференцирующее звено3.7. Форсирующее звено.  3.8. Инерционно-интегрирующее звено (интегрирующее звено с замедлением)3.9. Изодромное звено (изодром)3.10 Минимально-фазовые и не минимально-фазовые звенья3.11 Математическая модель кинетики нейтронов в «точечном» реакторе «нулевой» мощности

4. Структурные преобразования систем автоматического регулирования.

5. Передаточные функции и уравнения динамики замкнутых систем автоматического регулирования (САР).

6. Устойчивость систем автоматического регулирования. 6.1 Понятие об устойчивости САР. Теорема Ляпунова. 6.2 Необходимые условия устойчивости линейных и линеаризованных САР. 6.3 Алгебраический критерий устойчивости Гурвица. 6.4 Частотный критерий устойчивости Михайлова. 6.5 Критерий Найквиста.

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

Читать далее

Фантомный double в прошивках для ядер Cortex-M*

Level of difficultyMedium
Reading time8 min
Views14K

В последнее время появилось много микроконтроллеров на ядрах ARM Cortex-M*, которые поддерживают аппаратную реализацию математики плавающей запятой (FPU). В основном FPU работают с одиночной точностью (float) и её вполне достаточно для работы с сигналами, полученными с АЦП. FPU позволяет забыть о проблемах дискретизации и проблемах переполнения целочисленных вычислений. FPU быстр - все математические операции с одиночными float, кроме деления и взятия корня, занимают на Cortex-M4F один такт. Поэтому после перехода на Cortex-M4F мы вздохнули свободно и стали писать математику на float. Как же мы удивились, найдя в скомпилированном коде математические операции над double с программной, очень медленной эмуляцией.

В статье рассказывается, как обнаружить и исправить присутствие double в прошивках, где ядро аппаратно поддерживает тип float, но не поддерживает double.

Работа ведётся в среде IAR Embedded Workbench на примере реального кода на языке Си.

Читать далее

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

Level of difficultyEasy
Reading time11 min
Views38K

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

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

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

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

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

Как сделать Private Routes с авторизацией через JWT token

Level of difficultyMedium
Reading time8 min
Views35K

Статья о JWT-авторизации и создании приватных страничек сайта для авторизованных пользователей. Простым и понятным языком. Даже твой кот сможет написать эту фичу по этому туториалу :)

Читать далее

Я написал книгу

Level of difficultyEasy
Reading time2 min
Views30K

Я написал книгу и назвал ее "Электрообереги". Она рассказывает про те замечательные устройства в электрощитке, что спасают нас от погибели. Начиная от предохранителей, которые существуют более века, заканчивая новейшими устройствами защиты от дугового пробоя. (Включая АВ, АВДТ, ВДТ, УЗО, РН, УЗИП, СГД и т.д.) Рассказ построен так, чтобы даже блондинке стало ясно как эти устройства устроены и зачем они нужны. Кто давно на меня подписан подобные посты уже видел - книжка представляет собой собранные воедино и причесанные публикации за последние два года. Еще я перерисовал все сторонние иллюстрации и теперь книжка лицензионно чиста - ни один мерзкий копираст не подкопается.

А еще сегодня у меня день рождения. И это хороший повод сделать подарок миру - книжка публикуется под открытой лицензией CC BY-NC-SA, тоесть ее можно распространять совершенно свободно.

Читать далее

Программирование контроллера сервоприводов MC50. Развёртывание промежуточного ПО

Level of difficultyHard
Reading time13 min
Views3.5K

Схема и плата контроллера - в этой статье.

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

Читать далее

Царица наук: математика, беспощадная ты мука

Level of difficultyEasy
Reading time7 min
Views38K

Дайджест про то, как и зачем учить математику, 
если ты взрослый

С самых юных лет было очевидно, что я — естественнонаучник: ребёнок, выросший в семье инженеров и с неподдельным интересом обожающий всё живое, зелёное и биологическое. Дальше началось смешное: во дворе была филологическая гимназия, а чего далеко ходить... В свою очередь, гимназии нужны были олимпиадники и вот она, математика и мама с грозными задачниками, ибо в школе нас просто не учили (была вообще импортная адаптивная программа с усеченной геометрией). Для школы и вуза стараний родителей хватило, для олимпиад нет: физика шла на ура, а математика с приличным скрипом. Как я сейчас говорю, «не щёлкало». Сейчас мне 37 лет и я нет‑нет, да возвращаюсь к математике, хотя она мне точно не нужна ни в работе, ни в увлечении.

Читать далее

GitFlow в его простоте от dev до prod

Level of difficultyMedium
Reading time5 min
Views27K

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

Этот пост не будет содержать каких-то особых ноу-хау и киллер-фич. В нём я расскажу наиболее простую и понятную (лично мне) практику релизных циклов на основе git flow. И постараюсь объяснить каждое своё решение и каждый подход.

Читать далее

Простой испытатель ферритов

Reading time7 min
Views23K

Реалии нашей жизни поменялись. Если раньше мы шли в магазин и покупали нужное ферритовое кольцо для трансформатора, то теперь порой приходится довольствоваться тем, что удалось найти. В ящике стола, в лампочке-экономке из ближайшей мусорки, у китайцев на Алиэкспрессе... Зачастую без маркировки, тип которого известен лишь приблизительно. И вопросы, вопросы... Действительно ли из Китая выслали то, что просили? Подойдет ли для двухтактного трансформатора это зеленое кольцо? А что будет, если намотать трансформатор на феррите с мю 10000? Каким выбрать число витков на вольт, когда формула из статьи в журнале "Радио" дает 0,4 витка на вольт, а популярная программа -- 1,2 витка?

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

Читать далее

Как изучать SQL в 2023 году

Level of difficultyEasy
Reading time7 min
Views131K

В 2023 году SQL (Structured Query Language) остается одним из самых популярных языков программирования, используемых в области баз данных и аналитики данных. Изучение SQL может быть полезным как для тех, кто только начинает свой путь в IT, так и для опытных профессионалов, которые хотят расширить свои знания и навыки. В этой статье мы рассмотрим несколько советов и ресурсов, которые помогут вам изучать SQL в 2023 году, и оставаться в курсе последних тенденций и изменений в этой области.

Согласно данным сайта Indeed.com, в 2023 году требования к кандидатам в вакансиях, связанных с базами данных и анализом данных, включают знание SQL в качестве обязательного навыка. Некоторые из таких популярных вакансий включают в себя SQL Developer, Data Analyst, Database Administrator, Business Intelligence Analyst и другие. Согласно данным сайта Glassdoor, зарплата специалистов, владеющих навыками работы с SQL, может составлять от $50 000 до $100 000 в год в зависимости от региона и уровня опыта. В связи с этим, изучение SQL может быть полезным для тех, кто хочет улучшить свои шансы на рынке труда и получать высокую заработную плату в IT-сфере.

Читать далее

Подход к созданию автономной интеллектуальной фабрики

Level of difficultyMedium
Reading time17 min
Views3.3K

Аннотация

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

Статья начинается с краткого обзора литературы.

Во второй главе обсуждается разница между автономностью и автоматизацией.

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

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

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

В шестой части приведены программные средства и технологии, использованные при создании автономной фабрики.

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

Читать далее

Вывод формулы для двустороннего определения дальности между UWB трансиверами

Level of difficultyHard
Reading time4 min
Views1.7K

Настал третий за 12 лет случай, когда в профессии программист-микроконтроллеров понадобилось вспомнить школьную математику. В этом тексте я представил перевод AppNote(а) "The mathematics of two-way ranging". Также добавил свои комментарии в те места, которые неочевидны при первом прочтении.

Тема нужна для определения расстояния между двумя UWB радио трансиверами, которые могут определять моменты времени прихода и отправки радиоволны. Такое умеют делать UWB трансиверы, например чип DW1000 и DW3000.

Читать далее

Понимаем обычное дерево отрезков

Level of difficultyMedium
Reading time13 min
Views15K

Всем привет! Изучив несколько статей по этой теме, у меня остались вопросы, и некоторые моменты по-прежнему были не понятны, поэтому я решил написать свою, которая, как мне кажется, была бы понятна тем, кто не силен в спортивном программировании. В ней я объясняю, как устроено дерево отрезков. Примеры с кодом будут приведены на языке C++, однако на объяснение это не влияет.

Читать далее

Нужен ли ConfigureAwait?

Reading time8 min
Views27K

image


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


Одна из многословных конструкций .NET связана с деталями реализации асинхронности и обросла кучей мифов. Про неё спрашивают на собеседованиях, код-ревью, делают обязательной, добавляя в правила линтера. Это .ConfigureAwait(false), сопровождающий каждый await в коде.


В этой статье я расскажу, зачем нужен ConfigureAwait(false) и как обойтись без него.

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

Information

Rating
3,117-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity