Разница между разработкой приложения с Pi может сильно отличаться или несколько отличаться от разработки приложения с микроконтроллером из-за различий в оборудовании, а также различий в инструментальных средствах разработки программного обеспечения.
Доступен широкий спектр микроконтроллеров, от 8 до 64 бит и имеющих от нескольких килобайт оперативной памяти до нескольких гигабайт оперативной памяти. Более способные микроконтроллеры обеспечивают больше опыта, подобного Pi. Менее способных микроконтроллеров нет.
И даже с Pi существует большая разница между разработкой для операционной системы Windows 10 IoT и разработкой для Raspian, Mate или других ОС на базе Linux. Для Windows 10 IoT требуется ПК для разработки, использующий набор инструментов Visual Studio с удаленным отладчиком, предназначенный для среды универсальной программы Windows (UWP). Разработка для Raspian или Mate может быть выполнена на Pi с помощью инструментов, доступных на Pi.
Протокол ограниченных приложений используется для небольших ограниченных устройств, используемых в среде Интернета вещей. Чтобы получить представление о разнообразии аппаратного и программного обеспечения микроконтроллера, на этой странице о реализации протокола CoAP дается представление о среде, на которую он ориентирован. В нем упоминается операционная система Contiki, о которой я смутно слышал, а также более известные ОС, такие как iOS, OSX и Android. Упоминаются следующие языки программирования: Java, JavaScript, C, C #, Ruby, Go, Erlang, Rust и Python.
Цепочка инструментов, используемая для разработки с использованием микроконтроллера, варьируется в зависимости от производителя, а также от того, какие ресурсы доступны от сообществ разработчиков и инициатив с открытым исходным кодом. В некоторых случаях вы получаете кросс-ассемблер, в других вы получаете кросс-компилятор C, а в других случаях вы получаете хорошую цепочку инструментов со всеми наворотами и эмуляторами и тому подобное, похожее на набор инструментов Visual Studio для Windows 10 IoT.
Фактическая среда разработки для микроконтроллера может включать в себя использование программатора EEPROM и программных средств для создания нового образа и передачи его на устройство, или устройство может иметь необходимые возможности подключения, позволяющие загружать новый образ через последовательное соединение или более сетевое соединение.
У меня сложилось впечатление, что большинство микроконтроллеров имеют кросс-компилятор C, хотя компилятор может поддерживать только более старые стандарты, такие как K & R или, возможно, C98. C кросс - компиляторы часто имеют нестандартные ключевые слова для микропроцессорных специфических особенностей, например, far
и near
ключевых слов для указателей со старыми 8080 и 8086 процессоров с их сегментированной памятью.
Есть также специальные языки, предназначенные для микроконтроллеров, такие как язык программирования FORTH . Эти языки часто имеют дизайн во время выполнения, который ориентирован на «голое железо», так что нет другой операционной системы, кроме времени выполнения языка.
Операционная система может варьироваться от практически не существующей Linux до специализированной ОС, такой как freeRTOS или Windows Embedded, или полноценной Linux или Microsoft Windows. Смотрите этот проект SourceForge MINIBIAN для Raspberry Pi . Смотрите также эту электронную книгу Baking Pi: Разработка операционных систем, в которой описывается разработка элементарной ОС для Raspberry Pi на ассемблере.
В этой статье из журнала Visual Studio, « Программирование Интернета вещей с помощью Visual Studio» , представлен обзор множества доступных устройств, а также обзор использования Visual Studio IDE для разработки для Linux и Windows.
Сейчас существует огромная и растущая вселенная готовых программируемых сетевых устройств микроконтроллеров. На очень низком уровне у вас есть множество простых 16- и 32-битных устройств от множества традиционных производителей микросхем, таких как Texas Instruments. (Я немного поиграл с комплектом разработки SensorTag, и это очень весело, заставляя меня думать, что Watch DevPack также может быть отличным набором инструментов для обучения.)
Некоторые более известные микроконтроллерные устройства включают Arduino, BeagleBoard и Raspberry Pi. Все эти среды имеют широкую поддержку сообщества и готовы подключить огромное количество готовых внешних датчиков, двигателей, сервоприводов и всего, что вы можете себе представить. Adafruit, супермаркет обучения электронике, основанный Лимором "Ladyada" Fried, предоставляет всевозможные периферийные устройства для этих плат, а также собственную линейку облегченных плат разработки Feather.
...
Наиболее интересным набором устройств для разработчиков, знакомых с Microsoft .NET Framework и Visual Studio, могут быть Windows 10-совместимые с IoT Core среды. Это устройства на базе архитектуры x86 и ARM, которые поддерживают приложения универсальной платформы Windows (UWP), написанные на разных языках, включая C #, Visual Basic, Python и Node.js / JavaScript. Ядро Windows 10 IoT поддерживает такие устройства, как Raspberry Pi, Arrow DragonBoard 410C, Intel Joule, Compute Stick и MinnowBoard. Существуют также интересные платформы продуктов, такие как носимый Askey TurboMate E1.
Конкретный пример применения микроконтроллера
Это изображение платы микроконтроллера от автоматической кофеварки. Похоже, что это стандартный компонент для автоматических кофеварок китайского производства. Веб-сайт производителя напечатан на печатной плате.
Изображение состоит из двух видов. Вид слева - задняя часть платы, содержащей микроконтроллер и поддерживающие схемы. Вид справа - лицевая сторона платы с ЖК-экраном и набором кнопок, которые используются для установки текущего времени и выполнения таких действий, как программирование времени запуска и т. Д.
Вид справа помещается в держатель, который затем вставляется в отверстие в передней части кофеварки. Переключатели на нижней печатной плате приводятся в действие с помощью кулисных рычагов. ЖК-дисплей, который, кажется, имеет специальное назначение, используется для отображения текущего времени и состояния, а также для отображения пользовательского интерфейса при изменении настроек кофеварки. Красный светодиод используется, чтобы указать, когда кофеварка фактически готовит кофе, и чтобы указать, когда это сделано, выключив подсветку.
Микроконтроллер представляет собой ELAN Microelectronics Corp EM78P447NAM (таблица данных), который представляет собой 8-разрядный микроконтроллер. Некоторые из основных характеристик показывают, что это за маленькое и минимальное устройство, однако оно прекрасно работает по назначению. Целью является разработка программного обеспечения, которое затем загружается в ПЗУ с однократной записью как часть производства.
• Низкое энергопотребление:
* Less then 2.2 mA at 5V/4MHz
* Typically 35 µA, at 3V/32KHz
* Typically 2 µA, during sleep mode
• 4K × 13 бит на чипе ПЗУ
• Три защитных бита для предотвращения вторжения кодов памяти OTP
• Один регистр конфигурации для соответствия требованиям пользователя
• 148 × 8 битов в регистрах чипов (SRAM, регистр общего назначения)