🤖 Робототехника 🚗 Робомашинка
1 2 3 4 5 6 7 8 9 10 11 12
Урок 7 · код

Первый заезд из pygame

Цель урока Написать первый «пульт» на Python: окно pygame ловит стрелки и командует машиной. Машина едет с клавиатуры ноутбука.

🔗 Подключение — объект car

Связь спрятана в robot.py (мы видели его в уроке 4). Одна строчка — и у нас есть машина-объект с понятными командами:

from robot import connect
car = connect()            # найдёт машину (USB/Bluetooth)
car.forward(200)         # вперёд
car.stop()               # стоп
robot.py (связь + объекты)
💡 Машины ещё нет? Работаем в «режиме показа» Если машина не подключена, robot.py сам включает режим показа: команды просто игнорируются, а датчики выдают данные понарошку. Программа не падает — можно писать и пробовать код заранее, даже без машины.

🎮 Пульт: стрелки → команды

Знакомый игровой цикл: каждый кадр смотрим, какие стрелки зажаты, и вызываем нужную команду машины. Отпустил все — stop():

keys = pygame.key.get_pressed()
if   keys[pygame.K_UP]:    car.forward(SPEED)
elif keys[pygame.K_DOWN]:  car.back(SPEED)
elif keys[pygame.K_LEFT]:  car.left_turn(SPEED)
elif keys[pygame.K_RIGHT]: car.right_turn(SPEED)
else:                     car.stop()        # отпустил — стоп

Запусти drive_keys.py: ↑↓ едем, ←→ поворот, отпустил — стоп, ESC — выход.

⬇️ drive_keys.py
⚠️ Сначала на коробке, потом на пол Проверь управление, когда машина на подставке. Убедился, что стрелки рулят правильно — ставь на пол и катай. pip install pymata4, если ещё не стоит.
✅ Проверка Машина едет с клавиатуры. Поздравляю — это уже настоящий управляемый робот! Дальше сделаем пульт удобнее и честно разберёмся, почему машину уводит в сторону.

🧠 Проверь себя

Выбери ответ. Ошибёшься — 30 секунд на то, чтобы вернуться в урок и перечитать.

Что делает car = connect()?

✅ Дальше пишем car.forward(200), car.stop() — связь спрятана в robot.py.

Что такое «режим показа» в robot.py?

✅ Можно писать и пробовать код заранее, даже без машины — программа не падает.
← НазадУрок 6 — Глаза машины