Робот футбол ev3 инструкция по сборке

  • Описание

  • Отзывы (0)

Описание

футболист Lego EV3 инструкция по сборке

Отзывы

Отзывов пока нет.

Будьте первым, кто оставил отзыв на “футболист Lego EV3 инструкция по сборке”

Ваш адрес email не будет опубликован.

Ваша оценка *

Ваш отзыв *

Имя *

Email *

Сохранить моё имя, email и адрес сайта в этом браузере для последующих моих комментариев.

Давненько не было вестей от нашей команды. Вы думаете что мы забросили роботов? Не дождетесь!) С середины января находимся в режиме планомерной подготовки к ВРО, снова готовимся к футболу роботов. В этом году алгоритмы машин снова переписаны заново и во многом не повторяют логику работы наших футболистов предыдущих поколений.

Учебный процесс тоже не стоял на месте, в нашей копилке теперь вот такой крупнокалиберный арсенал: «Введение в программирование (C++)» от Академии Яндекса, «Программирование на Python», «Python: основы и применение», «Введение в Linux» от Института биоинформатики, «Введение в архитектуру ЭВМ. Элементы операционных систем» от Computer Science Center.

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

Поиграть против своей автономной команды очень интересно и полезно:

  • Зная слабые места своих автономных роботов можно создавать на поле такие игровые ситуации, в которых они проявятся. Это важно для отладки алгоритмов и конструкций.
  • Управляя роботом ты моделируешь в голове работу некого алгоритма, который затем может быть перенесен в программу автономного игрока
  • Это реальный драйв — ты играешь в игру не на экране, а в реальном мире, с полноценной физикой и красивыми текстурами. Обзор 360 градусов и высокое разрешение!

Так как мы находимся в процессе изучения языка Python, то интересной учебной задачей стала реализация такого управляемого робота-оппонента на базе ev3dev. Можно конечно «не заморачиваться» и использовать смартфон и написанное кем-то приложение, но это не наш путь. На борту у EV3 есть Bluetooth, у китайцев на Aliexpress — дешевые блютузные джойстики — почему бы не поуправлять роботом с реальных кнопок и стика? Используя стандартное ПО LEGO EV3 такую связку заставить работать невозможно, ev3dev открывает перед нами такую возможность.

Для начала сам робот. Традиционно подготовили инструкцию по сборке в Lego Digital Designer, скачать можно по ссылке. В конструкции умышленно не использовали механизм удара по мячу, чтобы у начинающих не было соблазна собрать на базе этой инструкции автономного робота.

Чтобы джойстик заработал с EV3, необходимо «спарить» устройства привычным образом, после чего в /dev/input должен появиться новый девайс:

robot@ev3dev:~$ ls /dev/input
by-path  event0  event1  event2

Кроме Bluetooth-джойстика можно использовать беспроводной USB-джойстик, воткнув его USB-приемник в соответствующий порт на роботе. Беспроводная клавиатура с интерфейсом USB или Bluetooth тоже подойдет. Технически роботом можно управлять используя даже беспроводную мышку, но это вероятно не особенно удобно. Главное условие — после подключения устройства оно должно появляться в устройствах ввода, в /dev/input

Для получения данных с HID-устройств мы использовали стандартный модуль Python evdev. Ничего доустанавливать в ev3dev не требуется.

Нашу программу для робота можно скачать по ссылке. Основная фишка управления по сравнению со «смартфонным» — реализация плавного разгона и торможения, что обеспечивает комфортное управление. Выглядит программа следующим образом:

#!/usr/bin/env python3


# Подключаем модуль для управления EV3
from ev3dev.ev3 import *
# Подключаем модуль для чтения данных с HID-устройств
import evdev


# Создаем объект device, измените на ваш /dev/input/event2
device = evdev.InputDevice(‘/dev/input/event2’)


StatusGo = 0
StatusLR = 0


# Целевая скорость, робот наберет ее когда разгонится
speed = 100


# Реальная скорость, с нее робот стартует
real_speedB = 0
real_speedC = 0


speedB = 0
speedC = 0


# Признак зарершения программы (нажат акнопка Start на джойстике)
STOP = False


# Создаем объекты — моторы B и C
B = LargeMotor(‘outB’)
C = LargeMotor(‘outC’)


