The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Использование графических средств разработки на основе Scratch для программирования популярной платы Arduino дает возможность разрабатывать электронные устройства не только взрослым радиолюбителям, но также детям и людям с гуманитарным образованием. С помощью данного набора вы получите основные навыки работы в Scratch, создадите различные проекты и игры с подключаемыми электронными компонентами и платой Arduino UNO, а также автономный проект «Умный домик».

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by BHV.RU Publishing House, 2019-12-03 04:48:29

Scratch и Arduino для юных программистов и конструкторов

Использование графических средств разработки на основе Scratch для программирования популярной платы Arduino дает возможность разрабатывать электронные устройства не только взрослым радиолюбителям, но также детям и людям с гуманитарным образованием. С помощью данного набора вы получите основные навыки работы в Scratch, создадите различные проекты и игры с подключаемыми электронными компонентами и платой Arduino UNO, а также автономный проект «Умный домик».

Винницкий Ю. А.
Григорьев А. Т.

































































Санкт-Петербург
«БХВ-Петербург»

2018

УДК 004.43-053.2
ББК 32.973.26-018.1
В48
Винницкий, Ю. А.
В48 Scratch и Arduino для юных программистов и конструкторов/ Ю. А. Вин-
ницкий, А. Т. Григорьев. — СПб.: БХВ-Петербург, 2018. — 177 с.: ил.

ISBN 978-5-9775-3938-8
Книга написана на основе опыта работы с детьми 3–7 классов и посвящена
со зданию творческих проектов для юных программистов и конструкторов. На
примерах разработки простых компьютерных игр продемонстрированы базовые
приемы визуального программирования в среде Scratch. Рассмотрено применение
плат Arduino, плат расширения и различных внешних датчиков в детских конструк-
торских проектах. Даны основы визуального программирования этих устройств
в среде mBlock и креативного программирования путем написания интерактивных
компьютерных игр, в которых управлением персонажами осуществляется посред-
ством Arduino. Также дети освоят методы создания автономных «умных вещей»,
работающих под управлением Arduino без подключения к компьютеру.
Электронный архив на сайте издательства содержит дополнительные материа-
лы и листинги всех программ.
Для детей младшего и среднего школьного возраста
УДК 004.43-053.2
ББК 32.973.26-018.1

Группа подготовки издания:
Главный редактор Екатерина Кондукова
Зам. главного редактора Евгений Рыбаков
Зав. редакцией Екатерина Капалыгина
Редактор Анна Кузьмина
Компьютерная верстка Людмилы Гауль
Корректор Зинаида Дмитриева
Дизайн обложки Марины Дамбиевой










«БХВ-Петербург», 191036, Санкт-Петербург, Гончарная ул., 20.






ISBN 978-5-9775-3938-8 © ООО «БХВ», 2018
© Оформление. ООО «БХВ-Петербург», 2018

Содержание







Введение ...................................................................................................................................5



Юным конструкторам-изобретателям:
время создавать будущее! ............................................................................................7



ГЛАВА 1. Спрайты, скрипты, черепахи и другие жители

виртуального мира в Scratch ..............................................................10

Знакомьтесь — это Scratch! ..........................................10

«Черепашья графика» ......................................................15
Собственные блоки для очень сложных узоров ...... 23

Проект «Спираль из квадратов» ....................................27
Справочная система Scratch
и проекты «Шаг за шагом» ............................................ 35

Игра «Пинг-понг» ..............................................................37


ГЛАВА 2. Знакомимся с контроллерами Arduino

и учимся программировать их в среде mBlock ........................42

Arduino — это просто! ....................................................... 42

Scratch для Arduino? Знакомьтесь — mBlock! ............ 46
Основы работы с Arduino в mBlock .............................. 48

Подключение внешних светодиодов
к плате Arduino Uno .......................................................... 58
Расширенные возможности
цифровых портов Arduino ............................................. 68

Макетная плата — инструмент для творческого
конструирования ...............................................................73



СОДЕРжАНИЕ
3

Обычная кнопка — пример цифрового датчика ..... 83
Аналоговые датчики ....................................................... 90
Возможности сложных цифровых датчиков ............ 99


ГЛАВА 3. Придумываем, конструируем, играем!
Arduino + mBlock = креативные игры! ............................................108

Компьютерные игры — простор для творчества! ...108

Проект «Голодная рыбка» версия 1:
управление клавишей <Пробел> ................................109
Проект «Голодная рыбка» версия 2:
управление с Arduino с помощью кнопки ...................127
Проект «Голодная рыбка» версия 3:
оптимизация программы ..............................................128

Проект «Голодная рыбка» версия 4: модификация
программы, создание новых вариантов игры ........134

ГЛАВА 4. «Умный домик». Автономный проект
с платой Arduino .........................................................................................140


Собираем электрическую схему
«умного домика» ............................................................. 141
Проект «Умный домик» версия 1 ................................146

Проект «Умный домик» версия 2:
автономная работа .........................................................157
Как вернуть возможность управлять Arduino
интерактивно с использованием среды mBlock? ....167

Заключение......................................................................................................................... 169


Полезные книги ................................................................................................................170

