Метка «микроконтроллеры» - 5

Введение

Здравствуйте, глубокоуважаемые хабрачане! В первой статье мы рассмотрели в общих чертах программирование в платформе MRDS на примере набора NXT. В данной статье мы узнаем, как управлять непосредственно микрокомпьютером NXT. Напишем несколько простых приложений, демонстрирующих «общение» на программном уровне с управляющим блоком NXT, заставим издавать NXT звуки (приличные и не очень), реагировать на нажатие клавиш, узнаем сколько осталось жить вашему NXT.

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

Введение

Здравствуйте, глубокоуважаемые хабрачане! В своих постах я хочу вас познакомить с продуктом корпорации Microsoft — Robotics Developer Studio 4 (далее MRDS 4), расскажу как запрограммировать робота реального и виртуального. Двигаться мы будем от простого к сложному. В качестве испытуемых роботов будем использовать набор LEGO Mindstorms NXT 2.0 (наиболее удачный, на мой взгляд, вариант) и микроконтроллер Basic Stamp (наименее удачный вариант). И так, приступим!
Читать полностью »

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

Итак, начнём с теории. Все знакомы с так называемой широтно-импульсной модуляцией, позволяющей управлять током в (или, что реже, напряжением на) нагрузке с максимальным КПД. Лишняя мощность в таком случае просто не будет потребляться, вместо того, чтобы рассеиваться в виде тепла, как при линейном регулировании, представляющем собой не более чем усложнённый вариант реостата. Однако, по ряду причин такое управление, будучи выполненным «в лоб», не всегда подходит для переменного тока. Одна из них — бо́льшая схемотехническая сложность, поскольку требуется диодный мост для питания силовой части на MOSFET или IGBT транзисторах. Этих недостатков лишено симисторное управление, представляющее собой модификацию ШИМ.
Читать полностью »

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

На случай, если вы пропустили предыдущие части — вот ссылки:
1 — Миникомпьютер из роутера с OpenWRT: разрабатываем USB-видеокарту
2 — Миникомпьютер из роутера с OpenWRT: пишем USB class-driver под Linux
Итак, приступаем к работе.
Читать полностью »

Миникомпьютер из роутера с OpenWRT: пишем USB class driver под Linux
Добрый день, уважаемыее. В прошлой статье мы с вами разработали простую USB-видеокарту на базе STM32F103 и китайского дисплейного модуля на контроллере ILI9325.
Проверяли мы его из юзерспейса, при помощи LibUSB. Ну что ж, пришло время нам написать свой собственный драйвер, который позволит делать все то же самое, но из-под Linux и без дополнительных библиотек. Этот драйвер мы внесем в дерево исходников OpenWRT и он поселится там наравне со всеми остальными.
Начнем.
Читать полностью »

Миникомпьютер из роутера с OpenWRT: разрабатываем USB видеокарту
Добрый день, уважаемыее. В этом цикле статей мы с вами пройдем достаточно длинный, но весьма интересный путь по превращению обычного роутера в мини-компьютер с LCD-дисплеем. Для этого мы разработаем сначала USB-видеокарту на базе микроконтроллера STM32F103, потом тестовый дравйвер, который позволит нам выводить на него графику, и, наконец – полноценный драйвер фреймбуффера, благодаря которому можно будет запустить настоящие графические приложения, такие как x-сервер. Заодно мы научимся включать наш код в дерево исходников OpenWRT, допиливать его ядро и делать прочие полезные вещи.
Ну а в самом конце мы получим результат, который, я надеюсь, вызовет ностальгическую слезу у многих читателей. Я постараюсь излагать материал таким образом, чтобы в конце каждого этапа мы получали осязаемый результат, не дающий угаснуть энтузиазму. Итак, начнем.
Читать полностью »

Ниже описан мой первый опыт общения с программируемым микроконтроллером в лице STM32VLDiscovery, результатом которого явилась машинка из LEGO, управляемая с телефона, и ещё кое-что. Я постарался изложить свой путь в виде пошагового руководства к действию, но, предупреждаю сразу, не руководства «как делать правильно». Первые два раздела являются предисловием и не относятся непосредственно к данному микроконтроллеру.

image

Содержание:

  1. Первый контакт с микроэлектроникой.
  2. Строительство машинки на непрограммируемых логических элементах.
  3. Начало работы с STM32. Среда разработки. Подключение микроконтроллера к машинке.
  4. Определяем угол поворота передних колёс — обратная связь через АЦП.
  5. Использование ЦАП для воспроизведения звуков.

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

Этот короткий пост может слегка напомнить некое исследование рынка по теоретической заметке "Микроконтроллеры устарели?".
Свежий взгляд на микроконтроллеры

На исследование микроконтроллеров и готовых плат натолкнула одна из небольших поделок, над которой сейчас работаю. В частности, необходим довольно компактный контроллер с 20 входами/выходами, и позволяющий выступать в роли ведомого USB устройства. Первый взгляд упал на Teensy, довольно компактный, на чипе Atmega32U4. Смутила только цена, $24 за устройство с распаянными ножками плюс доставка. Всего лишь чуть менее, чем вдвое дешевле, чем мне обошёлся, заказанный в апреле и пришедший лишь сегодня, Raspberry model B (ура!).
Цены на Arduino, Propeller также неприятно удивили.
Собственно, посетила мысль просто поставить сам чип на печатную плату и не заморачиваться с отдельным контроллером, но и Atmega32U не дёшев, около 4 евро за штуку (32U2) 5.5 евро за 32U4, и цены на них не снижаются, а, наоборот, растут.

С AVR'ами серии USB (90USB, 8U. 16U. 32U) смущает ещё то, что те пробные прошивки, что я делал по примерам, занимали около 18КБ, в основном занимаемые кодом работы с USB (LUFA/какое-то доморощенное от Teensy), а флеш памяти в половине этих устройств уже меньше. Что там с потреблением оперативной памяти, вообще сказать тяжело, хватит ли 1КБ? Без какого-то либо опыта оптимизации кода на C лезть в эти дебри совершенно не хотелось.

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

Сразу скажу, что пост ориентирован скорее на обычных людей, чем на тех, кто в теме.

Я тут решил забить на всю работу и заняться чем-то для души. Снова взялся за паяльник. Решил автоматизировать дома всё и вся. На старой-то квартире у меня был умный дом или что-то типа того — мог свет в комнате включать через Интернет и всё такое.

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

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

На борту микроконтроллера есть всякие I²C, да UART, но они явно не удовлетворяют условиям. В итоге было решено разработать свой велосипед протокол.

Создание умного дома и разработка своего протокола

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

Цель проекта Codebender — создать удобную облачную платформу для программирования микроконтроллеров. За последние несколько лет создание устройств на основе микроконтроллеров стало гораздо более доступным и популярным делом. Сейчас не проблема найти подходящий контроллер со всем необходимым железом — вокруг Arduino уже сформировалась внушительная экосистема. А вот с софтом пока дела обстоят хуже. Обычно для написания, отладки и прошивки встроенных программ используются нативные приложения, которые работают не на всех платформах и часто имеют совершенно не дружественный интерфейс. Codebender — это работающий в браузере редактор кода c возможностью проверки его корректности и прошивкой устройств через USB или Ethernet.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js