Skip to content

rchigvintsev/mindstorms-robot-inventor-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MINDSTORMS Robot Inventor Python

Этот репозиторий содержит Python-версии различных упражнений из официального приложения LEGO MINDSTORMS Robot Inventor (51515).

Содержание


Blast

Blast — боевой робот с манипулятором и оружием. Программы демонстрируют возможности робота в различных боевых сценариях.

Программы

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

Используемые компоненты:

  • Моторы: C, A (колёса), D (руки и голова), B (клешня)
  • Датчик цвета: E
  • Звуки: Scanning, Target Acquired, Grab, Mission Accomplished

Робот патрулирует территорию, обнаруживает врага с помощью датчика расстояния, приближается и атакует. Программа демонстрирует автономное поведение боевого робота.

Используемые компоненты:

  • Моторы: C, A (колёса), D (руки и голова), B (триггер)
  • Датчик расстояния: F
  • Звуки: Seek and Destroy, Damage, Target Destroyed

Робот охраняет комнату, сканируя пространство поворотами влево и вправо. При обнаружении врага на расстоянии менее 40 см открывает огонь. Бесконечный цикл охраны с автоматическим выключением после уничтожения цели.

Используемые компоненты:

  • Моторы: C, A (колёса), D (руки и голова), B (триггер)
  • Датчик расстояния: F
  • Звуки: Scanning, Target Acquired, Laser, Shut Down
  • Анимации: сканирование, прицел, выключение

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

Используемые компоненты:

  • Моторы: C, A (колёса), D (руки и голова), B (триггер)
  • Звуки: Laser, Damage, Target Destroyed
  • Анимации: сканирование, уничтожение цели

Робот реагирует на различные цвета, выполняя соответствующие действия:

  • Синий: быстрое движение назад с вращением
  • Зелёный: танец на месте
  • Жёлтый: движение вперёд-назад со смехом
  • Красный: махи руками

Демонстрирует интерактивное поведение с использованием датчика цвета.

Используемые компоненты:

  • Моторы: C, A (колёса), D (руки и голова), B (клешня)
  • Датчик цвета: E
  • Звуки: Whirl, Scanning, Laugh, Affirmative
  • Анимация: эквалайзер

Робот выполняет серию ударов молотом. Калибрует положение, поднимает молот и наносит три удара с звуковыми эффектами.

Используемые компоненты:

  • Моторы: D (руки и голова), B (молот)
  • Звуки: Hammer, Laugh
  • Анимация: молот

Charlie

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

Программы

Основано на проекте "Balancing Bot I" от Dimitri Dekyvere и Laurens Valk

Самобалансирующийся робот, использующий гироскоп для поддержания равновесия. Реализует PID-контроллер для стабилизации. При падении воспроизводит звук "Ouch", при восстановлении — "Tadaa". Требует нажатия левой кнопки для повторного запуска после падения.

Используемые компоненты:

  • Моторы: A, E (ноги)
  • Гироскоп встроенного хаба
  • Звуки: Ouch, Tadaa
  • Анимации: моргание, глупое выражение

Демонстрационная программа, показывающая три различных поведения Charlie:

  1. Счастливый: приветствие с махами рукой
  2. Глупый: вращение левой рукой с движением вперёд
  3. Испуганный: поднятие рук и отступление назад

Используемые компоненты:

  • Моторы: B, F (руки), A, E (ноги)
  • Звуки: Hello, Humming, Scared
  • Анимации: моргание, счастье, глупость, испуг

Charlie бежит вперёд (около 100 см), одновременно тряся "корзиной для покупок" (руками). Демонстрирует параллельное выполнение задач с использованием генераторов Python.

Используемые компоненты:

  • Моторы: A, E (ноги), F, B (руки)
  • Звуки: Humming, Delivery
  • Анимации: моргание, глупость
  • Особенность: использует кастомный класс Timer для точного измерения времени

Charlie играет на барабанах с различными темпами и стилями. Программа включает:

  • Игру на барабанах (4 такта при темпе 80, затем 4 такта при темпе 130)
  • Быстрые движения руками
  • Танцевальные движения с ногами
  • Махи руками в разные стороны

Используемые компоненты:

  • Моторы: B, F (руки), A, E (ноги)
  • Звуки: 1234, Yes
  • Анимации: крутой вид, счастье, моргание
  • Особенность: реализован ритм-паттерн с различными типами ударов

Упрощённая версия drum_master.py. Charlie играет барабанное соло с двумя темпами (80 и 130 BPM), затем выполняет быстрые движения руками.

