ПОСТРОЕНИЯ ПРОСТЫХ СИСТЕМ АВТОМАТИКИ И РОБОТОТЕХНИКИ АППАРАТНО-ПРОГРАММНЫМИ СРЕДСТВАМИ ARDUINO

advertisement
ПОСТРОЕНИЯ ПРОСТЫХ СИСТЕМ АВТОМАТИКИ И
РОБОТОТЕХНИКИ АППАРАТНО-ПРОГРАММНЫМИ
СРЕДСТВАМИ ARDUINO
Летвинко Полина Сергеевна, магистр, ст. преподаватель
Белов
Алексей
Валерьевич,
магистрант
специальности
6М072400
–
Технологические машины и оборудование (траектория Мехатроника)
Костанайский государственный университет имени А.Байтурсынова,
г. Костанай
Arduino - это инструмент для проектирования простых систем автоматики
и робототехники, который более плотно обменивается информацией с
окружающей физической средой. Торговая марка Arduino ориентирована на
новичков в области микроэлектроники. Программная часть полностью состоит
из бесплатной программной оболочки для написания кода, его компиляции и
программирования аппаратуры. Аппаратная часть состоит из простой печатной
платы. [1, с. 21] Архитектура системы полностью открыта, что разрешает
свободно копировать или модифицировать линейку продукции Arduino. Все
платы пользователь может собрать сам, либо купить в сборке.
Благодаря Arduino, можно создавать автономные объекты автоматики,
либо подключаться к программному обеспечению на компьютере через
стандартные проводные и беспроводные интерфейсы.
Программирование для Arduino ведется целиком через собственную
программную среду. Программный комплекс находится на официальном сайте
в свободном доступе [1, с. 22] и состоит из текстового редактора, менеджера
проектов, препроцессора, компилятора
(AVR-GCC)
и
инструментов
для
загрузки алгоритмов в микроконтроллер. Оболочка написана на языке
программирования Java на основе проекта Processing и работает под многие
операционные системы, такие как Windows, Mac OS X и Linux [3, c. 32].
Язык
программирования
стандартным
Arduino
является
реализацией
Wiring
-
C++ с некоторыми особенностями, облегчающими новичкам
написание первой работающей программы. Давайте рассмотрим некоторые
особенности программирования для Arduino:

Скетчи – программы, написанные для Arduino. Код сохраняется в
файлы с расширением ino. Эти файлы перед компиляцией обрабатываются
препроцессором Arduino. Также предоставляется возможность создавать и
подключать к проекту стандартные файлы C++.

Препроцессор
Arduino,
самостоятельно
генерирующий
обязательную для C++ функцию main(), при этом вставляющий туда
необходимые «черновые» операторы.

Алгоритм программы должен содержать в себе две основные
функции setup() и loop(), без них Arduino не будет работать. Функция setup()
вызывается
однократно
при
старте,
задает
первоначальные
действия,
константы. Функция loop() выполняет операторы внутри себя в бесконечном
цикле [1, с. 40].

В текст скетча программист не обязан вставлять заголовочные
файлы используемых
стандартных
библиотек
-
за
него
это
сделает
препроцессор Arduino. Однако пользовательские библиотеки нужно указывать.

Менеджер проекта Arduino IDE содержит нестандартный механизм
добавления библиотек. Все библиотеки в виде исходных текстов на
стандартном C++ сохраняются в специально отведенную для этого папку,
находящуюся
в
рабочем
каталоге
программного
комплекса.
Название
библиотеки дополняет список библиотек в меню IDE. Далее программист
выбирает нужные библиотеки и они участвуют в процессе компиляции.