Приложение. Содержание электронного архива ..........................................171

Фрагмент проекта «Собачка с мячом».
Используем потенциометр. Программируем
вращение баскетбольного мяча. ........................................171



СОДЕРжАНИЕ
4

Введение






Scratch — популярнейший визуальный язык программирования, который
идеально подходит для обучения детей от 8 лет, позволяет создавать творче-

ские проекты, в непринуждённой игровой форме осваивать алгоритмизацию и
программирование, развивать техническое мышление и инженерные навыки.
Arduino — самый распространённый микроконтроллер для создания элек-

тронных самоделок. Маленькая печатная плата совершила настоящую ре-
волюцию в мире технического творчества, придав новый импульс развитию

робототехники и конструирования. Программирование и использование ми-
кроконтроллеров перестало быть уделом избранных. А с появлением графиче-
ских средств разработки на основе Scratch обучить Arduino выполнению нуж-

ной работы стало ещё проще. Грядёт новая революция — программирование
микроконтроллеров становится доступным не только взрослым, но и детям!

Хотите попробовать? В ваших руках книга, в которой Scratch и Arduino объ-
единяются в общих творческих проектах. Книга написана опытными препода-
вателями, в её основе — многолетний опыт практических занятий с детьми. Ма-

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

творчество может стать занимательным и полезным семейным досугом. Всё,
что для этого нужно — книга, домашний компьютер и небольшой набор рас-
пространённых деталей.

Шаг за шагом авторы проведут вас в мир программирования и конструи-
рования:

• в главе 1 предложены проекты по рисованию в Scratch, что позволит
получить основные навыки работы в этой визуальной среде;


• в главе 2 читатели познакомятся с платами Arduino и смогут реа-
лизовать первые проекты с подключаемыми электронными компо-
нентами;



ВВЕДЕНИЕ
5

• в главе 3 юные изобретатели смогут почувствовать себя в роли про-
граммистов-разработчиков компьютерных игр, получат навыки отлад-
ки и модификации компьютерных программ, а также соберут на основе

Arduino оригинальные пульты для управления игровым процессом;

• в главе 4, заключительной части книги, можно познакомиться с тех-
нологиями «умного дома» и сборкой первого автономного устройства

управления.

А дальше... дальше открывается огромный мир возможностей. Роботы,

квадрокоптеры, 3D-принтеры, манипуляторы, «умные вещи» и игровые про-
екты — лишь небольшой перечень путей дальнейшего развития. Главное —
увлечь, показать, научить сделать первый шаг. И мы очень надеемся, что эта

книга станет хорошим проводником в этот замечательный мир творчества.
Не зря в ближайшие годы инженерное образование и техническое твор-

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

Нужно растить инженеров, конструкторов, изобретателей, создавать своё

будущее!

































6

Юным конструкторам-



изобретателям:


время создавать будущее!





Привет, наши юные читатели! Возможно, вам захочется пропустить это вве-
дение, чтобы побыстрее начать экспериментировать, сочинять компьютерные
игры и собирать электронные самоделки. Мы вполне разделяем это стремление,
ведь именно для тех, кто любит создавать что-то новое, книга и написана. Но тем

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

какой путь проходит изобретение от возникновения идеи до воплощения её
в привычный всем бытовой прибор.
Но, раз вы читаете эту книгу, вряд ли подобные вопросы вам безразлич-
ны. И это здорово! Перед вами открывается огромная сказочная страна! Здесь
будет своё волшебство — техническое, будут и специальные магические сло-
ва — программные команды, будут виртуальные существа и забавные устрой-
ства, выполняющие наши приказы. И происходить всё будет не только в вооб-

ражении и на экране компьютера. Добро пожаловать в мир конструирования
и творчества, инженеры будущего!
Вам потребуются знания, упорство и смелость мысли. Да-да, смелость! Ведь
для того чтобы отказаться от обыденного и сделать нечто по-настоящему новое,
нужна именно она. Подумайте, как непросто было создателям самых привыч-
ных для нас с вами вещей. В 1975 году два друга — никому неизвестные студен-
ты Билл Гейтс и Пол Аллен — прочитали опубликованную в журнале «Popular



Юным конструкторам-изобретателям: время создавать будущее!
7

Electronics» («Популярная электроника») статью о появившейся новинке — пер-
сональном компьютере Altair 8800, продающемся в виде набора для сборки.
Воодушевившись, они попытались написать для него программу — интерпре-
татор языка Basic, после чего и основали компанию Microsoft, в штате кото-
рой в первый год работы было всего 3 человека. А двое других друзей — Стив
Джобс и Стив Возняк — примерно в то же время решили наладить собственное
производство компьютеров. И 1 апреля 1976 года официально была основана

компания Apple, а на рынке появился собранный вручную Apple Computer I.
Может, вам кажется, что такие при-
меры перестали быть актуальными?
Всё уже изобретено? Но посмотрите,
сколько нового появилось только за
последние годы! Взять хотя бы 3D-
принтеры — устройства, создающие из

