Цифровая электроника и программирование микроконтроллеров (Ардуино)

- 13-17 лет
- 2 год(а)

Цифровая электроника и программирование микроконтроллеров (Ардуино)

Навыки современного продвинутого «самодельщика» (которые являются также и основами современной общеинженерной подготовки) включают умение сконструировать механическую часть изделия, снабдить его электронной начинкой (включая микроконтроллерный «мозг») и эту электронику запрограммировать.  Таким образом, (а) инженерное 3D-моделирование и конструирование, (б) цифровую электронику и (в) программирование (в том числе, микроконтроллеров) следует рассматривать как три взаимосвязанных и взаимодополняющих направления обучения в рамках начальной пред-инженерной подготовки детей.  Данный курс покрывает два из этих трех направлений:  основы цифровой электроники и ее программирование.

Для изучения материала используется недорогая и широкодоступная микроконтроллерная платформа Ардуино, а при выполнении творческих проектов обучающиеся опираются также на конструкторские навыки, полученные на занятиях по инженерному 3D-моделированию и на соответствующую технологическую базу (3D-принтеры, лазерные и фрезерные станки).  

В результате прохождения курса, ребята научатся:  cобирать на макетной плате и программировать несложные электронные устройства на основе контроллера Ардуино и распространенных датчиков. Самостоятельно находить и изучать документацию на незнакомые внешние устройства (модули). Находить, устанавливать и использовать библиотеки программ для работы с конкретным устройством. Используя знания, полученные на курсе 3D-конструирования, создавать и изготавливать корпуса и механические узлы для электронных изделий.  Используя знания, полученные на курсе «Робототехники»,  создавать на базе контроллера Ардуино роботов для участия в соревнованиях.  Проектировать и изготавливать несложные печатные платы для  электронных самоделок. Объяснять и обосновывать использованные технические и программные решения. Уметь разработать и изготовить электронную игрушку, электронную «начинку» для моделей, изготавливаемых в рамках других технических объединений.

Особенности и ограничения курса, взаимодействие с другими образовательными программами

В этом объединении, ребята познакомятся как с возможностями микроконтроллерных устройств, так и с основами программирования для них, до уровня, достаточного для создания несложных «умных» самоделок. Совместное изучение аппаратного и программного аспектов микроконтроллерных устройств на основе Ардуино и Ардуино-совместимых модулей позволяет быстро и наглядно решать учебные задачи. При этом, однако, многие темы, традиционно изучаемые в курсах по радиоэлектронике, программированию и робототехнике, оказываются вне поля зрения. Для получения полноценной подготовки, рекомендуется совмещать данный курс с курсами по смежным дисциплинам.  Рассмотрим, по темам, ограничения и особенности данного курса.

Программирование.   Неотъемлемой частью данного курса является изучение, с нулевого уровня, языка программирования С, включая отдельные конструкции C++.  Изучается базовый синаксис языка, управляющие конструкции (циклы, условные операторы, ветвления), работа с числовыми и строковыми данными, определение и вызов функций, вызов методов готовых (библиотечных) классов. В силу специфики микроконтроллера Ардуино (в частности, крайне ограниченного объема оперативной памяти) в курсе не рассматривается динамическое распределение памяти, работа с многомерными массивами, традиционные структуры данных (списки, стеки, очереди, деревья, хэш-таблицы и пр.) и алгоритмы работы с ними. Объектное программирование изучается только на уровне использования готовых объектов. По очевидным причинам, не изучается визуальный пользовательский интерфейс.  В рамках данного курса не предполагается также, что обучающиеся будут писать на ПК программы для взаимодействия со сделанными ими микроконтроллерными устройствами (хотя во многих случаях это крайне полезно).

Рекомендуется: до прохождения данного курса, обучающимся очень полезно (но не обязательно) знать основы программирования на любом текстовом или графическом языке (хотя бы на уровне понимания, что такое переменная, массив, циклы и условные операторы).  Параллельно с этим курсом или после него, пройти традиционный курс программирования на ПК, на любом текстовом языке программирования, например «Школа программирования в среде Delphi»

Архитектура микроконтроллеров: библиотеки, входящие в состав платформы Ардуино, эффективно скрывают особенности архитектуры микроконтроллера и низкоуровневые детали его взаимодействия с внешними устройствами. В рамках данного курса, работа с каждым из рассматриваемых внешних устройств производится только на уровне использования готовых библиотек, управление внутренними устройствами микроконтроллера ATMEGA на уровне регистров не изучается. 

Радиоэлектроника. На занятиях изучаются исключительно схемы, построенные вокруг микроконтроллера Ардуино, и в основном на уровне использования готовых плат-модулей (собственно контроллера Ардуино, датчиков, драйверов моторов и пр.). Схемно, большинство изучаемых конструкций тривиально просты, за счет того, что большая часть сложности переходит в логику управляющей программы. Из дискретных аналоговых компонентов в курсе фигурируют светодиоды, резисторы, и очень изредка и поверхностно — конденсаторы и транзисторы. Теоретические знания по их устройству и применению даются в лишь минимальном объеме, достаточном для понимания их роли и особенностей использования в конкретном проекте.  Аналоговые схемы, а также традиционная цифровая логика (элементы И-ИЛИ-НЕ, триггеры и пр.) не рассматриваются вовсе.

Рекомендуетсядо, после или параллельно с данным курсом, пройти курс «Основы радиоэлектроники».

Практические навыки: пайка, радиомонтаж, электроизмерения:  в рамках данного курса, большая часть проектов делается сборкой на макетных платах (без пайки).  Преимущества такого подхода — простота и возможность разборки и повторного использования компонентов. Однако очевидно, что схемы на макетных платах малопригодны или вовсе неприемлемы для мобильных роботов и всякого рода конкурсных и заказных проектов.  В связи с этим, в  данную образовательную программу введена тема конструирования и изготовления печатных плат, однако специальных занятий по пайке и радиомонтажу не предусмотрено.  Предполагается, что обучающиеся либо посещают занятия по электронике, либо учатся паять по мере необходимости, в индивидуальном порядке, либо объединяются в команды с распределением ролей.

Рекомендуетсядо или параллельно с данным курсом, пройти курс «Основы радиоэлектроники» либо обучаться пайке самостоятельно.

 3D моделирование и конструирование:  многие мини-проекты данного курса предполагают конструирование и изготовление механической части устройства.  Предполагается, что большинство обучающихся уже владеют навыками инженерного 3D-моделирования и прототипирования (3D-печать, лазерная резка).  Обучающиеся, не владеющие такими навыками, могут выполнять проекты в составе команды с распределением ролей.

Рекомендуется: до или параллельно с данным курсом, пройти курс «Инженерное 3D-моделирование и прототипирование».

Робототехника: в рамках данного курса изучается использование всех основных видов датчиков и актуаторов (приводов), используемых в образовательной робототехнике. Однако задачи и алгоритмы, характерные для образовательной/соревновательной робототехники (регуляторы, следование по линии, захват и перемещение объектов, прохождение лабиринта) подробно не рассматриваются.  При наличии предварительной подготовки по робототехнике, обучающийся должен быть в состоянии самостоятельно создать и запрограммировать робота для участия в соревновании.  Такие проекты приветствуются, но не входят в обязательную программу курса.

Рекомендуется: прохождение данного курса после курсов робототехники на основе образовательных наборов (Лего,  Фишер-Техник и т.п.)