Обновить
222.8

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

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

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

Атрибуты Хорошего Канального Протокола Передачи Данных

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели8.9K

В этом тексте представлены атрибуты хорошего и простого канального Master-Slave протокола для пакетного обмена информацией между устройствами на общей шине таких как RS485, CAN, LoRa, BLE.
Несмотря на то, что есть канальные протоколы ModBus, DLMS, RDS, UBX, NEC, Pelco-D, yModem, многие компании всё же придумывают собственный канальный протокол для взаимодействия между своими электронными платами. Тут представлены общие атрибуты таких доморощенных протоколов.

Читать далее

Edge AI чипы от Kneron. Ныряем в прошивку

Время на прочтение17 мин
Охват и читатели1.8K

Dive

Привет, я Антон Маслов, ведущий разработчик в MTS AI.


В предыдущей своей статье я рассказывал в общих чертах о том, что это за чипы такие от Kneron (микроконтроллеры со встроенными нейроускорителями), что такое нейроускоритель, чем так интересна технология периферийного искусственного интеллекта Edge AI, и как вообще с этим работать. А еще о том, как на чипе KL520 запустить систему распознавания изображений с помощью нейросети Tiny YOLOv3.


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


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

DIY: ретранслятор на micro:bit и радиомодуле LoRa увеличивает дальность связи

Время на прочтение7 мин
Охват и читатели7.6K

В статье «DIY: передаем данные на километры с помощью контроллера Micro::Bit и радиомодуля EBYTE LoRa» (часть 1 и часть 2) мы рассказали, как обеспечить связь на обширных территориях при небольшой излучаемой мощности. Но что, если нужно передавать данные на расстояния в десятки или даже сотни километров? Например, вдоль таких объектов, как автомобильные дороги, железнодорожные линии или трубопроводы?

Читать далее

DIY: передаем данные на километры с помощью контроллера Micro::Bit и радиомодуля EBYTE LoRa (Часть 1)

Время на прочтение17 мин
Охват и читатели23K

Если посмотреть, на какой базе сегодня обучают школьников в кружках робототехники, то окажется, что в большинстве своем это Лего-подобные наборы с контроллером Arduino. Однако в этой статье мы рассмотрим контроллер micro::bit — узнаем, чем он хорош, и создадим учебный проект системы сбора данных.

Читать далее

Делаем Fischertechnik-совместимый модуль управления шаговым мотором на основе драйвера A4988 (DRV8825)

Время на прочтение7 мин
Охват и читатели7.3K

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



2 вывода питания с коннекторами Фишертехник, 4 вывода для подключения мотора и 5 выводов для подключения микроконтроллера (step, dir, enable). Отверстия в крышке пропилены с помощью Dremel, равно как и проточено отверстие в шестеренке под вал мотора — предупреждаю, пластик Фишертехника, хоть он и гибкий, обрабатывается не проще металла!

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

Новогодний Робот ROS Огонёк с распаковкой робота собаки

Время на прочтение2 мин
Охват и читатели3.9K

В Robot Operating System сообществе мы решили провести новогодний Робот ROS Огонек, по примеру известной передачи Голубой огонек. В программе видео трансляции живое общение робототехников, истории про проекты роботов, ответы на различные вопросы по робототехнике.

И начнем мы видео с распаковки и обзора четвероногого робота собаки.

Читать далее и смотреть распаковку робота

Проектировщик процессоров Zilog расскажет про Z80 в космосе и про свое новое RISC-V ядро

Время на прочтение5 мин
Охват и читатели8.2K

Что общего между популярным у хоббистов компьютером Синклер ZX Spectrum и космической станцией Juno, которая сейчас вращается вокруг Юпитера? И на одном, и на другом стоит процессор с архитектурой Zilog. На Синклере просто Z80, а на Juno - радиационно стойкий Y180-S. Y180-S спроектировал Монте Далримпл (Monte J. Dalrymple), выпускник Беркли, который проработал 16 лет в Zilog, после чего сделал собственный бизнес, компанию под названием Systemide.

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

Вы можете послушать Монте в эту субботу

Оптимизируем производительность Teensy 4.1 при разработке в NXP MCUXpresso

Время на прочтение6 мин
Охват и читатели2K


В предыдущей статье мы выяснили, что производительность контроллера MIMXRT1062, применённого на плате Teensy 4.1 можно существенно поднять, перераспределив внутреннюю память по сильносвязанным шинам. Для этого мы воспользовались механизмом FlexRAM. В библиотеках от Teensyduino всё уже сделано за нас, но в данном цикле статей я рассказываю, как вести разработку в среде MCUXpresso от NXP. Мы произвели необходимые доработки проекта, и вот уже данные ложатся в достаточно потолстевший банк памяти DTCM:



То же самое текстом
Memory region         Used Size  Region Size  %age Used
     BOARD_FLASH:       32400 B         8 MB      0.39%
        SRAM_DTC:       22420 B       256 KB      8.55%
        SRAM_ITC:          0 GB       256 KB      0.00%
         SRAM_OC:          0 GB       512 KB      0.00%


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

Электронный уровень для бурения ям и скважин

Время на прочтение4 мин
Охват и читатели7.4K

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

Читать далее

Wi-Fi розетка с управлением через Интернет за 60 минут

Время на прочтение8 мин
Охват и читатели32K

В этом материале мы покажем, что Интернет вещей — это не так уж и сложно. Для этого за 60 минут соберем и оживим простейшую Wi-Fi розетку с управлением через Интернет.

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

На распутье — Ардуино, Cи или Ассемблер?

Время на прочтение9 мин
Охват и читатели20K

Сначала короткая предыстория появления этого поста. Относительно давно, помигав светодиодом, захотелось сделать что-то полезное. Так появился Беспроводной программируемый по Wi-Fi комнатный термостат с монитором качества воздуха и другими полезными функциями. Как назло, в это время перестал работать мой промышленный термостат. Меня выручил еще сырой макет, наспех спрятанный в картонную коробочку. За время отопительного сезона напрягал лишь один недостаток прототипа – это необходимость таскать по квартире удлинитель 220В и кабель, который всегда путался под шваброй ногами. Поэтому решил сделать нечто похожее, но автономное, притом, с питанием от батареек, как в серийном образце.


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


Приступая к задаче, для меня было очевидно одно – вряд ли программы промышленных автономных устройств составлены на платформе Arduino IDE. Где все спрятано в громоздкие тяжеловесные библиотеки, а простые коды (скетчи) занимают в редакторе несколько десятков строк, делая работу в этой среде комфортной и не требующей особых усилий. Уточню сразу – дальше речь о выборе языка программирования между Ардуино, Си или Ассемблером. "Язык Ардуино"- это сленг для краткости. Нет такого языка программирования. Если увидите тут и дальше "язык Ардуино", то — это "Arduino IDE — интегрированная среда разработки для Windows, MacOS и Linux, разработанная на Си и C ++"(Википедия).

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

Опыт написания IDL для embedded

Время на прочтение7 мин
Охват и читатели6.6K

Я при работе с микроконтроллерами часто сталкивался с бинарными протоколами. Особенно, когда есть несколько контроллеров. Или же используется bluetooth low energy и необходимо написать код для обработки бинарных данных в характеристике. Помимо кода всегда требуется понятная документация.

Всегда возникает вопрос - а можно ли описать как-то протокол и сгенерировать на все платформы код и документацию? В этом может помочь IDL.

Читать далее

Assembler Editor Plus: Установка

Время на прочтение3 мин
Охват и читатели9.4K

Продолжение цикла статей.

Предыдущая статья: Редактор ассемблера для ARM микроконтроллеров для компилятора gnu as. Старт

Внимание! далее много картинок.

Читать далее

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

Все ли автопроизводители хотят работать с собственными операционными системами

Время на прочтение7 мин
Охват и читатели5.3K
image


Многие автомобильные OEM и Tier-1 компании завидуют Tesla. Осознавая, что самой большой проблемой автомобильной промышленности является программное обеспечение, производители автомобилей (от Volkswagen до Hyundai), занимаются разработкой собственных ОС – как у Tesla.

Это сложная задача (если вообще не фантастика). Чтобы тягаться с Tesla, компаниям нужно будет не просто разработать ПО, которое можно будет обновлять по воздуху, или сделать классный пользовательский интерфейс.

Им нужно будет разработать полноценные ОС.

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

В конце прошлого месяца компания Elektrobit (Эрланген, Германия) представила «первую в отрасли программную платформу» под названием EB xelor. Практически в то же время компания TTTech Auto (Вена, Австрия) анонсировала программную платформу для автопроизводителей. Их решение называется MotionWise – «проверенная программная платформа безопасности для автоматизированной езды». TTTech Auto также объявила о создании подразделения Car.OS, которое станет расширением команды MotionWise и поможет автопроизводителям в разработке собственных ОС.

Программирование Modbus RTU Master на примере Simatic S7-1200 и ПЧ Sinamics V20

Время на прочтение11 мин
Охват и читатели54K

Давно хотел рассказать про тонкости программирования обмена по протоколу Modbus RTU в случае, когда контроллер (в нашем случае S7-1214) выступает RTU Master'ом. Недавно меня попросили помочь с обменом между ПЛК и частотным преобразователем Sinamics V20, ну и почему бы не написать заодно заметку, постаравшись приблизить решение задачи к боевым условиям.