пластиковой нити готовые предметы.
Совсем недавно технология трёхмер-
ной печати показалась бы фантасти- Apple Computer I
кой, теперь же 3D-принтером никого
не удивишь. Его можно собрать даже в домашних условиях, и существуют спе-
циальные наборы, включающие все необходимые детали и инструкции. Всё,
как в далёких 1970-х годах с Altair 8800. История повторяется!

Роботы, квадрокоптеры, 3D-принтеры и многие другие технические новин-
ки стали доступны благодаря появлению микроконтроллеров, по сути — ма-
леньких и дешёвых компьютеров, запрограммированных на порученную им
работу. Современный размах использования микроконтроллеров впечатляет.
Они способны управлять самыми разными электронными и механическими
устройствами, повсеместно используются в средствах связи, современных ав-

томобилях, производственных станках, в массовой домашней технике и даже
в игрушках.
Благодаря микроконтроллерам окружающие нас вещи становятся всё «ум-
нее», а благодаря творческим идеям «умных» вещей становится всё больше.
Сравнительно недавно в мире появилась замечательная программная сре-
да Scratch, навсегда изменив представление о том, с какого возраста можно
серьёзно заниматься программированием. А новые модификации программ




8

на основе Scratch позволили даже детям программировать микроконтролле-
ры, что раньше вообще невозможно было представить! И наша книга именно
о том, как работать в этих доступных средах, как создавать новые электронные
устройства на основе микроконтроллеров и программировать их на выполне-
ние необходимой работы.
Для того чтобы процесс был интереснее, мы будем создавать компьютер-
ные игры и играть в них, используя необычные электронные устройства, от ко-
торых всего один шаг к самым настоящим «умным» вещам, например пульту
управления бытовыми приборами, контрольной системе для освещения.
Читая книгу, вы можете сразу обращаться к страницам, на которых при-
ведены программы в готовом для реализации виде, а можете пройти вместе
с нами все шаги разработки, выступить в роли программиста и разобраться

с каждым элементом проекта. Выбор за вами. Но главное — дерзайте, приду-
мывайте, пробуйте, ошибайтесь и пробуйте вновь, создавая новое будущее.
Ведь вполне вероятно, что именно ваше изобретение завоюет мир через не-
сколько лет! Удачи!

Условные обозначения


Жирным шрифтом выделены элементы интерфейса программ — меню,
команды, кнопки.
Названия блоков программирования выделены так: .
Названия переменных и параметров выделены узким жирным шрифтом.
Названия клавиш клавиатуры заключены в угловые скобки, например
<Пробел>.


Электронный архив

В электронном архиве, который можно скачать по ссылке ftp://ftp.bhv.

ru/9785977539371.zip или найти на странице книги на сайте издательства по
адресу www.bhv.ru, сохранены файлы всех проектов, описанных в книге. Все
проекты распределены по главам. Обратите внимание на то, что помимо фи-
нальных программ там расположены и промежуточные версии, по которым шаг
за шагом можно проследить путь создания проекта. Таким образом, если что-то
и пойдёт не так, как рассказывается в книге, можно заглянуть в архив и посмо-
треть, как должен был выглядеть результат на том или ином этапе разработки.



Юным конструкторам-изобретателям: время создавать будущее!
9

Спрайты, скрипты, черепахи


и другие жители виртуального



мира в Scratch






Знакомьтесь — это Scratch!



Дорогие читатели! В следующих главах вы научитесь собирать разно-
образные электронные устройства на базе контроллера Arduino и «оживлять»

их с помощью интересных программ. Но прежде всего следует выбрать язык
программирования, который мы будем использовать для этого.
Юным исследователям более всего подходит программирование в среде
Scratch, где программы (называемые сценариями) собираются из блоков, как
из кубиков конструктора. Предлагаем вам познакомиться с этой средой и её
основными возможностями.


Откуда появилось
название «Scratch»?


Одни авторы утверждают, что своим названием про-
грамма обязана главному действующему персонажу,
коту-царапке (рис. 1.1), так как в английском языке есть
глагол to scratch, означающий «царапать». Кстати, персо-
нажи в Scratch называются спрайтами. Рис. 1.1. Спрайт кота



ГЛАВА 1
10

Но есть и другие версии. Так, в американском варианте английского язы-
ка есть выражение to start from scratch — это значит «начать с самого начала
(с основ)». И правда, Scratch и в нашем случае — начало, основа, с изучения
которой вы войдёте в мир профессиональной разработки как будущие про-
граммисты, схемотехники, инженеры-конструкторы или технические дизайне-
ры. А по ещё одной версии название произошло от слова scratching — техники,
используемой хип-хоп-диджеями, которые крутят виниловые пластинки взад-
вперёд руками для того, чтобы смешивать музыкальные темы. Выбирайте, ка-

кой вариант вам больше нравится!

Где взять Scratch?


Тут всё просто. Эта среда является представителем свободного программ-
ного обеспечения, то есть любой желающий может её использовать и даже
модифицировать.
Официальная страница проекта Scratch — https://scratch.mit.edu/.
Зайдя на данный ресурс, вы увидите много (всего представлено более
20 миллионов) уже готовых программ-сценариев, созданных в сообществе
Scratch, в состав которого и вы можете войти, воспользовавшись ссылкой

