Молдавия
Представлены результаты разработки электронного модуля для проверки плат Arduino. Рассматриваемая аппаратно-программная платформа часто используется в образовательных целях для изучения микроконтроллерных систем и робототехнических устройств. Возможность проверки платы перед повторным ее использованием облегчает поиск неисправностей разрабатываемого электронного устройства. В ходе исследования были разработаны электрическая структурная и принципиальная схемы модуля, создана специальная тестовая программа. В модуле реализованы программные и аппаратные методы диагностики, применение которых позволяет провести тестирование высокой степени точности и обеспечить необходимую надежность разрабатываемых на ее основе робототехнических устройств. Для создания диагностического модуля были определены узлы аппаратно-программной платформы Arduino с высокой интенсивностью отказов: узел проверки линий ввода-вывода, узел проверки аналого-цифрового преобразователя и системы питания, узел проверки EEPROM и источника питания с предохранителем. Практическая ценность данной разработки состоит в том, что тестовая программа загружается непосредственно в микроконтроллер проверяемой платы, позволяя быстро и качественно проверить линии ввода-вывода, имеющие высокий показатель интенсивности отказов. На сегодняшний день подобных устройств для диагностики неисправностей программно-аппаратных платформ Arduino не существует. Использование программно-аппаратной платформы Arduino в образовательном процессе открывает новые возможности как для студентов, так и для школьников. Проекты, реализуемые в средних профессиональных учреждениях технического профиля, мотивируют обучающихся к получению новых знаний, развивают интерес к технике, программированию и конструированию, развивают логическое и алгоритмическое мышление.
программно-аппаратная платформа, микроконтроллер, электронный модуль, структурная схема, принципиальная схема
Введение
Социально-экономические и политические транс-
формации современного мира показали, что основа потенциальных возможностей развития электроники – подготовленные кадры. По мнению директора по инновационному развитию центра коллективного пользования МИЭТа П. Р. Машевича, в конце 1990-х и начале 2000-х гг. государство не имело достаточных ресурсов для обеспечения комплексной поддержки отрасли, из-за чего было принято решение поддерживать дизайн-центры, которые занялись проектированием микропроцессоров [1]. Одна из целей такого подхода заключалась в сохранении научной школы и подготовке кадров.
Проработка комплексной стратегии развития электронной отрасли России началась только в 2008 г. Именно тогда началось финансирование опытно-конструкторских работ и появились идеи о строительстве заводов. Однако производства, способные выпускать гражданскую электронику, так и не были созданы [1]. К идее все же запустить в России фабрики полупроводников власти вернулись только в январе 2020 г. – эти планы были обозначены в «Стратегии развития электронной промышленности РФ до 2030 года».
Возникает необходимость создания специальных условий для подготовки специалистов, свободно ориентирующихся в информационном пространстве, имеющих хороший уровень компьютерной грамотности, знающих современную элементную базу цифровой и аналоговой техники и способных эффективно использовать разнообразные средства систем автоматизированного проектирования.
Лауреат Нобелевской премии, академик Ж. И. Алферов в 2007 г. говорил: «Важно заниматься научными и технологическими исследованиями в области электроники, потому что именно она определяет технологический и даже социальный прогресс. Без собственных современных электронных технологий любые наши другие (те же космические) быстро перейдут во второсортные. Сейчас у нас два пути – либо становиться страной третьего мира, живущей за счет ресурсов, либо развивать наукоемкие отрасли» [2]. Это высказывание остается актуальным и на сегодняшний день в условиях санкционной политики Запада по отношению к России. Крупнейший специалист в области информатики академик Е. П. Велихов в одной из своих статей сделал следующий прогноз: «Тот, кто умеет делать компьютеры, владеет миром» [3].
Подготовка специалистов технического профиля в области информационных технологий в соответствии с государственным образовательным стандартом России 2.09.02.01 «Компьютерные системы и комплексы» предполагает освоение таких междисциплинарных курсов, как «Цифровая схемотехника», «Микропроцессорные системы», «Проектирование цифровых устройств». В учебном процессе широко применяются разнообразные стенды для изучения, отладки и тестирования разрабатываемых цифровых устройств. Однако наибольшую популярность в образовательной сфере получила программно-аппаратная платформа Arduino для сверхбыстрого создания электронных устройств, поддерживаемая разработчиками по всему миру и пользующаяся огромной популярностью в России и за рубежом [4, 5].
Платформа Arduino позволяет общаться и взаимодействовать с окружающим миром с помощью всевозможных датчиков, сенсоров, моторов и других узлов. Благодаря возможности многократного перепрограммирования микроконтроллера одну и ту же плату можно использовать в разнообразных проектах, что приводит к ускоренному старению и износу компонентов платы.
Актуальность данного исследования состоит в том, что возможность проверки платы перед повторным ее использованием облегчает поиск возможных неисправностей разрабатываемого цифрового устройства. В качестве программной части выступает кроссплатформенная среда разработки Arduino IDE, которая может запускаться на операционных системах Windows, Linux, Mac OS. С помощью данной среды можно писать код и программировать платы. В комплекте с программой поставляются многочисленные примеры, библиотеки и удобные утилиты.
В качестве аппаратной части выступают различные платы. На сайте производителя их насчитывается уже более 2-х десятков разновидностей. Так как платформа распространяется весьма свободно, в продаже можно найти множество клонов и различных плат расширения.
Платформа постоянно развивается, происходит обновление среды разработки, совершенствование старых плат и появление новых. Вместе с каждой библиотекой поставляется пример ее использования. Например, для написания протокола обмена данными с GSM модулем или со сканером отпечатков пальцев необходимо проверить работоспособность готовой библиотеки или устройства и продолжить работу.
Основной задачей данного исследования является определение узлов аппаратно-программной платформы Arduino, продемонстрировавших достаточно высокую интенсивность отказов за определенное время. Так, отказы из-за ошибок проектирования составляют 40–50 %, отказы из-за ошибок производства – 30–40 %, отказы из-за неправильных действий оператора – 20–30 %. Замечено, что в 75–80 % случаев различные причины отказов дают о себе знать в виде отказа элементов [6].
Целью данного исследования является разработка и проектирование структурной и принципиальной электрических схем, а также создание универсального модуля для проверки разнообразных плат Arduino с программным управлением.
Разработка электронного модуля для тестирования различных модулей Arduino проходит с использованием программных методов диагностики, применение которых позволит произвести тестирование платы высокой степени точности и обеспечить необходимую надежность разрабатываемых на ее основе робототехнических устройств.
Результаты исследования
В данной статье представим результат проектирования электронного модуля для проверки платы Arduino по следующим узлам: узел проверки линий ввода-вывода, узел проверки аналого-цифрового преобразователя (АЦП) и системы питания, узел проверки EEPROM и источника питания с предохранителем. Также в процессе работы будет протестирован мост интерфейса USB – последовательного порта для связи с микроконтроллером. В ходе решения поставленной задачи была спроектирована структурная схема электронного модуля для проверки узлов Arduino (рис. 1), которая состоит из следующих блоков: проверяемая плата Arduino, узел проверки линий ввода-вывода, узел проверки АЦП и системы питания, узел проверки EEPROM и источника питания с предохранителем.
Рис. 1. Структурная схема тестового модуля
Fig. 1. Structural diagram of the test module
Центральным компонентом электронного модуля является проверяемая плата Arduino. Одной из распространенных неисправностей платы Arduino является выход из строя одной из цифровых линий ввода-вывода. Узел проверки линий ввода-вывода необходим для проверки всех линий ввода-вывода на исправность: на замыкание цепи питания VCC 5В, на замыкание с землей. Таким образом определяется способность выдавать «0» или «1» на выходе.
Часто выходит из строя АЦП, который не может адекватно преобразовать аналоговое напряжение в цифровой код по какому-то из каналов. Узел проверки АЦП проверяет все каналы аналого-цифрового преобразователя.
Узел проверки системы питания тестирует исправность стабилизатора напряжения платы Arduino и определяет, находится ли напряжение в заданном диапазоне (5 В ± 10 %).
Энергонезависимое постоянное запоминающее устройство EEPROM гарантирует около 100 тыс. перезаписей этой памяти. При превышении числа перезаписей память EEPROM может неправильно сохранять данные. Узел проверки энергонезависимой памяти проверяет уже записанные данные и сверяет их с оригиналом.
Узел проверки источника питания с предохранителем используется для предотвращения повреждения платы Arduino при возможном коротком замыкании и возникающих при этом сверхтоках.
Принципиальная схема тестового модуля раскрывает основные особенности схемотехнического построения разрабатываемого устройства (рис. 2).
Рис. 2. Принципиальная схема тестового модуля:
XP1.1, XP1.2 – разъемы для подключения; A0–A5 – аналоговые выводы; GND – заземление; VD2–VD7 – диоды;
SB1 – кнопка; R1–R5 – резисторы; DA1.1, DA1.2 – микросхема; VD1 – светодиод
Fig. 2. Schematic diagram of the test module:
XP1.1, XP1.2 – connectors for connection; A0-A5 – analog outputs; GND – ground; VD2-VD7 – diodes;
SB1 – button; R1-R5 – resistors; DA1.1, DA1.2 – microcircuit; VD1 – LED
Данная схема служит основанием для разработки других чертежей, а также используется при наладке и эксплуатации систем автоматизации.
Центральным компонентом принципиальной схемы является проверяемая плата Arduino Uno, обозначенная на схеме А1, с разъемами для подключения ХР1.1, ХР1.2. К разъему ХР1.2 подключаются справа два резистора R4, R5. Они являются делителем напряжения и формируют ровно половину напряжения от источника питания, т. е. 2,5 В.
Резистивный делитель напряжения представляет собой два резистора (R4, R5), включенных последовательно друг другу и параллельно источнику питания [7].
Данный делитель напряжения рассчитывается по формуле
Uвых = Uвх · R5 / (R5 + R4).
Пример расчета:
Примем Uвх = 5 В, R4 = 1 кОм, R5 = 1 кОм:
5 · 1 / (1 + 1) = 2,5 В.
На выходе делителя 2,5 В, хотя на входе – 5 В.
Резисторы делителя называют плечами. Верхнее плечо подключено к Uвх, нижнее – к GND, т. е. R4 – верхнее плечо, R5 – нижнее плечо.
Если номиналы обоих резисторов равны, напряжение будет поделено пополам. Важно знать, что общее сопротивление делителя должно быть значительно меньше сопротивления нагрузки, подключенной к нему (примерно в 100 раз). Как раз с нагрузкой порта Arduino, настроенного на вход, проблем никаких нет – это десятки МОм. Но общее сопротивление делителя не должно быть и слишком низким: в этом случае получим нагрев делителя и расход тока впустую. Общее сопротивление не должно быть ниже 4,7 кОм. Таким образом, идеальный диапазон сопротивлений – от 4,7 до 50 кОм.
С помощью нажатия кнопки SB1 это напряжение подается на 6 диодов VD2–VD7, которые развязывают все аналоговые входы Arduino Uno друг от друга, для того чтобы сигналы поступали по каждой линии независимо. Поэтому 2,5 В, за вычетом падения напряжения на диоде 0,6 В, поступает на каждый из входов, и программно АЦП оценивает все напряжения. При опорном напряжении АЦП 5 В показания АЦП на всех каналах должны быть одинаковы и принимать значения в районе 400 единиц.
В нижней части схемы обозначен двухпороговый компаратор, который сравнивает напряжение питания Arduino Uno с двумя заданными порогами построечных резисторов R1, R2 – один выше порога, другой ниже. Если напряжение находится в норме (5 В ± 10 %), то светодиод «Готовность» VD1 горит. Плата Arduino Uno подключается к внешнему источнику питания с цепью предохранителя на 0,5 А.
В процессе загрузки тестовой программы также проверяется исправность моста USB – последовательного порта. Если напряжение питания находится в норме, а загрузки не происходит, то неисправен мост либо целевой микроконтроллер. Но в случае неисправности моста виртуальный последовательный порт не появляется в диспетчере устройств персонального компьютера.
После загрузки тестовой программы происходит проверка линий ввода-вывода, содержимого EEPROM и АЦП. Неисправности других узлов по результатам статистических исследований, как правило, не встречаются.
Электронный модуль для проверки плат Arduino на микроконтроллере успешно применяется в процессе обучения студентов, поскольку является готовым портативным и доступным для понимания устройством на микроконтроллере для начинающих их осваивать (рис. 3).
Рис. 3. Электронный модуль для проверки платы Arduino
Fig. 3. Electronic module for testing the Arduino board
Взаимодействие тестового модуля с персональным компьютером осуществляется в программной среде Arduino IDE. Программирование осуществляется через порт USB и не требует дополнительного источника питания. Отметим также простоту реализации и программирования.
В текстовом поле отображается результат выполнения тестовой программы по проверке линий ввода-вывода, АЦП, EEPROM и источника питания с предохранителем (рис. 4).
Рис. 4. Результат тестирования платы Arduino
Fig. 4. Testing results of the Arduino board
Разработка структурной и принципиальной электрических схем является первым этапом в ходе проектирования электронного модуля, на втором этапе происходят монтаж, отладка и программирование устройства. Результаты тестирования представлены в среде разработки Arduino IDE в удобном виде, легко интерпретируются и позволяют быстро оценить работоспособность основных узлов платы.
Заключение
Благодаря возможности многократного перепрограммирования микроконтроллера одну и ту же плату можно использовать в разнообразных проектах, что приводит к ускоренному старению и износу компонентов платы. Возможность проверки платы перед повторным ее использованием облегчает поиск возможных неисправностей разрабатываемого устройства. Необходимость данной разработки вызвана тем, что подобных устройств для диагностики неисправностей программно-аппаратных платформ Arduino не существует.
Практическая ценность данной разработки состоит в том, что тестовая программа загружается непосредственно в микроконтроллер проверяемой платы, позволяя быстро и качественно проверить линии ввода-вывода, имеющие высокий показатель интенсивности отказов.
Модуль для проверки плат семейства Arduino необходим для проведения практических занятий, лабораторных работ, учебной практики по таким дисциплинам, как «Микропроцессорные системы», «Цифровая схемотехника», «Прикладная электроника», «Проектирование цифровых устройств», и поможет обучающимся при отладке автоматизированных и робототехнических устройств.
1. Королев Н., Хвостик Е. Процессоры в изоляции // Коммерсантъ. № 59 от 06.04.2022. URL: https://www.kommersant.ru/doc/5294238 (дата обращения: 29.09.2022).
2. Алферов Ж. Россия останется страной без будущего, если не изменит отношение к науке и образованию // Alma Mater: Вестн. высш. шк. 2007. № 2. С. 49–53.
3. Президент российского научного центра «Курчатовский институт», академик Евгений Велихов: Самая крупная девальвация – утро после свадьбы // Известия. № 222 от 25.11.1999.
4. Ким Т. Ю., Артикбаев М. А., Маринина Е. В. Роль студентов в использовании платформы Arduino в высших учебных заведениях // Образование и воспитание. 2018. № 3.1 (18.1). С. 18–20. URL: https://moluch.ru/th/4/archive/94/3369/ (дата обращения: 23.09.2022).
5. Глазов С. Ю., Сергеев А. Н., Усольцев В. Л. Возможности применения платформы Аrduino в учебном процессе педагогического вуза и общеобразовательных школ // Изв. Волгогр. гос. педагог. ун-та. 2021. № 10 (163). URL: https://cyberleninka.ru/article/n/vozmozhnosti-primeneniya-platformy-arduino-v-uchebnom-protsesse-pedagogicheskogo-vuza-i-obscheobrazovatelnyh-shkol (дата обращения: 23.09.2022).
6. Боровиков С. М., Цырельчук И. Н., Троян Ф. Д. Расчет показателей надежности радиоэлектронных средств: учеб.-метод. пособие. Минск: Изд-во БГУИР, 2010. 68 с.
7. Гусев В. Г., Гусев Ю. М. Электроника и микро-процессорная техника: учеб. М.: КноРус, 2013. 800 c.