Тема
«Компьютерный питомец Slam»
Исполнитель:
ученик 8 «В» класса МАОУ СОШ № 117
Пехташев Данил Владиславович
Научный руководитель:
Наталия Викторовна
Кормильцев Александр Сергеевич
Должность: Специалист 1 категории по работе с детьми "НПО автоматики
Екатеринбург, 2018
Содержание
1. Чем может управлять Arduino. 4
2.2. Материалы, инструменты, оборудование. 6
2.3. Последовательность выполнения работы.. 7
2.4. Алгоритм работы программы.. 9
Заключение. 10
Введение
Сейчас в мире людей, увлечённых техникой, наблюдается настоящая «ардуиномания». Этому маленькому загадочному устройству посвящены тысячи статей, сотни блогов и форумов. Овладев этим средством программирования можно создавать умные гаджеты и системы автоматизации. Начиная от простых устройств, отображающих значения датчиков, и заканчивая системами умного дома или ЧПУ станками. Это является основным направлением развития техники в современном мире. Актуальность моей работысостоит в том, что владение этим средством программирования является неотъемлемой частью современного мира, а также может лечь в основу будущей профессии.
Проблема данной работы: как при помощи системы программирования создавать объект и игру.
Объект исследования: аппаратно-программная платформа Arduino.
Предмет исследования: создание игры с использованием платформы Arduino.
Гипотеза – средствами аппаратно-программной платформы Arduino создается игровое приложение.
Цель проекта: создать игровое приложение, управляемое пользователем, средствами аппаратно-программной платформы Arduino.
Задачи проекта:
- 1.Изучить литературу по возможностям аппаратно-программной платформы Arduino.
- 2.Разработать алгоритм приложения.
- 3.Создать игровое приложение средствами платформы Arduino.
Методы исследования:
- -Поиск информации в специальной литературе, Интернет-ресурсах
- -Эксперимент
- -Анализ и синтез данных
Этапы исследования:
- 1.Изучение способов создания игры
- 2.Разработка алгоритма
- 3.Написание программы по созданному алгоритму
- 4.Создание аппаратно-программного комплекса
- 5.Апробация приложения
Мой проект представляет собой игровую приставку, управляемую пользователем с помощью джойстика и кнопок, на дисплее которой формируется изображение. В дальнейшем я планирую расширить возможности программы за счет считывания данных с SD-карты, создание картриджной приставки.
Данный проект можно использовать для управления объектами средствами аппаратно-программной платформы.
1. Чем может управлять Arduino
кнопки,
светодиоды,
микрофоны и динамики,
электродвигатели и сервоприводы,
ЖК дисплеи,
считыватели радиометок (RFID и NFC),
ультразвуковые и лазерные дальномеры,
bluetooth, WiFi и Ethernet модули,
считыватели SD карт,
GPS и GSM модули...
А также десятки различных датчиков:
освещённости,
магнитного поля,
гироскопы и акселерометры,
датчики дыма и состава воздуха,
температуры и влажности и многое, многое другое.
1.1. Общение с Arduino
Как же процессор узнаёт, что именно ему следует делать? Вы должны рассказать ему это. Существует язык для общения с микроконтроллером, упрощённый и адаптированный специально для Arduino. Освоить этот язык совсем не сложно при желании и определённой настойчивости, даже если вы никогда раньше не программировали.
Написание сообщений для Arduino называется программирование. И для упрощения этого процесса разработана специальная программная среда - Arduino IDE. В её состав включены десятки примеров хороших, работающих программ. Изучив их, вы очень быстро многое узнаете о языке общения с Arduino.
Arduino позволит вашим программам выйти из виртуального мира в мир реальный. Вы сможете увидеть, как написанные вами программы заставляют мигать светодиод или вращать вал двигателя, а затем делать и более сложные и полезные вещи. Arduino позволит вам узнать много нового и интересного и в электронике, и в программировании. В итоге это может стать вам отличным хобби, увлекательным занятием, замечательным и полезным времяпровождением.
2. Создание игры
2.1. Анализ и выбор идей
В зимние каникулы я посетили зимнюю инженерно-конструкторскую школу «СовТех» от физико-математического лицея №31 города Челябинска и МБУ «Отдых» города Магнитогорска в поселке Абзаково. Там я и познакомился с новой для меня платформой. Мой научный руководитель поставил перед мной цель: создать продукт, который я мог бы использовать в дальнейшем. При работе я столкнулись с некоторыми трудностями.
В этой программе есть много плюсов и минусов.
Плюсы:
- -Понятный язык программирования (упрощенный C++)
- -Написанный код выводится и обрабатывается в микроконтроллере (на Arduino)
- -Есть возможность питать, программировать и обмениваться сообщениями с Arduino при помощи одного USB кабеля
Минусы:
- -Пустой проект Arduino занимает 466 байт на Arduino UNO и 666 байт на Arduino Mega2560.
- -Библиотеки Arduino просты в освоении, но на этом их плюсы заканчиваются. К примеру, вы можете всю жизнь формировать задержки с помощью delay-функций и не иметь ни малейшего представления, как работает таймер на микроконтроллере — из таких минусов состоят все библиотеки Arduino. Ведь таймер и другая периферия в микроконтроллере реализованы так, чтоб компенсировать его однопоточность прерываниями. А люди тратят процессорное время на декрементацию неиспользуемой переменной.
- -Также Arduino "скрывает" такие важные аспекты архитектуры микроконтроллеров как регистры, прерывания и таймеры. Для меня эта программа очень легка в плане программирования и своего интерфейса. Arduino для меня был первый язык программирования который я познал.
2.2. Материалы, инструменты, оборудование
Мой проект был создан на Arduino UNO . Arduino имеет- 19 обычных ножек,3 GND разъема, ножку 5V, 3,3V, ножку VIN и ножку AREF.
Еще Arduino имеет кнопку reset и два входа питания, через один из них можно еще загрузить программу.
2.3. Последовательность выполнения работы
После ознакомления я преступил к начальному заданию запустить часы (рис. 4).
Рисунок 4
Я не столкнулись ни с одной проблемой, и продолжил свое совершенство в познания языка программирования.
Следующее что я сделал, это начал подключать к Arduino стилус от приставки PSP2 . При подключении стилуса я столкнулись с одной проблемой, что для некоторых вещей для подключения нужно скачивать определённую библиотеку.
Рисунок 5
После я подключил сам экран от Nokia5110 (к которому тоже нужна библиотека). И вывел на него первый мой объект. Им был квадратик который мог перемещаться по всему экрану (рис. 6). Для меня это была маленькая победа на пути к огромному счастью.
Рисунок 6
После этого я начал разрабатывать и походу придумывать смысл игры, и что она будет из себя представлять. Я решили создать игру TAMAGOTCHI . Персонажем моей игры стал slam. Следующим шагом я поменяли рисунок и загрузил слизня вместо квадратика. Он так же мог передвигаться и исчезать и я ему по ходу разработки добавили способность махать ручками (рис. 7).
Рисунок 7
Далее я подключил 4 кнопки:
- 1.Слайм становится злым.
- 2.Слайм начинает потихоньку плавиться и возрождаться обратно.
- 3.Слайм здоровается с пользователем игры.
- 4.Кнопка reset (перезапуск игры).
Все эти действия сопровождаются плавной анимацией.
- 1.Злость
- 2.Плавление
- 3.Приветствие.
- 4.Reset
Следующим шагом я распечатал корпус для нашей игры. Печать была произведена на 3D принтере Wanhao i3.
2.4. Алгоритм работы программы
Если при управлении slaim выходит за границы экрана, то изображение очищается и отрисовывается в положении (0, 0)
Заключение
В результате выполнения этого проекта я получил приложение, которое работает по управлению пользователя с джойстика или кнопок, созданное аппаратно-программными средствами платформы Arduino. Таким образом, я достиг поставленной цели. Моя гипотеза о том, что средствами аппаратно-программной платформы Arduino можно создать игровое приложение, подтвердилась.
В процессе работы над проектом я выполнил задачи:
- 1.Изучить литературу по возможностям аппаратно-программной платформы Arduino.
- 2.Разработать алгоритм приложения.
- 3.Реализовать алгоритм средствами платформы Arduino.
При выполнении этого проекта мы пришли к выводам:
- -аппаратно-программные средства платформы Arduinoимеют широкие возможности для создания приложений, поддерживающих пользовательский интерфейс.
Мой проект можно использовать в качестве иллюстрации возможностей аппаратно-программной платформы Arduino на начальном этапе изучения. Я планирую дорабатывать проект, сделав его картриджной приставкой за счет считывания данных с внешних носителей.
Эта сфера деятельности достаточно молода, но очень быстро развивается и имеет большие перспективы в будущем.
Список литературы
- 1.Блум Джереми. Изучаем Arduino: инструменты и методы технического волшебства: Пер. с англ. — СПб.: БХВ-Петербург, 2015.
- 2.Монк С. Программируем Arduino. Профессиональная работа со скетчами. — СПб.: Питер, 2017.
- 3.Петин В. А.Arduinoи RaspberryPiв проектах InternetofThings. — СПб.: БХВ-Петербург, 2016. (Электроника)
- 4.Петин В. А. Проекты с использованием контроллера Arduino. — СПб.: БХВ-Петербург, 2014. (Электроника)
- 5.Петин В. А., Биняковский А. А. Практическая энциклопедия Arduino. - М.: ДМК, Пресс, 2017.
- 6.https://ru.wikipedia.org/wiki/Arduino
- 7.https://www.kakprosto.ru/kak-920473-chto-takoe-arduino-i-chto-s-nim-mozhno-sdelat