Присоединяйся. Регистрация даст возможность хранить ваши новые сцена-
рии в облаке Scratch, общаться с единомышленниками — изобретателями со
всего мира.
Для того чтобы попробовать программирование в среде Scratch, даже не
обязательно загружать и устанавливать программу на компьютер, можно пе-
рейти на вкладку Создавай (рис. 1.2) и воспользоваться онлайн-версией про-
граммы. Этот вариант особенно удобен в случае, когда работать со Scratch при-

ходится вдали от основного рабочего места, например в дороге, с планшета.
Для постоянной работы с программой удобнее стационарная вер-
сия, которую можно загрузить со страницы https://scratch.mit.edu/
scratch2download/. Потребуется указать операционную систему своего








Рис. 1.2. «Создавай» — переход к онлайн-версии Scratch



Спрайты, скрипты, черепахи и другие жители виртуального мира в Scratch
11

компьютера (доступны варианты для Windows, Linux, Mac OS X), а затем по-
следовательно загрузить и установить на компьютер две программы: Adobe
AIR и Scratch 2.0 Offline Editor.

Запуск и начало работы


После установки запустите среду Scratch, дважды щёлкнув по её значку на
рабочем столе компьютера либо воспользовавшись главным меню операци-
онной системы.
Выберите язык, на котором вы будете общаться со Scratch, — щёлкните по

значку глобуса в меню программы и, прокрутив длинный список, найдите
русский язык (рис. 1.3).





























Рис. 1.3. Выбираем язык общения с программой



Сцена и персонажи на ней


Взгляните на экран (рис. 1.4). Вот уже знакомый царапающийся персонаж —
спрайт . Спрайт перемещается по специальной области экрана — сцене .
В середине экрана программы находится окно блоков , которые мы бу-
дем перетаскивать в правую область , создавая программы (в терминологии
Scratch — скрипты или сценарии).



ГЛАВА 1
12

Рис. 1.4. Окно программы Scratch 2.0









Выбор блоков по цвету


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



Спрайты, скрипты, черепахи и другие жители виртуального мира в Scratch
13

Знакомимся


с контроллерами Arduino



и учимся программировать их


в среде mBlock





Arduino — это просто!



Теперь, когда вы научились создавать программы для персонального ком-
пьютера в среде Scratch, можете применить полученные знания и для програм-

мирования микроконтроллеров.
Как мы уже рассказывали во введении, сейчас в мире чрезвычайно распро-
странены разнообразные устройства, созданные на базе микроконтроллеров
Arduino. На каждой плате этого семейства располагается сам микроконтрол-
лер, стабилизатор напряжения, несколько гнёзд, позволяющих подключить
различные датчики и исполнительные органы, кварцевый генератор, разъём
питания и USB-адаптер для обмена информацией между платой и компьюте-

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



ГЛАВА 2
42

Рис. 2.1. Основные элементы платы Arduino


специальных средств. Существует огромное количество готовых модулей рас-
ширения с простым подключением, продаваемых поштучно и целыми набора-
ми. Работать с Arduino очень легко!

Платы семейства Arduino


В семейство Arduino входят различные платы. Подробную информацию
можно получить на сайте поддержки по адресу http://arduino.ru/Hardware.
Чаще всего, когда говорят «Ардуино», подразумевают самый распространён-

ный вариант — Arduino Uno (рис. 2.2, слева).
Плата Arduino Uno (в текущей редакции) выполнена на базе процессора
ATmega328p с тактовой частотой 16 мегагерц и обладает памятью размером
32 килобайта, позволяющей хранить довольно сложные программы. В состав
платы входит всё необходимое для удобной работы с микроконтроллером:
20 контактов ввода и вывода для взаимодействия с внешним миром, разъём
USB, разъём питания, кнопка сброса.



Знакомимся с контроллерами Arduino и учимся программировать их в среде mBlock
43

Рис. 2.2. Платы Arduino (слева направо): Arduino Uno, Arduino Mega, Arduino Nano





Когда в проектах важнее не удобство подключения, а компактность и низ-
кая стоимость, используют Arduino Nano (рис. 2.2, справа). Кроме того, бла-
годаря наличию «ножек» такой вариант хорош для использования вместе
с макетной платой.
Если же требуется подключать большое количество датчиков и внешних
устройств, то самым подходящим выбором будет Arduino Mega (1280 и 2560).
Эту плату отличает увеличенное количество контактов ввода-вывода (70 штук!)

и размер (рис. 2.2, в центре). Это уже скорее «контроллер», без претензий на
миниатюрность. Стоит дороже, но имеет память большего объёма, больше
возможностей и позволяет управлять сложными механизмами, включая 3D-
принтеры и станки с числовым программным управлением (ЧПУ).
Существует огромное разнообразие Arduino-совместимых плат, подходя-
щих для самых разнообразных случаев. Научившись работать с Arduino Uno,
вы сможете использовать и другие микроконтроллеры, подбирая их в соответ-
ствии с характером задуманного вами проекта.


Платы расширения Arduino shield


