Инициализация

Любая программа на Pybricks начинается с импорта необходимых модулей и инициализации объектов (хаба, моторов, датчиков).

1. Импорт модулей

Стандартное начало программы выглядит так:

from pybricks.hubs import PrimeHub
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
from pybricks.robotics import DriveBase
from pybricks.tools import wait, StopWatch
  • pybricks.hubs: классы для работы с самим хабом (кнопки, экран, гироскоп).
  • pybricks.pupdevices: классы для подключаемых устройств (моторы и датчики).
  • pybricks.parameters: константы (порты, цвета, направления).
  • pybricks.robotics: классы для управления роботом (drivebase).
  • pybricks.tools: инструменты (таймеры, ожидание).

2. Инициализация Хаба

Создаем объект хаба, чтобы управлять его встроенными функциями.

hub = PrimeHub()

Теперь можно использовать методы хаба:

hub.light.on(Color.GREEN)  # Включить подсветку кнопки зеленым
hub.display.char("A")      # Показать букву A на матрице
print(hub.battery.voltage()) # Вывести напряжение батареи

3. Инициализация Моторов

Моторы подключаются к портам A, B, C, D, E, F.

Одиночный мотор

# Мотор на порту A
left_motor = Motor(Port.A)

# Мотор на порту B, вращение инвертировано (против часовой стрелки = вперед)
right_motor = Motor(Port.B, Direction.COUNTERCLOCKWISE)

DriveBase (Колесная база)

Класс DriveBase позволяет управлять роботом как единым целым, используя миллиметры и градусы вместо оборотов моторов.

# Инициализация моторов
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
right_motor = Motor(Port.B)

# Создание базы
# wheel_diameter: диаметр колеса в мм
# axle_track: расстояние между центрами колес в мм
drivebase = DriveBase(left_motor, right_motor, wheel_diameter=56, axle_track=112)

4. Инициализация Датчиков

Датчик цвета

color_sensor = ColorSensor(Port.C)

Ультразвуковой датчик (расстояния)

dist_sensor = UltrasonicSensor(Port.D)

Датчик силы (кнопка)

force_sensor = ForceSensor(Port.E)

Пример полной программы

from pybricks.hubs import PrimeHub
from pybricks.pupdevices import Motor, ColorSensor
from pybricks.parameters import Port, Direction, Color
from pybricks.robotics import DriveBase
from pybricks.tools import wait

# 1. Хаб
hub = PrimeHub()
hub.light.on(Color.BLUE)

# 2. Моторы и база
left = Motor(Port.A, Direction.COUNTERCLOCKWISE)
right = Motor(Port.B)
robot = DriveBase(left, right, wheel_diameter=56, axle_track=112)

# 3. Датчики
sensor = ColorSensor(Port.C)

# Логика
print("Start!")
drivebase.straight(500) # Проехать 500 мм вперед
wait(1000)