Денис Голиков.

Школа капитана Грампа. Scratch и Arduino для школьников



скачать книгу бесплатно

Иллюстратор Мария Конопатова

Дизайнер обложки Мария Конопатова

Фотограф Денис Голиков


© Денис Владимирович Голиков, 2017

© Артём Денисович Голиков, 2017

© Мария Конопатова, иллюстрации, 2017

© Мария Конопатова, дизайн обложки, 2017

© Денис Голиков, фотографии, 2017


ISBN 978-5-4485-4988-5

Создано в интеллектуальной издательской системе Ridero

Предисловие

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

Управление космическим кораблем будет происходить с помощью специального пульта управления, состоящего из плат Arduino и Joystick Shield, подключенных к компьютеру через USB.

Обучение будет вестись в среде программирования Snap4Arduino, которая является одной из модификаций Snap! – блочной среды программирования, разработанной на основе Scratch в Калифорнийском университете в Беркли (University of California at Berkeley).

Программирование на Snap4Arduino, как и в Scratch, происходит путем соединения разноцветных блоков, которые, последовательно исполняясь, управляют движением космического корабля, астероидов и других объектов.

Snap! был разработан Дженс Мониг (Jens M?nig at MioSoft Corporation, now at SAP), совместно с Брайаном Харви (Brian Harvey at Berkeley), при помощи студентов Калифорнийского университета в Беркли.

Snap4Arduino разработан Бернатом Ромагозой (Bernat Romagosa) совместно с командой единомышленников в лаборатории Citilab в Барселоне.

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

Книга рассчитана на возраст 11—13 лет, однако многие игры смогут сделать и школьники помладше.

Введение

История создания книги

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

Изучив содержимое блокнотов, мы поняли, что этот ящик попал в наше время из будущего.

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

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

Все объяснения в учебнике даются с использованием стандартных электронных компонентов, которые не устарели за 200 лет, и входят во все обучающие наборы будущего. Так же как и классная доска, указка, линейка и циркуль не устарели за 300 лет, так и плата Arduino за 200 лет не устарела. Плата с джойстиком (Joystick Shield) тоже является стандартной, за эти годы она почти не изменилась.

В учебнике капитан Грамп знакомит ребят с основами электроники, объясняет основные принципы управления космическим кораблем, а также некоторые законы физики и астрономии.

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

На уроках вождения пилоты приобретут следующие навыки, необходимые для управления космическим кораблем:

– вождение космического корабля;

– облет астероидов;

– стыковка со шлюзом;

– посадка на астероид;

– посадка на тело с атмосферой;

– вычисление направления движения без приборов;

– защита базы от космических пиратов;

– стрельба из разных видов оружия;

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

Записи капитана Грампа выделены в тексте книги курсивом, а по мотивам некоторых из них нарисованы комиксы.

Состав набора для работы с книгой

Набор для работы с книгой вы можете приобрести на сайте [битая ссылка] http://scratch4russia.com/store/.


Набор для работы с книгой


Электронные компоненты


В состав набора входит все необходимое для выполнения заданий.


Плата Arduino UNO


Плата с джойстиком Joystick Shield


Макетная плата


Подложка под макетную плату с метизами


Провода


По пять штук красных, синих и зеленых светодиодов


Яркий белый светодиод


Фоторезистор


Термистор


Зуммер


Резисторы 1 Вт 330 Ом 10 шт

Резисторы 1 Вт 1 кОм 10 шт

Резисторы 1 Вт 10 кОм 10 шт


Потенциометр 10 кОм 1шт.


Кнопка 12 мм 4 шт.


RGB светодиоды 2шт.


Мультиметр

Как работать с книгой

К книге прилагается библиотека изображений, необходимых для создания проектов. Скачайте ее по ссылке [битая ссылка] https://yadi.sk/d/RkaPLTgn3LUFW8 и разархивируйте. Эти изображения пригодятся при создании проектов.

Все уроки делятся на два типа – с использованием платы с джойстиком, и без использования. Плата с джойстиком не используется в следующих проектах:

– Делитель напряжения;

– Ремонт боевого лазера;

– Ремонт прожектора;

– Ремонт оружия;

– Ремонт сигнальных огней;

– Стрельба по космическому мусору;

– Коды уранских дальнобойщиков;

– Сигнализация.

В следующих проектах плата с джойстиком используется. Используется только плата Arduino, макетная плата и электронные компоненты.

– Тест платы с джойстиком;

– Управление маневровыми двигателями;

– Полет на маршевых двигателях.

– Стыковка;

– Посадка на астероид;

– Полет в атмосфере;

– Полет через кольца Сатурна;

– Защита Дафниса;

– Поиск таинственной планеты;