Для Arduino Uno создано множество специальных плат-расширений (их
называют шилдами — Arduino shields), с помощью которых легко нара-
щивать функциональные возможности вашего проекта. Примерами могут
служить Sensor Shield (рис. 2.3, слева) для удобного подключения датчиков



ГЛАВА 2
44

Рис. 2.3. Платы расширения для Arduino Uno (слева направо): Sensor Shield и Motor Shield





к Arduino Uno и Motor Shield (рис. 2.3, справа) для управления двумя мощными
моторами.
Соединив подобный шилд с Arduino Uno, вы сможете построить самодви-
жущегося робота и оставить незанятыми контакты ввода-вывода для подклю-
чения к нему различных датчиков и дополнительных устройств. И таких расши-
рений самого разного назначения для Arduino Uno создано великое множество
(например, шилд для связи по Wi-Fi с возможностью выхода в Интернет, шилд

с реле, позволяющий включать и выключать освещение в доме и разнообраз-
ные электрические приборы). Ещё и поэтому для представленных в книге са-
моделок мы выбрали именно эту плату.

Мы узнали, что...


• Существует множество разновидностей плат Arduino, самая распростра-
нённая из которых — Arduino Uno.

• Для создания различных устройств на основе Arduino часто используют
специальные платы-расширения (Arduino shields).













Знакомимся с контроллерами Arduino и учимся программировать их в среде mBlock
45

Scratch для Arduino?
Знакомьтесь — mBlock!




Итак, мы выбрали плату для экспериментов и готовы к новым исследова-
ниям. Теперь нам потребуется специальная среда программирования. Вы уже
кое-чему научились в среде программирования Scratch и теперь сможете при-
менить свои знания к работе с микроконтроллерами. Вот только оригиналь-
ная версия Scratch не умеет взаимодействовать с электроникой Arduino и не
содержит требующихся для этого разделов-блоков. Но не беда, ведь Scratch
относится к свободному программному обеспечению, а это значит, что другие
разработчики могут его дополнять и видоизменять под свои задачи. Так и по-

ступила компания MakeBlock (www.makeblock.com), разработчик весьма ин-
тересных наборов по робототехнике. Программисты MakeBlock создали спе-
циализированную среду управления для разнообразных контроллеров (в том
числе и для плат собственной разработки) — mBlock, в основе которой всё тот
же знакомый нам Scratch 2.0. Очень важно, что полученную программу можно
будет загрузить прямо на плату, и микроконтроллер после этого начнёт функ-
ционировать самостоятельно!

А пока научим Arduino работать в связке с компьютером под управлением
mBlock.

Загрузка и установка mBlock на компьютер


Загрузите последнюю версию mBlock со страницы разработчиков http://
www.mblock.cc/ (рис. 2.4).



Примечание

Программа mBlock способна работать в операционных системах
Windows, Mac OS X и Linux. Загрузив версию для вашей операцион­
ной системы, установите её на компьютер. Мы будем рассматривать
работу mBlock в операционной системе Windows.








ГЛАВА 2
46

Рис. 2.6. Здесь можно изменить язык общения с программой


Мы узнали что...


• mBlock — специальная среда программирования, похожая на Scratch 2.0
и позволяющая управлять различными устройствами на основе Arduino.

• Интерфейс mBlock поддерживает множество языков, среди которых
есть и русский.


Основы работы с Arduino в mBlock





Подключаем Arduino Uno к компьютеру
и настраиваем mBlock на работу с платой


На лицевой стороне платы находятся электронные компоненты. Постепен-
но вы узнаете назначение всех основных элементов Arduino Uno. Сейчас выде-
лим три из них: гнездо подключения кабеля USB, светодиод ON (загорается во
время работы платы) и светодиод L, который вы будете использовать в первой

программе на mBlock (рис. 2.7).


















Рис. 2.7. Компоненты платы Arduino Uno



ГЛАВА 2
48

Внимание!
С обратной стороны платы видны многочисленные пропаянные кон­

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

время экспериментов не дотрагивайтесь до элементов платы и со­
единительных кабелей мокрыми руками. Это азы безопасности при
работе с электроникой.


Соедините кабелем USB плату Arduino Uno с компьютером. Если это первое
подключение устройства к компьютеру, то начнётся установка нужных драй-
веров для Arduino. В состав дистрибутива mBlock входит Arduino IDE (среда
управления от разработчиков Arduino) и нужные драйверы, поэтому установ-
ка должна пройти автоматически. Если система всё-таки не сможет установить
их самостоятельно, то в меню Соединить программы mBlock можно выбрать
команду Install Arduino Driver (Установить драйвер Ардуино).


Драйвер — от английского слова driver — водитель, а для програм­
мистов это слово означает специальную программу, которая помо­

гает работать устройству.
Дистрибутив — один или несколько файлов, предназначенных для
распространения программного обеспечения и его установки на
компьютер.

IDE расшифровывается как Integrated Development Environment —
интегрированная среда разработки, то есть это одна бо­о­ольшая
программа, которая содержит много инструментов, используемых
при создании других программ.


Если все нужные для работы программы установлены, то на плате заго рит ся
светодиод ON и никаких дополнительных действий не потребуется.



Знакомимся с контроллерами Arduino и учимся программировать их в среде mBlock
49