Используемые компоненты:

  • Моторы: B, F (руки)
  • Звуки: 1234, Yes
  • Анимации: крутой вид, моргание

Интерактивная программа "дай пять". Charlie ждёт, когда объект приблизится на расстояние менее 12 см, затем поднимает правую руку. Если рука получает удар (скорость < -10), Charlie радуется. Если в течение 5 секунд удара нет — грустит и отступает.

Используемые компоненты:

  • Моторы: B, F (руки), A, E (ноги)
  • Датчик расстояния: D
  • Звуки: Hi 5, Yipee, Sad
  • Анимации: моргание, дай пять, счастье

Charlie "просыпается" при постукивании по хабу, машет руками в приветствии и произносит "Hello".

Используемые компоненты:

  • Моторы: B, F (руки)
  • Датчик движения хаба (жест "tapped")
  • Звуки: Hi, Hello
  • Анимации: пробуждение, счастье, моргание

Простейшая программа — Charlie моргает и говорит "Hello".

Используемые компоненты:

  • Звук: Hello
  • Анимация: моргание

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

Используемые компоненты:

  • Моторы: A, E (ноги)
  • Звук: Dizzy
  • Анимации: моргание, головокружение

Charlie реагирует на цвета, обнаруженные датчиком цвета:

  • Зелёный: счастье, движение по кругу, смех
  • Жёлтый: испуг, отступление назад
  • Красный: злость, движение вперёд

Используемые компоненты:

  • Моторы: B, F (руки), A, E (ноги)
  • Датчик цвета: C
  • Звуки: Chuckle, Scared, No
  • Анимации: наблюдение, счастье, испуг, злость

Charlie играет в мини-гольф. При обнаружении красного цвета поднимает "клюшку" (левую руку), бьёт по мячу и едет вперёд.

Используемые компоненты:

  • Моторы: B (левая рука), E (правая нога)
  • Датчик цвета: C
  • Звуки: 1234, Yes
  • Анимация: моргание

Charlie — застенчивый робот. Он наблюдает за окружением с помощью датчика расстояния. Когда кто-то приближается на расстояние менее 30 см, Charlie пугается, поднимает руки и убегает.

Используемые компоненты:

  • Моторы: B, F (руки), A, E (ноги)
  • Датчик расстояния: D
  • Звук: Scared
  • Анимации: моргание, наблюдение, испуг

Charlie имитирует катание на лыжах, выполняя махи руками вперёд-назад (6 повторений).

Используемые компоненты:

  • Моторы: B, F (руки)
  • Звуки: Yipee, Like
  • Анимация: крутой вид

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

Используемые компоненты:

  • Моторы: B, F (руки), A, E (ноги)
  • Датчик расстояния: D
  • Датчик цвета: C
  • Звуки: Delivery, Tadaa
  • Анимации: моргание, счастье
  • Особенность: использует случайные числа для выбора направления поворота

Charlie выполняет праздничный танец:

  • Махи руками
  • Движения ногами в разные стороны
  • Движение по кругу
  • Поднятие правой руки с финальным звуком "Tadaa"

Используемые компоненты:

  • Моторы: B, F (руки), A, E (ноги)
  • Звуки: Humming, Tadaa
  • Анимация: моргание

Gelo

Gelo — четырёхногий робот с датчиком расстояния.

Программы

Gelo готов к выполнению задачи. Робот калибрует положение ног, включает датчик расстояния и движется вперёд в течение 3 секунд.

Используемые компоненты:

  • Моторы: A, B (задние ноги), C, D (передние ноги)
  • Датчик расстояния: E
  • Звук: Initialize
  • Анимация: пульсация
  • Особенность: использует математические расчёты для установки скорости ходьбы

MVP

MVP (Modular Vehicle Platform) — простая платформа с рулевым управлением.

Программы

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

Используемые компоненты:

  • Мотор A: рулевое управление
  • Мотор B: привод
  • Особенность: использует модульную калибровку рулевого механизма

Tricky

Tricky — спортивный робот на колёсах с манипулятором. Программы демонстрируют различные спортивные активности.

Программы

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

Используемые компоненты:

  • Моторы: B, A (колёса), C (манипулятор)
  • Датчик расстояния: D
  • Датчик цвета: E
  • Звуки: Success Chime, Explosion
  • Анимации: баскетбол, празднование
  • Особенность: использует отражённый свет для определения момента смены направления

