• Подключение STM32 к аппаратуре радиоуправления


      Понадобилось мне реализовать дистанционное управление несколькими двигателями постоянного тока.
      В магазинах доступны готовые комплекты радиоуправления для разных ездящих-летающих игрушек и «не игрушек», и появилось желание использовать именно такое управление.
      Сигналы на выходе приёмника такого комплекта — это импульсы для управления сервомашинками,
      и задача сводится к тому, чтобы измерить длительность имульса 0,8..2,3 мс в каждом из шести каналов, затратив как можно меньше ресурсов контроллера.
      Дальше описано как реализовано измерение длительности импульсов с шести каналов, используя особенности периферии STM32 микроконтроллеров.
      Читать дальше →
      • +22
      • 18,7k
      • 6
    • 300 потрясающих бесплатных сервисов

      • Перевод


      Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



      A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

      • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
      • Bootswatch: Бесплатные темы для Bootstrap.
      • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
      • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
      • Strikingly.com Domain: Конструктор веб-сайтов.
      • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
      • Withoomph: Мгновенное создание логотипов (англ.).
      • Hipster Logo Generator: Генератор хипстерских логотипов.
      • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
      • Invoice to me: Бесплатный генератор счета.
      • Free Invoice Generator: Альтернативный бесплатный генератор счета.
      • Slimvoice: Невероятно простой счет.

      Читать дальше →
    • Ещё одна метеостанция, пошаговая видеоинструкция

      • Tutorial
      Последнее время все более популярна стала тема метеостанций. Наверное создание собственной погодной станции является хорошей практикой в освоении ардуинки. Хочу внести свой небольшой вклад в это благое дело.
      Хочу представить Вам видео урок по работе с датчикам температуры, влажности, давления, и выводу этих данных на дисплей.Возможно эта информация кому — то поможет начать свой путь в мир микроконтроллеров.
      Если интересно - смотрим
    • Конечный автомат (он же машина состояний) на чистом С

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

      Собственно через регулярные выражения я к ним и пришёл.
      Читать дальше →
    • Руководство по установке и настройке OpenVPN



      Когда у нас появились сотрудники, работающие удаленно, пришлось думать над тем, как обеспечить им защищенный доступ к нашим хостинговым серверам, виртуальным выделенным серверам разработчиков Virtual Dedicated Server (VDS), сайтам обеспечения и сопровождения разработки и к другим ресурсам.

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

      Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.

      В нашей компании сеть VPN позволила предоставить защищенный доступ сотрудников к VDS, играющей роль сервера OpenVPN. И уже для фиксированного IP этого сервера был разрешен доступ к другим ресурсам компании. Попутно на сервере OpenVPN был установлен прокси Squid, что решило все проблемы доступа сотрудников с динамическими IP к защищенным ресурсам компании.

      Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.

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

      С благодарностью приму замечания и предложения по содержимому статьи.
      Читать дальше →
    • Дюжина логических задач с собеседований

        image

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

        Некоторые задачи проще и широкоизвестные, другие заставляют хорошенько задуматься.
        Ответы пока что публиковать не буду, надеюсь, вы сами сможете всё решить.
        Предлагаю размять свой мозг…
        Читать дальше →
      • Обзор платформы для разработчиков ST Nucleo на примере Nucleo-F401RE

        Оценочные платы ST Nucleo:

        image

        Это открытая, недорогая и легко расширяемая отладочная платформа для разработки с широким выбором специальных плат расширения, для всей линейки 32-х битных микроконтроллеров STM32 архитектуры ARM Cortex-M3 и Cortex-M4.

        image

        Платы «ST Nucleo» дают возможность выбирать из различных сочетаний производительность, энергопотребление, и архитектурные особенности микроконтроллера. Платформа позволяет быстро, удобно и легко изучить особенности архитектуры и программирования микроконтроллера, опробовать свои идеи, создать прототипы с любым микроконтроллером семейства STM32.
        Читать дальше →
      • Программируем микроконтроллеры stm32 при помощи QtCreator


          Как-то так незаметно получилось, что программист, который разрабатывал нам прошивку для микроконтроллера, стал банально не успевать и в некоторые моменты я начинал перехватывать инициативу и самостоятельно браться за исправление ошибок.
          Разработка велась в среде IAR, и многие согласятся со мной, что по сравнению с разработкой в QtCreator'е это боль и страдание.
          В какой-то момент мы решили, что быстрее нанять нового программиста и вместе с ним заново переписать прошивку контроллера stm32, так, как я к этому моменту уже немного сам смыслил в их программировании и к тому же обнаружил, что QtCreator умеет отладку на голом железе (плагин BareMetal), я решил принять в этом активное участие.
          Здесь я хочу поделиться шаблоном проекта для stm32f407 от Terra Electronica и рассказать об особенностях его настройки.
          Читать дальше →
        • Драйвера на С++ для STM8L051F3

          Проблемы и требования к драйверу


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

          1. Отсутствие структуры драйвера. Решение данной проблемы позволить лучше ориентироваться по драйверу, следовательно, отладка становится проще.
          2. Отсутствие общности драйвера. То есть интерфейс драйвера должен быть одинаковый, для, хотя бы, линейки процессоров, и в идеале для аналогичных процессоров разных фирм. Это позволит переносить код, завязанный на драйвер, без изменений или с минимальными изменениями.
          3. Сохранение эффективности по скорости выполнения драйвера.
          4. Оптимальное использование памяти.


          В данном посте я покажу, как можно ликвидировать эти проблемы и сделать процесс написания драйвера более приятной задачей на примере двух драйверов UART и DMA реализованных на языке С++. Для этого я сформулировал требования, для драйвера:
          Читать дальше →
        • Начинаем изучать Cortex-M на примере STM32

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

          Меня это сильно удивило. Если верить данным статьям, для программирования не обязательно даже читать документацию к программируемому контроллеру. Меня же учили премудростям «железного программирования» совершенно иначе.

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