– Охота на дикую шаурму.

Мультиметр используется во всех проектах для измерения напряжения, измерения сопротивления резисторов и для прозвонки электрических цепей.

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

Не забывайте сохранять все созданные проекты.

Все проекты, создаваемые на страницах книги можно скачать по следующей ссылке [битая ссылка] https://yadi.sk/d/o4Pw8NCJ3LUFtJ.

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

Названия элементов интерфейса выделены жирным шрифтом.

Названия блоков выделены жирным шрифтом и подчеркнуты.

Названия переменных и событий выделены жирным шрифтом и курсивом.

Слова капитана Грампа выделены курсивом.

Подключение оборудования

Перед началом работы необходимо установить среду Snap4Arduino, Arduino IDE, необходимые драйвера и загрузить в плату Arduino скетч для связи с компьютером.

Для установки Snap4Arduino перейдите на сайт [битая ссылка] http://snap4arduino.org/ в раздел Download и скачайте версию установочного файла для вашей операционной системы.

После установки Snap4Arduino необходимо установить Arduino IDE. Скачайте последнюю версию со страницы [битая ссылка] https://www.arduino.cc/en/Main/Software и установите ее.

После установки Arduino IDE установите драйвер для платы Arduino UNO. Некоторые операционные системы уже имеют встроенный драйвер для работы с ней, и определяют Arduino UNO автоматически. Если этого не произошло, то установите драйвер CH341 отвечающий за связь платы Arduino UNO с компьютером со страницы [битая ссылка] http://www.wch.cn/download/CH341SER_ZIP.html. Если вы используете плату Arduino отличную от изображенной на рисунке, то вы можете найти ее драйвера в папке ..arduino-1.8.1\drivers.

После установки драйвера подключите плату Arduino UNO к компьютеру через USB и убедитесь, что в списке устройств появилось новое устройство. Запомните, через какой COM порт оно соединено с компьютером.

Обратите внимание!

Через порт COM1 плата Arduino никогда не соединяется.

Если у вас возникнут проблемы с загрузкой необходимых установочных файлов с официальных сайтов, то вы всегда можете скачать их по адресу [битая ссылка] https://yadi.sk/d/wgTa2Y273LUHKq.

Прошивка Arduino

Запустите Arduino IDE и укажете, к какому COM порту подключена плата Arduino. Выберите раздел меню Инструменты, затем Порт, укажите порт.



Далее необходимо убедиться, что выбрана именно плата Arduino UNO. Выберите раздел меню Инструменты, затем Плата и выберите плату Arduino UNO.



Теперь необходимо загрузить в плату Arduino специальный скетч, с помощью которого она будет связываться с компьютером. Скетч называется StandardFirmata. Для того чтобы загрузить его, выберите раздел меню Файл, Примеры, Firmata, и затем StandardFirmata.



После того, как вы выберете скетч StandardFirmata, он появится в окошке Arduino IDE. Теперь необходимо загрузить его в плату Arduino – прошить ее. Для этого нажмите на кнопку Загрузка.



Начнется процесс загрузки, сопровождаемый пояснениями. По окончании загрузки появится надпись «Загрузка завершена».



Плата Arduino прошита, теперь запускайте Snap4Arduino, и попытайтесь с ней соединиться. Кликните на кнопку Arduino, затем на кнопку Connect Arduino и выберите соответствующий COM порт.



Если все установлено правильно, то вы увидите следующее сообщение «Плата Arduino успешно присоединена. Успешных экспериментов!»



Если соединения не произошло, то обратитесь к приложению 5, в котором рассмотрены типичные ошибки и способы их устранения.

Скачайте архив с изображениями, необходимыми для создания проектов по ссылке [битая ссылка] https://yadi.sk/d/RkaPLTgn3LUFW8 и разархивируйте его.

Желательно чтобы процессор вашего компьютера по производительности был не медленнее AMD Athlon II X2 240 2.8 GHz (10000 по тесту CPU Queen Aida64v5.80.4000).

Идеально подходят процессоры Intel i3 и i5 (25000 по тесту CPU Queen Aida64v5.80.4000).

Знакомство со Snap4Arduino

Интерфейс Snap4Arduino

Запустите Snap4Arduino, его внешний вид очень похож на Scratch 1.4.


Интерфейс Snap4Arduino


По умолчанию в Snap4Arduino установлен английский язык интерфейса. Однако его можно переключить на один из 38 языков.


Перейдите в раздел меню Language


Выберите русский язык.


