Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Сборка робота на Raspberry Pi: руководство для начинающих и обзор проектов

Введение

Raspberry Pi — полноценный Linux-компьютер за $35–75, идеальный «мозг» для робота: Python/OpenCV/ROS, GPIO, камера, Wi-Fi, Bluetooth, огромное сообщество. Рассмотрим пошаговую сборку простого робота-избегатора препятствий и обзор вдохновляющих проектов.

Проект 1: Робот-ибегатор препятствий (Beginner)

Компоненты (BOM)

Подключение ИК-датчика (FC-51)


FC-51 VCC → Pi 5V (Pin 2/4)
FC-51 GND → Pi GND (Pin 6)
FC-51 OUT → Pi GPIO 17 (Pin 11)  # Настраиваемый порог потенциометром на модуле

Тест: python3 -c "import RPi.GPIO as GPIO; GPIO.setmode(GPIO.BCM); GPIO.setup(17, GPIO.IN); print(GPIO.input(17))" — 0 = препятствие, 1 = свободно.

Подключение L298N к двум моторам


L298N:
ENA (PWM) → Pi GPIO 18 (Pin 12, HW PWM0)
IN1 → Pi GPIO 23 (Pin 16)
IN2 → Pi GPIO 24 (Pin 18)
IN3 → Pi GPIO 25 (Pin 22)
IN4 → Pi GPIO 8  (Pin 24)
ENB (PWM) → Pi GPIO 13 (Pin 33, HW PWM1)

Motor A (левый) → OUT1/OUT2
Motor B (правый) → OUT3/OUT4

L298N +12V → Батарея 7.4В (VBAT)
L298N 5V OUT (jumper ON) → Pi 5V (Pin 2/4)  # L298N имеет слабый 5В LDO, лучше внешний DC-DC!
L298N GND → Pi GND (общая земля ОБЯЗАТЕЛЬНО)

Важно: L298N теряет ~2В на транзисторах. При 7.4В на моторы придёт ~5.4В — нормально для 6В моторов. Для 12В моторов нужен 3S Li-Ion (11.1В). Рекомендую **TB6612FNG** (MOSFET, без потерь, меньше, не греется).

Python-код (GPIO Zero — проще, чем RPi.GPIO)


#!/usr/bin/env python3
from gpiozero import Robot, DistanceSensor
from signal import pause

# ИК-датчик как DistanceSensor (threshold_distance=0.2, max_distance=1)
# Но ИК даёт только 0/1. Лучше свой класс или используем DigitalInputDevice.
from gpiozero import DigitalInputDevice, PWMOutputDevice, DigitalOutputDevice
from time import sleep

left_motor = Robot(left=(23, 24), right=(25, 8), pwm=True)  # (forward, backward) pins
# Для PWM на ENA/ENB нужен gpiozero.Motor с pwm=True и отдельные PWM пинсы — проще класс Robot с pwm=True не поддерживает.
# Используем ручное управление:
ena = PWMOutputDevice(18)  # ENA
enb = PWMOutputDevice(13)  # ENB
in1, in2 = DigitalOutputDevice(23), DigitalOutputDevice(24)
in3, in4 = DigitalOutputDevice(25), DigitalOutputDevice(8)

ir = DigitalInputDevice(17, pull_up=False)  # 0=препятствие

def forward(speed=0.6):
    in1.on(); in2.off(); in3.on(); in4.off()
    ena.value = speed; enb.value = speed

def backward(speed=0.5):
    in1.off(); in2.on(); in3.off(); in4.on()
    ena.value = speed; enb.value = speed

def turn_left(speed=0.6):
    in1.off(); in2.on(); in3.on(); in4.off()
    ena.value = speed; enb.value = speed

def turn_right(speed=0.6):
    in1.on(); in2.off(); in3.off(); in4.on()
    ena.value = speed; enb.value = speed

def stop():
    ena.value = 0; enb.value = 0
    in1.off(); in2.off(); in3.off(); in4.off()

print("Robot started. Press Ctrl+C to stop.")
try:
    while True:
        if ir.value == 0:  # препятствие
            stop()
            sleep(0.2)
            backward(0.5)
            sleep(0.4)
            turn_right(0.6)
            sleep(0.5)
        else:
            forward(0.6)
        sleep(0.05)
except KeyboardInterrupt:
    stop()
    print("Stopped.")

Запуск

  1. Сохраните как robot.py, сделайте исполняемым: chmod +x robot.py.
  2. Автозапуск: crontab -e → @reboot /home/pi/robot.py & (или systemd service).
  3. Проверьте направления моторов — поменяйте IN1/IN2 если надо.

Обзор вдохновляющих проектов на Raspberry Pi

1. CHOP Quadruped (4-лапый, как Boston Dynamics Spot)

2. Ping-Pong Robot (робот для настольного тенниса)

3. Raspberry Pi Humanoid (гуманоид)

4. Pi Roomba (робот-пылесос)

5. Butter Robot (Rick & Morty)

6. Petoi Nybble (роботизированный кот)

7. Spot Micro (мини Spot)

8. Miniature Fighting Robot (батл-бот)

9. Devastator Tank (робот-танк)

Советы для успешных робототехнических проектов на Pi

Заключение

Робот на Raspberry Pi — доступный вход в автономную робототехнику с компьютерным зрением и ИИ. Начните с простого избегатора на GPIO Zero / gpiozero, потом добавляйте камеру, SLAM, ROS. Сообщество, документация и экосистема Python делают Pi лучшей платформой для обучения и прототипирования. Главное — надёжное питание и механика.

Промышленные технологии

  1. Как 3D-принтеры печатают металлические детали: от порошка к точности
  2. Сборка надежного тока зеркального контура: Пошаговое руководство
  3. Создание робота на Arduino и Raspberry Pi: пошаговое руководство
  4. Создание умного робота с Bridge Shield — интеграция Raspberry Pi и Arduino
  5. DIY робот в стиле Wall‑E на Raspberry Pi из коробки от CD
  6. Построение Wi-Fi-управляемого робота на Raspberry Pi с Python — пошаговое руководство
  7. Разработка надежной программы электрического обслуживания: практическое руководство
  8. Создание стейкхолдер-фокусированной IoT продуктовой дорожной карты
  9. Сборка Саурона: Полугуманоидный робот на Arduino Mega 2560 – Полное руководство
  10. Проектирование надежной программы электрического обслуживания для повышения безопасности и производства