Arduino IDE не предлагает никаких настроек компилятора и
минимизирует
другие
настройки,
что
упрощает
начало
работы
для
непрофессиональных пользователей и уменьшает риск проблем.
Ниже представлен текст простейшего скетча мигания светодиодом [1, с.
39]:
#define LED_PIN 13
void setup () {
pinMode (LED_PIN, OUTPUT); // Включение режима цифрового выхода
для pin 13}
void loop () {
digitalWrite (LED_PIN, HIGH); // Включение светодиода(LED)
delay (1000); // Ожидание – 1000 миллисекунд
digitalWrite (LED_PIN, LOW); // Выключение светодиода(LED)
delay (1000); // Ожидание}
Все используемые в примере функции являются библиотечными.
Загрузка программы в микроконтроллер Arduino выполняется через
предварительно запрограммированный специальный загрузчик. Загрузчик
создан на основе Atmel AVR Application Note AN109 и может работать через
интерфейсы RS-232, USB или
Ethernet в
зависимости
от
подключенной
периферии конкретной процессорной платы. Исключениями являются модули
Arduino
Mini
и
неофициальный
Boarduino.
В
данных
платах
для
программирования микроконтроллера необходим отдельный переходник.
Пользователь может самостоятельно написать код загрузчика для чистого
микроконтроллера. Для данной функции в программный комплекс внедрена
поддержка программатора на основе проекта AVRDude. Поддерживается также
несколько типов популярных дешёвых программаторов.
На практике, благодаря Arduino можно реализовать практически любой
замысел. Это могут
быть автоматические системы под названием «Умный
дом», управление подачи воды в теплице, веб-сервер, автопилот для
мультикоптера и многое другое.
Подключив к плате датчики, приводы,
динамики, добавочные модули (платы расширения) и дополнительные
микросхемы, Arduino может использоваться в качестве «мозга» для любой
системы
управления.
Возможности
платформы
Arduino
ограничены
некоторыми техническими и программными особенностями платы, а также
воображением разработчиков [3, с. 521].
Лицензия данной торговой марки допускает также коммерческое
применение конструкций на основе Arduino (без указания торговой марки
Arduino) в своих проектах. К примеру, вся электронная начинка 3D-принтера в
проекте MakerBot Replicator сделана на основе модуля Arduino Mega
Практически все пользователи Arduino в сочетании с ним используют
Breadboard. Breadboard – макетная плата для монтажа радиодеталей без
использования пайки.
Макетная плата очень сильно упрощает сбор
электронных схем. Любые неисправности в схеме легко
устраняются.
Breadboard состоит из множества отверстий, при помещении «ножек»
радиодетали в них, происходит хороший зажим; извлечение радиоэлементов
происходит с такой же легкостью.
Цель нашего исследования создание системы «Умный дом», мозгом
которой станет Arduino, ведь на наш взгляд вводить автоматизацию, и тем
самым упрощать жизнь человеку, необходимо не только в производство, но и в
быт. Можно выделить ряд преимуществ использования именно Arduino, а не
пользовательского компьютера в такой системе:
 маленькие компактные размеры;
 экономия электроэнергии;
 отсутствие необходимости охлаждения платы во время работы.
В системе Arduino использует в качестве «сенсорных чувств» большое
количество подключенных датчиков. При грамотном написании скетча
разработчиком, Arduino позволит сэкономить электроэнергию, избежать
различного рода протечек (газа, воды), осуществлять управление температурой
и влажностью в доме, предупреждать хозяина о внешних попытках
физического взлома [2, c. 9]. На рынке «умных домов» разработчики
предлагают решения для осуществления безопасности самого дома, но не его
жильцов. Например, старые люди часто страдают сердечными заболеваниями.
Риск инфаркта велик для них. В случае обморочного состояния, при падении
больного человека в доме, такая система может просто не отреагировать на это.
То есть безопасность в современных «умных домах» находится еще на низком
уровне.
Поэтому в исследовании нами будет больше внимания уделено
безопасности самого человека, слежение за его состоянием и в критических
случаях принятия определённых действий в зависимости от ситуации. Для
этого дополнительно будет разработан напульсник. В напульснике будет два
датчика. Один будет следить за сердцебиением человека, другой - за резким
падением. Данные будут постоянно передаваться и обрабатываться в Arduino.
В случае отклонений от нормы будет производиться определенное действие.
Например в случае обморока человека, датчик падения передает это в Arduino.
Далее сработает алгоритм вызова скорой помощи по данному адресу.
После изучения Arduino хотелось бы выделить ряд его достоинств и
недостатков:
 возможность питать, программировать и обмениваться сообщениями с
Arduino при помощи одного USB кабеля;
 возможность сделать простой проект за несколько минут, используя
стандартные библиотеки, то есть простота в использовании;
 компактный размер.
Недостатки Arduino:
 неудобный редактор кода Arduino IDE;
 лишние расходы памяти - пустой проект Arduino занимает 466 байт на
Arduino UNO.;
 малая производительность – не подходит для более крупных проектов.
Список литературы
1. Джереми Блум. Изучаем Arduino: инструменты и методы технического
волшебства / СПб.: БХВ-Петербург, 2015. – 336с.
2. Тесля Е.В. "Умный дом" своими руками. Строим интеллектуальную
цифровую систему в своей квартире / СПб.: Питер, 2008
3. Том Иго Arduino, датчики и сети для связи устройств, 2-е изд. / СПб.:
БХВ-Петербург, 2015. – 544с.
Download