Винницкий Ю. А.
Григорьев А. Т.
Санкт-Петербург
«БХВ-Петербург»
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=(VCCVF)/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]
Принцип работы ультразвукового датчика приближения основан на из
лучении коротких импульсов ультразвука с последующим приёмом эхо
сигналов от объектов, расположенных перед датчиком.
Недорогой ультразвуковой датчик приближения HCSR04 популярен
среди любителей робототехники, он надёжно работает на расстояниях
от 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