14
Г
ородская конференция учащихся
«Первые шаги в науке»
секция: техническое творчество
Название работы:
Создание управляемого робота на плате Arduino с использованием блютуз модуля.
Выполнили: Исаев Владислав
ученик 6 класса МКОУ СОШ №8
Коваленко Елисей
ученик 5 класса МКОУ СОШ №8
ст. Котляревской
Руководитель: Исаева Светлана Васильевна
учитель информатики и технологии
МКОУ СОШ №8
ст. Котляревской
Город Майский,
КБР
2024г
ВВЕДЕНИЕ
Актуальность темы:
В современном обществе идет активное внедрение роботов в нашу жизнь, они заменяют очень многие процессы: робот – сиделка, робот – няня, робот – домработница, робот ˗ пылесос и т.д. Сферы применения роботов различны: медицина, строительство, космос, а специалисты обладающие знаниями в этой области очень востребованы.
На основе Arduino решил создать робота управляться с помощью по bluetooth, а именно перемещаться, дистанционно включать фары и аварийную сигнализацию.
Противоречие между желанием создать робота своими руками, с одной стороны, и отсутствием необходимых для этого знаний и умений, с другой стороны, определили проблему: возможно ли создание робота в домашних условиях. Все вышеизложенное и побудило выбрать тему проекта: «Создание робота на основе набора «APPLIEDROBOTICS»
Целью данной работы является создание робота на основе набора «APPLIEDROBOTICS»
Объектом является набора «APPLIEDROBOTICS»
Предметом является принцип строения и работы робота на основе конструктора набора «APPLIEDROBOTICS»
В основу данной работы положена гипотеза, согласно которой, изучив принцип строения и работы робота на основе набора «APPLIEDROBOTICS», можно создать робота самостоятельно.
В соответствии с целью и гипотезой были поставлены следующие задачи:
1.Разработать и собрать робота.
2.Спроектировать, спаять, настроить электронную схему и добиться работоспособности системы.
3.Запрограммировать бортовой микроконтроллер, протестировать его.
4.Испытать поведение и управляемость робота.
Ход работы:
I этап. Сборка робота.
Самого робота мы собрали из комплектующих набора «APPLIEDROBOTICS». Основная часть – это пластиковая база, два передних колеса, два мотора, заднее – опорное колесо, плата Ардуино Мега, крепление платы, блютуз модуль(не входил в комплект, выписали на алиэкспресс), светодиоды в составе передних фар, задних фар и боковых, выполняющих роль аварийной сигнализации. Также были использованы 3 резистора на 330 Ом, аккомулятор на 7,3 и 1400 Ма и соеденительные провода.
Плату Ардуино Мега прикрепили к пластмассовой базе, в качестве движущей силы использовали два мотора постоянного тока с редуктором. Диапазон питания для этих редукторов от 3 до 8 Вольт (левый мотор красный провод-на базу, черный-от базы, левый мотор - красный провод-от базу, черный-на базу,). Для питания робота использовали аккомулятор, кторый поставлялся в комплекте. Закрепили аккомулятор хомутами для того, чтобы в процессе движения он не болтался и не выпал. Аккомулятор подключили к плате Ардуино. При необходимости подзарядки аккомулятор не надо отсоединяьт от платы, а достаточно отсоеденить переходник и подключить к зарядному устроству. Для связью с роботом через телефон используем блютуз модуль HC05, радиус действия сигнала до 10 метров. Важно, что при записи программы на плату, необходимо отключать блютуз модуль.
В качестве передней фары использовали шестидиодный фонарик, в качестве задних фар и аварийной сигнализации – светодиоды.
II этап. Программирование бортового микроконтроллера:
Для создания кода использовали среду программирования Ардуино
Загрузка скетча или прошивка контроллера Ардуино – операция, которая дала нам возможность быстро и без лишних проблем загрузить в память контроллера управляющую программу. Таким образом в микроконтроллер записывается программа, называемая прошивкой, которая позволяет получать сигналы с датчиков, общаться с различными устройствами через интерфейсы, управлять исполнительными процессами.
III этап. Подключение управления с блютуз модуля.
Для управления используем программу Bluetooth RC Controller. Влючив питание, подсоединяемся через приложение.
Включив питание, подсоединяемся через пункты меню Option-Connect to car. Определяем, что соединение произошло: индикатор в левом верхнем углу приложения меняет цвет с красного на зеленый, а блютуз модуль мигает менее часто чем до соединения.
Также через приложение можем управлять включением передними фарами, задними фарами, аварийным сигналом. Для того, чтобы робот ездил, используют ползунок скорости от минимального до максимального значения. На пульт управления приложения есть кнопки вперед, назад, влево и вправо, которые позволяют поворачивать робота в нужном направлении.
Выводы.
Сконструированная нами роботизированная машинка после загруженной в неё программы, выполнила все действия, согласно изложенным условиям. Таким образом, по итогам проделанной работы, можно сделать вывод, что, изучив принцип работы робота и среду его программирования, можно изготовить простейший робот своими руками. То есть гипотеза подтвердилась, цель и задачи проекта выполнены.
Заключение.
Выполняя работу, усвоили общие принципы работы микроконтроллеров, и их применение в робототехнике. Приобрели первоначальные навыки разработки и изготовления гусеничных телеуправляемых роботов.
Изучая робототехнику, мы открыли для себя удивительный мир, и в будущем, возможно, свяжу свою профессиональную деятельность с индустрией Роботов. Действующая модель робота может получить широкое практическое применение для обследования помещений без сопровождения человека. Он может работать в условиях, неблагоприятных для людей. Робот может использоваться для помощи военным, полиции и МЧС, для проведения лабораторных и исследовательских работ, в опасных условиях и труднодоступных для человека средах.
Список литературы
Клаузен, П. Компьютеры и роботы. Пер. с нем. С.И. Деркунской. – Москва: Мир книги, 2006. – 48 с.
Копосов, Д.Г. Первый шаг в робототехнику: практикум для 5-6-го классов. Учеб. пособие / Д.Г. Копосов. - Москва: Бином. Лаборатория знаний, 2014. – 286 с.
Русецкий, А.Ю. В мире роботов: Кн. для учащихся / А.Ю. Русецкий – Москва: Просвещение, 1990. – 160 с.
Филиппов, С.А. Робототехника для детей и родителей: научное издание / С.А. Филиппов – 3-е изд., перераб. и испр. — СПб.: Наука, 2010. – 319 с.
Интернет - ресурсы
https://dzen.ru/a/Xyolr4qj0mXrXgSR
https://all-arduino.ru/arduino-dlya-nachinayushhih/
Приложение:
Программный код:
// объявление переменных и констант
intM1_Np = 45; // направление вращения 1-го мотора, подключено к пину 45
intM1_Sk = 44; // скорость 1-го мотора, подключено к пину 44
intM2_Np = 47; // направление вращения 2-го мотора, подключено к пину 47
intM2_Sk= 46; // скорость 2-го мотора, подключено к пину 46
intblt; // для хранения данных, полученных по Bluetooth
intSk; // для хранения значения скорости
intfara1 = 6; // передние фары подключены к пину 6
intfara2 = 5; // задние фары подключены к пину 5
intfarastop = 4; // аварийные фары подключены к пину 4
// для мигания светодиодов в режиме "аварийка"
intblinkTime = 15; //частота мигания аварийки
intleftTime = 0;
boolean signalOn = LOW;
boolean avaOn = LOW;
voidsetup() {
Serial.begin(9600); // подключение последовательного порта со скоростью передачи данных 9600 бит/сек (или бод)
Serial.setTimeout(4); // время ожидания данных, поступающих через последовательный интерфейс (мс)
pinMode(M1_Np, OUTPUT); // устанавливает режим работы моторов как выход
pinMode( M1_Sk, OUTPUT);
pinMode(M2_Np, OUTPUT);
pinMode(M2_Sk, OUTPUT);
pinMode(fara1, OUTPUT); // устанавливает режим работы светодиодов как выход
pinMode(fara2, OUTPUT);
pinMode(farastop, OUTPUT);
}
void loop() {
if (Serial.available()) // получение данных с Bluetooth модуля
{
blt = Serial.read(); // переменной blt задаётся значение, молученное по Bluetooth модулю
if (blt == '0'){Sk = 5;} // 0 режим скорости; 5,30,55 и т.д. - это значение скорости для моторов
elseif(blt == '1'){Sk = 30;} // 1 режим скорости
elseif(blt == '2'){Sk = 55;} // 2 режим скорости
elseif(blt == '3'){Sk = 80;} // 3 режим скорости
elseif(blt == '4'){Sk = 105;} // 4 режим скорости
elseif(blt == '5'){Sk = 130;} // 5 режим скорости
elseif(blt == '6'){Sk= 155;} // 6 режим скорости
elseif(blt == '7'){Sk = 180;} // 7 режим скорости
elseif(blt == '8'){Sk = 205;} // 8 режим скорости
elseif(blt == '9'){Sk = 210;} // 9 режим скорости
elseif(blt == 'q'){Sk = 215;} // 10 режим скорости
// ЗАДАЁМ ДВИЖЕНИЕ ВПЕРЕД
if (blt == 'F') // При нажатии клавиши "F" моторы движутся с одной скоростью в одном направлении
{
digitalWrite(M1_Np, LOW); // направление первого мотора
analogWrite(M1_Sk, Sk); // скорость первого мотора
digitalWrite(M2_Np, LOW); // направление второго мотора
analogWrite(M2_Sk,Sk); // скорость второго мотора
}
// ЗАДАЁМ ДВИЖЕНИЕ НАЗАД
if (blt == 'B') // При нажатии клавиши "B" моторы движутся с одной скоростью в одном направлении
{
digitalWrite(M1_Np, HIGH);
analogWrite(M1_Sk, Sk);
digitalWrite(M2_Np, HIGH);
analogWrite(M2_Sk,Sk);
}
// ЗАДАЁМ ДВИЖЕНИЕ ВЛЕВО (поворот на месте)
if (blt == 'L') // При нажатии клавиши "L" моторы крутятся в разных направлениях с одной скоростью
{
digitalWrite(M1_Np, LOW);
analogWrite(M1_Sk, Sk);
digitalWrite(M2_Np, HIGH);
analogWrite(M2_Sk,Sk);
}
// ЗАДАЁМ ДВИЖЕНИЕ ВПРАВО (поворот на месте)
if (blt == 'R') // При нажатии клавиши "R" моторы крутятся в разных направлениях с одной скоростью
{
digitalWrite(M1_Np, HIGH);
analogWrite(M1_Sk, Sk);
digitalWrite(M2_Np, LOW);
analogWrite(M2_Sk,Sk);
}
// ОСНАНОВКА ( если не жмем вправо, влево, вперед и.т.д.)
if (blt == 'S') // При нажатии клавиши "S" моторы не крутятся
{
digitalWrite(M1_Np, HIGH);
analogWrite(M1_Sk, 0);
digitalWrite(M2_Np, HIGH);
analogWrite(M2_Sk,0);
}
// ЗАДАЁМ ДВИЖЕНИЕ ПРЯМО И ВПРАВО
if (blt == 'I') // При нажатии клавиши "I" моторы крутятся в разных направлениях с разной скоростью
{
digitalWrite(M1_Np, LOW);
analogWrite(M1_Sk, Sk*0.4);
digitalWrite(M2_Np, LOW);
analogWrite(M2_Sk,Sk);
}
// ЗАДАЁМ ДВИЖЕНИЕ ПРЯМО И ВЛЕВО
if (blt == 'G') //При нажатии клавиши "G" моторы крутятся в разных направлениях с разной скоростью
{
digitalWrite(M1_Np, LOW);
analogWrite(M1_Sk, Sk);
digitalWrite(M2_Np, LOW);
analogWrite(M2_Sk,Sk*0.4);
}
// ЗАДАЁМ ДВИЖЕНИЕ НАЗАД И ВЛЕВО
if (blt == 'H') // При нажатии клавиши "H" моторы крутятся в разных направлениях с разной скоростью
{
digitalWrite(M1_Np, HIGH);
analogWrite(M1_Sk, Sk);
digitalWrite(M2_Np, HIGH);
analogWrite(M2_Sk,Sk*0.4);
}
// ЗАДАЁМ ДВИЖЕНИЕ НАЗАД И ВПРАВО
if (blt == 'J') //При нажатии клавиши "J" моторы крутятся в разных направлениях с разной скоростью
{
digitalWrite(M1_Np, HIGH);
analogWrite(M1_Sk, Sk*0.4);
digitalWrite(M2_Np, HIGH);
analogWrite(M2_Sk,Sk);
}
// ВКЛЮЧЕНИЕ ПЕРЕДНИХ ФАР
if (blt == 'W') //
{ digitalWrite(fara1,HIGH); }
// ВЫКЛЮЧЕНИЕ ПЕРЕДНИХ ФАР
if (blt == 'w') //
{ digitalWrite(fara1,LOW ); }
// ВКЛЮЧЕНИЕ ЗАДНИХ ФАР
if (blt == 'U')
{ digitalWrite(fara2, HIGH); }
/
/ ВЫКЛЮЧЕНИЕ ЗАДНИХ ФАР
if (blt == 'u') //
{ digitalWrite(fara2,LOW ); }
// Аварийка ВКЛ
if (blt == 'X') { avaOn = HIGH; }
// Аварийка ВЫКЛ
if (blt == 'x')
{
avaOn = LOW;
d
igitalWrite(farastop, LOW);
digitalWrite(fara2, LOW);
}
// настройка мигания светодиодами
if (avaOn)
{
if (leftTime == 0)
{
leftTime = blinkTime;
signalOn = !signalOn;
}
Serial.print("leftTime = ");
Serial.println(leftTime);
if (signalOn)
{
digitalWrite(farastop, HIGH);
digitalWrite(fara2, HIGH);
delay(1);
leftTime = leftTime - 1;
}
else
{
digitalWrite(farastop, LOW);
digitalWrite(fara2, LOW);
delay(1);
leftTime = leftTime - 1;
}
}
}
}
Оглавление
Введение…………………………………. ………………….стр.2
Ход работы…………………………………………………стр.3-5
IIэтап. Сборка робота…………………………………………стр.3
IIэтап. Программирование бортового микроконтроллера……….стр.4
IIIэтап.Подключение управления с блютуз модуля………….. ...стр.4
Выводы……………………………………………………….стр.5
Заключение…………………………………………………..стр.5
Список литературы………………………………………….стр.6
Интернет ресурсы…………………………………………...стр.6
Приложение………………………………………………стр.7-10