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

Моторы из Python

Цель урока Залить в плату готовую прошивку Firmata (один раз) и поехать командами прямо из Python: car.forward(), car.left_turn(), car.stop(). Без своего «протокола» и без программирования Arduino.

📥 Шаг 1 — заливаем Firmata (один раз)

В уроке 3 мы залили крошечный «сырой» скетч, чтобы убедиться, что моторы крутятся. Больше писать программы для Arduino мы не будем. Ставим библиотеку FirmataExpress (Инструменты → Управление библиотеками), затем Файл → Примеры → FirmataExpress → FirmataExpress → выбрать плату «Arduino Uno» и порт → «Загрузить». Всё.

⬇️ как залить Firmata (README)
💡 То же, что у руки MeArm На руке-роботе мы уже так делали: одна готовая прошивка Firmata — и весь «ум» живёт в Python. Машина устроена так же, только вместо серво у неё моторы через драйвер L298N.

🧠 Шаг 2 — командуем объектами

Связь и моторы спрятаны в файл robot.py. Там есть объект car, у которого понятные команды — никаких «букв» и строк протокола:

from robot import connect
car = connect()           # найдёт плату с Firmata (USB)

car.forward(180)        # вперёд, скорость 0..255
car.left_turn()          # поворот налево «танком»
car.stop()               # стоп
robot.py (связь + объекты)

🔄 Поворот «танком»

Машина поворачивает на месте: один борт колёс крутится вперёд, другой — назад. Это уже зашито в объект — car.left_turn() сам крутит левый борт назад, а правый вперёд. Внутри robot.py у машины два объекта-мотора: car.left и car.right, и у каждого метод drive(speed) (от −255 до 255).

⚠️ Проверяй на коробке Перед запуском подними машину на подставку (колёса в воздухе). Поставь pip install pymata4, если ещё не стоит. Питание моторов (18650) — включено.
✅ Проверка Маленькая программа с car.forward(180) и через секунду car.stop() реально крутит колёса. Едет не туда? Это нормально — настроим на следующих уроках. Дальше — режем провод.

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

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

Какую готовую прошивку заливают в Arduino один раз, чтобы рулить им из Python?

✅ Верно — Firmata (мы ставим вариант FirmataExpress). После заливки Arduino не программируем.

Каким методом объекта car машина едет вперёд? (car.____)

✅ Верно — forward: car.forward(180). Ещё есть back, left_turn, right_turn, stop.
← НазадУрок 3 — Мозг и провода