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

Все суставы

Цель урока Управлять всеми 4 суставами с клавиатуры, с безопасными пределами углов.

⌨️ Управление

База: ← → Плечо: ↑ ↓ Локоть: W S Захват: O (открыть) C (закрыть) ESC — выход

📝 Главная идея — пределы и отправка

JOINTS = [
    {"name": "База",   "lo": 0,  "hi": 180},
    {"name": "Плечо",  "lo": 30, "hi": 150},
    {"name": "Локоть", "lo": 30, "hi": 150},
    {"name": "Захват", "lo": 20, "hi": 120},
]

def move(joint, delta):
    lo, hi = JOINTS[joint]["lo"], JOINTS[joint]["hi"]
    angles[joint] = max(lo, min(hi, angles[joint] + delta))
    robot.send(joint, angles[joint])
⬇️ control_arm.py
💡 Зачем пределы (clamp) У каждого сустава своя «безопасная зона». max(lo, min(hi, ...)) не даёт углу выйти за неё — так робот не упрётся и не сломает шестерёнки. Те же пределы стоят и в прошивке Arduino — двойная защита.
🎮 Подбери свои углы Покрути суставы и запиши, при каких углах рука в удобных положениях — пригодится в проекте (урок 11).

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

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

Зачем пределы max(lo, min(hi, угол)) для сустава?

✅ У каждого сустава своя «безопасная зона». Те же пределы стоят и в прошивке — двойная защита.

Чем управляют базой в control_arm.py?

✅ База — стрелки, плечо — ↑↓, локоть — W/S, захват — O (открыть) и C (закрыть).
← НазадУрок 8 — pygame ↔ Arduino