# Цикл пока не нажата кнопка Start на джойстике
while not STOP:
    # Читаем список событий с джойстика
    gen = device.read()
    try:
       # Для всех событий в списке
       for event in gen:
           # Выделяем те, которые возникли при нажатиях кнопок
           if event.type == evdev.ecodes.EV_KEY:
               # преобразуем такие события в строку myStr
               myStr = str(event)
               
               # если отпущена кнопка «Влево»
               if myStr.find(«code 168, type 01, val 00») >= 0:
                   StatusLR = 0
               # если нажата кнопка «Влево»
               if myStr.find(«code 168, type 01, val 01») >= 0:
                   StatusLR = -1
               # если удерживается кнопка «Влево»
               if myStr.find(«code 168, type 01, val 02») >= 0:
                   StatusLR = -2
               # если отпущена кнопка «Вправо»
               if myStr.find(«code 208, type 01, val 00») >= 0:
                   StatusLR = 0
               # если нажата кнопка «Вправо»
               if myStr.find(«code 208, type 01, val 01») >= 0:
                   StatusLR = 1
               # если удерживается кнопка «Вправо»
               if myStr.find(«code 208, type 01, val 02») >= 0:
                   StatusLR = 2
               # если отпущена кнопка «Вперед»  
               if myStr.find(«code 172, type 01, val 00») >= 0:
                   StatusGo = 0
               # если нажата кнопка «Вперед»
               if myStr.find(«code 172, type 01, val 01») >= 0:
                   StatusGo = speed*0.75
               # если удерживается кнопка «Вперед»
               if myStr.find(«code 172, type 01, val 02») >= 0:
                   StatusGo = speed
               # если отпущена кнопка «Назад»
               if myStr.find(«code 114, type 01, val 00») >= 0:
                   StatusGo = 0
               # если нажата кнопка «Назад»
               if myStr.find(«code 114, type 01, val 01») >= 0:
                   StatusGo = -1*(speed * 0.75)
               # если удерживается кнопка «Назад»
               if myStr.find(«code 114, type 01, val 02») >= 0:
                   #print («GO BREAK»)
                   StatusGo = -1*speed
               # если нажата кнопка «Start»         
               if myStr.find(«code 164, type 01, val 02») >= 0:
                   print («BREAK! STOP PROGRAMM»)
                   STOP = True
               # Кнопка — среднее значение скорости
               if myStr.find(«code 164, type 01, val 01») >= 0:
                   speed = 75
               # Кнопка нажата — уменьшить скорость
               if myStr.find(«code 115, type 01, val 01») >= 0:
                   speed = speed — 5
                   if(speed < 5):
                       speed = 5
               # Кнопка удерживается — уменьшить скорость        
               if myStr.find(«code 115, type 01, val 02») >= 0:
                   speed = speed — 1
                   if(speed < 5): 
                       speed = 5
               # Кнопка нажата — увеличить скорость
               if myStr.find(«code 113, type 01, val 01») >= 0:
                   speed = speed + 5
                   if(speed > 100): 
                       speed = 100
               # Кнопка удерживается — увеличить скорость
               if myStr.find(«code 113, type 01, val 02») >= 0:
                   speed = speed + 1
                   if(speed > 100): 
                       speed = 100


    except IOError:
        pass
    
    # перебрасываем статусы нажатий в мощности моторов  
    speedB = StatusGo
    speedC = StatusGo
    
    # Поворот влево
    if(StatusLR < 0):
        speedB = speedB-(25*abs(StatusLR))
        speedC = speedC+(25*abs(StatusLR))         
    # поворот вправо
    if(StatusLR > 0):
        speedC = speedC-(25*StatusLR)
        speedB = speedB+(25*StatusLR)
    
    # ограничение скорости
    if(speedB > 100):
        speedB = 100
    if(speedC > 100):
        speedC = 100
    if(speedB < -100):
        speedB = -100
    if(speedC < -100):
        speedC = -100


    # плавный разгон и торможение
    if(abs(speedB) > 5 and abs(speedC) > 5):
        real_speedB = real_speedB*0.95 + speedB*0.05
        real_speedC = real_speedC*0.95 + speedC*0.05
    if(speedB == 0 and speedC == 0):
        real_speedB = real_speedB*0.95
        real_speedC = real_speedC*0.95
    if(speedB == 0 and abs(real_speedB) < 5):
        real_speedB = 0
    if(speedC == 0 and abs(real_speedC) < 5):
        real_speedC = 0
    
    # подаем рассчитанные мощности на моторы        
    B.run_forever(speed_sp=real_speedB*9)
    C.run_forever(speed_sp=real_speedC*9)


# останавливаем моторы после вылета из цикла         
B.stop(stop_action=»hold»)
C.stop(stop_action=»hold»)


# сигнал завершения программы
Sound.beep()



Проектная деятельность

Войти

26 дек 2018 2:38
TLNaibov

инструкция по сборке робота-футболиста

https://education.lego.com/ru-ru/support/mindstorms-ev3/building-instruc…

Источник информации относится к проекту: 

Робофутбол

  • Войдите, чтобы оставлять комментарии

107061, Москва, ул 2-Пугачевская, 6А
+7 (495) 963-76-77

Обратная связь

Инструкции по сборке роботов Lego                                                           Курс по программированию Ev3

Схемы роботов и инструкции по сборке роботов ev3

1 Инструкция по сборке робота ev3 для движения по черной линии

