Аппаратная вычислительная платформа для "умного дома" Arduino
1.2. Типы аппаратных вычислительных платформ
В данный момент есть огромное количество различных платформ для создания умного дома.
Рассмотрим самые популярные из них: Arduino — торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей.
Платформа Arduino для "умного дома"
Программная часть Arduino состоит из бесплатной программной оболочки (IDE) для написания программ, их компиляции и программирования аппаратуры.
Аппаратная часть Arduino представляет собой набор смонтированных печатных плат, продающихся как официальным производителем, так и сторонними производителями.
Полностью открытая архитектура системы позволяет свободно копировать или дополнять линейку продукции Arduino.
Arduino может использоваться как для создания автономных объектов автоматики, так и подключаться к программному обеспечению на компьютере через стандартные проводные и беспроводные интерфейсы.
С 2008 года в компании-разработчике начался раскол, выразившийся в существовании двух независимых ветвей развития и продаж под одной торговой маркой: одна на сайте arduino.cc, другая на arduino.org.
Докризисные изделия на обоих сайтах продаются под одинаковыми названиями. Набор новых изделий на сайтах различается.
Также существует две ветви Arduino IDE, поддерживающие разный набор плат и библиотек. Одинаковые названия и пересекающиеся номера версий IDE вносят путаницу. Тем не менее, говоря об Ардуино, обычно подразумевают первоначальную ветвь проекта на сайте arduino.cc.
Язык программирования в Arduino
Язык программирования Arduino является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.
- Программы, написанные программистом Arduino называются наброски (или иногда скетчи — варваризм от англ. sketch) и сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++.
- Обязательную в C++ функцию main() препроцессор Arduino создает сам, вставляя туда необходимые «черновые» действия.
- Программист должен написать две обязательные для Arduino функции setup() и loop(). Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле.
- В текст своей программы (скетча) программист не обязан вставлять заголовочные файлы используемых стандартных библиотек. Эти заголовочные файлы добавит препроцессор Arduino в соответствии с конфигурацией проекта. Однако пользовательские библиотеки нужно указывать.
- Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки и они вносятся в список компиляции.
- Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск возникновения проблем.
- Простейшая Arduino-программа состоит из двух функций:
- setup(): функция вызывается однократно при старте микроконтроллера;
- loop(): функция вызывается после setup () в бесконечном цикле все время работы микроконтроллера;
Все используемые в примере функции являются библиотечными. В комплекте Arduino IDE имеется множество примеров программ. Существует перевод документации по Arduino на русский язык.
Так как платформа очень популярна, появилось огромное количество китайских копий, которые отличаются очень низкой ценой. Рассмотрим линейку Arduino подробнее.
Самыми популярными в линейке Arduino являются следующие платы (внешний вид данных плат можно увидеть в Приложении 1).
Модель | Arduino pro mini | Arduino UNO | Arduino MEGA |
---|---|---|---|
Размер l, b мм | 18×33 | 69×53 | 101,6 × 53 |
Микроконтроллер | ATmega168 | ATmega328 | ATmega1280 |
Рабочее напряжение | 5 В | 5В | 5В |
Входное напряжение | 5-12 В | 7-12В | 7-12B |
Цифровые Входы/Выходы |
14 | 14 | 54 |
Аналоговые входы | 6 | 6 | 16 |
Постоянный ток через вход/выход |
40 мА | 40 мА | 40 мА |
Флеш-память | 16 Кб | 32 Кб | 128 Кб |
ОЗУ | 1 Кб | 2 Кб | 8 Кб |
EEPROM | 512 байт | 1 Кб | 4 Кб |
Тактовая частота | 16 МГц | 16 МГц | 16 МГц |
Таблица 2. Сравнение цены платформ Arduino
Arduino PRO MINI | Arduino UNO | Arduino MEGA | |
---|---|---|---|
Официальная плата | 1390 руб [2] | 2990 руб | 3990 руб |
Xduino аналоги | 590 руб | 990 руб | 1530 руб |
Аналоги китайского производства |
80 руб | 180 руб | 400 руб |