Из всех выпускаемых в мире микропроцессоров лишь 2% используются в компьютерах, а остальные 98% – во встраиваемых системах: от научного оборудования до мобильного телефона [1].
Автомобиль не стал исключением, причем еще 10–15 лет назад количество контроллеров, встраиваемых в автомобильные системы, не превышало одного десятка. В настоящее время практически невозможно найти автомобильную систему, оснащенную электроприводом и неуправляемую контроллером. Электронное управление присутствует в системах электрических стеклоподъемников, регулировки светотехнических устройств, регулировки зеркал заднего вида, регулировки сидений и т. д. Наличие контроллеров в системе управления двигателем, системе управления коробкой передач, в системах, обеспечивающих безопасность водителя и пассажиров, а также в противоугонных системах является обязательным условием осуществления наиболее точного управления, а также построения активных связей между компонентами автомобиля.
Электронные системы позволяют дистанционно управлять двигателем, охранной сигнализацией, мультимедийной системой, системой кондиционирования, замками дверей, а также трансмиссией, рулевым управлением и тормозной системой. В настоящее время наличие дистанционного управления позволяет перемещать автомобиль без непосредственного участия водителя.
Понимание принципов работы контроллеров, встроенных в различные автомобильные компоненты, является основой эффективной профессиональной деятельности специалистов, конструирующих, модернизирующих и эксплуатирующих автомобильные системы и узлы.
Высокие потребности в микроконтроллерах обусловили появление на рынке большого числа программируемых микроконтроллеров таких производителей, как Siemens, Texas Instruments, Toshiba, Intel, Fujitsu и т. д., получивших широкое применение в бытовой технике, аудио- и видеоаппаратуре, промышленных автоматизированных системах, транспортных средствах.
Настоящий прорыв в мире микроконтроллеров совершила компания Atmel, выпустив в 1997 г. 8-битный RISC-микроконтроллер с флеш-памятью программ на кристалле, технология была запатентована и получила название AVR [2]. Система команд и внутреннее устройство чипов AVR разрабатывались совместно с фирмой IAR Systems – крупнейшим производителем компиляторов языков программирования C/C++ [3], что обеспечило возможность получения высокой плотности кода при использовании языков высокого уровня практически без потери производительности, в отличие от контроллеров, использующих программы, написанные на языке ассемблера. При заданной производительности существовала возможность снижения тактовой частоты ядра, а следовательно, и потребляемой мощности микроконтроллера [4], AVR-микроконтроллеры обладают более прогрессивными возможностями по оптимизации энергопотребления, что имеет очень важно при разработке систем с батарейным питанием. Большим достоинством является возможность программирования без аппаратного программатора. Наличие уникальных характеристик этих микроконтроллеров и в настоящее время делает их наиболее популярными при разработке автоматизированных систем.
Следующим значительным шагом к популяризации программируемых контроллеров стала появление готовой аппаратно-программной платформы, которую в 2005 г. разработал Massimo Banzi, преподаватель итальянского проектного института Interaction Design Institute Ivrea [5]. Платформа получила название Arduino.
Платформа представляет собой компактную плату, включающую в свой состав: AVR-микроконтроллер Atmel, загрузчик (bootloader) на базе чипа ATmega, кварцевый резонатор на 16 МГц, стабилизатор напряжения, восстанавливаемые предохранители, кнопку перезагрузки, разъем USB, штекерный силовой разъем питания, штыревые линейки для подключения периферийных устройств.
В настоящее время данная платформа представлена целым семейством контроллеров Arduino (рис. 1), наиболее популярными являются Uno, Mini Pro, Nano, Due, Leonardo, LilyPad, Mega, Duemilanove.
а) б) в) г)
Рис. 1. Семейство микроконтроллеров Arduino: а – Uno; б – Mini Pro; в – Nano; г – Mega
Особенность Arduino в том, что для его первого использования не требуются объемные, специфические знания, касающиеся устройства и принципа работы микроконтроллера, а также нет необходимости в навыках программирования. Это связано с тем, что контроллер создавался для решения одной сложной проблемы – как научить студентов создавать электронные устройства, причем быстро [6]. Простой проект может быть создан новичком за очень короткий промежуток времени, но в то же время Arduino позволяет создавать масштабные проекты со сложными алгоритмами управления различными периферийными устройствами. Это превращает платформу Arduino в гибкий инструмент для проектирования автоматизированных и автоматических систем управления на физическом и программном уровнях. Использование платформы при подготовке специалистов автомобильной отрасли позволит сформировать у студентов знания, касающиеся устройства и принципов работы электронных автоматизированных систем автомобиля, а также будет способствовать развитию навыков по проектированию, прототипированию и программированию таких систем.
Физический (аппаратный) уровень предполагает выполнение сборки электрических схем прототипов различных устройств, а также их отладку. На этом этапе наиболее простым и эффективным решением является использование стандартных образцов радиодеталей и специальной макетной платы – bredboard. Состоит макетная плата из отверстий-гнезд с шагом 2,54 мм (0,1 дюйма), размер соответствует шагу выводов современных радиодеталей. Сборка прототипов на такой плате осуществляется без выполнения травления и пайки контактов.
Отличительной чертой Arduino является возможность аппаратного расширения, реализуемого с помощью дополнительных плат, или «шилдов» (от англ. shield), подключаемых к контроллеру через электромеханические разъемы, например Can-Bus Shield, GPRS Shield, Power Shield, Motor Shield и другие [7]. Can-Bus Shield – дополнительная плата, позволяющая аппаратно реализовать промышленную шину CAN, без которой невозможно представить современный автомобиль. По этой шине осуществляется передача данных между бортовым компьютером и различными системами – мультимедийной, климатической, системами безопасности, системой управления силовой установкой и т. д. Плата построена на микросхеме MCP2515, с поддержкой CAN второй версии, а также стандартного (11-битного) протокола передачи данных. Данная плата расширения позволит непосредственно работать с автомобильными компонентами.
Большинство современных контроллеров для выполнения программирования на физическом уровне требуют наличия специальной микросхемы – аппаратного программатора, обеспечивающего взаимосвязь с компьютером. На плате Arduino предусмотрен штыревой разъем для подключения программатора и выполнения внутрисхемного программирования (ICSP, JTAG). Но следует отметить, что входящий в состав микроконтроллера bootloader позволяет обойтись без аппаратного программатора, что значительно упрощает схему подключения к компьютеру и облегчает работу на программном уровне.
Проведение практических и лабораторных работ по проектированию и построению аппаратной части прототипов автоматизированных систем актуализирует знания, полученные ранее при изучении дисциплин «Физика», «Электротехника», «Конструкция наземных ТТМ», «Электрооборудование автомобиля», и позволяет закрепить навыки по диагностике электронных систем и поиску неисправностей в электрических цепях автомобиля.
Программный уровень реализован через специальную программную оболочку Arduino IDE, которая доступна для бесплатного скачивания на официальном сайте проекта [8]. Интуитивно понятная оболочка, написанная на языке Java, содержит текстовый редактор, менеджер проектов, препроцессорный компилятор, а также инструменты для непосредственной загрузки программы в контроллер (рис. 2).
Рис. 2. Программная оболочка Arduino IDE
Программная оболочка является наследником двух языков программирования: открытого языка Processing и Wiring – разновидности C/C++. Отличительной чертой Wiring является возможность подключения стандартных библиотек, описывающих взаимодействие с типовыми электронными модулями и датчиками. Это позволяет разработчику прототипа не тратить время на написание библиотеки, за исключением случаев подключения уникальных устройств, а использовать уже готовую, стандартную библиотеку. Программная среда адаптирована под наиболее популярные операционные системы: Windows, Mac OS X, Linux.
Выполнение практических заданий на программном уровне систематизирует и расширяет знания, полученные при изучении дисциплин «Информатика», «Информационные технологии», «Программирование и программное обеспечение», «Прикладное программирование», а также формирует навыки по составлению программ управления автоматизированными и автоматическими автомобильными системами.
Открытый исходный код, доступность технической документации, большая база стандартных программных библиотек подтолкнули разработчиков к созданию клонов плат Arduino, наиболее популярными являются Freeduino, CrafDuino, Diavolino, Ruggeduino, OOH R3 UNO. Некоторые из клонов не только не уступают оригинальным контроллерам, но и превосходят их по части характеристик. Оптимальным выбором для практических занятий при подготовке специалистов автомобильной отрасли является микроконтроллер Arduino UNO или аналог OOH R3 UNO.
По мнению автора, наиболее подходящей формой организации практических занятий с применением платформы Arduino является интерактивная работа в малых группах. Такая форма предполагает, что каждая из групп получает индивидуальное задание, которому предшествует рассмотрение типовых решений поставленной задачи, создает прототип, а в заключительной части занятия проводит презентацию выполненного проекта.
При проведении лабораторных работ и практических занятий следует уделить особое внимание основным правилам применения интерактивных технологий: в работу должны быть вовлечены все обучаемые, количественный состав не более 16 человек, четкий регламент работы, диалог строится на основе принципов взаимоуважения, к работе должны быть подготовлены и лаборатория, и рабочие места [9].
Для организации лабораторных работ и практических занятий рекомендуется наличие не менее одного микроконтроллера на группу из двух человек, а также следующих компонентов:
- датчик вибрации или модуль датчика вибрации (мод. 801S);
- датчик удара или модуль датчика удара (мод. SW-420, SW-520D, SW‑1820P);
- датчик Холла (мод. A3144, OH3144, Y3144, TO-92UA);
- барометрический датчик давления (мод. BMP180, BMP280-3.3);
- датчик разрежения – вакуумметр (мод. MD-PS002);
- модуль детектора движения (мод. HC-SR501);
- датчик температуры (мод. DS18B20);
- датчик влажности (мод. AM2302, AM2320);
- ультразвуковой модуль измерения расстояний (мод. HC-SR04);
- фоторезистор или модуль измерения освещенности (мод. GL5516, GL5539);
- трехосевой цифровой датчик ускорения (мод. Adxl345);
- цифровой датчик наклона (мод. Mma7455);
- релейный модуль управления нагрузкой;
- комплект соединительных проводов, светодиодов, резисторов различного номинала, концевых выключателей;
- макетная плата – bredboard.
Примеры практических заданий с использованием платформы Arduino для специалистов автомобильной отрасли:
- Разработка системы управления и создание прототипа автоматизированного привода стеклоподъемников автомобиля. Система управления должна содержать алгоритм отключения привода в случае полного закрытия или открытия ветрового стекла, а также в случае перегрузки электрического мотора привода. Необходимо предусмотреть возможность программного управления стеклоподъемниками, например частичное открытие при посадке водителя в автомобиль.
Задание ориентировано на изучение основных характеристик электрических приводов, моторов и концевых выключателей. Кроме этого задание предусматривает проектирование и разработку программы управления автоматизированной системой.
- Разработка системы управления и создание прототипа автоматической климатической установки автомобиля. Система управления должна содержать подсистему сбора данных, подсистему подачи, подогрева, охлаждения и осушения воздуха. Необходимо обеспечить сбор данных, таких как температура за бортом автомобиля, температура в салоне, влажность воздуха в салоне, величина атмосферного давления. Управление исполнительными подсистемами осуществить с помощью релейного модуля управления нагрузкой.
Задание направлено на изучение характеристик цифровых измерительных приборов, методик расчета воздухообмена, подходов к проектированию систем кондиционирования. Предусматривается разработка программы управления автоматической климатической установкой.
- Разработка системы управления и создание прототипа автоматизированного привода светотехнических устройств. Система управления должна содержать подсистемы сбора данных, управления фарами головного света, управления противотуманными фарами. Подсистема сбора данных должна обеспечивать получение информации об уровне освещенности перед автомобилем, величине наклона кузова и угле поворота рулевого колеса. Исполнительные подсистемы должны обеспечивать изменение положения источников света в зависимости от неравномерности загрузки автомобиля, наклона кузова, а также угла поворота рулевого колеса.
Задание ориентировано на изучение характеристик автомобильных светотехнических приборов, методик расчета светового потока и степени освещенности. Предусматривается разработка программы управления приводами светотехнических устройств.
Таким образом, использование Arduino в учебном процессе, при подготовке специалистов автомобильной отрасли, позволит предоставить студентам возможность применить знания, умения и навыки, приобретенные в процессе обучения, на аппаратном и программном уровнях, что создаст дополнительную мотивацию к дальнейшему изучению устройства и принципов работы автоматизированных и автоматических систем автомобиля.