Читать далее

Клиент-серверный обмен данными между двумя PLC серии S7-1500 по протоколу OPC UA

Время на прочтение8 мин
Охват и читатели30K

Протокол OPC UA (https://ru.wikipedia.org/wiki/OPC_UA) появился впервые в контроллерах Simatic во второй версии прошивки и в Step 7 версии 14. Тогда контроллер можно было настраивать только в качестве OPC UA - сервера, то есть ПЛК мог отвечать на запросы и отдавать данные, но не мог сам инициировать связь и опрашивать других участников сети.

Радикально ситуация меняется в ноябре-декабря 2018 года с выходом прошивки 2.6 и Step 7 версии 15.1. Появляется возможность настроить CPU в качестве OPC UA клиента. А это, в свою очередь дает нам возможность организовать защищенный канал обмена информацией машина-машина (контроллер-контроллер).

Читать далее

Практическая работа с ПЛИС в комплекте Redd. Осваиваем DMA для шины Avalon-ST и коммутацию между шинами Avalon-MM

Время на прочтение10 мин
Охват и читатели6.9K
Продолжаем двигаться к созданию реальных устройств на базе ПЛИС комплекса Redd. Для другого проекта All-Hardware мне нужен простенький логический анализатор, поэтому будем двигаться именно в этом направлении. Повезёт — дойдём и до шинного анализатора USB (но это пока в отдалённой перспективе). Сердцем любого анализатора является ОЗУ и блок, который сначала закачивает в него данные, а затем изымает их. Сегодня мы как раз спроектируем его.

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


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

«Как зеницу ока...» или делаем простенькую охранную систему на базе микроконтроллера (Canny или Arduino) и Raspberry PI

Время на прочтение11 мин
Охват и читатели10K
Во время подготовки статьи, про распознавание микроконтроллеров с помощью TensorFlow и OpenCV мне одновременно на глаза попались Craftduino, Canny 3 tiny и Raspberry PI, после чего я решил, что будет здорово еще раз объединить их в одной статье. Я долго думал, о чем писать, а потом стыдно признаться, вспомнил, что я здоровый дядька, а еще ни разу не подключал ничего по UART. «В жизни надо попробовать всё» — подумал я. Но писать только про подключение к UART скучно, поэтому незамедлительно были заказаны всякие «игрушки», среди которых были новенькая Arduino, и пара датчиков.

Итак, сегодня мы будем делать охранную систему для моей любимой ручки. Вы удивлены почему именно ручка? Секрет прост, я весьма неопытен во всяких там вопросах электроники и поэтому, когда заказывал датчик давления думал, что он будет действовать по всей площади, а оказалось, что он работает только для определенной контактной площадки. Как ни странно, но во всём доме не оказалось ничего достаточно увесистого, устойчивого и подходящего по размерам, кроме этой ручки. Ну и кроме моего пальца, но экспериментировать с ним я был не готов .

В статье я поделюсь своим опытом подключения датчика давления и доплеровского датчика движения, к микроконтроллерам. Сами контроллеры через проводной интерфейс UART подключим к GPIO Raspberry PI 3. Затем напишем на Python простенькую программку для отображения статуса охранной системы, а в конце подключим смартфон к «малине» с помощью VNC, чтобы следить за охранной системой на удалении от компьютера.

Хотите оставить Индиану Джонса не у дел? Тогда милости прошу под кат.


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

Простой графический интерфейс для M5Stack (Arduino)

Время на прочтение10 мин
Охват и читатели12K

Привет! Сегодня мы познакомимся с такой штукой как M5 UI. Благодаря M5 UI Вы можете с помощью пары строк кода подключать всевозможные поля, кнопки, ползунки и переключатели, создавать условные слоя. Несмотря на то, что процесс подключения элементов UI очень прост, Вы также можете воспользоваться наглядным инструментом M5 UI Designer for Arduino IDE.



Рисунок 1

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

ESP32 и файловая система SPIFFS

Время на прочтение5 мин
Охват и читатели67K


SPIFFS – (Serial Peripheral Interface Flash File System) файловая система флеш-памяти, подключаемой по последовательному периферийному интерфейсу. Простыми словами: есть микроконтроллер ESP32 (рисунок 1), у него есть встроенная перезаписываемая энергонезависимая NOR-память, в которой хранятся: настройки (Preferences), загрузчик (Bootloader), микропрограмма (скомпилированный скетч), файловая система (SPIFFS) и ещё что-нибудь, типа обновления "по воздуху" (OTA).

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

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