Как стать автором
Поиск
Написать публикацию
Обновить
152.9

Программирование микроконтроллеров *

Учимся программировать микроконтроллеры

Сначала показывать
Порог рейтинга
Уровень сложности

Знакомство: BBC micro:bit и mbed OS 5

Время на прочтение4 мин
Количество просмотров12K
Как отмечалось на geektimes, микрокомпьютер BBC micro:bit ещё этой весной начали рассылать британским школьникам, а пару месяцев назад он поступил в свободную продажу по цене от £13 за штуку.

Предположим, micro:bit приобретён; что с ним делать дальше? Я решил сделать из него часы, потому что мои наручные как раз сломались.


Инструкция по использованию micro:bit со старой версией mbed OS есть на сайте Ланкастерского университета; но ARM две недели назад выпустила новую версию mbed OS 5, и с этой новой версией библиотека поддержки microbit-dal «из коробки» не работает.

Насколько я понимаю, даже в самом ARM никто ещё не пытался использовать mbed OS 5 на micro:bit; мне хотелось стать первым.
Читать дальше →

JavaScript выходит за пределы Web в 2015 году

Время на прочтение8 мин
Количество просмотров20K
2015 год был значимым годом для Интернета вещей. Мы увидели огромный прогресс в размере и возможностях устройств, большие игроки, такие как Microsoft и Samsung, в буквальном смысле продвигаются в космос и всё IoT сообщество начинает ещё больше разрастаться. В течение двух последних лет здесь, на SitePoint, для меня стало чем-то в роде традиции делать обзор года в ракурсах IoT и JavaScript (см. JavaScript выходит за пределы Web и JavaScript выходит за пределы Web в 2014). Хотя изначальная популярность и ажиотаж вокруг JavaScript, как языка для IoT, похоже немного поутихли за 2015 год, JavaScript всё ещё продолжает позиционироваться как довольно-таки сильный способ для задействования магии на большем числе IoT платформ, чем это себе представляют люди.

В этом обзоре мы рассмотрим некоторые значимые продвижения в IoT, которые раскрывают новые возможности для JavaScript разработчиков и будущий потенциал JavaScript за пределами Web.
Читать дальше →

Про разделение труда и его последствия

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

Один день программиста ембеддера. Написать драйвер для датчика влажности HTS221 от STM — это очень просто?

Время на прочтение12 мин
Количество просмотров21K
image
Когда я оцениваю продуманность интерфейса пользователя специализированных микросхем от STMicroelectronics, меня временами удивляет тот факт, что они вообще способны работать. Но ведь работают же. И не просто работают, а имеют кучу фишек и крайне низкую цену. В результате приходится выбирать их снова и снова...

Очередной день обещал быть простым и приятным, насколько это возможно когда в очередной раз спасаешь “горящий” проект. По плану до вечера всего то надо было оживить интегральный совмещённый датчик температуры и влажности. Крошечные размеры, занимаемые им на плате, малое количество ножек и отсутствие дискретных компонентов “обвязки” позволяли надеяться на то, что имеешь дело с новейшей разработкой, а современные датчики, не смотря на маленькие размеры, отличаются умом и сообразительностью. Они без лишних вопросов выдают на выходе готовый результат. Зачастую они не просто выполняют измерения, а производят очень сложную обработку сигналов, имеют внутренние буферы для хранения данных, выходы прерываний чтобы во время разбудить микроконтроллер и много других приятных фишек. Всё это сильно облегчает задачу написания кода и сокращает требования к ресурсам управляющего микроконтроллера… Общаться с ними легко и приятно. Правда иногда приходится повозиться с большим количеством настроек. Однако, сегодня мне это не грозило, ведь передо мной всего лишь банальный ёмкостный измеритель влажности с функцией измерения температуры.
Читать дальше →

Беспроводные сети ZigBee. Часть 2 [Работа с радиомодулями ETRX35X]

Время на прочтение22 мин
Количество просмотров37K

Введение



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

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

Работа с радиомодулями SI4432

Время на прочтение12 мин
Количество просмотров81K
В статье рассмотрены функциональные особенности работы радиомодуля на микросхеме ISM (industrial, scientific and medical radio bands) трансивера SI4432. Также приведены простейшие примеры программной инициализации модуля и описаны некоторые возможные вариации настройки.


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

Портирование FreeModbus под STM32. Версия от Динара

Время на прочтение9 мин
Количество просмотров34K
Доброго времени суток, любители и профессионалы программирования на микроконтроллерах. Эта статья посвящена портированию библиотеки freemodbus на STM32F100 (тот, что в discovery vl). Да, на habrahabr уже есть подобная статья, но мне она кажется не самой удачной. Буду использовать Modbus RTU в режиме slave. Для успешного портирования библиотеки freemodbus на платформу без операционной системы, необходимо выполнить три шага:

1. прописать файл port.h
2. настроить таймер
3. настроить usart

Итак, план составлен — пора за работу.
Читать дальше →

Переводчик с языка жестов: реализация метода опорных векторов на Intel Edison

