Разработка и программирование танцующего робота

VIII Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Разработка и программирование танцующего робота

Красовский С.А. 1
1МАОУ СШ№5 г.Павлово Нижегородской области
Воронина В.В. 1Горшкова Е.Е. 2
1МБОУ СШ№7 г. Павлово Нижегородской области
2МАОУ СШ № 5 г.Павлово Нижегородской области
Автор работы награжден дипломом победителя II степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

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

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

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

Но в книжке программы для роботов были очень сложные, на том языке программирования который я не знал. И бабушка мне сказала, что для контроллера Arduino программы можно попробовать составить и на том языке на котором я уже умею программировать, но только там обязательно должны быть команды которые понимает робот. Такой ящичек с командами для робота был в программе Snap4Arduino (Приложение 1).

Так как книжек про программирование роботов в программе Snap! нет, поэтому мне пришлось разбираться в создании программ для робота самому, а бабушка мне помогала.

Основная часть.

Что такое робот. Какие бывают роботы

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

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

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

Как работает сервомотор

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

Выводы моторчика имеют три цвета:

коричневый или черный – подключение к земле (gnd)

красный – питание (+5 вольт)

оранжевый желтый или белый – подача управляющего сигнала,

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

Сначала, я научился управлять таким сервомотором.

Я подключил сервомотор к шестому контакту контроллера и стал подавать сигналы на этот контакт и менять угол поворота:

При нажатии клавиши 1 – сервомотор поворачивался совсем чуть-чуть, при нажатии клавиши 2 – сервомотор поворачивался на прямой угол, при нажатии на клавишу «Пробел» сервомотор возвращался в исходное состояние.

Также я провел эксперименты, подключая этот сервомотор к другим контактам: шестому, седьмому, восьмому, девятому.

Программируем четыре сервомотора

Я взял четыре сервомотора и подключил их к тем контактам с которыми уже экспериментировал. При нажатии на клавишу «Пробел» все сервомоторы встают в исходное положение.

Мне подарили вот такой наборчик для крепления сервомоторов.

И я собрал эти сервомоторы в виде ног робота.

И составил программу, чтобы робот двигал ступнями ног

или поворачивался на месте.

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

Поэтому мне пришлось познакомиться с нотами.

Программирование мелодии

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

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

Для того чтобы запрограммировать ноты мне потребуются команды из ящика «Звуки»

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

Вот такая программа у меня получилась:

Программирование танцующего робота

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

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

Корпус робота с помощью 3D ручки

Но раз робот танцевал под новогоднюю песенку, то с помощью 3d ручки я сделал конструкцию которая изображает новогоднюю елочку. (Приложение 2)

Как программировать один светодиод.

Потом я разобрался с программированием светодиодов. Светодиод это такое устройство которое излучает свет, когда через него протекает электрический ток.

У светодиода два контакта и он будет испускать свет, когда ток протекает от плюса к минусу.

Чтобы светодиод не сгорел, в цепь обязательно подключают еще один электронный компонент – резистор.

Сначала к контроллеру я подключил один светодиод. У контроллера много ножек и светодиод плюсом я подключил к контакту Arduino D13, минусом светодиод я подключил к контакту «Земля». Я составил такую программу:

По этой программе сначала на 13 контакт контроллера идет сигнал, одну секунду, в это время светодиод горит, через секунду сигнал становится низким и светодиод гаснет на одну секунду. И мигание будет повторяться десять раз. Я менял время в команде «Ждать»: например, если задать время 3 секунды то светодиод будет мигать гораздо медленнее, чтобы огоньки мигали в такт музыке, время паузы в конечной программе я установил равным 0,5 сек.

Как программировать цепочку светодиодов. Бегущие огни

Потом я подключил и составил программу для двух светодиодов. Светодиоды я подключал к 13 и 10 контактам Arduino.

Первая программа для двух светодиодов

Два светодиода на 10 и 13 контактах мигают одновременно.

Затем я изменил программу:

Два светодиода стали мигать на по-очереди – когда один светит второй темный и наоборот. Программа будет повторяться до тех пор, пока мы не дадим команду остановить программу.

Потом я добавил еще два светодиода, разместил светодиоды на макетной плате

и изменил программу так:

Когда я запускаю программу, то загорается светодиод на 10 ножке контроллера, через полсекунды он гаснет, а загорится светодиод на 11 ножке, и светит половину секунды, потом он погаснет, а будет гореть светодиод на 12 ножке, а через 0,5 секунды на 13-й, и так будет продолжаться всегда. Чтобы погасить все светодиоды я нажимаю клавишу пробел – это показывает вторая часть программы, где на все ножки идет низкий сигнал и гирлянда выключается, а сервомоторы встают в исходную позицию.

Вывод: я увидел, что мои светодиоды работали совсем как гирлянда с бегущими огнями, и я разместил светодиоды на новогодней елочке.

Заключение

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

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

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

Литература

И.Воронин, В.Воронина «От основ к созданию роботов». Питер. 2018

А.Николаева, В.Натансон, Л.Рощина «Фортепианная игра» Москва Музыка 1991

Знакомьтесь — Роботы! http://umki-dist.ru/course/view.php?id=16

Что такое 3d pen и зачем она нужна? https://vk.com/@abspla3d-chto-takoe-3d-pen-i-zachem-ona-nuzhna

3D Лампа – Новогодняя Ёлка http://3d-lampy.ru/index.php?route=product/product&product_id=82

Приложение 1. Среда программирования Snap!

Snap! – объектно-ориентированная среда программирования, в которой можно познакомиться с основами алгоритмизации и программирования, научиться создавать анимации и компьютерные игры, сделать первые шаги в программировании механизмов и робототехнических устройств.

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

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

Ящики команд среды программирования Snap4Arduino

Команды ящика Движение

Команды ящика Arduino

   

Команды ящика Управление

Команды ящика Звук

   

Команды ящика Операторы

Команды ящика Внешность

   

Приложение 2. Как работает 3D ручка

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

Просмотров работы: 680