• Подключение OLED дисплея ssd1306 к STM32 (SPI+DMA)

    В данной статье будет описан процесс подключение oled дисплея с контроллером ssd1306 разрешением 128x64 к микроконтроллеру stm32f103C8T6 по интерфейсу SPI. Также мне хотелось добиться максимальной скорости обновления дисплея, поэтому целесообразно использовать DMA, а программирование микроконтроллера производить с помощью библиотеки CMSIS.

    Подключение


    Подключать дисплей к микроконтроллеру будем по интерфейсу SPI1 по следующей схеме:

    • VDD-> +3.3В
    • GND-> Земля
    • SCK -> PA5
    • SDA -> PA7(MOSI)
    • RES-> PA1
    • CS-> PA2
    • DS-> PA3

    imageimage

    Передача данных происходит по возрастающему фронту сигнала синхронизации по 1 байту за кадр. Линии SCK и SDA служат для передачи данных по интерфейсу SPI, RES — перезагружает контроллер дисплея при низком логическом уровне, CS отвечает за выбор устройства на шине SPI при низком логическом уровне, DS определяет тип данных (команда — 1/данные — 0) которые передаются дисплею. Так как с дисплея ничего считать нельзя, вывод MISO использовать не будем.
    Читать дальше →
  • Azure RTOS. Часть 1: обзор и запуск (STM32 + CubeIDE + HAL)

    • Tutorial

    На недавно прошедшем Microsoft Build 2020 многократно упоминалась Azure RTOS как специализированная ОС жесткого реального времени для микроконтроллеров.


    В данном материале мы последовательно разберемся в том, что это за операционная система, какое место она занимает в продукции Microsoft для встраиваемых систем, а также установим планировщик ОС на один из микроконтроллеров STM32.

    Читать дальше →
  • Точечная сварка под микроскопом

    • Tutorial
    Хомяки приветствуют вас, друзья!

    Сегодняшний пост будет посвящен аппарату для точечной контактной сварки аккумуляторов типа 18650 и прочих. В ходе соберем такое устройство, разберем основные принципы его работы и детально изучим сваренные места под микроскопом. Аккумуляторам сегодня придётся нелегко. Казалось бы сварочный аппарат, который в буквальном смысле состоит из одного трансформатора и контроллера, что тут может пойти не так?!



    Представьте себе, что одним прекрасным утром у вас сдох шуруповёрт. Крутить шурупы отверткой не царское дело, потому нужно решать проблему. Виновниками этого происшествия стали никелевые аккумуляторы, которые преждевременно отправились в Вальхаллу пить вино и сражаться на мечах. На смену им пришли компактные, высокотоковые литий-ионные аккумуляторы, которые по характеристикам в разы превосходят своих предшественников.
    Читать дальше →
  • Разбор: что нужно знать о коротких продажах на бирже и связанных с ними рисках



      Блог Acquires Multiple опубликовал расшифровку интервью известного американского финансиста Джона Хэмптона, в котором он рассказал о рисках, связанных с игрой на понижение и использовании коротких продаж в операциях на бирже. Мы подготовили выдержку главных мыслей этого материала – с ним полезно будет ознакомиться начинающим биржевым инвесторам.
      Читать дальше →
    • Умный дом на колес… без Яндекса?

        С чего всё началось? Полгода назад сделал дома голосовое управление светом на Raspberry Pi с управлением от умной колонки от Яндекса и очень радовался, что избавился от использования серверов производителей светового оборудования и максимально локализовал управление. Но в процессе эксплуатации оказалось, что не всё так просто. Дело в том, что компания Яндекс постановила, что синхронизация оборудования с её же Умным домом должна происходить только через доменное имя!!! и привязанный к этому имени ВАЛИДНЫЙ сертификат. То есть необходимо выделить вашему оборудованию белый адрес, к нему привязать домен и на этот домен назначить сертификат, который должен быть подтвержден доверенным центром сертификации. И даже если поднять свой корневой центр сертификации, создать промежуточный сертификат и от имени него выпустить сертификат для домена, то все равно ничего работать не будет. Вот так вот :(

        Конечно, изначально была информация, что Яндекс не работает с самоподписанными сертификатами, но я попытался… И тогда я обратился в техподдержку. Кстати, техподдержке за работу я бы поставил отлично. Оперативно ответили, быстро разобрались и так далее. Молодцы. Жаль не их уровень решений. И задал я вопрос (уже второй раз, в предыдущий раз полгода назад ответили, что передали информацию куда надо, спасибо) и попросил переадресовать его уровнем выше — почему бы Яндексу не организовать выдачу своих валидных сертификатов?

        Зарегистрировать домен, выдавать привязку белых адресов людей, желающих подключиться к системе Умного дома Яндекса, к поддоменам этого домена и выдавать свои сертификаты, которые точно будут валидные. Но опять мне сказали «спасибо, информацию отправили». Подозреваю, что выше уровнем всё так же заглохнет.
        Читать дальше →
      • Мини плата для разработки и отладки ПО на BLE, Zigbee Thread

          Приветствую читателей Habr! В этой статье хочу поделиться с сообществом своей новой разработкой, речь пойдет о небольшой Development Board на чипе nRF52840. Плата была спроектированна под недорогие модули E73-2G4M08S1C. Идея ее создания родилась в одном уютном телеграмм чатике довольно спонтанно. Была необходимость в недорогом и простом в сборке девайсе.

          Читать дальше →
          • +21
          • 3,8k
          • 8
        • Разнообразие аналогово-цифровых преобразователей вырождается?


            Окружающий нас мир с нашей точки зрения является аналоговым, то есть большинство измеряемых нами величин является множеством вещественных чисел в определенном диапазоне значений. В то же время методы обработки таких величин при помощи аналоговых операций оказывается сильно ограничен по функциональности и сложности, а разработанная цифровая обработка сигналов оказывается на много порядков функциональнее, надежнее, компактнее, но оперирует только с цифровыми данными, то есть с данными, дискретными по времени и по мгновенным значениям сигнала. Для преобразования из непрерывного аналогового сигнала в дискретный цифровой используется аналогово-цифровой преобразователь (АЦП).
            Читать дальше →
          • 10 советов схемотехнику

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


              Читать дальше →
            • Советы по выбору усилителя сигнала сотовой связи 2G/3G/4G/5G

                Статья о вариантах усиления сигнала сотовой связи на различных объектах: дача, офис, склад..., так же краткий обзор популярных предложений на рынке.


                Существует два основных варианта усиления сотовой связи:


                1. С помощью антенны, модема и роутера.
                2. С помощью активного усилителя (репитера).

                Первый вариант для усиления интернета 3G/4G/5G, не усиливает голосовую связь в обычном для нас формате (но можно пользоваться звонками через мессенджеры: WhatsApp, Viber, Skype, Telegram).


                Второй вариант универсальный – усиливает интернет и голосовую связь, но имеет ряд ограничений (о ограничениях ниже).


                Читать дальше →
              • Xiaomi Gateway 2 можно и не паять



                  Привет Хабр! В предыдущих сериях я:

                  • Накупил устройств от Xiaomi для умного дома и посредством паяльника заставил их работать в увлекательнной манере без родных серверов через home assistant (ссылка на пост)
                  • Завернул web interface от home assistant в electron (ссылка на пост) с поддержкой нотификаций, менюшек, точбара итд (код тут)

                  Но по мере появления всё новых устройств стало вскрываться странное…

                  Например, что поддержки Aqara Wireless Relay 2ch (LLKZMK11LM) в интеграции xiaomi_aqara нет, а на открытие Issues в GitHub владельцы кода отвечали, что поддержать это реле невозможно без обновления прошивки устройства. «Что-то тут не так» — подумал я и пошел разбираться по коду, как так вышло. И так увлекся, что запилил интеграцию сначала для работы с реле через xiaomi_miio (ссылка), а затем реализовал поддержку кубика и кнопки Xiaomi для этой интеграции (ссылка), а теперь расскажу зачем и как.
                  Читать дальше →
                • Опять про BLE, температуру и датчики Xiaomi — часть 2 — MQTT

                    На майских праздниках выдалось достаточно много свободного времени, потому было просто необходимо продолжить эксперимент начатый в предыдущей статье. Ранее мне удалось получить данные температуры и влажности из датчика Xiaomi, теперь же была поставлена задача научиться отправлять эти данные MQTT-брокеру.

                    Читать дальше →
                    • +17
                    • 3,6k
                    • 2
                  • Изучаем миниатюрный шаговый двигатель

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

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


                    Читать дальше →
                  • Как начать использовать USB Type-C в своих разработках


                      В современных embedded-устройствах используется огромное количество различных разъемов, таких как USB Type-B, miniUSB, microUSB и так далее. Все они отличаются форм-фактором, максимальной пропускной способностью и другими различными характеристиками. Самым верным решением в данной ситуации было бы минимизировать количество используемых разъемов и остановиться на каком-то одном, «едином» для большинства разработок. Наиболее перспективным выглядит использование разъема Type-C. В нем объединены невероятная пропускная способность с высокой мощностью питания. Такие производители, как Apple, Huawei, Sony уже внедряют разъем Type-C в свои разработки, постепенно отказываясь от использования «старых» разъемов. А чем embedded-разработчики хуже?


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

                      Читать дальше →
                    • Отображение 3D-графики на STM32F407

                        Как известно, старшие STM'ки имеют приличные частоты и объёмы ОЗУ. Ну а раз так, то почему бы не запустить 3D-графику на таких контроллерах? Да нет ничего проще!

                        Демонстрационная картинка
                        Читать дальше →
                      • STM32CubeMonitor стоит попробовать

                        Введение


                        STM32CubeMonitor — утилита для удобного отображения данных с контроллеров семейства STM32. Причем не требуется никакого дополнительного оборудования, только плата с контроллером и программатор (я пробовал и китайский свисток и оригинальный st-link\v2). Слово «Cube» в название не означает привязку к CubeMx\HAL, от вас требуется всего лишь прошивка в формате "*.elf", что не может не радовать. Данная утилита позволяет чрезвычайно быстро и просто выводить данные с контроллера в реальном времени в виде графика, а так же осуществлять постобработку(присутствуют наборы основных математических и тригонометрических функций).
                        Читать дальше →
                      • Еще раз о передатчиках и приемниках 433 МГц

                          Простейший комплект из приемника и передатчика ISM-диапазона 433 МГц завоевал заслуженную популярность в среде любителей электроники. Комплекты дешевы (даже в «Чипе-Дипе» их можно купить рублей за 300, а на Ali, говорят, вообще за полтинник), просты и надежны. Кроме того (о чем вы, возможно, не подозреваете), это самый дальнодействующий и проникающий способ беспроводного обмена данными — сигнал на частоте 433 МГц куда лучше проходит через препятствия и действует на более далеком расстоянии, чем в популярном диапазоне 2,4 ГГц (433 МГц полностью задерживаются стенкой в полметра бетона, а Wi-Fi умирает уже на 10 сантиметрах). Допускаю, что недавно появившиеся модули MBee-868, будучи снабженными соответствующей (направленной) антенной, «стреляют» дальше, но они как минимум на порядок дороже, сложнее в подключении, требуют управления энергосбережением и предварительной настройки. И вдобавок частота 868 МГц вдвое хуже проходит через препятствия (хотя, конечно, несравненно лучше частоты 2,4 ГГц).



                          О приемниках-передатчиках 433 МГц написано очень много (в том числе и на хабре, конечно). Однако, правильно включать в схему этот комплект по какой-то странной причине, кажется, не умеет никто. Когда я в который раз прочел вот тут, что комплект «принимал на 8-ми метрах в пределах прямой видимости, 9-ый метр осилить не удалось», мое терпение лопнуло. Какие еще 8 метров?! В 40-50 я бы поверил, хотя в реальности, наверное, дальность еще больше.
                          Читать дальше →
                        • МЭМС акселерометры, магнитометры и углы ориентации



                          При разработке устройств, в которых необходимо оценивать углы ориентации, может встать вопрос — какой МЭМС датчик выбрать. Производители датчиков приводят множество параметров, из которых нам требуется получить полезную информацию о качестве датчика.

                          Чтобы понять, на какие точности углов мы можем рассчитывать, нужно приложить некоторое количество усилий.

                          TL;DR: Описан небольшой скрипт для Octave/MATLAB, позволяющий оценить ошибки расчёта углов ориентации по измерениям МЭМС акселерометров и магнитометров. На входе скрипта — параметры датчиков из даташитов (и/или погрешности калибровки). Статья может быть полезна тем, кто начинает использовать инерциальные датчики в своих устройствах. Небольшой ликбез по датчикам прилагается. Ссылка на гитхаб тоже.
                          Вот как мы решили эту задачу:
                        • Ловим деградацию аккумуляторов АА и ААА при токах в 0.3 от емкости

                            Два года назад я открыл для себя прекрасный новый мир зарядных устройств для аккумуляторов. И даже, насколько мог, структурировал свои знания в топике “Заряжаем АА, ААА и другое цилиндрическое и аккумуляторное”. После написания текста меня долгое время терзала одна неразрешенная проблема — какими токами правильно заряжать аккумуляторы. Считается разумным заряжать банки токами в 0.1 от емкости. Причем как старые NiCd, так и современные NiMh. Якобы, так мы откладываем деградацию.

                            Во-первых, такой подход занимает кучу времени — токи слишком низкие, заряд идет долго. Во-вторых, это накладывает ограничения на сами зарядные устройства, так как попробуй еще найти такие зарядки, которые заряжают токами от 100 или даже 50 mA. Та же “народная” и часто рекомендуемая Liitokala Lii-500 умеет только с 300 mA. В третьих, множество зарядок отлавливают момент полного заряда по “-dV”, для чего, по инструкциям, требуется ток в 0.3 от емкости.



                            Другой подход говорит, что современные NiMh на то, блин, и современные, чтобы заряжать их 0.3 от емкости, 0.5 и даже током равным емкости. В общем, в итоге я решил провести собственный эксперимент и в течении 100 циклов заряжал и разряжал аккумуляторы Ikea Ladda форматов АА и ААА токами в 0.3С, пытаясь увидеть деградацию. Длилось это больше полугода и результаты замеров можно посмотреть под катом.
                            Читать дальше →