Різниця між розробкою програми з Pi може бути дуже різною або дещо схожою на розробку програми з мікроконтролером через розбіжності в апаратному забезпеченні, а також відмінності в ланцюзі інструментів розробки програмного забезпечення.
Існує широкий спектр мікроконтролерів, які мають від 8-ти до 64-бітових процесорів і мають десь від декількох К ОЗП до декількох гігабайт ОЗУ. Більш спроможні мікроконтролери забезпечують більше досвіду, як Pi. Менш здатні мікроконтролери не мають.
І навіть у Pi є великі відмінності між розробкою для операційної системи Windows 10 IoT порівняно з розробкою для Raspian, Mate або іншої ОС на базі Linux. Windows 10 IoT вимагає ПК для розробки, використовуючи ланцюжок інструментів Visual Studio з віддаленим налагоджувачем, орієнтованим на середовище Універсальної програми Windows (UWP). Розробка для Raspian або Mate може бути фактично виконана на Pi з інструментами, доступними на Pi.
Протокол Застосування Constrained використовуються для невеликих, обмежених пристроїв, що використовуються з Інтернетом навколишнього середовища речей. Щоб отримати уявлення про різноманітність апаратного та програмного забезпечення мікроконтролерів, ця сторінка щодо впровадження протоколу CoAP дає уявлення про середовище, на яке вона орієнтована. Він згадує про операційну систему Contiki, про яку я смутно чув, а також з більш відомими ОС, такими як iOS, OSX та Android. Згаданими мовами програмування є Java, JavaScript, C, C #, Ruby, Go, Erlang, Rust і Python.
Ланцюг інструментів, що використовується для розробки мікроконтролерів, варіюється в залежності від виробника, а також того, які види ресурсів є у спільнот розвитку та ініціативи з відкритим кодом. В деяких випадках ви отримуєте хрестоподібний асемблер, в інших випадках ви отримуєте компілятор C cross, а в інших випадках ви отримуєте хороший ланцюжок інструментів зі всіма дзвіночками та емуляторами та подібним до ланцюжка інструментів Visual Studio для Windows 10 IoT.
Фактичне середовище розробки мікроконтролера може включати використання програміста EEPROM та програмних інструментів для створення нового зображення та натискання його на пристрій, або пристрій може мати необхідне підключення, щоб дозволити завантаження нового зображення через послідовне з'єднання або більше мережеве з'єднання.
Моє враження полягає в тому, що більшість мікроконтролерів мають компілятор з перехресною системою, хоча компілятор може підтримувати лише більш старі стандарти, такі як K&R або, можливо, C98. Перехресні компілятори часто мають нестандартні ключові слова для специфічних мікропроцесорних функцій, наприклад, far
і near
ключові слова для покажчиків зі старими процесорами 8080 та 8086 з їх сегментованою пам'яттю.
Існують також спеціальні мови, націлені на мікроконтролери, такі як мова програмування FORTH . Ці мови часто мають дизайн часу, який орієнтується на голий метал, щоб не було жодної операційної системи, окрім часу виконання мови.
Операційна система може варіюватися від практично неіснуючого до голих кісток Linux до такої спеціальної ОС, як freeRTOS або Windows Embedded або повністю роздутий Linux або Microsoft Windows. Дивіться цей проект SourceForge MINIBIAN для Raspberry Pi . Дивіться також цю електронну книгу, Baking Pi: Розвиток операційних систем, яка описує розробку рудиментарної ОС для Raspberry Pi в асемблері.
У цій статті журналу Visual Studio, Програмування Інтернету речей за допомогою Visual Studio , ви знайдете огляд багатьох різних пристроїв, а також огляд використання ID ID Visual Studio для розробки для Linux, а також Windows.
Зараз існує величезний і зростаючий набір позаштатних, програмованих, функціонуючих мереж мікроконтролерів. На дуже низькому рівні у вас є безліч простих 16- та 32-бітних пристроїв від багатьох традиційних виробників чіпів, таких як Texas Instruments. (Я трохи пограв з набором для розробки SensorTag, і це дуже весело, тому я думаю, що Watch DevPack також може бути чудовим набором інструментів для навчання.)
Деякі більш відомі пристрої мікроконтролера включають Arduino, BeagleBoard та Raspberry Pi. Усі ці середовища мають широку підтримку громади і готові підключити величезну кількість готових зовнішніх датчиків, двигунів, сервоприводів і всього іншого, що ви можете собі уявити. Adafruit, супермаркет для навчання електроніці, заснований Лімором "Ladyada" Fried, забезпечує всілякі периферійні пристрої для цих дощок, а також власну лінійку легких плат для розробки перу.
...
Найцікавішим набором пристроїв для розробників, знайомих з 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 біт на мікросхемі ROM
• Три біта захисту для запобігання вторгнення в коди пам'яті OTP
• Один регістр конфігурації для задоволення потреб користувачів
• 148 × 8 біт на мікросхемах (SRAM, загальний регістр)