Белое поле справа – это сцена, на ней будет происходить все действие. По сцене будут перемещаться спрайты (космические корабли и астероиды). Сейчас на сцене всего один спрайт – Стрелка. Все спрайты проекта расположены в соответствующей области под сценой. По центру – огромная область скриптов, там мы будем собирать скрипты проекта из разноцветных блоков, которые хранятся в палитре, расположенной слева. Скрипты – это части, из которых состоит программа. У каждого спрайта они свои собственные.

Если обычный интерфейс Snap вам не нравится, то существует возможность изменить интерфейс на плоский дизайн (flat design). Установите галочку напротив этого пункта меню.


Включение плоского дизайна


Теперь Snap4Arduino выглядит почти как Scratch 2.0!

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

Основы программирования на Snap4Arduino

Движение по прямой

Сначала давайте научимся перемещать спрайты по сцене.

Выберите желтые блоки Управление. Щелкните мышью на блоке когда нажать пробел клавишу и, не отпуская кнопку мыши, тяните его в область скриптов.



Расположите блок в верхней части области скриптов и отпустите кнопку мыши. Затем выберите синие блоки из раздела Движение и вытащите в область скриптов блок передвинуть на 10 шагов. Перетащите его к первому блоку. В тот момент, когда он захочет к нему прицепиться, появится белая полоса, в этот момент отпускайте кнопку мыши – блок приклеится снизу.



Получилась программа, состоящая из одного скрипта.


Нажимайте на <Пробел>, и вы увидите, как Стрелка передвигается вправо – в ту сторону, куда смотрит ее кончик.

Задание.

Измените число 10 на 5, и посмотрите, как изменится перемещение Стрелки.

Совет.


Если Стрелка скроется за краем сцены, то вернуть ее можно дважды кликнув на блок перейти в точку х0 y0 непосредственно в палитре блоков.

Вращение

Добавьте к имеющемуся скрипту блок повернуть по часовой на 15 градусов.



Нажимайте на <Пробел>, и вы увидите, как Стрелка вращается по часовой стрелке.

Задание.

Изменяйте значения в блоках в интервале от 1 до 20 и посмотрите, как изменится движение Стрелки. Как возвращать исчезнувшую Стрелку в центр сцены вы уже знаете.

Движение по координатам

Еще один способ перемещения спрайта – изменение его координат. Координата Х отвечает за горизонтальное перемещение спрайта направо и налево, а координата Y за вертикальное перемещение вверх и вниз.

Создайте новый проект и импортируйте из библиотеки изображений спрайт космического корабля как описано в приложении 1.

Соберите вот такой скрипт.



Совет.


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


Нажимайте на стрелку вправо – спрайт будет перемещаться вправо, его координата Х будет изменяться на 3 при каждом нажатии на клавишу со стрелкой вправо.



Соберите следующий скрипт для движения спрайта налево.



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



Для перемещения спрайтов по вертикали нужно изменять координату Y. На следующем рисунке показан результат работы блока изменить Y на 2.



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


Координатная система

Сцена Snap4Arduino по умолчанию имеет размер 480 пикселов в ширину, и 360 в высоту. Центральная точка сцены имеет координаты Х=0 и Y=0. Математически это записывается вот так (0; 0), где первая цифра это координата Х, а вторая Y.



На рисунке показана координатная сетка Snap4Arduino с координатами различных точек. Как видите, в правой половине сцены координата Х всегда больше ноля, и наоборот, в левой половине сцены она меньше ноля. Координата Y больше ноля в верхней половине сцены, и меньше ноля в нижней.

Сохранение проектов

В Snap4Arduino есть несколько возможностей для сохранения проектов.

Сохранение проектов в браузере

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

Сохранение проектов в облаке

Второй способ – сохранение проектов в облаке. Это удобно тем, что вы получаете доступ к своим проектам из любого компьютера, подключенного к интернет. Также вы можете поделиться своим проектом, размещенным в облаке (расшарить его). Для получения возможности сохранять проекты в облаке необходимо зарегистрироваться. Для этого нажмите на кнопку с облачком в строке меню, и выберите Signup.



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

Экспорт проектов

Третий способ – экспорт проектов на свой компьютер в формате XML. Для экспорта проекта нажмите на кнопку с листочком и выберите Экспорт проект.



Сохраните проект в папку на своем компьютере.

Совет.

Я рекомендую сохранять все проекты в облако не реже чем один раз в 10 минут, и экспортировать их по окончании работы.

Обратите внимание!

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







Знакомство с мультиметром

Современного школьного образовательного набора по электронике у меня в хозяйстве нет, поэтому буду обучать пацанов с использованием древнего мультиметра и разных деталей, выдранных из сломанных бластеров, панелей управления и wi-fi-буйков. Пригодится и антикварная плата Ардуино с платой джойстика. Надеюсь, мои ученики не смогут угробить ее своими кривыми ручонками.