Продвинутая версия следования по линии с использованием двух датчиков цвета (стандартный датчик цвета MINDSTORMS и датчик цвета/расстояния от LEGO Boost). Реализует адаптивную скорость в зависимости от кривизны линии.

Используемые компоненты:

  • Моторы: B, A (колёса)
  • Датчик цвета (правый): E
  • Датчик цвета/расстояния Boost (левый): F
  • Звук: 1234
  • Особенность: использует фильтр скорости для плавного движения, работает с низкоуровневым API хаба

Робот движется вперёд на 100 см, ожидая обнаружения корзины датчиком расстояния. При обнаружении объекта на расстоянии менее 8 см опускает манипулятор, бросает мяч и празднует победу.

Используемые компоненты:

  • Моторы: A, B (колёса), C (манипулятор)
  • Датчик расстояния: D
  • Звук: Celebrate
  • Анимации: баскетбол, празднование
  • Особенность: использует расчёт расстояния в градусах мотора

Робот играет в боулинг. Ожидает красный цвет как сигнал старта, захватывает мяч клешнёй, ждёт приближения кеглей (на расстояние < 10 см) и бросает мяч.

Используемые компоненты:

  • Моторы: B, A (колёса), C (клешня)
  • Датчик расстояния: D
  • Датчик цвета: E
  • Звуки: Success Chime, Bowling, Strike
  • Анимации: боулинг, празднование

Усовершенствованная версия боулинга с добавлением вращения мяча. Использует дополнительный мотор F для придания мячу вращения перед броском.

Используемые компоненты:

  • Моторы: B, A (колёса), C (клешня), F (спиннер)
  • Датчик расстояния: D
  • Звуки: Bowling, Strike
  • Анимации: боулинг, празднование

Робот играет в футбол. Ожидает приближения мяча (на расстояние < 10 см), показывает обратный отсчёт, бьёт по мячу ногой и празднует гол с вращением.

Используемые компоненты:

  • Моторы: B, A (колёса), C (нога для удара)
  • Датчик расстояния: D
  • Звуки: Countdown, Goal
  • Анимации: обратный отсчёт, празднование

Простая демонстрационная программа. Tricky ожидает приближения объекта на расстояние менее 10 см, затем движется вперёд и назад.

Используемые компоненты:

  • Моторы: A, B (колёса)
  • Датчик расстояния: D

Tricky рисует пятиконечную звезду с помощью пера. Программа использует математические расчёты для определения углов поворота и расстояний. Демонстрирует точное управление движением и поворотами.

Используемые компоненты:

  • Моторы: B, A (колёса), C (перо)
  • Особенность: использует тригонометрию для расчёта размеров звезды, реализует функции подъёма/опускания пера и точных поворотов

Комбинированная программа баскетбола. Робот движется вперёд на 100 см, обнаруживает корзину, бросает мяч, затем движется назад с поворотом. При обнаружении голубого цвета выполняет "слэм-данк" — опускает манипулятор в корзину.

Используемые компоненты:

  • Моторы: A, B (колёса), C (манипулятор)
  • Датчик расстояния: D
  • Датчик цвета: E
  • Звуки: Hit, Slam Dunk
  • Анимации: баскетбол, празднование
  • Особенность: двухэтапная программа с различными режимами движения

Технические детали

Используемые библиотеки

  • mindstorms — основная библиотека для управления роботами
  • mindstorms.control — функции управления временем и ожиданием
  • mindstorms.operator — операторы сравнения
  • hub — низкоуровневый доступ к хабу (используется в некоторых программах)
  • math — математические функции
  • random — генерация случайных чисел

Общие компоненты

  • MSHub — центральный хаб с дисплеем, динамиком, датчиками движения и кнопками
  • Motor — управление отдельными моторами
  • MotorPair — синхронное управление парой моторов
  • ColorSensor — датчик цвета и отражённого света
  • DistanceSensor — ультразвуковой датчик расстояния

Особенности реализации

  • Большинство программ включают функцию калибровки для точного позиционирования механизмов
  • Используются анимации на LED-матрице хаба для визуальной обратной связи
  • Звуковые эффекты синхронизированы с действиями робота
  • Некоторые программы используют продвинутые техники: PID-контроллеры, генераторы Python, математические расчёты

Лицензия

Этот проект распространяется под лицензией, указанной в файле LICENSE.

About

Python-версии различных упражнений из официального приложения LEGO MINDSTORMS Robot Inventor (51515)

Resources

License

Stars

Watchers

Forks

Contributors

Languages