• Gap — светлое будущее для отступов в Flexbox (как в Grid)

    • Перевод


    Одна из моих любимых частей спецификации CSS Grid — это grid-gap. Они позволяют легко создавать отступы между элементами внутри сетки.

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

    W3C порекомендовала отказаться от свойства grid-gap в пользу простого gap и его использования в Flexbox и Multi-Column.

    В этом руководстве мы посмотрим, как добавляли margins в Flexbox раньше и как это делает свойство gap, позволяя нам получить внутренние отступы без дополнительных ухищрений.
    Читать дальше →
  • Черная магия голубой таблетки (делаем программатор Black Magic Probe из модуля на базе STM32F103)

    Зачем?


    В эпоху Arduino UNO и Atmega328 я вполне обходился без программатора, прошивая микроконтроллер сначала загрузчиком Arduino через другую Arduino (Arduino as ISP), а потом через обычный последовательный порт, и лишь после появления поддержки Arduino для модулей на основе Nordic Semiconductor nrf51822 и nrf52832 для меня впервые стало актуальным наличие swd-программатора, ибо никаким другим способом прошивку в голый китайский модуль не зальешь.

    Стандартом де-факто в данной области являются программаторы Jlink немецкой компании Segger Microcontroller System, известные не только своими прекрасными ТТХ, но и заоблачной ценой (около $500-600). Надо отдать должное компании Segger, для некоммерческого использования выпускается EDU версия, полностью идентичная Jlink Base, но даже она стоит в России в районе 3000 руб. Любимый Aliexpress полон китайских клонов, однако и они относительно недешевы, не говоря уж о прочем.

    Есть еще ST-LINK/V2 от ST Microelectronics, правда, под вопросом их совместимость с микроконтроллерами производства не самой STMicro.

    В итоге, мой взгляд неминуемо пал на JTAG/SWD программатор Black Magic Probe (BMP), собравший на Kickstarter более $47,000 при заявленной цели в $10,000.
    Читать дальше →
  • 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, но сам подход будет также применим и для других микроконтроллеров. В статье я детально разберу каждый из классов по отдельности, так и принцип построения композитных устройств. Но обо все по порядку.

    Итак, поехали!
    Читать дальше →
  • Низковольтный ламповый сверхрегенеративный FM-приемник без выходного трансформатора

    image

    Здравствуйте.

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

    Могу предположить, что многих здешних обитателей привлекают электронные устройства, основанные на электронных лампах (лично меня радует теплота, приятный свет и монументальность ламповых конструкций), но при этом желание сконструировать что-то теплое и ламповое своими руками часто ломается о боязнь связываться с высокими напряжениями или проблемы с поиском специфических трансформаторов. И этой статьей я хочу попытаться помочь страждущим, т.е. описать ламповую конструкцию с низким анодным напряжением, очень простой схемой, распространенными элементами и отсутствуем потребности в выходном трансформаторе. При этом это не очередной усилитель для наушников или какой-нибудь овердрайв для гитары, а намного более интересное устройство.
    Читать дальше →
  • Буратор. Сверлильный станок для печатных плат

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

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

      Читать дальше →
    • 50 оттенков ПНЯ*. Микроконтроллеры в импульсных источниках питания

        ПНЯ* — Периферия Независимая от Ядра в микроконтроллерах Microchip, известная так же как CIP — Core Independent Peripheral.



        Микроконтроллеры в импульсных источниках питания
        Часть 1



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


        Цель статьи – показать принципиальную возможность реализации большинства топологий ИИП на универсальной периферии микроконтроллеров Microchip, продемонстрировать преимущества микроконтроллерных решений по гибкости и универсальности относительно специализированных «аналоговых» ШИМ-контроллеров и ASIC для ИИП.

        Читать дальше →
        • +26
        • 21,2k
        • 8
      • STM32 + PPP (GSM) + LwIP

        Большинство GSM модулей работают по интерфейсу UART, посредством AT-команд. Но для серьезных проектов, использование AT команд несет определенные трудности:

        • контроль и обработка ошибок
        • результат выполнения команды возвращается с длительной задержкой
        • необходимо разбирать входящие строки налету

        Нужно понимать, что с результатом выполнения команды, в буфер может попасть URC-код от входящего звонка, SMS, принятые данные и пр. Входной буфер с принятыми строками, приходится разбирать опираясь лишь на символы переносов и «эхо» команды, а сами команды зачастую сильно отличаются форматом. По этим причинам, использование AT вносит дополнительную задержку, алгоритмически ее устранить практически невозможно, ведь причина находится в самом модуле и несовершенстве его встроенного ПО

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

        Пример PPP-пакета:


        Читать дальше →
      • Java, первая чашка

          Первая чашка крепкого Java. Какая она на вкус? У каждого она своя, кому-то она может показаться горькой, приторной, я расскажу в этом "руководстве" (сильное слово, для коротенькой статьи) какой была моя первая чашка, и что бы я изменил, выпивая эту чашку снова…
          image

          Читать дальше →
        • Умный замок на Android Things и Raspberry Pi3

          • Tutorial

          В декабре 2016 года Google анонсировал выход первой Developer Preview версии Android Things. С тех пор проект сильно изменился. Все еще доступна только preview-версия, но с каждым шагом у платформы появляются новые возможности и растет число поддерживаемых устройств.


          С каждым днем появляются новые примеры использования IoT устройств в реальном мире, а сама платформа становится все более привлекательной. Мы в Live Typing решили тоже погрузиться в интереснейший мир Интернет Вещей и рассказать о своем опыте. Эта статья для тех, кто слышал об Android Things, но боялся попробовать. А также о том, как мы реализовали свой «умный замок» и пользуемся им в собственном офисе.


          img

          Читать дальше →
        • Геоскан Пионер — «школьный» квадрокоптер



            В статье рассмотрим электронную часть нового квадрокоптера Геоскан Пионер, который предназначен для обучения робототехнике. Мы расскажем о создании коптера, а точнее о том, какой опыт мы получили и какие изменения внесли в проект. В завершении — поделимся планами на будущее.
            Читать дальше →
          • Мой опыт создания «без умного» дома

            • Tutorial
            Пришло и мое время поделится своим опытом создания «без умного» дома. Вступать в полемику, что же все таки такое умный дом и что он должен уметь делать, не очень хочется. В моем случае будем приручать wifi модули Sonoff от компании ITEAD и учиться включать/выключать «нагрузку» с телефона. В публикации пойдет речь, как прошить модуль, подключим к модулю сенсор температуры/влажности, научимся управлять модулем через приложение HomeKit («Дом») и Siri. Добавим ко всему этому систему управления умным домом Domoticz на raspberry pi. Добавим wifi к кофемашине и научим Siri открывать домофон.
            Читать дальше →
          • Набор юного биохакера

              Обзор медицинских гаджетов для самостоятельного использования.


              Авторы: Анастасия Егорова, Андрей Никифоров, Надежда Батина и Денис Варванец

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

              Описали четыре десятка (не беря в расчёт многообразие фитнес-браслетов и часов), но вот те на! Получите-распишитесь ссылку на базу данных из 421 носимых устройств. И только пять из наших сорока есть в этой базе. Да что ж такое-то!

              А ведь их будет всё больше. Кэп просил передать, что рынок растёт.
              Читать дальше →
            • GSM-сигнализация для автомобиля на базе Arduino Uno

              Предисловие


              Кражи автомобилей на протяжении последнего десятилетия занимают одно из значимых мест в структуре совершаемых в мире преступлений. Это обусловлено не столько удельным весом данной категории хищений относительно общего количества преступлений, сколько существенностью причиняемого ущерба ввиду большой стоимости автомобилей. Слабая эффективность принимаемых мер в области борьбы с кражами автотранспорта к концу 90-х годов привела к созданию устойчивых групп, специализирующихся на совершении данных преступлений и обладающих отличительными чертами организованной преступности; вы наверняка слышали термин «черный автобизнес». Автомобильный парк европейских государств ежегодно не досчитывается ≈ 2 % машин, которые становятся предметом преступных посягательств. Поэтому мне пришла идея сделать gsm-сигнализацию для своего автомобиля на базе Arduino Uno.


              Начнём!
              Читать дальше →
            • Обзор online-курса по ардуино/робототехнике от МФТИ (третья неделя)

                Мы продолжаем обзор бесплатного online-курса Строим роботов и другие устройства на Arduino. От светофора до 3D-принтера (предыдущие обзоры: неделя 1, неделя 2)


                Третья неделя


                Всем привет! Задумывались ли вы когда-нибудь, что может быть общего между Валли и шлагбаумом?



                Как минимум, они оба являются роботами.


                До того, как я записался на курс робототехники от МФТИ я представлял себе роботов почти исключительно как


                человекоподобных машин

                Но оказалось, что определение роботов гораздо шире:


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

                Как видим, определение гораздо шире, чем мое стереотипное представление о том, что такое робот.


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


                Что получилось по результату третьей недели
                Читать дальше →
              • Google AIY: мейкерский набор для создания гаджетов с голосовым управлением



                  Компания Google запустила инициативу AIY Projects, чтобы совместить AI с DYI, то есть совместить программные приложения ИИ с наборами для сборки гаджетов. В результате, считает Google, мейкеры смогут изготовлять полезные устройства, которые помогут «решать реальные проблемы» в жизни. Эти гаджеты будут по-настоящему взаимодействовать с человеком. Например, распознавать речь, отвечать на вопросы и выполнять голосовые команды.

                  Первым проектом стал Voice Kit — демонстрационная система распознавания речи с подключением к Google Assistant (или без подключения). Как сказано в описании, в дополнении ко всем обычным функциям Google Assistant, тут вы сможете ещё добавлять в гаджет собственные пары вопросов и ответов. Приборчик выполнен в виде маленького картонного кубика с Rasberry Pi 3 внутри. Сборка набора из 12 деталей займёт примерно 1,5 часа.
                  Читать дальше →
                • Подключаем геймпад от PS1/PS2 к Raspberry pi

                    На дворе майские праздники. А значит время есть шашлыки и употреблять различные разливные и бутилированные напитки. А я занимаюсь всякой ерундой. Мысль о данном проекте пришла, ещё до нового года. Но я долго не мог его реализовать. Прикупив первый геймпад (который я выкинул в последствии), и попробовав опросить его, я понял, что тут уже не обойтись простым чтением мануалов, хотя инфы достаточно. Благо, на это 23 февраля я получил в подарок не пену для бритья, упакованную в носки, а 600 р. с пожеланием не отказывать себе ни в чём на aliexpress. Где и была куплена китайская копия логического анализатора Saleae Logic. Те, кому интересно, что из этого получилось, могут ткнуть мышкой по кнопке ниже. А те, кому лень читать могут сразу посмотреть результат вот тут.


                    Читаем далее
                  • Нейрокурятник: часть 1. Установка Raspberry Pi и камеры в курятник и их настройка

                    • Tutorial
                    image
                    Большой брат следит за тобой, птица!


                    Статьи про нейрокурятник
                    Заголовок спойлера
                    1. Вступление про обучение себя нейросетям
                    2. Железо, софт и конфиг для наблюдения за курами
                    3. Бот, который постит события из жизни кур — без нейросети
                    4. Разметка датасетов
                    5. Работающая модель для распознавания кур в курятнике
                    6. Итог — работающий бот, распознающий кур в курятнике

                    Читать дальше →
                  • Билдим под stm32duino с помощью CMake (и отгребаем от линкера)

                      image

                      Всем привет! Как часто вы задумываетесь как код написанный в красивой IDE превращается в набор байт, удобоваримый для процессора или микроконтроллера? Вот я лично не часто. Работает себе и хорошо. Нажал кнопку Add File — IDE сама добавила исходник в проект, сама вызывает компилятор и линковщик. Пиши себе код и не думай о мелочах.

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

                      Сегодня речь пойдет о замене билд системы для моего проекта. По различным причинам мне было тесно с Ардуино и пришлось искать что нибудь где можно развернуться. Под катом описан мой опыт перехода от билд системы Ардуино к сборке прошивки под микроконтроллер STM32 и фреймворк stm32duino с помощью CMake.
                      Читать дальше →
                    • Английский для собеседований в IT-компании: что нужно для старта карьеры?

                        Собеседование на английском — дело непростое. Но хорошее планирование и подготовка ключевых моментов сделают этот процесс более приятным и безобидным.


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