Контроллер

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

NXP LPC1800 микроконтроллер
Микроконтроллер с точки зрения схемотехники представляет собой однокристальный компьютер, в состав которого входит процессор, ОЗУ, ПЗУ и интерфейсы периферийных устройств. Существует множество различных микроконтроллеров, различающихся по типу процессора, объему и типу памяти, составу периферийных интерфейсов, и т.п. К наиболее распространенной периферии МК можно отнести:
            • цифровые и аналоговые порты ввода/вывода (GPIO);
            • интерфейсы ввода-вывода, такие как UART, I²C, SPI, CAN, USB, IEEE 1394, Ethernet;
            • широтно-импульсные модуляторы (PWM);
            • массивы встроенной флеш-памяти.
Широкое распространение получили семейства микроконтроллеров ARM, AVR и PIC, которые применяются в промышленных системах управления, станках с ЧПУ, в современных бытовых устройствах и различных гаджетах.

Платформы для разработки (Development boards)

Arduino

Платформа Arduino Uno
На микроконтроллерах AVR (реже ARM) основана популярная аппаратная вычислительная платформа Arduino. Это устройство представляет собой плату с микроконтроллером Atmel ATmega, всей необходимой для него обвязкой, регулятором напряжения и USB-UART мостом. Все выводы платформы выведены на края платы, и как правило уже оборудованы разъемами.

Основные модели Arduino имеют в своем составе 8-битный микропроцессор ATmega. Как правило, для большинства проектов использующих Arduino, такого слабого процессора вполне хватает. Имеется и версия на основе 32-разрядного ARM Cortex M3 (ATMEL SAM3U), но пока она не получила достаточного распространения среди энтузиастов.

Наиболее популярная версия Arduino Uno базируется на микроконтроллере ATmega328. Имеет 15 GPIO портов, включая 6 ШИМ. Микроконтроллер снабжен 32Кб Flash-памяти и 2Кб RAM. Тактовая частота процессора 16МГц.

Для программирования Arduino не требуется внешний программатор, так как в микроконтроллер уже зашит загрузчик (boot loader). Кроме того, на плате размещается USB-UART мост, который позволяет загружать скетчи при помощи обычного USB интерфейса.

Программный код для Arduino выполняется на языке Processing/Wiring, имеющем синтаксис C++. Для составления кода и загрузки его в контроллер используется свободно-распространяемый редактор Arduino IDE.  

Именно благодаря этим двум особенностям, Arduino стала самой распространенной платформой для начинающих разработчиков электроники. Стоимость самой дешевой Arduino Uno варьируется в пределах $15-$20.

Клоны Arduino

Поскольку "Arduino" является зарегистрированным товарным знаком, сторонние производители вносящие изменения в архитектуру платформы используют другие обозначения для своих продуктов. Клоны совместимы с Arduino программно и аппаратно, что означает они могут использовать программы написанные для Arduino и использовать соответствующие дополнительные модули (Shields). Список клонов достаточно велик и постоянно растет: серия Freeduino (SB, Max Serial, Through-Hole), CraftDuino, Seeeduino, Roboduino, и т.п.

Имеются также специализированные платформы на основе Arduino архитектуры:
  • DFRobotShop Rover - платформа для роверов, включающая H-мост;
  • ArduPilot - автопилот для самолетов, квадрокоптеров, лодок с поддержкой GPS и стабилизации на основе акселерометра и гироскопа;
  • Lightuino - платформа для управления LED-ос;
  • и т.п.

The Shrimp

Как уже упоминалось, на плате Arduino, помимо самого микроконтроллера, размещается USB-UART мост и понижающий регулятор напряжения. Насколько усложнится работа с платформой, если убрать эти элементы?

Активисты из сообщества Shrimping It задались этим вопросом, и разработали минималистическую версию Arduino, назвав её The Shrimp.

Состоит Shrimp из микроконтроллера ATmega328 (или 168), минимальной обвязки из нескольких конденсаторов, кварцевого резонатора, диода и резистора. Чтобы микроконтроллер смог принимать скетчи Arduino, его необходимо прошить загрузчиком, либо оригинальным, либо аналогом типа OptiLoader.

Чтобы залить скетч через USB, потребуется внешний USB-UART. Такое устройство можно приобрести на ebay за 3-4$. Имея внешний мост можно программировать множество Shrimp-ов. 

Подробности приготовления своего Shrimp можно найти по ссылке: Arduino своими руками









Maple

Maple rev5
Нехватка ресурсов Arduino привела к созданию таких же простых в использовании на более мощных платформ для разработки электронных устройств. Одной из таких продвинутых в техническом плане платформ является Maple (текущая ревизия r5), базирующаяся на 32-битном микроконтроллере STM32F103RB с архитектурой ARM Cortex M3. 