Время на прочтение5 мин
Количество просмотров8.8K
В мире живёт 30 миллионов человек, имеющих проблемы с речью. Для того, чтобы общаться с окружающими, они пользуются языком жестов. А что, если собеседник такого языка не понимает? Как преодолеть языковой барьер? Наш сегодняшний рассказ посвящён проекту распознавания жестов. Плата Intel Edison принимает сведения от датчиков, закреплённых на специальной перчатке, обрабатывает их с использованием метода опорных векторов, узнаёт, какой букве соответствует жест, и отправляет то, что получилось, Android-приложению для озвучивания.


Intel Edison и перчатка с датчиками: основа системы распознавания языка жестов
Читать дальше →

Chargebox на Arduino

Время на прочтение4 мин
Количество просмотров6.6K
Создания автомата для зарядки планшетов и телефонов

Основные компоненты:

  • Arduino Uno
  • LСD Display 2x16
  • Coin Receiver Wei-Ya HI 07
  • Реле

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

Про облака и датчики: подключение Intel NUC и Genuino 101 к IoT-платформе IBM Watson

Время на прочтение5 мин
Количество просмотров6.4K
Наш сегодняшний рассказ посвящён использованию компактного компьютера Intel Next Unit Computing (NUC) для подключения к IoT-платформе IBM Watson датчиков, присоединённых к плате Genuino 101. Из этого материала вы узнаете о том, как, в реальном времени, считывать сведения с датчиков, подключённых к Genuino 101, тут же просматривать их на NUC и отправлять в облако IBM Watson. Там данные можно хранить, обрабатывать, визуализировать. Для того, чтобы всё это сделать, используется Node-RED, установленный на NUC. Графический интерфейс Node-RED позволяет создавать блок-схемы, реализующие функции ввода, обработки и вывода данных, то есть, всё то, что лежит в основе IoT-приложений.

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

Конечные автоматы в среде динамического моделирования SimInTech

Время на прочтение11 мин
Количество просмотров17K

Введение


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

В настоящее время все необходимые настройки реализованы в специальной библиотеке блоков, которая обеспечивает создание моделей систем в виде конечных автоматов, (представление State Flow) и может быть использована при создании моделей управления.

В данной статье показан пример использования элементов библиотеки «Конечные автоматы» для создания системы управления.
Читать дальше →

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

Время на прочтение3 мин
Количество просмотров142K
Господа! Только что на сайте Imagination Technologies вышло исправленное издание бесплатного учебника на русском языке «Цифровая схемотехника и архитектура компьютера» Дэвида Харриса и Сары Харрис (кстати, они не супруги и вообще не родственники – просто так совпало). Предыдущее издание этого учебника вышло год назад, пост о нем собрал 145,000 просмотров на Хабре, количество скачиваний с британского сайта вызвало у его британских админов подозрение, что их атакуют русские хакеры, а впоследствие команду переводчиков лично благодарили за учебник преподаватели МФТИ, МВТУ им. Баумана, харьковского ХНУРЭ и других университетов.

silicon_russia_ad_selected_160730_174932

Книжка содержит «введение во все», доступное способному школьнику или младшему студенту, который после ее прочтения может спроектировать, написать на SystemVerilog или VHDL и реализовать на ПЛИС несложный, но при этом совершенно настоящий конвейерный процессор. Книга написана живым языком и для введения концепций, например конечных автоматов, использует примеры типа:


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

STM32F405: прошить 400кб за 10 секунд или быстрый UART-загрузчик заточенный под USB-UART, размером менее 4 килобайт

Время на прочтение19 мин
Количество просмотров36K

C утилитой для ПК и платой — программатором,
с использованием SPL,
с полноценной системой команд и проверкой CRC32,
с гарантией доставки и переотправки сбойной или потерянной команды,
с проверками ошибок, отладочными сообщениями и урезанным printf'ом.
Оптимизирован под современные USB-UART преобразователи и потоковую передачу.



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

Ближайшие события

Два в одном: USB хост и составное USB устройство

Время на прочтение12 мин
Количество просмотров35K

image



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

Основная суть Пастильды заключается в том, что она является своеобразным переходником между клавиатурой и ПК. Таким образом, она должна уметь:
  • быть USB хостом для клавиатуры, которая к ней подключается,
  • быть клавиатурой для ПК, чтобы либо перенаправлять сообщения от реальной клавиатуры, либо самой быть клавиатурой,
  • быть дисковым накопителем, чтобы можно было редактировать базу данных паролей в удобном для человека виде.

Данный функционал является скелетом нашего проекта, поэтому первая заметка будет посвящена именно ему.
Читать дальше →

WS2812B, WS2813, APA102 Ограничения в использовании умных светодиодов в современных проектах декоративной светотехники