Проект 1. Управляем одним светодиодом

По аналогии со скриптом нашего подготовительного проекта (см. рис. 2.14)

запустим программу «мигания» светодиода номер 1 из сборки.

Необходимые компоненты

• Плата Arduino Uno — 1 штука.

• Кабель USB — 1 штука.
• Светодиодная сборка (DC 3.3V 5V 12V 6bits Multicolor Rapid Prototyping
LED 2.54mm PIN 0603 Package for Arduino Uno) — 1 штука.


Порядок выполнения

1. Соедините плату Arduino и светодиодную сборку (см. рис. 2.20).

2. Подключите плату Arduino к компьютеру с помощью USB-кабеля.
3. Запустите среду программирования mBlock.

4. Настройте mBlock для работы с платой Arduino. (Примечание: если вы не
экспериментировали с платой после прошлого подключения к mBlock,
то единственное, что надо сделать вновь — показать порт соединения,
как на рис. 2.9.)
5. Соберите программу, как в подготовительном проекте (см. рис. 2.14).
Да-да, не удивляйтесь, программа не изменилась. Дело в том, что све-

тодиод сборки, которым мы собираемся мигать, подключён к порту D13
(см. рис. 2.19), также как и светодиод L на самой плате Arduino. И мы
одним и тем же сигналом на порт D13 будем управлять и внешним, и
внутренним светодиодом. Попробуйте. Если всё правильно, то оба све-
тодиода будут загораться и гаснуть одновременно.

6. Обратите внимание, что после запуска программы одновременно за-
горелись и горят непрерывно светодиоды сборки под номерами 4 и 5.
Значит, на эти порты изначально идёт сигнал не «0», а «1». Возможно,
эту особенность прошивки mBlock изменят в будущих версиях, мы же
пока просто добавим пару блоков для того, чтобы «погасить» эти диоды
во время работы программы. Посмотрим, к каким портам на плате они
подсоединены. Это порты Arduino D9 и D10. Установим их в значение



Знакомимся с контроллерами Arduino и учимся программировать их в среде mBlock
61

LOW (или 0) — см. рис. 2.21 (раз уж зашла речь, откроем маленькую тай-
ну: по умолчанию в значение HIGH установлены еще и порты D4 и D7
Arduino, но это нам сейчас не мешает).
7. Запустите программу. Видите — на модуле сборки мигает только один
светодиод, подключённый к порту D13, а также мигает светодиод непо-
средственно на плате Arduino.
























Рис. 2.21. Установим в значение LOW (или 0) порты D9 и D10


8. Сохраните проект с именем Проект_1.sb2 с помощью команды Save
project As (Сохранить проект как) из меню Файл.


Совет


Рекомендуется сохранять все созданные проекты, чтобы их можно
было использовать в дальнейшем. Давайте им осмысленные назва­
ния, чтобы в будущем не путаться в выборе.



Задание

Измените программу так, чтобы «помигать» любым другим свето­
диодом сборки.









ГЛАВА 2
62

Светодиодный индикатор [4]
Светодиодный индикатор излучает свет при подаче небольшого постоян­
ного тока — около 20 мА (а иногда намного меньше) — при напряжении
менее 5 В (см. схему подключения светодиода). Собственное сопротив­

ление светодиода после насыщения очень мало, и без резистора, огра­
ничивающего ток через светодиод, он перегорит. Приблизительное зна­
чение номинала токоограничительного резистора (R) можно вычислить
с по мощью очень простой формулы R=(VCC­VF)/I, в которой R обозна­
чает номинал резистора, VCC — напряжение источника питания, VF —
указанное для светодиода прямое напряжение, а I — требуемую силу тока.
В схемах с напряжением 5 В подойдёт резистор мощностью 0,125 Вт.







































Миллиампер (или мА) — это обозначение единицы измерения силы

тока.

Вольт (или В) — это обозначение единицы измерения напряжения.
Ватт (или Вт) — это обозначение единицы измерения мощности.



Знакомимся с контроллерами Arduino и учимся программировать их в среде mBlock
77

2. Выберите фон для вашей сцены. Мы выбрали из библиотеки фон
pathway.
3. Создайте глобальную переменную alarm.
4. Соберите сценарий, который считывает состояния порта D2 в глобаль-
ную переменную alarm. Если значение переменной alarm становится рав-
ным 1, то как из-под земли на сцене появляется собака, начинает но-
ситься и лаять. Как только все движения прекратятся (alarm = 0), собака
замолчит и спрячется (рис. 2.65).






































Рис. 2.65. Программа охранной сигнализации и результат её работы


Задания

1. Добавьте в свой проект звуки.

2. Попробуйте изменить программу так, чтобы сенсор движения
будил собаку только в ночное время. Для этого воспользуйтесь
датчиком освещённости (фоторезистором). В случае возникно­
вения сложностей обратитесь к проекту «Умный домик».



ГЛАВА 2
102

Проект 10. Парктроник автомобиля
на базе ультразвукового дальномера


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


Парктро́ник или парковочный рада́р — электронная система, ко­
торая следит за расстоянием между автомобилем и окружающими
предметами.




