Сначала показать, потом рассказать
Авторов иногда заклинивает: у них задача написать обучающую статью, и они ее тщательно пишут. При этом они забывают, зачем делают всю эту работу. Задача ведь не в том, чтобы именно написать статью. Задача в том, чтобы читатель разобрался в новой области. Для этого необязательно только писать – можно использовать и другие средства. Например, показать новое на иллюстрации.
Показывать полезно. Иллюстрации в статьях включают внимание,
заставляют остановиться и рассмотреть. Когда вы листали эту книгу в свободное время, вы наверняка остановились на этой иллюстрации справа. «Что за микросхемы?» - подумали вы и начали читать текст слева. И вот вы здесь.
Иллюстрации всегда самые интересные в любом учебнике, книге и статье. Хорошая иллюстрация может избавить автора от необходимости писать несколько страниц текста.
На странице справа - пример иллюстрации, которую можно было бы поставить к статье о микроконтроллерах. Обратите внимание на сопроводительный текст: он решает почти все задачи, которые стоят перед статьей:
показывает, зачем нужен каждый контроллер;
объясняет их различия;
дает простую шкалу для их сравнения.
Еще обратите внимание, что мы постарались поставить иллюстрации в едином масштабе и одном ракурсе, чтобы у читателя сложилось представление о размерах и форме контроллеров. Так иллюстрации создают привязку к чувственному опыту: человеку будет проще сравнить контроллеры и узнать их в жизни.
285
Какие бывают микроконтроллеры
для любительских проектов
Чип AVR
Программируемый чип. Умеет управлять электрокомпонентами: светодиодами, моторами, датчиками и другими чипами. Для простых компактных устройств.
Возможности • • •
Сложность • • • • •
Платформа Arduiпo на базе чипа AVR
Чип AVR, установленный на плату с удобными выводами и питанием. Много готовых совместимых плат - например, для отправки смс, управлении розетками или роботами. Для обучения и быстрых экспериментов.
Выводы - ножки. Нужен паяльник или макетная плата
Возможности • • •
Общается с компьютером по USB
Сложность • |
Порт видеокамер |
Компьютер Raspberry Pi
Полноценный компьютер на плате с операционной системой. Для сложных вычислений, работы с видео и интернетом. Можно играть в игры, устроить домашний медиацентр, создать систему умного дома.
Возможности • • • • •
Сложность • • •
Порты, как на компьютере:
ЕТН, USB, HDMI, MicroSD
286
От простого к сложному
В любой области есть термины, которые непонятны новичкам. Чтобы их объяснить, приходится использовать другие термины, которые тоже могут быть непонятными. Допустим, в объясняющей статье есть такой фрагмент:
Типы поддерживаемых портов для ввода и вывода сигнала сильно влияют на выбор микроконтроллера. В чипах семейства AVR только порты общего назначения (GPIO). Максимум, что они умеют, - широтно-импульсная модуляция сигнала и аналого-цифровое преобразование.
Фрагмент сложный не потому, что в нём объясняются сложные вещи, а
потому, что он насыщен новыми терминами, которые объясняются другими новыми терминами.
Первое решение этой проблемы - объяснить каждый термин по цепочке, отталкиваясь от того, что читатель уже знает:
Контроллеры управляют другими частями вашего проекта через специальные контакты - их называют портами.
У чипов AVR простые порты: они умеют подавать ток на одни ножки и принимать ток с других. Это называется «интерфейс общего назначения» или
GPIO, Geпeral Purpose lпput-Output.
Например, вам нужно зажечь светодиод, подключенный к девятой ножке контроллера. Вы даете команду «Подай ток на девятую ножку».
Контроллер подает 5 вольт, ток бежит на светодиод.
Многие чипы семейства AVR умеют подавать не только 5 вольт, но и имитировать плавное изменение напряжения: для этого они быстро включают и выключают ток на ножке. Получается очень быстрая пульсация, которая со стороны выглядит как пониженное напряжение. Это нужно, например, чтобы плавно зажигать светодиоды и точно управлять двигателями".
287
Второе решение - избавиться от сущностей, которые эти термины
обозначают. Посмотрите снова на этот пример:
сильно влияют на выбор микроконтроллера. В чипах семейства AVR только порты общего назначения (GPIO). Максимум, что они умеют, - широтно-
импульсная модуляция сигнала и аналого-цифровое преобразование.
Нужно ли нам знать о ШИМ и ЛПЦ, когда мы выбираем первый микроконтроллер для любительского проекта? Кажется, что не нужно.
Эта информация здесь необязательная, удалим ее:
Контроллеры управляют другими частями вашего проекта через специальные вводы и выводы - их называют портами.
У чипов AVR простые порты: они умеют подавать ток на одни ножки и принимать ток с других. Вы можете сказать контроллеру, например, «Подай ток на пятый вывод». И если к пятому выводу подключен светодиод, он загорится. Если подключен мотор – он начнет вращаться. Если динамик -
услышите звук.
У контроллеров Arduiпo помимо таких портов есть USB, с помощью которого контроллер умеет общаться с компьютером ".
Какое бы решение вы ни выбрали, помните, что объяснять новое нужно
всегда на основе того, что человек уже знает.
Объяснять новое через известное
288
Привязать к реальности
Человеку тяжело воспринимать абстрактное. Как только мы рассказываем о чём-то оторванном от жизни, нормальные люди теряют интерес. Вспомните уроки алгебры в старших классах: «Зачем эти интегралы? Как они пригодятся в жизни?»
Голая теория - это скучно. Поэтому в хорошем учебнике много примеров, историй, персонажей и всего, что привязывает материал к реальности.
С другой стороны, без теории невозможно объяснить почти ничего. Если просто дать человеку много примеров, он их вряд ли сможет применить. Это как перечисление фактов на уроках истории - «И что это все должно значить?». Просто примеры не работают без теории.
Чтобы разрешить это противоречие, приводите примеры к любой теории. Объясняйте, зачем это знать и как эти знания повлияют на жизнь читателя.
Вот голая теория:
Контроллеры AVR и Arduino не поддерживают многозадачность, но ее можно имитировать с помощью программ.
Добавим практический пример, привязанный к реальности:
Если вы делаете метеостанцию и хотите одновременно измерять влажность и температуру, на самом деле нужно будет замерять их последовательно.
Сначала вы даете команду считать влажность, потом температуру, потом вывести их на экран и начать сначала. Так как Arduino может выполнять сотни операций в секунду, со стороны это будет выглядеть так, будто всё происходит параллельно.
Этот пример основан на реальной задаче, которую мы можем решить с
помощью контроллера. Реальная задача - хорошо.
289