Оглавление:
- Шаг 1: Компоненты
- Шаг 2: использование каждого компонента
- Шаг 3: Дизайн
- Шаг 4. Стратегия игры
- Шаг 5: программирование
Видео: Робот Arduino Sumo: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Прежде чем мы начнем
Что такое робот-сумо?
Это самоуправляемые роботы с определенными размерами и функциями, они также разработаны во враждебных формах, которые позволяют им участвовать в соревнованиях и соревнованиях с другими роботами.
Название «сумо» произошло от старого японского вида спорта, когда два соперника сражаются на ринге, каждый из которых пытается вытолкнуть другого соперника из него. Это то, что должны делать роботы и на соревнованиях по робототехнике сумо, где двое роботы размещаются на ринге и друг друга пытаются вытеснить своего противника.
Идея:
Создайте робота с определенными характеристиками и в соответствии с законами этого соревнования (сумо), этот робот должен иметь точные размеры, чтобы сражаться и выжить, чтобы его никак не выкинули за пределы ринга.
Итак, давайте посмотрим на законы о конкуренции роботов-сумо:
Я объясню некоторые важные роли, которые вы должны учитывать при создании собственной SUMO, это также может помочь вам вообразить и усовершенствовать свою собственную идею, не вдаваясь в подробности.
1. Размеры: максимальная ширина 20 см, максимальная длина 20 см, высота не указана.
2. Форма: форма робота может быть изменена после начала гонки, но без неотъемлемых частей, чтобы оставаться одним центральным объектом.
3. Вес: не более 3 кг.
4. Робот должен владеть собой.
Шаг 1: Компоненты
1 Ардуино Ano3
2 Двигатель постоянного тока
1 мост L298N Dual H для Arduino
1 ультразвуковой датчик
2 ИК-порта TCRT5000
1 аккумулятор 9 В
Батарейка АА 4 * 1,5 В штуки + батарейный отсек
4 колеса робота
перемычки
Шаг 2: использование каждого компонента
Теперь у нас есть необходимые компоненты, поэтому давайте подробнее узнаем, для чего они используются.
1- Arduino Ano3
Это основная плата, которая контролирует все части и связывает их вместе.
2- Двигатель постоянного тока
Которые помогают роботу маневрировать и перемещаться по кольцу СОРЕВНОВАНИЙ.
4- Двойной H-мост L298N для Arduino
Это небольшая панель, которая обеспечивает постоянное напряжение на двигатели, а также поддерживает плату Arduino с хорошим контролем движения и напряжения.
5- Ультразвуковой датчик
Ультразвуковой датчик используется для определения местонахождения робота противника и обычно размещается в верхней части робота.
6- ИК-порт TCRT5000
Как мы уже упоминали, контест-ринг выполнен в определенном размере и имеет два цвета: заполнение - черное, а рамка - белая. Участник не должен выходить на улицу. Поэтому мы используем ИК-датчик, чтобы убедиться, что робот не выйдет за пределы ринга. Этот датчик имеет возможность различать цвета кольца).
7- Батарея 9В
Он поддерживает главную плату (Arduino) с важным напряжением.
8- батарейка АА 4 * 1,5 в штуки + батарейный отсек
Он поддерживает два двигателя (двигатель постоянного тока) с важным напряжением, и он должен быть разделен, чтобы обеспечить полную силу для колес.
9- Перемычки
Шаг 3: Дизайн
Я создал два робота-сумо с помощью Google 3D sketch-up, потому что мне нравится создавать бумажные модели своих роботов, прежде чем вырезать детали из акрила на лазерном резаке. Чтобы убедиться, что все детали подходят друг к другу, важно, чтобы бумажные модели были напечатаны с точным размером чертежей.
И я считаю, что нужно проводить конкретные измерения с законами о конкуренции, поэтому постарайтесь придумать более творческий подход и создать свою собственную модель.
Чтобы быть более чувствительным к весу робота, поместите батареи в передней части робота так, чтобы передний щиток находился под углом 45 градусов к форме робота.
Загрузите дизайн 1 отсюда
Загрузите дизайн 2 отсюда
Вы также можете Скачать шаблон бумажной модели
Откройте файл PDF с помощью Adobe Acrobat Reader (рекомендуемое программное обеспечение)
Шаг 4. Стратегия игры
Как мы упоминали ранее, у робота должна быть собственная способность управлять собой, поэтому это дает нам возможность запрограммировать его более чем одним способом, в зависимости от того, как вы хотите, чтобы робот играл на ринге, как и любой противник на ринге. реально хочу выиграть игру.
Стратегия игры (1):
· Мы будем делать робота вокруг себя непрерывно.
· Робот постоянно измеряет расстояние во время вращения.
· Если измеренное расстояние до соперника меньше (например, 10 см), это означает, что противник находится прямо перед роботом.
· Робот должен перестать вращаться, а затем начать атаку (быстро двигаться вперед с полной силой).
· Робот должен всегда снимать показания с ИК-датчиков, чтобы быть уверенным, что мы не пересекли границу кольца.
· При считывании ИК-присутствия белого цвета он должен перемещать робота прямо в направлении, противоположном датчику (например: если передний датчик, дававший индикацию белого цвета робота, движется назад)!
Стратегия игры (2):
· На старте робот измеряет расстояние впереди.
· Робот отодвинется на такое же измеренное расстояние.
· Робот перестает вращаться, а затем внезапно начинает атаку (двигаться вперед с полной силой).
· В случае присоединения соперника робот должен повернуться на 45 градусов, чтобы выжить при падении с ринга.
· Робот должен всегда снимать показания с ИК-датчиков, чтобы быть уверенным, что мы не пересекли границу кольца.
· При считывании ИК-присутствия белого цвета он должен перемещать робота прямо в направлении, противоположном датчику (например: если передний датчик, дававший индикацию белого цвета робота, движется назад)!
Шаг 5: программирование
пожалуйста, проверьте схему и код
* Обновление 26.03.2019
Сначала загрузите отсюда ультразвуковую библиотеку и установите ее:
github.com/ErickSimoes/Ultrasonic/blob/mas…
/*
Ахмед Азуз
www.instructables.com/id/How-to-Make-Ardu…
Сначала загрузите библиотеку отсюда
github.com/ErickSimoes/Ultrasonic/blob/ma…
*/
#include Ultrasonic.h
Ультразвуковой ультразвуковой (4, 3);
const int IN1 = 5;
const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // передний датчик #define IR_sensor_back A1 // задний датчик int distance;
установка void ()
{Serial.begin (9600); задержка (5000); // согласно ролям совместимости сумо} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); расстояние = ultrasonic.read (); ПОВЕРНУТЬ (200); // запускаем rotete if (distance <20) {Stop (); while (расстояние 650 || IR_back> 650) {break;} delay (10); } if (IR_front <650) // <650 означает белую линию {Stop (); задержка (50); НАЗАД (255); задержка (500); } if (IR_back <650) // {Stop (); задержка (50); ВПЕРЕД (255); задержка (500); } / * ----------- отладка ---------------- Serial.print (ultrasonic. Ranging (CM)); Serial.println («см»); Serial.println ("ИК-фронт:"); Serial.println (IR_front); Serial.println ("ИК назад:"); Serial.println (IR_back); * /
} //--------------------------------------------
void FORWARD (int Speed) {// Когда мы хотим позволить двигателю двигаться вперед, // просто аннулируем эту часть в секции цикла. analogWrite (IN1, Скорость); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, Скорость); } // -------------------------------------------- void НАЗАД (int Speed) {// Когда мы хотим, чтобы мотор двигался вперед, // просто аннулируем эту часть в секции цикла. analogWrite (IN1, 0); analogWrite (IN2, Скорость); analogWrite (IN3, Скорость); analogWrite (IN4, 0); } // -------------------------------------------- void ROTATE (int Speed) {// Когда мы хотим позволить мотору вращаться, // просто аннулируем эту часть в секции цикла. analogWrite (IN1, Скорость); analogWrite (IN2, 0); analogWrite (IN3, Скорость); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Когда мы хотим, чтобы двигатель остановился, // просто аннулируем эту часть в секции цикла. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }
Рекомендуемые:
Arduino - Робот для разгадывания лабиринта (MicroMouse) Робот, следующий за стеной: 6 шагов (с изображениями)
Arduino | Робот для решения лабиринта (MicroMouse) Робот, следующий за стеной: Добро пожаловать, я Исаак, и это мой первый робот «Страйкер v1.0». Этот робот был разработан для решения простого лабиринта. В соревновании у нас было два лабиринта и робот смог их идентифицировать. Любые другие изменения в лабиринте могут потребовать изменения
ГОЛОДНЫЙ РОБОТ ДЛЯ БУМАГИ - Робот Pringles Recycle Arduino: 19 шагов (с изображениями)
PAPER HUNGRY ROBOT - Pringles Recycle Arduino Robot: это еще одна версия Hungry Robot, которую я построил в 2018 году. Вы можете сделать этого робота без 3D-принтера. Все, что вам нужно сделать, это просто купить банку Pringles, серводвигатель, датчик приближения, ардуино и некоторые инструменты. Вы можете скачать все
Балансировочный робот / 3-колесный робот / STEM-робот: 8 шагов
Робот-балансировщик / 3-колесный робот / STEM-робот: мы создали комбинированный балансировочный и 3-колесный робот для использования в учебных заведениях и после школьных образовательных программ. Робот основан на Arduino Uno, специальном щите (предоставлены все детали конструкции), литиево-ионном аккумуляторном блоке (все стро
Робот с маслом: робот Arduino в условиях экзистенциального кризиса: 6 шагов (с изображениями)
Робот с маслом: робот Arduino в условиях экзистенциального кризиса: этот проект основан на мультсериале «Рик и Морти». В одном из эпизодов Рик создает робота, единственная цель которого - приносить масло. У студентов Bruface (Брюссельский инженерный факультет) есть задание на механику
Робот-робот с сервоприводом для Arduino: 6 шагов (с изображениями)
Автомобиль-робот с сервоприводом для Arduino: этот автомобиль основан на конструкции платформы Arduino, ядро - Atmega - 328 p, которая может реализовать рулевое управление передними колесами, задний привод и другие функции.Если вы просто играете в одиночку, вам нужно только использовать беспроводной модуль; Если вы хотите реализовать