Ультразвуковой датчик [5]
Принцип работы ультразвукового датчика приближения основан на из­
лучении коротких импульсов ультразвука с последующим приёмом эхо­
сигналов от объектов, расположенных перед датчиком.

Недорогой ультразвуковой датчик приближения HC­SR04 популярен
среди любителей робототехники, он надёжно работает на расстояниях
от 2 см до 5 м.
























Ультразвуковой датчик HC-SR04




Знакомимся с контроллерами Arduino и учимся программировать их в среде mBlock
103

будет меньше 10 (то есть объект приблизился к датчику на расстояние
меньше 10 см), то на контакт D12 поступает сигнал HIGH, который вклю-
чает светодиод, затем появляется надпись «БАМС!!!» и звучит бубен
(рис. 2.67).












































Рис. 2.67. Сценарий для парктроника




Щёлкните мышью по . Замигал встроенный светодиод. Начинаем пар-
ковку. Приближайте датчик расстояния к любому препятствию (или просто по-
додвигайте ладонь ближе). На сцене будет отображаться расстояние от дат-
чика до объекта (в переменной дистанция), и ёлка будет приближаться в окне
сцены (в «зеркале заднего вида») по мере уменьшения расстояния. Если рас-
стояние окажется менее 10 см, то появится надпись «БАМС!!!», и вы услышите
звук бубна (рис. 2.68).



Знакомимся с контроллерами Arduino и учимся программировать их в среде mBlock
105

Придумываем,



конструируем, играем!


Arduino + mBlock =


креативные игры!








Компьютерные игры —

простор для творчества!



Вам нравится играть в компьютерные игры? Поверьте, придумывать их са-
мому и состязаться потом с друзьями — ещё интереснее! Да и приобретать та-
ким способом новые знания гораздо увлекательнее, верно?
Давайте создадим совсем несложную игру, в которой всё управление будет
осуществляться нажатием одной кнопки (сначала на клавиатуре компьютера,
а затем сделаем внешний пульт управления на Arduino). Может быть, вы ду-

маете, что это скучно, и даже браться за подобное не стоит? Но дело в том, что
многие «игрушки» для тех же смартфонов, появляющиеся в AppStore и Google
Play, отличаются именно такой простотой управления, и при этом многие из
них бьют все рекорды популярности!
Отметим, что является важной именно простота управления, позволяющая
миллионам пользователей получать удовольствие от действия, не тратя время



ГЛАВА 3
108

на освоение сложного интерфейса. Так что дело за малым — придумать сюжет
с интересным игровым процессом и простым управлением (в нашем случае —
одна кнопка или один потенциометр) и воплотить всё в реальность. Причём
самое сложное здесь — придумать! Поэтому так ценятся по-настоящему творче-
ские или, как модно говорить, креативные идеи. Вполне возможно, что именно
вы придумаете новую игру, которая покорит сердца пользователей! А для на-
чала мы рассмотрим несколько примеров, отображающих процесс разработки,
покажем, на что автору следует обратить внимание. Готовы? Приступим.



Проект «Голодная рыбка» версия 1:

<
управление клавишей Пробел >


Для создания игры воспользуемся средой mBlock, ведь мы хотим управ-
лять не только с клавиатуры, но и с помощью внешнего пульта на базе Arduino.
Вначале сделаем упрощённый, но вполне рабочий вариант, а потом усовер-
шенствуем, усложним его и добавим возможностей.
Любой разработчик проходит через этапы совершения ошибок, их поиска

и попыток устранения. Можно сказать, что всё это и называется программирова-
нием. Написание любой программы — в значительной степени troubleshooting
(в переводе с английского языка — отстрел проблем, отладка), именно этот
процесс занимает львиную долю времени. Даже если бы мы, авторы этой кни-
ги, всеми силами постарались уберечь вас от ошибок и оградить от проблем,
вряд ли бы это получилось. Но в борьбе с ошибками приобретается опыт!
Поэтому вооружитесь храбростью, и приступим. В этот раз сюжет предложим
мы, а вашей задачей будет обучить всех существ-персонажей выполнять имен-
но то, что требуется. Будет нелегко, но мы же к этому готовы!


Формулируем задачу


Давайте определим сюжет для нашей первой игры. живёт-поживает очень-
очень голодная и непоседливая рыбка, этакий санитар водоёма. Сверху па-
дают различные съедобные и несъедобные предметы, первые надо пытаться
подобрать (коснувшись их), другие старательно игнорировать, отворачивая
в сторону.



Придумываем, конструируем, играем! Arduino + mBlock = креативные игры!
109

Растровая и векторная графика

Растровая графика состоит из точек, пикселов (от английских слов
picture elements — элементы изображения). Если сильно увеличить та­
кое изображение, каждая точка превратится в квадратик.

Векторная графика организована иначе, изображение там состоит

из примитивов — дуг, многоугольников, кругов и так далее. Рисовать
сложнее, да и на обработку движения векторного объекта в программе
уйдёт больше ресурсов, но зато такое изображение можно без проблем
сжимать и растягивать, линия так и останется линией, а не превратится
в набор квадратиков.




















Растровый (слева) и векторный (справа) рисунки





