Использование микрокомпьютеров и микроконтроллеров
в обучении
Калоев М.А., Титова А.А., Латаева А.В, НИУ Высшая школа экономики, МИЭМ, [email protected], [email protected], [email protected]
Аннотация
В данной работе рассматриваются и сравниваются микроконтроллеры, которые больше всего подходят для задач обучения школьников и студентов.
1 Введение
Название микрокомпьютер подразумевает компьютер, который имеет размеры гораздо меньшее, чем обычный компьютер. В основном такие компьютеры выполнены на одной плате и имеют более простую архитектуру, чем обычные компьютеры. В качестве операционной системы чаще всего используется открытый Linux. Низкая цена, гибкая система и большое количество разных плат сделало их популярными у любителей и в хобби-проектах. Также микрокомпьютеры используются и в учебных целях.
2 Arduino
Платы с микроконтроллером Arduino - это компьютер в миниатюре. Большинство плат имеет все необходимое для работы микроконтроллера (стабилизатор питания, кварцевый резонатор и т.д.). Отдельно продаются набор плат, которые расширяют возможности Arduino, наборы датчиков и сенсоров от сторонних про-изводителей.Сама плата в стандартной ревизии имеет 20 входо-выходов. Программируется Arduino через USB кабель, от него также идет питание на плату. Язык программирования является стандартный C++, но в нем обязательна структура с setup() и loop() функциями, в первой код исполняется один раз при включении, во второй код исполняется в бесконечном цикле.[1] Также существует визуальная среда разработки Ardublock, которая позволяет более наглядно писать программу, используя блок-схемы, что очень удобно для новичков. Цена Ардуино на сайте производителя составляет 20$, для оптовых покупок скидки, что дешево для массовых закупок в школы или институты. Однако есть и минусы. Плата не имеет корпуса, и, при неосторожном обращении, элементы напаянные на ней можно повредить или создать короткое замыкание, которое может возникнуть из-за статического заряда. Обращение требует большей осто-
рожности и внимательности и из-за из-за мелких разъемов на плате для подключения датчиков. Несмотря на это дешевизна платы, а так же тот факт, что уровень вхождения может быть довольно низким позволяет использовать Ардуино в обучающих целях. 5 декабря 2013 года в Москве прошла конференция "Опыт и перспективы применения Робоконтроллеров Ардуино во внеурочной деятельности". На которой выступали учителя из средних общеобразовательных школ, темой выступлений было использование Ардуино в учебном процессе. учителя отмечали, что плата позволяет ученику более наглядно изучать программирование, а также познакомится с основами схемотехники. [2] Ниже представлена таблица сравнения моделей АМшпов в табл. 1.
3 Raspberry Pi
Raspberry Р1(Название созвучно с raspberry pie - малиновый пирог) - одноплатный компьютер разработанный компанией Raspberry Pi Foundation. Данный микрокомпьютер является аналогом Arduino: маленькие размеры, плата без корпуса, подключаемые модули. Но в отличии от Arduino Raspberry Pi является именно микрокомпьютером с полноценной операционной системой, многозадачностью и мощностью, достаточной для реализации таких проектов, как компьютерное зрение и обработка звука в реальном времени.[4] Эти возможности требуют питания большего, чем у микроконтроллеров, следовательно, тепловыделение у такой платы больше. Если Arduino мог без проблем работать круглосуточно, то из-за тепловыделения у Raspberry Pi могут начаться проблемы при круглосуточном использовании без использования охлаждения. На сегодняшний день выпущено 3 поколения Raspberry Pi. Первое поколение имело 4 версии: А, А+, В, В+. Все версии были основаны на процессоре ARM1176JZ-F 700MHz, версии А имели 256 Мб оперативной памяти, а версии В -512 Мб. Также версии В имели больше USB портов и порт Ethernet. Версия с + отличается от стандартной большим количеством пинов GPIO для подключения модулей. Второе поколение получило 4-х ядерный процессор ARM Cortex-A7 900MHz и 1 Гб оперативной памяти, что увеличило производительность в шесть раз. Последние на сегодняшний день поколение Raspberry Pi вышло 29 февраля 2016 года в котором был установлен еще более мощный процессор ARM Cortex-A53 1,2 ГГц, а так же появился встроенный модуль Wi-Fi.
Табл. 1. Таблица сравнения моделей Arduino
Модель Arduino Микроконтроллер Озу Флеш-память Цифровые Входы/Выходы Аналоговые входы
Uno ЛТшеда328 16 МГц 2 Кб 32 Кб 14 6
Leonardo ATmega32u4 16 МГц 2 Кб 32 Кб 20 12
Yun ATmega32u4 16 МГц 2.5 KB 32 KB 20 12
Mini ATmega168 8 Мгц 1 Кб 16 Кб 14 8
Micro ATmega32u4 16 МГц 2.5 КБ 32 КБ 20 12
Mega ATmega1280 16 МГц 8 KB 128 KB 54 16
ADK ATmega2560 16 МГц 8 КБ 256 КБ 54 16
Due AT91SAM3X8E 84 МГц 96 КБ 512 КБ 54 12
4 Lego Mindstorms
В 1988 г. в ходе сотрудничества между Lego Group и Массачусетским технологическим институтом (MIT Media Lab) был разработан микроконтроллер. Целью этой разработки было вдохнуть жизнь в модели Lego посредством компьютерного программирования. Класс таких устройств стал называться Pbrick - "программируемый кирпич" или просто "кирпич".
Свое название первое поколение данного микроконтроллера получило по первым буквам словосочетания Robotic Command eXplorers - RCX. В качестве встроенного процессора он использовал 8-битный микроконтроллер Renesas (тогда подразделение Hitachi) H8/300. У него также было 32K ОЗУ для хранения прошивки и программ пользователей. "Кирпич" программировался с помощью загрузки программ (написанных в одном из нескольких доступных языков программирования) с компьютера Windows или Mac в оперативную память, с использованием специального инфракрасного интерфейса (IR). После того как пользователь запускал программу, робот под управлением RCX контроллера мог функционировать полностью автономно, отвечая на внутренние и внешние воздействия в соответствии с запрограммированными инструкциями. Кроме того, два или больше "кирпича" RCX
могли взаимодействовать друг с другом посредством ИК-интерфейса, что давало возможность организовать совместную работу устройств или соревнование между ними. В дополнение к ИК-порту, система имела три входных порта для датчиков и три выходных порта для двигателей (которые также могли быть использованы для управления электронными устройствами, такие как лампы и т.д.). Встроенный ЖК дисплей мог отображать уровень заряда батареи, состояние портов ввода/вывода, название запущенной в данный момент программу, и другую информацию [3].
Концепция этого продукта отличалась от дру-гих.ЯСХ продавался как часть набора конструктора LEGO. В этот набор входил сам блок RCX, набор датчиков и моторчиков, а так же детали для создания механизмов. Плата RCX была заключена в пластмассовом корпусе, что защищало плату от механических повреждений. Набор был предназначен специально для школ и колледжей, и они распространены в России.
В версии "кирпича" RCX 1.0 присутствовал разъем адаптера питания, что позволяло обеспечивать постоянную работу устройства вместо ограниченного по времени работы при питании от батарей. В версии 2.0, разъем для адаптера питания уже не присутствовал.
ИК-интерфейс RCX был в состоянии связываться с Spybots, Scout Bricks, поездами Lego, а также модулем NXT (правда, лишь с помощью датчика инфракрасной связи от сторонних производителей). В RCX 1.0 несущая частота ИК приемника была 38,5 кГц, а несущая частота ИК RCX 2.0 - 76 кГц. Обе версии могли передавать сигнал на обоих частотах. Несущий сигнал генерировался одним из внутренних таймеров RCX. "Кирпич" RCX соединялся с компьютером с помощью последовательного или USB устройства IR tower. IR tower поддерживалось Windows 98, Me, and XP (32-bit). Существует патч предоставляющий возможность использования его на многоядерных процессорах и процессорах с гипертрейдингом. Несмотря на то, что официально Windows Vista (32-bit) им не поддерживается, пользователи утверждают что оно работает корректно. USB IR tower не работает на 64х версиях ОС за исключением случаев когда запускается в виртуальной машине симулирующую 32 битную ОС. Последовательное IR tower нормально функционирует в 64-битной Windows 7 с использованием сторонних адаптеров USB-to-serial [1].
Программирование Lego Mindstorms производится посредством программных блоков, а не программным кодом.
Языки поддерживаемые Lego:
• RCX Code
• ROBOLAB (основанный на LabVIEW и разработанный в Tufts University) Популярные языки от сторонних разработчиков:
• GNAT GPL: Позволяет программирования NXT, используя язык Ada для реального времени и встроенных систем.
• LeJos: порт Java.
Табл. 2.
• Not eXactly C: (NXC), открытый C-подобный язык программирования высокого уровня.
• Not Quite C: (NQC).
• RoboMind: Простой образовательный язык сценариев для виртуальных и роботов Lego NXT.
• ROBOTC: основанный на C язык программирования с дружественной средой разработки.
• Simulink: Графический инструмент обработки сигналов и проектирования управления, из которого автоматически генерируется код C и загружается на NXT.
• pbFORTH: расширение для Forth.
• pbLua: версия Lua.
• Visual Basic: Через COM+ интерфейс поставляемый на компакт-диске[1].
Следующее поколение получило название NXT^brn упомянут ранее). В нем установливал-ся 32-х битный микроконтроллер Atmel AT91SAM7S256 48МГц с 256 Кб флеш памяти и 64 Кб Ram, также появился bluetooth. В комплекте к новой версии появились новые датчики и сенсоры. Все предыдущие языки программирования и среды разработки поддерживались во втором поколении.
Последнее поколение Lego Mindstorms вышло в 2013 годы и называлась EV3. процессор, установленный в EV3, был TI Sitara AM1808 300МГц. Также в нем было установлено 64 Мб RAM и 16 Мб флеш памяти плюс слот для SD-карты.
5 Сравнение
Итоговое сравнение всех представленных микроконтроллеров в табл. 2.
Таблица сравнения рассмотренных микроконтроллеров.
Название Цена Поддержка визуального языка программирования Назначение
Arduino 20$(только плата) да непрофессиональные пользователи, студенты и школьники старших классов
Raspberry Pi 35$ нет студенты, энтузиасты
Lego Mindstorms 300$ да школьники начальных, средних классов.
6 Заключение
Среди всех микроконтроллеров самые удобные в обучении это микроконтроллеры из линейки Mindstorms. Они продаются в комплекте вместе с инструкциями, периферией, деталями и сенсорами. Их корпус защищает плату от повреждений, а знакомый многим детям конструктор Lego позволяет строить различные механизмы и роботов, используя визуальный язык программирования. Этот набор легко смогут освоить школьники младших и средних классов. Старшие классы могут развивать развивать навыки программирования в средах разработки под обычные языки. Arduino продается и в наборах, и отдельно. Однако собрать что-либо из Arduino гораздо сложнее, так как вся его периферия подключается проводками в разъемы на плате, их гораздо легче повредить или вызвать короткое замыкание. Отдельное внимание заслуживает архитектура Arduino, он устроен так, что подачи питания сразу запускается записанная на него программа, единственная кнопка на плате - кнопка перезагрузки. Он не имеет таких кнопок управления, как у контроллеров линейки Mindstorms, которые позволяют включать и выключать работу программы. Это усложняет разработку программ под Arduino и требует от учащегося сноровки, чтобы не повредить плату. Но и цена Arduino гораздо меньше, чем у Mindstorms. Лучше всего плата подходит для учащихся старших классов, коллежей и студентов. Raspberry Pi, как гораздо более мощное устройство целесообразнее использовать в сложных проектах. Особых преимуществ в обучении перед его конкурентами у него нет, но его цена позволяет иметь несколько плат для проектов, где вычислительной мощности его конкурентов не хватает.
доступа: http://robofoot.ru (Дата обращения: 08.03.2016 )
Paspberry Р1 в России [Электронный ресурс]. -Режим доступа http://raspberrypi.su/ (Дата обращения: 08.03.2016)
Используемая литература
Arduino.ru [Электронный ресурс]. - Режим доступа http://arduino.ru (Дата обращения: 08.03.2016)
Городской методологический центр: Arduino в образовании [Электронный ресурс]. - Режим доступа http://mosmetod.ru/ (Дата обращения: 08.03.2016)
Энциклопедия роботов: Lego Mindstorms История создания [Электронный ресурс]. - Режим