Этот репозиторий содержит Python-версии различных упражнений из официального приложения LEGO MINDSTORMS Robot Inventor (51515).
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 — гуманоидный робот с двумя руками и колёсами вместо ног. Программы демонстрируют различные эмоции, движения и интерактивное поведение.
Основано на проекте "Balancing Bot I" от Dimitri Dekyvere и Laurens Valk
Самобалансирующийся робот, использующий гироскоп для поддержания равновесия. Реализует PID-контроллер для стабилизации. При падении воспроизводит звук "Ouch", при восстановлении — "Tadaa". Требует нажатия левой кнопки для повторного запуска после падения.
Используемые компоненты:
- Моторы: A, E (ноги)
- Гироскоп встроенного хаба
- Звуки: Ouch, Tadaa
- Анимации: моргание, глупое выражение
Демонстрационная программа, показывающая три различных поведения Charlie:
- Счастливый: приветствие с махами рукой
- Глупый: вращение левой рукой с движением вперёд
- Испуганный: поднятие рук и отступление назад
Используемые компоненты:
- Моторы: 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 готов к выполнению задачи. Робот калибрует положение ног, включает датчик расстояния и движется вперёд в течение 3 секунд.
Используемые компоненты:
- Моторы: A, B (задние ноги), C, D (передние ноги)
- Датчик расстояния: E
- Звук: Initialize
- Анимация: пульсация
- Особенность: использует математические расчёты для установки скорости ходьбы
MVP (Modular Vehicle Platform) — простая платформа с рулевым управлением.
Простая программа для багги с рулевым управлением. Калибрует рулевой мотор, поворачивает руль на 50 градусов и едет назад на 16 оборотов колеса.
Используемые компоненты:
- Мотор A: рулевое управление
- Мотор B: привод
- Особенность: использует модульную калибровку рулевого механизма
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.