Теперь закрасьте весь прямоугольник сцены тёмно-синим цветом. Сейчас
это удобнее сделать, преобразовав изображение в растровое (нажатием на со-
ответствующую кнопку в правом нижнем углу программного окна — рис. 3.2),













Рис. 3.2. Кнопки выбора режима графики (справа, внизу)



Придумываем, конструируем, играем! Arduino + mBlock = креативные игры!
111

Проект «Голодная рыбка» версия 2:
управление с Arduino с помощью кнопки




Попробуем поиграть с помощью кнопки, подключённой к контроллеру
Arduino. Окажется полезной ещё и светодиодная сборка, либо яркий внешний
светодиод. Вы же помните, как всё подключать? Если забыли, вернитесь назад,
освежите знания. Всё в порядке? Итак, продолжаем!
Измените скрипт рыбки, добавив пробное помигивание светодиодом при
старте программы и использование Arduino-кнопки вместо клавиши <Про-
бел>. Чтобы не загромождать основной скрипт подготовительными действия-
ми, вынесем их в отдельный блок (рис. 3.24).














































Рис. 3.24. Набор скриптов рыбки при управлении с Arduino



Придумываем, конструируем, играем! Arduino + mBlock = креативные игры!
127

«Умный домик».


Автономный проект


с платой Arduino






В начале книги мы рассказывали о тех задачах, которые способны решать
микроконтроллеры в современном мире. И одно из самых интересных направ-
лений сейчас — технологии «умного дома». Теперь, когда в ходе игровых про-
ектов вы научились не только программировать в среде mBlock, но и освоили
использование электроники на базе Arduino, можно приступать к созданию
«умных вещей». В этом деле много своих тонкостей, но главное вы уже умеете:
вы способны писать управляющие алгоритмы, пусть пока ещё простые, счи-
тывать значения портов, а также управлять работой внешних устройств.





















ГЛАВА 4
140

Собираем электрическую схему «умного домика»



Создадим макет устройства, которое будет самостоятельно включать и
выключать лампочку на крыльце дома в зависимости от уровня внешнего
освещения.
Солнечный свет будем имитировать фонариком, направляя его на сенсор
освещённости («день») или отводя в сторону («ночь»). В зависимости от пока-
заний датчика устройство будет замыкать или размыкать контакты. Днём при
ярком свете лампочка будет выключаться, а ночью включаться.

Нам может потребоваться настройка чувствительности нашего устройства.
Будем использовать потенциометр для того, чтобы указывать, при каком уров-
не внешнего освещения лампочка должна включаться и отключаться.

Необходимые компоненты


• Плата Arduino Uno.

• Кабель USB.

• Светодиодная сборка для индикации работы программы (с использова-
нием портов D9, D10, D11), готовая либо собранная на макетной плате.

• Макетная плата либо плата расширения Arduino ProtoShield.

• Ползунковый пропорциональный потенциометр.

• Аналоговый датчик освещённости с трёхконтактным подключением SVG
(либо резистор 10 килоом и фоторезистор).
• Набор монтажных проводов либо кусок одножильного провода (диа-

метром около 0,5 мм).
• Батарейка, лампочка и соединительные провода для имитации света

в доме (желательно).


Прежде чем приступить к сборке электрической схемы, кратко опишем
компоненты, которые мы ещё не использовали в наших проектах







«Умный домик». Автономный проект с платой Arduino
141

Рис. 4.1. Модуль с двумя реле






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


Датчик освещённости

В качестве датчика освещённости удобно
использовать специализированный трёхкон-
тактный модуль SVG (рис. 4.2). На плате дат-
чика размещён фоторезистор, подтягивающий
резистор и контакты для подключения к плате
Arduino. На рис. 4.2 видна маркировка крайних
контактов: S (от английского слова signal — сиг-

нал) и «–» (заземление, GND). Центральный
контакт не помечен, это VCC (от французских Рис. 4.2. Датчик освещённости
с трёхконтактным подключением
слов Volt en courant continue — «+» питания). SVG



«Умный домик». Автономный проект с платой Arduino
143

Рис. 4.3. Электрическая схема «Умного домика»
(питание платы Arduino по USB-кабелю или от отдельного источника)

ГЛАВА 4
144

На рис. 4.27 показан вариант сборки с использованием лампочки и бата-
рейки из набора по физике для любознательных.
Проверьте устройство в работе. Отрегулируйте положение ручки потен-
циометра для включения лампочки при понижении уровня освещения.
Возможно, вам захочется применить данное устройство для макета «умно-
го дома». Такой домик можно сделать из подручных средств (картон, клей)
или собрать из деталей конструктора, например Лего. В этом случае придётся
продумать компоновку электронной части макета, вывести фоторезистор на-

ружу с помощью более длинных проводов. Это хорошие задачи для инженера.
Надеемся, вы с ними успешно справитесь.
А на рис. 4.28 показан вариант такого «умного дома», собранного ребята-
ми из школы № 169 Санкт-Петербурга, в которой работают авторы этой книги.














































Рис. 4.28. «Умный домик» из Лего


ГЛАВА 4
166


Click to View FlipBook Version