Программист
Раскрываем секреты загрузочных ISO-образов
В этой статье я хочу поговорить об ISO-файлах, на которых, как известно, распространяются дистрибутивы операционных систем. Начиная писать статью, я немного сомневался в её актуальности, так как я ассоциировал ISO-образы с оптическими дисками, которые, ввиду ряда причин, уходят в прошлое. У меня было стойкое понимание, что ISO-файлы в основном нужны только для хранения образов оптических дисков, которые содержат установщик операционной системы. Но, как оказалось, всё гораздо сложнее и интереснее, особенно применительно к современному железу.
Разработка источника питания от трёхфазной сети 380В
Любители железок – добро пожаловать под кат.
Дебаггинг в реальном времени через JTAG/SWJ-DP для микроконтроллеров на ядре ARM Cortex-M
С некоторых пор фирма Segger предлагает технологию Real Time Terminal (RTT) для своих JTAG адаптеров J-Link. Суть ее в том, что программа на микроконтроллере может выводить и принимать отладочную информацию из JTAG/SWJ-DP порта, как это обычно делается через UART. И тогда нам больше не нужен реальный отладочный UART. Далее чуть подробнее о возможностях этой технологии.
Точечная сварка под микроскопом
Сегодняшний пост будет посвящен аппарату для точечной контактной сварки аккумуляторов типа 18650 и прочих. В ходе соберем такое устройство, разберем основные принципы его работы и детально изучим сваренные места под микроскопом. Аккумуляторам сегодня придётся нелегко. Казалось бы сварочный аппарат, который в буквальном смысле состоит из одного трансформатора и контроллера, что тут может пойти не так?!
Представьте себе, что одним прекрасным утром у вас сдох шуруповёрт. Крутить шурупы отверткой не царское дело, потому нужно решать проблему. Виновниками этого происшествия стали никелевые аккумуляторы, которые преждевременно отправились в Вальхаллу пить вино и сражаться на мечах. На смену им пришли компактные, высокотоковые литий-ионные аккумуляторы, которые по характеристикам в разы превосходят своих предшественников.
О смерти двойной загрузки и о единстве Windows и Linux
Я начал собирать рабочую станцию под задачи машинного обучения. Поставил в неё, кроме прочего, отличный процессор, много памяти, достойную видеокарту. Практически все мои задачи я решал в Ubuntu. Правда, для работы с текстами мне нужен был Microsoft Office. Онлайновый Office тогда ещё не появился, и, давайте называть вещи своими именами, LibreOffice — это просто ужас какой-то. Для меня решением стала двойная загрузка в конфигурации Ubuntu — Windows 10. Мне невероятно понравилось то ощущение свободы, которое испытываешь, переходя с ОС от Apple на Ubuntu. А возможности, которые открываются перед тем, кто сам собирает свой компьютер, практически бесконечны.
Двойная загрузка в течение долгого времени полностью меня устраивала. А когда я миллион раз ей воспользовался, появилась технология WSL (Windows Subsystem for Linux, подсистема Windows для Linux). Когда это случилось, я начал решать некоторые свои Linux-задачи в Windows. Правда, даже так, многого для полноценной работы мне ещё не хватало. Но теперь, с выходом WSL 2, у меня возникает такое ощущение, что новая версия WSL способна кардинальным образом изменить ситуацию. Сегодня я предлагаю поговорить о том, как, с помощью WSL 2, перенести задачи по разработке программ из Linux в Windows 10. Я расскажу о новых возможностях WSL 2, и о том, что можно ожидать от этой подсистемы в будущем.
Разработка и производство троичных микросхем на обычном техпроцессе CMOS
Многие утверждали, что строят троичный компьютер из дискретных компонентов, однако некоторые разрабатывают и заказывают троичные микросхемы уже прямо сейчас :)
По следам горячих частиц. Камера Вильсона
Сегодняшний пост будет посвящен конденсационной Камере Вильсона с помощью которой можно увидеть радиацию в виде треков заряженных частиц. Зрелище завораживающее! В ходе посмотрим, как создать такое устройство, как его правильно запускать и узнаем при каких условиях частицы открывают полный потенциал для стороннего наблюдателя — типа нас с вами.
Из китайской провинции были заказаны все необходимые комплектующие и работа закипела. Забегая вперед скажу, что в последующие дни не выходя из длительного запоя мне хотелось убить китайца, отрезать себе палец и принести в жертву барана который раскидал подводные камни на пути олицетворения радиационных треков. Все оказалось не так просто как кажется с первого взгляда. Потому начну по порядку.
Пайка компонентов 0201. Слабонервных просьба удалиться от экранов
Хочу поделиться опытом пайки плат. Также затрону тему установки совсем маленьких компонентов с типоразмером 0201.
Изучаем STM8S Медленный старт. Часть 0
0. На кого ориентирован материал, зачем и почему
При написании данной статьи, я предполагаю, что читающий умеет:
- Внимательно читать (что редкость)
- Немного работать с англоязычной технической литературой (ну или мотивацию научиться, т.к. первый язык программиста — английский)
- Паять (хотя бы минимальные навыки)
- Программировать на С (опять же, не все так сложно)
- Гуглить (без этого никуда)
- Пользоваться мультиметром и имеет прочие базовые навыки (по типу «не суй пальцы в розетку»)
Целями статьи считаю:
- Обзорно пробежать все этапы разработки системы на базе микроконтроллера
- Дать необходимые вводные для человека практически не посвященного
- По возможности формирование у читающего понимания того, где, что и как найти
JetBrains CLion для микроконтроллеров
Предыстория
CLion — это среда для разработки на С/С++, близкий родственник IntelliJ IDEA и, соответственно, Android Studio.
Я представляю вниманию сообщества перевод моего блог поста, в котором по шагам описано, как использовать эту IDE для написания прошивок микроконтроллеров.
Умная плата для управления силовыми 3-х фазными нагрузками
Продолжаем разработку на микроконтроллерах семейства Kinetis.
Умный дом или здание не ограничиваются только датчиками температуры или освещением. Там также присутствуют лифты, различные подъемники для людей с ограниченными физическими возможностями, грузовые подъемники, ворота, шлагбаумы, насосы, вентиляторы и прочее хозяйство. Традиционно это консервативные области, в них концепции умного дома проникают с трудом. Данная плата позволяет модернизировать устоявшиеся решения и добавить в них интеграцию в IoT (интернет вещей).
Указатели, ссылки и массивы в C и C++: точки над i
Обозначения и предположения
- Я буду предполагать, что читатель понимает, что, например, в C++ есть ссылки, а в C — нет, поэтому я не буду постоянно напоминать, о каком именно языке (C/C++ или именно C++) я сейчас говорю, читатель поймёт это из контекста;
- Также, я предполагаю, что читатель уже знает C и C++ на базовом уровне и знает, к примеру, синтаксис объявления ссылки. В этом посте я буду заниматься именно дотошным разбором мелочей;
- Буду обозначать типы так, как выглядело бы объявление переменной TYPE соответствующего типа. Например, тип «массив длины 2 int'ов» я буду обозначать как
int TYPE[2]
; - Я буду предполагать, что мы в основном имеем дело с обычными типами данных, такими как
int TYPE
,int *TYPE
и т. д., для которых операции =, &, * и другие не переопределены и обозначают обычные вещи; - «Объект» всегда будет означать «всё, что не ссылка», а не «экземпляр класса»;
- Везде, за исключением специально оговоренных случаев, подразумеваются C89 и C++98.
Указатели и ссылки
Указатели. Что такое указатели, я рассказывать не буду. :) Будем считать, что вы это знаете. Напомню лишь следующие вещи (все примеры кода предполагаются находящимися внутри какой-нибудь функции, например, main):
int x;
int *y = &x; // От любой переменной можно взять адрес при помощи операции взятия адреса "&". Эта операция возвращает указатель
int z = *y; // Указатель можно разыменовать при помощи операции разыменовывания "*". Это операция возвращает тот объект, на который указывает указатель
Векторное управление электродвигателем «на пальцах»
— Держать ток под 90 градусов.
Термин «векторное управление» электродвигателями знаком всем, кто хоть как-то интересовался вопросом, как с помощью микроконтроллера управлять двигателем переменного тока. Однако обычно в любой книге по электроприводу глава про векторное управление находится где-нибудь ближе к концу, состоит из кучи волосатых формул с отсылками ко всем остальным главам книги. Отчего разбираться в этом вопросе совсем не хочется. И даже самые простые объяснения всё равно держат путь через дифференциальные уравнения равновесия, векторные диаграммы и кучу другой математики. Из-за чего появляются примерно вот такие вот попытки как-то закрутить двигатель без использования мат.части. Но на самом деле векторное управление – это очень просто, если понимать принцип его работы «на пальцах». А там уже и с формулами разбираться в случае надобности будет веселее.
Утилита Power Stage Designer — инструмент разработчика силовой электроники
Приветствую! Хочу рассказать о весьма интересной для разработчика электроники утилите, которую я уже давно применяю в своей профессиональной деятельности. Утилита Power Stage DesignerTM от компании Texas Instruments — инструмент из «маст хэв» набора разработчика источников питания, преобразователей, силовой электроники. Как следует из названия, утилита предназначена для расчёта параметров силовой части (power stage), а также включает в себя некоторые дополнительные возможности, помогающие в решении смежных задач.
Основные возможности утилиты:
- Расчёт основных параметров преобразователя;
- Калькулятор параметров петли обратной связи «Loop Calculator»;
- Расчёт потерь MOSFET-транзистора «FET Losses»;
- Расчёт конденсаторов «Capacitor Calculator»;
- Расчёт демпфирующих цепей «Snubber Calculator»;
- Расчёт параметров цепей регулирования/стабилизации выходного напряжения «Output Voltage Scaling»;
- Конвертер единиц измерения «Unit Converter».
Курс лекций «Основы цифровой обработки сигналов»
Часто ко мне обращаются люди с вопросами по задачам из области цифровой обработки сигналов (ЦОС). Я подробно рассказываю нюансы, подсказываю нужные источники информации. Но всем слушателям, как показало время, не хватает практических задач и примеров в процессе познания этой области. В связи с этим я решил написать краткий интерактивный курс по цифровой обработке сигналов и выложить его в открытый доступ.
Большая часть обучающего материала для наглядного и интерактивного представления реализована с использованием Jupyter Notebook. Предполагается, что читатель имеет базовые знания из области высшей математики, а также немного владеет языком программирования Python.
Как спроектировать корпус для прибора. Полное руководство
Изучая рунет, я не смог найти ни одной статьи, которая описывала бы ВСЕ этапы разработки и производства корпуса устройства.
Ни одной. Всё, что есть в интернете, касается лишь одного или двух аспектов этого процесса. Ну например: давайте набросаем корпус и распечатаем на 3D-принтере. Или купим типовой и насверлим в нём отверстий. Хотя на Хабре и есть пара материалов, но они тоже не так полны информацией, как могли бы быть.
Но так, чтобы были расписаны все этапы, от идеи до серийного производства, — я такого не нашёл. Поэтому решил написать своё руководство, максимально наполненное фактами, картинками и примерами.
Как спроектировать корпус — схема работы
Вы почти наверняка можете спроектировать корпус для своего устройства самостоятельно. Главное — хорошо представлять себе весь цикл, от идеи до производства.
Разработка корпуса — процесс, разбитый на несколько обязательных этапов. Это даже обсуждать не буду: проверено много раз. Даже если вы не собираетесь связываться с «большим» производством (например, если планируете делать устройство только для себя), всё равно лучше бы вам соблюдать правильную последовательность этапов.
А для сомневающихся в своих силах скажу сразу — вы точно сможете разобраться во всем этом: программное обеспечение шагнуло далеко вперёд, и сейчас не нужно тратить несколько лет, чтобы поставить себе на стол первый прототип корпуса.
Вот схема, по которой мы пойдем:
Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits
Привычный хаос в названиях коммитов. Знакомая картина?
Наверняка вы знаете git-flow. Это отличный набор соглашений по упорядочиванию работы с ветками в Git. Он хорошо документирован и широко распространен. Обычно мы знакомы с правильным ветвлением и много говорим об этом, но, к сожалению, уделяем слишком мало внимания вопросу наименования коммитов, поэтому часто сообщения в Git пишутся бессистемно.
Меня зовут Ержан Ташбенбетов, я работаю в одной из команд Яндекс.Маркета. И сегодня я расскажу читателям Хабра, какие инструменты для создания осмысленных коммитов мы используем в команде. Приглашаю присоединиться к обсуждению этой темы.
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность