Примечание: RPi 4B — legacy-платформа. Основной платформой является RPi 5 — см. rpi5.md.
Причина перехода: RPi 4 слишком медленный для real-time детекции. YOLO инференс на RPi 4: 2.4 FPS (NCNN, 1 поток) vs 14.9 FPS на RPi 5 (pip ncnn native, 4 OMP потока, с препроцессингом) — разница больше чем в 6x. PyTorch ещё хуже: 1.1 FPS. Для задачи поиска носков нужно минимум 10 FPS, RPi 4 это не обеспечивает.
Руководство по подготовке Raspberry Pi 4B для работы робота-танка SocksTank.
- Raspberry Pi 4B (4 ГБ RAM) — legacy, для новых сборок рекомендуется RPi 5
- SD-карта 32 ГБ+ (Class 10 / A2)
- Камера ov5647 (OmniVision) — входит в комплект Freenove Tank Kit
- Freenove Tank Robot Kit — собранный по инструкции из комплекта
- Блок питания 5V/3A (для RPi 4B) или 5V/5A (для RPi 5)
- Скачать Raspberry Pi Imager
- Выбрать Raspberry Pi OS (64-bit) — Debian bookworm
- В настройках Imager (кнопка шестерёнки) указать:
- Имя хоста (например,
tank) - Имя пользователя и пароль
- Настройки WiFi (SSID и пароль домашней сети)
- Включить SSH
- Имя хоста (например,
- Записать образ на SD-карту
- Вставить карту в RPi, включить питание
После загрузки подключиться по SSH:
ssh user@tank.local
# или по IP, если mDNS не работает:
ssh user@192.168.x.xПеред установкой зависимостей обновить систему до актуальной версии:
sudo rm /var/lib/apt/lists/*.debian.org_*
sudo apt update
sudo apt upgrade -yБез этого шага некоторые пакеты (emacs-nox, libcap-dev) могут не установиться.
sudo apt install htop mc emacs-nox git screenЗапустить скрипт установки из комплекта Freenove. Он установит все необходимые библиотеки и настроит тип камеры (ov5647):
cd ~/Freenove_Tank_Robot_Kit_for_Raspberry_Pi/Code
sudo python setup.pyДля работы светодиодов (LED):
sudo pip install rpi_ws281x --break-system-packagesДля работы сервоприводов (аппаратный PWM):
sudo pip install rpi-hardware-pwm --break-system-packagessudo apt install libcap-dev python3-picamera2Или через pip:
sudo pip install picamera2 --break-system-packagesДобавить в конец файла:
start_x=1
gpu_mem=512
# dtoverlay=vc4-kms-v3d
dtoverlay=cma,cma-320
dtoverlay=dmaheap,size=128M
dtoverlay=ov5647После изменения — перезагрузить RPi (sudo reboot).
v4l2-ctl --device /dev/video0 --allКамера установлена перевёрнутой, поэтому в коде используется Transform(vflip=True).
При включении RPi нужно автоматически запускать демон pigpiod для работы с GPIO.
#!/bin/sh
sleep 5
sudo pigpiodmkdir -p ~/.config/autostart
chmod +x ~/start.shСоздать файл ~/.config/autostart/start.desktop:
[Desktop Entry]
Type=Application
Name=start
NoDisplay=true
Exec=/home/user/start.shchmod +x ~/.config/autostart/start.desktopЕсли RPi подключён по WiFi и нужен фиксированный IP:
sudo nmcli con modify "YOUR_WIFI_SSID" ipv4.addresses 192.168.x.x/24
sudo nmcli con modify "YOUR_WIFI_SSID" ipv4.gateway 192.168.x.1
sudo nmcli con modify "YOUR_WIFI_SSID" ipv4.dns "8.8.8.8"
sudo nmcli con modify "YOUR_WIFI_SSID" ipv4.method manual
sudo nmcli con up "YOUR_WIFI_SSID"Заменить YOUR_WIFI_SSID на имя вашей WiFi-сети.
После установки всех зависимостей проверить работу компонентов:
cd ~/Freenove_Tank_Robot_Kit_for_Raspberry_Pi/Code/Server/
# Проверка светодиодов
sudo python test.py Led
# Проверка сервоприводов (клешня, подъём)
sudo python test.py Servo
# Проверка моторов (движение)
sudo python test.py MotorЕсли всё работает — танк готов к использованию.
Разгон может повысить производительность инференса, но увеличивает нагрев. Требуется хорошее охлаждение.
Добавить в /boot/firmware/config.txt:
arm_freq=2147
gpu_freq=750
over_voltage=6
force_turbo=1
sdram_freq=3200Перезагрузить RPi и проверить частоту:
lscpu | grep "CPU max MHz"Важно: без активного охлаждения (вентилятор или радиатор) разгон может привести к троттлингу и нестабильности.
pip install ultralytics[extra] --break-system-packagesЕсли после установки возникает ошибка numpy.dtype size changed:
ValueError: numpy.dtype size changed, may indicate binary incompatibility.
Expected 96 from C header, got 88 from PyObject
Переустановить picamera2 и simplejpeg:
pip install --upgrade picamera2 simplejpeg --break-system-packagesДля удалённого доступа к рабочему столу RPi:
- Включить VNC через
raspi-config:sudo raspi-config # Interface Options → VNC → Enable - Подключиться с компьютера через RealVNC Viewer
| ← Предыдущая | README | Следующая → |
|---|---|---|
| Инфраструктура | Вернуться к README | Настройка Raspberry Pi 5 |