Микроконтроллер, или контроллер (МК, controller) - это микросхема для управления электронными устройствами. По сути, контроллер является мозгом робота, который получает информацию из внешнего мира с помощью сенсоров и передает управляющие сигналы в актуаторы.
Микроконтроллер с точки зрения схемотехники представляет собой однокристальный компьютер, в состав которого входит процессор, ОЗУ, ПЗУ и интерфейсы периферийных устройств. Существует множество различных микроконтроллеров, различающихся по типу процессора, объему и типу памяти, составу периферийных интерфейсов, и т.п. К наиболее распространенной периферии МК можно отнести:
Широкое распространение получили семейства микроконтроллеров ARM, AVR и PIC, которые применяются в промышленных системах управления, станках с ЧПУ, в современных бытовых устройствах и различных гаджетах.
Платформы для разработки (Development boards)Arduino
На микроконтроллерах 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, и т.п.
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
Нехватка ресурсов 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. Единственной проблемой на текущий момент является весьма ограниченный набор библиотек. По сути их три, это:
В целом, платформа представляется весьма интересным устройством для тех кому нужно значительно больше вычислительных ресурсов чем у 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 можно найти здесь.
В 2011 году была создана платформа, объединяющая в себе мощь ARM процессоров и широкие возможности классических платформ для макетирования. Raspberry PI - это полноценный микрокомпьютер, в составе которого входят:
В свою очередь, порт GPIO имеет 17 выводов, включая две шины SPI, одну I2C и один интерфейс UART. Операционная система загружается в память системы с SD флеш карты. Специально для Raspberry Pi, сообществом были адаптированы операционные системы:
Стоимость Raspberry PI Type A, с 256Мб ОЗУ составляет около $25. Её старшая версия B, имеющая 512Мб ОЗУ и Ethernet порт уже колеблется в районе $35. Другие платформы
Существует и множество других платформ для разработки микроконтроллерных устройств. На рынке (в основном на китайском) представлено огромное количество подобных систем на основе, например, микроконтроллера STM32. Семейство данных контроллеров базируется на 32-разрядных процессорах ARM Cortex M. Также часто можно найти и более слабые платформы с контроллерами семейства PIC.
Также как и Arduino или mbed, подобные средства разработки включают в себя ряд цифровых и аналоговых выводов, различные кнопки, индикаторы, USB-интерфейс, Ethernet, а также LCD и TFT дисплеи.
В отличие от того же Arduino, составление программ для указанных устройств осуществляется на более низком уровне. Разработка, как правило, ведется в специальной среде. Например для программирования микроконтроллеров ARM используются коммерческие продукты, такие как Embedded Workbench от IAR Systems, или бесплатные - Eclipse. Установка программы на контроллер обычно производится с помощью специального устройства-программатора.
Таким образом, для работы с подобными платформами потребуется гораздо больше специальных знаний, чем в случае Arduino или mbed.
Стоимость систем на базе STM32 и PIC варьируется от $15 до $200 и более, в зависимости от мощности процессора, количества интегрированных интерфейсов и дополнительных устройств ввода/вывода.
|
Технология >