2 Инструкция по сборке робота ev 3 для кегельринга

3 Инструкция по сборке полноприводного робота  ev3 сумо

4 Инструкция по сборке мощного робота сумо ev3

5 Инструкция по сборке гусеничного робота танка ev3

6 Инструкция по сборке маневренного широкого танка ev3

7 Инструкция по сборке захвата ev3

8 Инструкция по сборке шагающего робота ev3

9 Схемы крепления датчика расстояния к роботу ev3

10 Схемы крепления датчика цвета к роботу ev3

Схемы роботов лего роботов nxt

1 Инструкция по сборке шагающего nxt робота

2 Инструкция по сборке nxt сумоиста

Поделиться

Автор работы: 

Семенов Ярослав, Варварюк Анна, Володченко Полина

Учреждение: 

МОУ Удельнинская гимназия

Готовая исследовательская работа по робототехнике «Робот-футболист» является продуктом поставленной перед учащимися 10 и 11 класса школы цели, создать автономных роботов-футболистов для содействия научным исследованиям в области искусственного интеллекта.

Подробнее о работе:

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

Предложенная автором индивидуальная исследовательская работа по робототехнике на тему «Робот-футболист» будет интересна ученикам 9, 10 и 11 класса школы, интересующимся конструированием и проектированием. В проекте описаны этапы создания конструкции робота, составлена программа для робота и определены дополнительные возможности конструкции.

Оглавление

Введение
1. Инженерные и программные решения.
2. Этапы создания проекта «Робот-футболист».
Выводы и заключения
Литература
Приложение

Введение

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

RoboCup — международные соревнования среди роботов, первые из которых прошли в 1996 году.

Целью является создание автономных роботов-футболистов для содействия научным исследованиям в области искусственного интеллекта. Название RoboCup — сокращение от полного названия соревнования, англ. «RobotSoccerWorldCup» (Чемпионат по футболу среди роботов).

Официальная цель проекта: к середине 21-го века команда полностью автономных человекоподобных роботов-футболистов должна выиграть футбольный матч, соблюдая правила FIFA.

Пришли роботы и в школу, открывая для учеников возможности, которыми мы решили воспользоваться. Исследуя конструктор «LegoMindstorm», мы сумели создать своего собственного робота, имя которому дали «Футболист».

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

В России сформированы две высокотехнологичных команды человекоподобных роботов-футболистов, они будут выступать на международных соревнованиях. Движение робофутбола развито во всем мире, однако в нашей стране о нем мало что известно. Робот «Футболист» является уменьшенной копией игрока футбольной команды будущего.

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

Цель проекта: создание робота, моделирующего игрока футбольной команды.

Задачи проекта:

  1. Создать конструкцию робота.
  2. Составить программу для робота.
  3. Определить дополнительные возможности конструкции.

Инженерные и программные решения

«Футболист» был создан на основе датского конструктора LegoMindstorm, который представляет из себя набор сопрягаемых деталей и электронных блоков для создания программируемого робота. Используемая нами модель — LEGO Mindstorms EV3, выпущенная в 2013 году, является одним из новейших конструкторов данной серии.

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

Для управления роботом используется телефон или планшет, имеющий функцию Bluetoothи установленное приложение RemoteEV3. Программа отправляется на контроллер робота через USB-кабель.

Для программирования мы выбрали приложение LegoMindstorm EV3, так как оно отлично адаптировано для роботов из конструктора LegoMindstorm.

Уровень сложности проекта:

  • Конструирование — средний.
  • Программирование — средний.
  • Этапы создания проекта «Робот-футболист»

Подготовительный этап

  • выбор темы проекта
  • определение актуальности проекта
  • определение необходимого объёма знаний для осуществления проекта
  • составление плана работы по реализации проекта.

Конструкторский этап

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

Технологический этап

Выполнение проекта:

  • внесение изменений в основную микросхему
  • программирование:

робот футболист 1

Заключительный этап

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

Выводы и перспективы

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

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

Литература

  1. Интернет.
  2. «Первый шаг в робототехнике» Д. Т. Колосов М: БИНОМ, Лаборатория знаний, 2012.
  3. Мирошина Т.Ф, Соловьева Л.Е, Могилёва А.Ю, Перфильева Л.П. Образовательная робототехника в начальной школе / Челябинск: Взгляд, 2011. — 152 с.

Приложение.Образовательная практика

робот футболист 2

робот футболист 3

робот футболист 4

робот футболист 5

Если страница Вам понравилась, поделитесь в социальных сетях:

Понравилась статья? Поделить с друзьями:
  • Ацц 200 инструкция по применению порошок инструкция по применению цена
  • Edgeswitch 48 750w как настроить инструкция
  • Hansa whi 1041 инструкция по применению
  • Повербанк xiaomi 10000mah инструкция на русском
  • Постинор цена в кургане инструкция по применению