• CDC+MSC USB Composite Device на STM32 HAL

    • Tutorial
    image

    Мне хотелось бы верить, что хотя бы половина читателей может расшифровать хотя бы половину названия статьи :) Кто не в курсе — поясню. Мое устройство должно реализовывать сразу две USB функции:

    • Mass Storage Device (он же Mass Storage Class — MSC). Я хочу, чтобы мой девайс прикидывался обычной флешкой и отдавал файлики с данными, которые лежат на SD карте.
    • Другая функция это виртуальный COM порт (он же в терминологии USB называется Communication Device Class — CDC). Через этот канал у меня идет всякий дебажный вывод, который удобно смотреть обычным терминалом.

    В большинстве примеров по работе с USB реализуется только один тип устройства — флешка, мышка, кастомное HID устройство или виртуальный COM порт. А вот найти вменяемое объяснение как реализовать хотя бы две функции одновременно оказалось не так просто. В своей статье я хотел бы восполнить этот пробел.

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

    Итак, поехали!
    Читать дальше →
  • Догуглиться до senior-программиста за четыре года: метод «Школы 21»

      Есть один простой способ научить человека плавать: добираетесь с ним туда, где поглубже, и бросаете в воду. Эффективность может быть колоссальной. В 2013 году в Париже была открыта частная некоммерческая школа программирования L’Ecole 42 (Школа 42), использующая аналогичный подход. Отсутствие учителей и строгого учебного плана — лишь глубокий проектный омут с дедлайнами на дне. Аналогичные школы открыли в Калифорнии, Румынии, Южной Африке, Украине, и практически везде проект стал успешным.

      В России при поддержке Сбербанка открывается «Школа 21», использующая такой же подход. И в этом посте мы расскажем о ней абстрактному скептику.


      Студенты Школы 42. Фото San Francisco Chronicle
      Читать дальше →
    • Использование многослойной нейронной сети для обхода препятствий в играх

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

      Читать дальше →
    • Съёмка показаний счетчика на телефон с последующим распознаванием

      Вступление


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

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

      Решение простое — оставить ключи родственникам/друзьям/соседям, чтобы они могли приехать и включить котел, случись какая-нибудь неприятность. Хорошо, если есть сосед, который будет каждый день заходить и проверять, всё ли в порядке. А если нет? Или он тоже решит уехать куда-нибудь на выходные?

      Итак, я решил наладить выкладывание показаний счётчика куда-нибудь в Интернет, чтоб я мог находясь где-нибудь в дальней поездке периодически проверять, тратится ли газ, а если вдруг перестанет тратиться, то срочно звонить родственникам/друзьям/соседям (или кому там я оставил ключи), чтобы приехали и нажали кнопку.

      Конечно, после простого выкладывания показаний в Интернет я решил не останавливаться на достигнутом и замутил ещё распознавание показаний и графическое представление, об этом читайте в части 2 данного топика.
      Читать дальше →
    • Необычные материалы в DIY. Стоматология + электроника =? Часть 1

        Нет ничего прекраснее, чем сидеть в лаборатории и гладить толстую плешивую крысу в поисках вдохновения.



        Итак, сегодня у нас будет немного необычный DIY-пост. Делать руками мы ничего не будем. Arduino и прошивок в 30 строк на Brainfuck тоже не будет. Мы попробуем взглянуть на привычные вещи под необычным углом.
        Все мы привыкли к классическим для этой области материалам вроде текстолита, оловянного припоя и прочих радостей любителей повыпиливать лобзиком потравить платы. В этой статье мы попробуем найти интересные альтернативы привычным техпроцессам в несколько непривычной области — стоматологии. Зубные техники и стоматологи работают с целой кучей полимеров, композитов и много с чем еще. Я не буду давать конкретных рецептов применения, а просто дам общее направление для самостоятельных экспериментов.

        В сегодняшней программе:
        Материалы
        • Силиконы. Как кремний, только интереснее.
        • Супергипс. Гипсее всех гипсов.
        • Пластмассы. Отличный розовый цвет.


        В следующей части:
        Материалы
        • Фотокомпозиты. Сам себе 3D принтер.
        • Ортофосфорная кислота для травления

        Оборудование и инструменты
        • Алмазные и твердосплавные боры
        • Портативные микромоторы. Замена дремеля
        • Обратные пинцеты, зонды и другая мелочь

        Читать дальше →
      • Некоторые алгоритмы под капотом мозга

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

        Так что, если кто-то любит искусственные нейросети и хочет поискать вдохновения в естественных, эта статья может подойти. Все охватить одной статьей, понятно, не удалось — данных уж очень много.
        Читать дальше →
      • Корректор коэффициента мощности для ИБП on-line. Часть 6

          Часть 1
          Часть 2
          Часть 3
          Часть 4.1
          Часть 4.2
          Часть 5

          Пролог


          И снова здравствуйте!..
          К сожалению статья моя задержалась, т.к. возник срочный проект по работе, а так же появились интересные трудности при реализации корректора коэффициента мощности (далее ККМ). А вызваны они были следующим — мы в своем производстве для управления ККМ используем «заказную» микросхему, которую нам под наши задачи производит дружественная особенно в 1941-м Австрия и соответственно в продаже ее не встретить. Поэтому встала задача переделать данный модуль под доступную элементарную базу и мой выбор пал на микросхему ШИМ-контроллер — L6561.
          Почему именно она? Банальная доступность, вернее нашел ее в «Чип и Дип», почитал даташит — понравилась. Заказал сразу 50 шт, т.к. дешевле и в своих любительских проектах у меня уже есть несколько задач для нее.

          Теперь о главном: в данной стать я расскажу как почти с нуля вспоминал о проектирования однотактных преобразователей (казалось бы при чем тут они), почему убил десяток ключей и как этого избежать вам. Данная часть расскажет теорию и что бывает если пренебрегать ей. Практическая же реализация выйдет в следующей части как я и обещал вместе с зарядным устройством, т.к. они по сути являются одним модулем и тестировать их надо вместе.
          Забегая вперед скажу, что для следующей части уже заготовил пару десятков фотографий и видео, где мое ЗУ не надолго «переквалифицировалось» сначала в сварочный аппарат, а затем в блок питания для «козла». Те, кто работают на производстве поймут что это за зверь и сколько он потребляет для нашего согревания)))

          А теперь к нашим баранам…
          Читать дальше →
        • Проектирование мощного ИБП двойного преобразования (on-line). Часть 1

          Пролог


          Хотелось бы поприветствовать всех кто увлекается и занимается электроникой! Данная серия публикаций будет посвящена полному циклу проектирования мощного источника бесперебойного питания мощность 3,2 кВт и самое главное — с чистым синусом на выходе.

          Немного о себе расскажу — работаю инженером-электронщиком на предприятии, занимающимся производством станков и линий с ЧПУ, а так же мощных импульсных устройств: ИБП, стабилизаторы напряжения, инверторы. Вместе с предприятием прошел путь от проектирования систем от 1 кВт и до 1135 кВт.

          Мои публикации будут носить больше учебный характер с попытками донести до интересующихся основы силовых расчетов, трассировки плат и ВЧ цепей, программирование микроконтроллеров STM32, а так же ПЛИС от Altera. И конечно еще множество сложных, но интересных вещей. Пожалуй, начнем…
          Читать дальше →
        • Двуногий робот в теории

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

            image
            Читать дальше →
          • Помехи в глобальных навигационных спутниковых системах

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

            Часть 2
            Читать дальше →
          • Пояснение к переносу «железных» хабов с «Хабра» на Geektimes

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

              image
              Читать дальше →
            • Детектируем, разбираем, изучаем, паяем и глушим полицейские радары и лидары

                Давным давно, в 1902 году, сидят в кустах трое полицейских (с интервалами в 1 милю), у каждого секундомер и телефон. Проносится мимо первого автомобиль, он тут же засекает время и звонит второму, второй делает математические вычисления и звонит третьему, а тот уже останавливает машину. (пруф)


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

                Сегодня речь пойдет о приборах для радиоэлектронной борьбы на наших дорогах.
                Пока антирадары и радар-детекторы у нас не запрещены, то РЭБ у нас не ведется, но в некоторых странах война идет по полной. Мы же можем только подготовиться.
                Радиоэлектронная борьба (РЭБ) — разновидность вооружённой борьбы, в ходе которой осуществляется воздействие радиоизлучениями (радиопомехами) на радиоэлектронные средства систем управления, связи и разведки противника в целях изменения качества циркулирующей в них военной информации, защита своих систем от аналогичных воздействий, а также изменение условий (свойств среды) распространения радиоволн. Wikipedia
                Как противостоять тому, кто пытается снять о вас информацию без вашего ведома и как защитить свои «персональные данные» от несанкционированного съема.

                Радары, детекторы радаров, детекторы детекторов радаров. О том, какие бывают, как сделать/распилить самому и то и другое.
                (Спасибо интернет-магазину fonarimarket.ru за предоставленное оборудование)
                Читать дальше →
              • Сага о конденсаторах или «Очередной срыв покровов»

                Иногда почитываю Хабр, в основном DIY. Иногда — это редко, поскольку работа, знаете-ли… И вот, не так давно, с удивлением наткнулся на хабратопик (не буду тыкать пальцем) с описанием, так сказать, ремонта ЖК-монитора. Бегло проглядев, почувствовал сперва желание поплакать, а затем — посмеяться. Почему?
                Читать дальше →
              • О передаче данных через аудиоразъём

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


                Читать дальше →
              • Приручаем динозавров, или как я писал свой собственный host controller для лаборатории 3D-печати



                  В этой статье я хочу рассказать о своем опыте разработки свободного ПО для управления 3D принтерами на Qt5, проблемах и особенностях общения с RepRap'ами и прочим радостям.

                  Результатом этого опыта стал RepRaptor — минималистичный свободный host-controller для 3D принтеров.



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


                    Господа! Я рад сообщить, что наконец-то все желающие могут загрузить бесплатный учебник на более чем 1600 страниц, над переводом которого работало более полусотни человек из ведущих университетов, институтов и компаний России, Украины, США и Великобритании. Это был реально народный проект и пример международной кооперации.

                    Учебник Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», второе издание, 2012, сводит вместе миры программного обеспечения и аппаратуры, являясь одновременно введением и в разработку микросхем, и в низкоуровневое программирование для студентов младших курсов. Этот учебник превосходит более ранний вводный учебник «Архитектура компьютера и проектирование компьютерных систем» от Дэвида Паттерсона и Джона Хеннесси, причем соавтор предыдущего учебника Дэвид Паттерсон сам рекомендовал учебник от Харрисов как более продвинутый. Следуя новому учебнику, студенты строят реализацию подмножества архитектуры MIPS, используя платы с ПЛИС / FPGA, после чего сравнивают эту реализацию с индустриальными микроконтроллерами Microchip PIC32. Таким образом вводится вместе схемотехника, языки описания аппаратуры Verilog и VHDL, архитектура компьютера, микроархитектура (организация процессорного конвейера) и программирование на ассемблере — в общем все, что находится между физикой и высокоуровневым программированием.

                    Как загрузить? К сожалению, не одним кликом. Сначало надо зарегистрироваться в пользовательском коммьюнити Imagination Technologies, потом зарегистрироваться в образовательных программах на том же сайте, после чего наконец скачать:
                    Читать дальше →
                  • ESP8266 — сбор данных с датчиков с питанием от солнечных батарей

                      В интернете и на Хабре уже не однократно упоминались эти «веселые» и в то же время замечательные модули ESP8266. Описывать их алгоритм работы и объяснять, что это такое, думаю, нет смысла.

                      Изучив их чуть более подробно, я решился на сборку автономных датчиков для системы «умный огород». Мне нужно было знать по сути не так много параметров: атмосферное давление, влажность, температуру почвы и воздуха, и уровень освещенности. На основе этих параметров я планирую сделать систему автоматического полива и предупреждения о всяких нештатных ситуациях. Да и за одно просто для себя, вдруг получится предсказывать погоду.
                      Кому интересно, добро пожаловать под кат.
                      Читать дальше →
                      • +15
                      • 25,3k
                      • 9
                    • Как восстанавливают данные с неисправных SSD

                        Приветствую всех Хабровчан!

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


                        Как нетрудно догадаться, с накопителями, расположенными в зеленой зоне, обычно возникает меньше всего проблем (при условии, что инженер обладает необходимым инструментарием, разумеется). А накопители из красной зоны способны доставить немало страданий как их владельцам, так и инженерам-восстановителям. В случае выхода из строя подобных SSD шансы вернуть назад потерянные данные на сегодняшний день слишком малы. Если ваш SSD расположен в красной зоне или рядом с ней, то я бы советовал делать backup перед каждой чисткой зубов.

                        Те, кто уже сегодня сделал backup, добро пожаловать под кат.
                        Читать дальше →
                      • Защита устройств от неправильной подачи полярности питания

                        • Tutorial
                        image
                        При проектировании промышленных приборов, к которым предъявляются повышенные требования по надёжности, я не раз сталкивался с проблемой защиты устройства от неправильной полярности подключения питания. Даже опытные монтажники порой умудряются перепутать плюс с минусом. Наверно ещё более остро подобные проблемы стоят в ходе экспериментов начинающих электронщиков. В данной статье рассмотрим простейшие решения проблемы — как традиционные так и редко применяемые на практике методы защиты.
                        Читать дальше →