Прозвонка

Познакомьтесь с одним из самых замечательных экземпляров моей коллекции – мультиметром. Этот доисторический прибор позволяет определять напряжение и сопротивление.



Перед началом работы установите батарейку внутрь мультиметра.



Воткните щупы и переключите мультиметр в режим прозвонки.



Коснитесь щупами друг друга. Раздастся писк! Это означает, что цепь замкнута и по ней протекает электрический ток. Ток вытекает из плюсовой клеммы Кроны, установленной в мультиметре, протекает по красному щупу, затем по черному, попадает в зуммер, который издает пронзительный писк, а потом снова затекает в Крону через минусовую клемму. Крона хитрым химическим способом снова разгоняет ток, и он опять вытекает из ее плюсовой клеммы.



Запомните!

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

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



Напряжение

Важнейшее свойство электричества называется напряжение. Для измерения постоянного напряжения переключите мультиметр в область вольтметра V—. Для измерения переменного напряжения служит область V~. Переменное напряжение – примитивная технология 21 века, поэтому на нашем корабле она не используется. Переключите мультиметр в режим вольтметра как показано на рисунке.



На рисунке переключатель показывает на 20. Это означает, что в этом режиме мы сможем измерить напряжение от 0В до 20В. Для того чтобы измерить напряжение Кроны следует коснуться черным минусовым щупом отрицательной клеммы Кроны (—), а красным щупом положительной клеммы (+).



На экране мультиметра отобразится напряжение Кроны.



Если напряжение больше 9 вольт, то Крона новая, а если меньше, то скоро может потребоваться замена.

Внимание! Ни в коем случае не засовывайте щупы в розетки космического корабля! Это опасно для жизни! Без шуток.

Измерьте напряжение пальчиковой батарейки типа АА.



Если батарейка новая, то напряжение будет около 1.5 В. Разряженные батарейки имеют напряжение около 1 В или меньше.



Делитель непряжения

Знакомство с питанием Arduino

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



Все пятерки отверстий на макетной плате, пронумерованные как (a, b, c, d, e) и (f, g, h, i, j), соединены вместе. Всего есть 60 пятерок отверстий для установки электронных компонентов. Также есть две пары шин питания, обозначенных синей и красной полосками. К синим отверстиям следует подключать общий провод (GND), а к красным «+» питания.

Давайте исследуем, как изменяется напряжение Кроны, попадая на плату Arduino. Подключите Крону к разъему платы Arduino.



Загорится красный светодиод. Измерьте напряжение, поступающее на плату от Кроны. Черным щупом коснитесь пина GND, а красным пина Vin.



Напряжение должно быть около 9 В. (от 8.8В до 9.5В).



Измерьте напряжение между землей (GND) и пином 5V.



Напряжение должно быть около 5 В. (от 4.9В до 5.1В).



Измерьте напряжение между землей (GND) и пином 3.3V.



Напряжение должно быть около 3.3 В. (от 3.2В до 3.4В).



Делитель напряжения из двух резисторов

У меня в трюме пылится куча оружия с разряженными аккумуляторами. Использую его я не часто, поэтому постоянно забываю подзарядить. Надо будет попросить ребят заняться этим вопросом. Заодно научатся изменять уровень напряжения с помощью резисторов.

А вот и списочек оружия нашелся.

Дезинтегратор трехлинейный образца 2191 года. 10 шт. Напряжение аккумулятора 450 В.

Плазмомет Хайрема образца 2173 года. 3 шт. Напряжение аккумулятора 600В.

Бластер Наганта образца 2195 года. 25 шт. Напряжение аккумулятора 300В.

Надеюсь, что вы помните, что бортовая сеть космического корабля имеет напряжение 900В. Если Вы посмотрите на напряжение питания трехлинейного дезинтегратора (450В), то заметите, что оно ровно в два раза меньше напряжения сети. Для того чтобы получить это напряжение, 900В нужно разделить пополам. Для этого используется делитель напряжения, состоящий из нескольких резисторов.

Резистор, это электронный компонент, обладающий сопротивлением (поэтому иногда резистор так и называют – сопротивление). Сопротивление измеряется в Омах и килоомах (в тысячах Ом).

В состав набора входят резисторы с сопротивлением 330 Ом, 1кОм и 10кОм.



Для измерения сопротивления переключите мультиметр в режим ? на 20К..



Измерьте сопротивление каждого вида резисторов. Коснитесь щупами ножек резистора и посмотрите на экран мультиметра.

Сопротивление резистора номиналом 330 ом немного меньше и равно 320 Ом.



скачать книгу бесплатно

страницы: 1 2

Поделиться ссылкой на выделенное