Рубрика «программирование микроконтроллеров»

Как использовать USB-камеру с ROS на Raspberry Pi или BeagleBone Blue — для потокового стрима видео на большой компьютер - 1

Эта инструкция о том как подключить USB-камеру к Raspberry Pi или BeagleBone Blue и использовать ее с ROS (Robot Operating System) — чтобы читать данные с камеры через ROS image_view и даже транслировать видео поток в веб-браузер!

В конце видео демонстрация на роботе EduMip.
Читать полностью »

Когда-то давно мне попалось под руку электронное цифровое реле времени ВЛ-76-С, новое, в упаковке, но в неисправном состоянии. Внутри никаких дефектов на печатных платах не было обнаружено. Стало быть, заводской брак, битая прошивка.

Обратная разработка реле времени ВЛ-76-С - 1

Общий вид реле.
Читать полностью »

Последнее время среди аксессуаров для велосипедов получили широкое распространение так называемые цифровые велоспидометры (велокомпьютеры). Данные устройства способны измерять множество параметров, главные из которых скорость и расстояние. Принцип измерения скорости основывается на подсчёте периода оборота колеса, а расстояние вычисляется на основе измерения количества таких оборотов. Зачастую датчиком оборота колеса служит геркон в совокупности с магнитом на спице колеса. В зависимости от функциональности, цена таких устройств варьируется в больших пределах. Самый дешёвый велоспидометр можно приобрести примерно за 500 р.

У меня всегда было желание иметь подобное устройство. При этом я сформулировал ряд собственных требований, которым оно должно удовлетворять. Прежде всего, мне очень хотелось, чтобы по мере движения на дисплее пририсовывался график изменения скорости в зависимости от расстояния или времени, накопленный за небольшой период. А также, фиксировать (логировать) измерения на запоминающее устройство для дальнейшей передачи статистических данных на компьютер, их более детального просмотра. Дешёвые модели не полностью соответствуют моим требованиям, а за дорогие модели переплачивать не хочется.
Читать полностью »

Приветствую! В процессе обсуждения статьи товарища KSVl была озвучена необходимость небольшого пособия по проектированию печатных плат. Очень часто на хабре я вижу статьи в стиле «5 правил оформления кода» или «5 шагов к успешному проекту», то есть очень удобные собрания тезисов по определенной теме. К сожалению подобных статей по разработке электроники мало и это плохо…

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

7 правил проектирования печатных плат - 1
Читать полностью »

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

Один из модулей – W5500 – предназначен для изготовления электронных конструкций, которые будут связаны с Интернет. При этом чаще всего, подразумевается удалённое управление своей конструкцией. Например, это может быть «умный дом», робот и тому подобное. Самый тривиальный проект (кроме Hello world) – удалённое включение светодиодов через web-браузер (рис. 1). Если вместо светодиодов подключить транзисторные ключи и реле, можно коммутировать более мощные нагрузки. Таким образом, по сути, программа (прошивка) данной конструкции представляет собой web-сервер, обрабатывающий http-запросы удалённого пользователя.
Читать полностью »

Управление самобалансирующим роботом EduMip с помощью джойстика PS4 dualshock 4 через ROS - 1
Это простой пример про то, как с помощью ROS можно связать несколько устройств по сети и пересылать данные управления.

Под катом в конце — видеодемонстрация управления роботом с джойстика.
Читать полностью »

В данной публикации я поделюсь опытом о создании IoT устройства с ноля: от появления идеи и воплощении ее в «железе» до создания микропрограммы для контроллера и web-интерфейса для управления созданным устройством через сеть интернет.

До создания этого устройства я:

  • Почти не разбирался схемотехнике. Только на уровне принципов работы
    резистора/транзистора… Я не имел никакого опыта в создании сколь-нибудь сложных схем.
  • Никогда не проектировал печатных плат.
  • Никогда не паял SMD компонент. Уровень владения паяльником был на уровне припаивания проводов и какого-нибудь реле.
  • Никогда не писал таких сложных программ для микроконтроллера. Весь опыт был на уровне «зажги светодиод в Arduino», а контроллер ESP8266 я встретил впервые.
  • Совсем немного писал на C++ для «большого брата», но это было более десятка лет назад и все давно забылось.

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

Читать полностью »

image

Сегодня мы поговорим о такой актуальной теме, как таймеры и организация многозадачности на Arduino. Поводом для написания этой статьи послужили лекции Олега Артамонова @olartamonov для студентов МИРЭА в рамках IoT Академии Samsung, а точнее, высказывание Олега, цитата (2-я лекция, 1:13:08):

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

Судя по высказываниям Олега, у него весьма превратное представление об Arduino вообще и об «ардуинщиках» в частности. Мигание пятью светодиодами в означенных им режимах это абсолютно тривиальная задача для Arduino, а для Arduino Mega Server это вообще не задача, а сущее недоразумение — его штатными средствами организуется многозадачность, которая легко управляет сотнями различных сущностей (светодиодов, сервоприводов, шаговых моторов и т. д.) в реальном времени.

Давайте вместе разберёмся как организовать многозадачность на Arduino, а заодно поможем студентам МИРЭА избавится от навязанных им стереотипов восприятия по отношению к социо-культурному и технологическому феномену нашего времени под названием Arduino.
Читать полностью »

Запуск ROS на самобалансирующем роботе EduMIP - 1

Введение

В этой публикации представлена инструкция по установке и запуску операционной системы робота (ROS) на мобильном роботе EduMIP. EduMiP — это самобалансирующийся робот, построенный вокруг BeagleBone Black c встроенным бортовым микропроцессором и Beaglebone Black Robotics Cape, разработанной James Strawson и профессором Thomas Bewley согласованно с Coordinated Robotics Laboratory at UCSD и их сотрудниками. BeagleBone Blue, недавно выпущенный в середине 2017 года, сочетает в себе функции BeagleBone Black и Robotics Cape в одной плате. Профессор Bewley использует этот робот в своем курсе MAE144 – Embedded Control & Robotics на кафедре механического и аэрокосмического машиностроения UCSD.
Отвечаю на вопросы в комментариях.
Читать полностью »

image Добрый день, уважаемыее! Хочу представить общественности мой проект — небольшая отладочная плата на базе STM32, но в форм-факторе Raspberry Pi. От других отладочных плат она отличается тем, что имеет совместимую с корпусами от Raspberry Pi геометрию и наличие ESP8266-модуля в качестве беспроводного модема. А также приятные дополнения в виде разъёма для micro-SD карты и стерео-усилителя. Для использования всего этого богатства я разработал высокоуровневую библиотеку и демонстрационную программу (на C++11). В статье я хочу подробно описать как аппаратную, так и программную части этого проекта.

Читать полностью »