Время на прочтение4 мин
Количество просмотров109K
Уже несколько лет на рынке светотехники можно встретить такие названия, как: «smart led strip», «smart led pixel» и подобные. Как правило, «умный пиксель» — это сборка из миниатюрного 3-х канального светодиодного драйвера (с интегрированным стабилизатором тока, PWM модулятором и сдвиговым регистром), подключенная к RGB светодиоду. На базе таких пикселей многие производители выпускают «умные» гибкие светодиодные ленты, LED «гвозди» и LED кластера. Также можно встретить такие модели чипов, как WS2812, WS2813, с интегрированным LED драйвером непосредственно в корпус 5050 RGB светодиода. Малые габариты, большое количество последовательно включенных пикселей (более 1000 шт.), простота управления по 1(2) проводу и сравнительно низкая стоимость решения — более чем оправдывают их применение.
Читать дальше →

Сравнение коммуникационных протоколов DLMS/COSEM, SML и IEC 61850 для приложений интеллектуального учета потребления

Время на прочтение17 мин
Количество просмотров9.8K
Технологии связи играют всё более важную роль в растущем рынке AMI. Статья представляет собой полный анализ и сравнение четырех протоколов прикладного уровня, применяемых для интеллектуального учета потребления. Рассматриваются следующие протоколы: DLMS/COSEM, SML (Smart Message Language), а также MMS и SOAP отображение IEC 61850. В работе сделан акцент на использование этих протоколов совместно с TCP/IP стеком. Протоколы сначала сравниваются относительно качественных критериев, например, возможность синхронизации времени и др. После этого сравнивается размер сообщений и анализируется эффективность кодирования.

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

О вкусном и здоровом питании ESP8266 от батареек

Время на прочтение6 мин
Количество просмотров71K
Многие из тех, кто мастерит разные штуковины на ESP8266, в какой-то момент задумывались, что было бы здорово взять ту штуковину, положить в карман — и пойти с ней погулять. ESP8266 ведь такой маленький, так и просится. И тут на нашем пути встречается небольшое препятствие — одним программированием здесь не обойтись, придётся брать в руки паяльник, но всё не так страшно, и, надеюсь, эта статья вам поможет.
Читать дальше →

USB mass storage device и libopencm3

Время на прочтение7 мин
Количество просмотров24K

image




Моя работа связана с программированием микроконтроллеров, в частности STM32. Долгое время для работы с периферией я использовала STM32 Standard Peripheral Library, так как она предоставляется производителем и, соответственно, является наиболее полной. Однако работать с ней крайне неудобно: инициализирующие структуры зачастую избыточны, в функциях черт ногу сломит, в общем, очень скоро появляется непреодолимое желание слезть с этой библиотеки и перейти на что-нибудь более аккуратное, грамотно спроектированное и написанное «чистым кодом».

После долгих поисков была обнаружена open source библиотека libopencm3, которая отвечала всем требованиям. Отзывы о ней были положительные и работать с ней оказалось максимально приятно.

Одной из последних задач на работе было поднять USB MSD. Для решения задачи использовалась отладочная плата STM32F4-discovery и вот этот пример. Пример не завелся. Проблем было две:
1. Было невозможно зайти на диск и прочитать находящийся там файл.
2. Распознавание устройства как дискового занимало более 2-х минут.

Все это было связано с наличием нескольких багов в файле usb_msc.c. Таким образом, в данной статье я расскажу о том, как исправить эти ошибки и продолжать с удовольствием пользоваться библиотекой libopencm3.
Читать дальше →

Нестандартный подход к программированию микроконтроллера

Время на прочтение4 мин
Количество просмотров21K
В данной статье будет рассмотрен нестандартный подход к созданию программы для микроконтроллера. Для примера построим проект «кодового замка»; программа для микроконтроллера будет написана в визуальной среде Horizont Configurator.
Читать дальше →

Семинары по введению во всё: от верилога и цифровой логики до микроархитектуры встроенных процессоров и RTOS-ов

Время на прочтение4 мин
Количество просмотров18K
Господа! Мы с Тимуром Палташевым из AMD в Саннивейл, Калифорния, а также с несколькими соратниками из России, Украины и Казахстана решили спланировать несколько семинаров разных форматов, которые покрывают темы на стыке хардвера и софтвера: цифровая логика, Verilog, правила RTL (Register Transfer Level), введение в микроахитектуру (строение конвейера) процессоров, низкоуровневое программирование на ассемблере, использование микроконтроллеров, особенности чипов для интернета вещей, введение в RTOS-ы, лабы на ПЛИС-ах / FPGA, а также (для части аудитории, которая интересуется производством чипов) физические аспекты проектирования и производства на фабрике (для последнего мы решили привлечь материалы от преподавателя курса в Университете Калифорнии Санта Круз, отделение в Silicon Valley).

Цель этого поста — обсудить кому что нравится на основе детального плана первого из таких семинаров, который будет в Казахстане. Идея данного семинара в том, чтобы пригласить некоторое преподавателей казахстанских вузов и сделать для них обзор, чтобы помочь им сориентироваться, в каких местах можно повысить качество их программ в программировании встроенных систем, электронике, а также затронуть связанные области типа интернета вещей и роботики.

elizabeth_panchul_160702_085714-2
Читать дальше →

Вклад авторов