Аннотация
В этой статье приведена необходимость применения платформы Arduino Uno при изучении микроконтроллеров студентами инженерных специальностей.
Аппаратная платформа Arduino имеет огромную практическую ценность для студентов, обучающихся на инженерных специальностях. На кафедре «Энергетика и радиоэлектроника» СКГУ им. М. Козыбаева нашла свое применение одна из таких платформ как Arduino Uno, славящаяся своей простотой и практичностью. В частности, она активно используется на лабораторных и практических работах по дисциплинам «Мехатроника и робототехника», «Микроконтроллеры и микропроцессоры в электроэнергетике», «Микроконтроллеры и специальные микропроцессоры» у специальностей 5В071600 - «Приборостроение», 5В071800 - «Электроэнергетика» и 5В071900 - «Радиотехника, электроника и телекоммуникации». Плата Arduino Uno имеет довольно компактную форму, что позволяет ей свободно умещаться в ладони. На рисунке 1 изображена плата Arduino Uno в сравнении габаритов со спичечным коробком.
Теперь стоит разобраться, что собой представляет архитектура таких плат. Arduino Uno контроллер построен на ATmega328. Платформа имеет 14 цифровых вход/выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера AC/DC или батареи. В отличие от всех предыдущих плат, использовавших FTDI USB микроконтроллер для связи по USB, новый Arduino Uno использует микроконтроллер ATmega8U2. "Uno" переводится как один с итальянского и разработчики тем самым намекают на грядущий выход Arduino 1.0. Новая плата стала флагманом линейки плат Arduino. Для сравнения с предыдущими версиями можно обратиться к полному списку плат Arduino. Основные характеристики платы вынесены в таблицу 1.
Микроконтроллер |
ATmegaS 2 8 |
Рабочее напряжение |
5 В |
Входное рекомендуемое напряжение |
7-12 В |
Входное предельное напряжение |
6-20 В |
Таблица 1. Основные характеристики платы Arduino Uno
Использование аппаратной платформы Arduino
в образовательном процессе студентов инженерных специальностей
203
Цифровые входы/выходы |
14 (6-ШИМ) |
Аналоговые входы |
6 |
Постоянный ток через вход/выход |
40 мА |
Флеш-память |
32 Кб |
ОЗУ |
2 Кб |
EEPROM |
1 Кб |
Тактовая частота |
16 МГц |
Каждый из 14 цифровых выводов Uno может настроен как вход или выход, используя функции pinMode(), digitalWriteQ, и digitalReadQ. Выводы работают при напряжении 5 В. Каждый вывод имеет нагрузочный резистор (по умолчанию отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:
- последовательная шина: О (RX) и 1 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы подключены к соответствующим выводам микросхемы последовательной шины ATmega8U2 USB- to-TTL.
- внешнее прерывание: 2 и 3. Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения. Подробная информация находится в описании функции attachlnterruptQ.
- ТПИМ 3, 5, 6, 9, 10, и 11. Любой из выводов обеспечивает ШИМ с разрешением 8 бит при помощи функции analogWriteQ.
- SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Посредством данных выводов осуществляется связь SPI, для чего используется библиотека SPI.
- LED: 13. Встроенный светодиод, подключенный к цифровому выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит.
Платформа программируется посредством программного обеспечения Arduino. Из меню Tools > Board выбирается «Arduino Uno» (согласно установленному микроконтроллеру).
Микроконтроллер ATmega328 поставляется с записанным загрузчиком, облегчающим запись новых программ без использования внешних программаторов. Связь осуществляется оригинальным протоколом STK500 [1].
Таким образом, Arduino Uno - это, в первую очередь, перепрограммируемый микроконтроллер ATmega328 с вынесенной на плату периферией.
Программное обеспечение Arduino имеет довольно простой и понятный интерфейс и, что важно, имеет русифицированную версию (рисунок 2).
На лабораторных и практических занятиях, студенты, как правило, работают входами-выходами платы, которые имеют как аналоговый и цифровой характер. Для начала, проведем эксперимент с цифровыми выводами.
Напишем программу для работы с 9 выводом Arduino, который поддерживает генерацию широтно-импульсного сигнала [2, с. 49-52]. Подключим к выводу светодиода, чья яркость будет меняться с помощью ШИМ, программно генерируемого с микроконтроллера. ШИМ - это сигнал, характеризующийся изменением коэффициента заполнения:
По сути, ШИМ - это эмуляция аналогового сигнала, что делает его неоценимым при изучении микронтроллеров. Ведь ШИМ используется со многими электромеханическими нагрузками, в частности с двигателями постоянного тока.
Язык Arduino основывается на платформе C++, что позволит с легкостью перейти на изучение этого языка программирования.
Прошивка платы осуществляется через последовательный порт персонального компьютера, взаимодействующего с USB-портом Arduino Uno.
Программа для изменяющего яркость светодиода представлена на рисунке 4:
Цифровые контакты Arduino Uno имеют 8-разрядную систему, т.е. могут генерировать значения от О до 255. Таким образом, напряжение в О вольт соответствует десятичному значению 0, а значение напряжения около 5 вольт - десятичному значению 255.
Плату Arduino Uno очень удобно коммутировать с макетными платами, что демонстрирует рисунок 5, где изображен макет для вышеописанной программы.
Теперь проведем эксперимент с аналоговыми входами Arduino Uno. По сути, это подразумевает работу с 6-канальным 10-разрядным аналого-цифровым преобразователем. То есть, он принимает 1024 градации от О до десятичного значения 1023[2, с.64-66]. Соединим аналоговый вход О со средним выводом потенциометра и будем крутить его ручку, что будет соответствовать изменению напряжения на входе О Arduino Uno О до 5 вольт. Рисунок 5 иллюстрирует макет устройства.
Программа для устройства подразумевает считывание аналогового значения с потенциометра и отправку его каждые 0,5 секунд в встроенный в Arduino интерфейс последовательного порта компьютера (рисунок 7) [2, с. 67-71]:
В интерфейсе COM-порта можно увидеть значения напряжения в десятичной форме, т.е. значению в 2,5 вольт соответствует число 512, значению в 5 вольт-число 1023 и т.д. (рисунок 8).
Показания мультиметра при крайне правом положении ручки потенциометра равны 4,95 вольт вместо 5, что обусловлено некоторыми погрешностями АЦП и самим элементом (рисунок 9):
Использование аппаратной платформы Arduino
в образовательном процессе студентов инженерных специальностей
207
Таким образом, описанная плата имеет ряд отличительных достоинств для того, чтобы использовать её в образовательном процессе у студентов инженерных специальностей. Это компактность, удобство программирования, простота коммуникации с макетными платами, наличие 14 цифровых и 6 аналоговых выводов. Это позволяет проводить различные выводы по изучению микроконтроллеров и собирать макеты различной сложности.
На основе изученной платы Arduino Uno, автор перешел к изучению более сложных плат - Arduino Mega 2560 и Arduino Due. Такие многофункциональные платы, подразумевающие даже генерацию аналогового сигнала, могут использоваться в сложных системах автоматизации. В частности, на основе работы таких плат, готовится диссертационное исследование по разработке высокоточной автоматизированной системы управления двухдвигательным асинхронным электроприводом механизма вращения крупногабаритных агрегатов.
Литература:
1. http://arduino.ru/Hardware/ArduinoBoardUno
2. Джереми Блум. Изучаем Arduino: инструменты и методы технического волшебства: Пер. с англ. - СПб.: БХВ-Петербург. 2016. - 336 с.: ил.