Тактовая частота использованного микроконтроллера STM32 составляет 72МГц. Maple имеет на своем борту 120Кб Flash памяти и 20Кб SRAM. Для GPIO используются аж 43 вывода, из которых 15 с поддержкой 16-битной ШИМ. Из периферии есть: 15 12-битных аналоговых выходов, 4 таймера, 2 I2C, 2 SPI и 3 USART. А еще имеется встроенная система заряда LiPo батарей.

Облегченная модель Maple Mini имеет ядро с такой же тактовой частотой и памятью, и отличия заключаются только в количестве выводов. Ведется разработка флагманской Maple Native II, которая будет иметь еще больше выводов чем стандартный Maple и больший объем памяти (512 Flash и 64SRAM).

Для программирования используется свой Maple IDE. Скетчи Maple, за некоторыми исключениями, совместимы с Arduino. Единственной проблемой на текущий момент является весьма ограниченный набор библиотек. По сути их три, это: 
  • LiquidCrystal - полностью совместимая с Arduino;
  • Servo - частично совместимая;
  • и начальная версия Wire (I2C).
В целом, платформа представляется весьма интересным устройством для тех кому нужно значительно больше вычислительных ресурсов чем у Arduino и тех кто способен сам дописать нужные библиотеки.

Стоимость Maple rev5 на ebay колеблется в диапазоне $30-35, что совсем не много за такую систему.

Mbed

Как и Maple, платформа mbed не так популярна как семейство Arduino. Однако, в основе mbed лежит более мощный микроконтроллер NXP LPC1768 с архитектурой ARM Cortex M3. Процессор работает на частоте 96МГц и снабжен 512Кб Flash-памяти и 32Кб RAM.

В официальном репозитории имеется большая коллекция различных библиотек на все случаи жизни. Программирование контроллера осуществляется путем копирования скомпилированного бинарного файла на флеш контроллера и перезагрузка устройства специальной кнопкой в центре платы. Сами же программы составляются с помощью весьма удобного on-line компилятора.

Конечно, стоимость mbed превышает Arduino в разы и составляет $60 ($45 для упрощенной ARM Cortex-M0 версии), но если вам требуется большие вычислительные ресурсы, скажем для системы маневрирования БПЛА или для интеллектуального анализа изображений, то данная платформа становится достаточно интересной.

Подробный обзор mbed можно найти здесь.

Raspberry PI

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

В 2011 году была создана платформа, объединяющая в себе мощь ARM процессоров и широкие возможности классических платформ для макетирования. Raspberry PI - это полноценный микрокомпьютер, в составе которого входят:
  • процессор Broadcom BCM2835, включающий основное ядро ARM11 и графическое ядро;
  • ОЗУ 512Мб или 256Мб;
  • 2х USB 2.0 порта;
  • Ethernet 10/200 Мбит/с;
  • видеовыход HDMI;
  • видеовыход композитный;
  • аудиовыход jack 3.5;
  • GPIO выводы.
В свою очередь, порт GPIO имеет 17 выводов, включая две шины SPI, одну I2C и один интерфейс UART.

Операционная система загружается в память системы с SD флеш карты. Специально для Raspberry Pi, сообществом были адаптированы операционные системы: 
  • Debian - Raspbian;
  • Fedora Core - Pidora;
  • RISC OS;
  • Arch - ArchLinux.

Стоимость Raspberry PI Type A, с 256Мб ОЗУ составляет около $25. Её старшая версия B, имеющая 512Мб ОЗУ и Ethernet порт уже колеблется в районе $35.

Другие платформы

Платформа на базе STM32
Существует и множество других платформ для разработки микроконтроллерных устройств. На рынке (в основном на китайском) представлено огромное количество подобных систем на основе, например, микроконтроллера STM32. Семейство данных контроллеров базируется на 32-разрядных процессорах ARM Cortex M. Также часто можно найти и более слабые платформы с контроллерами семейства PIC.

Платформа на базе микроконтроллера PIC
Также как и Arduino или mbed, подобные средства разработки включают в себя ряд цифровых и аналоговых выводов, различные кнопки, индикаторы, USB-интерфейс, Ethernet, а также LCD и TFT дисплеи.

В отличие от того же Arduino, составление программ для указанных устройств осуществляется на более низком уровне. Разработка, как правило, ведется в специальной среде. Например для программирования микроконтроллеров ARM используются коммерческие продукты, такие как Embedded Workbench от IAR Systems, или бесплатные - Eclipse. Установка программы на контроллер обычно производится с помощью специального устройства-программатора. 

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

Стоимость систем на базе STM32 и PIC варьируется от $15 до $200 и более, в зависимости от мощности процессора, количества интегрированных интерфейсов и дополнительных устройств ввода/вывода.

Подстраницы (3): Arduino mbed TI LaunchPad MSP430
Comments