Обзор SunFounder PiCar-X 2.0 – роботизированный автомобиль на Raspberry Pi 4 с программированием на Blockly или Python

SunFounder PiCar-X 2.0 – это роботизированный автомобиль с искусственным интеллектом и автономным управлением, использующий Raspberry Pi 3/4 в качестве основной платы обработки. Он оснащен модулем камеры, перемещаемым сервоприводом с 2 осями для поворота или наклона камеры, ультразвуковым модулем для обнаружения удаленных объектов и модулем детектирования линии. Робот PiCar-X также способен выполнять задачи компьютерного зрения: распознавание цветов, обнаружение лиц, детектирование дорожных знаков, автоматическое избегание препятствий и автоматическое следование по линии.

Программирование PiCar-X возможно на двух языках: с помощью визуальной среды Ezblock Studio на основе Blockly (методом перетаскивания блоков) и на Python. Робот работает с библиотекой компьютерного зрения OpenCV и TensorFlow для задач ИИ. Дополнительно управление осуществляется через мобильное приложение SunFounder Controller. Компания предоставила нам образец Picar-X 2.0 для обзора, поэтому приступим.

SunFounder PICAR-X Robot review

Обзор робота SunFounder PiCar-X 2.0

SunFounder PICAR-X V2.0 Part Kit

Комплект робота PiCar-X включает несколько компонентов: конструкционный корпус, электродвигатели постоянного тока, колеса, плату расширения RoboHat, ультразвуковой сенсор, датчик линии, сервопривод, аккумулятор и набор гаек/винтов для сборки. Поскольку устройство поставляется в виде набора, учащимся предстоит самостоятельно собрать его, изучая процесс сборки роботов и подключения проводов. Детали и инструкции доступны в документации . Наш комплект также включал Raspberry Pi 4 с 4 ГБ ОЗУ.

Плата расширения SunFounder PiCar-X Robot HAT

PICAR-X Robot Hat

Плата расширения SunFounder PiCar-X Robot HAT содержит выключатель питания, два порта для подключения двигателей (левый/правый) и двенадцать портов для сервоприводов, управляющих колесами автомобиля и поворотным механизмом камеры. Дополнительно плата включает динамик для воспроизведения звуковых эффектов, голосовой обратной связи или MP3-музыки. Имеются расширительные порты ADC, PWM и I2C, а для питания используется аккумулятор 7-12 В, подключаемый через 2-контактный разъем PH2.0. Зарядка осуществляется через USB-C с LED-индикацией статуса.

Robot Hat Description

Характеристики Robot HAT:

  • Порты двигателей (левый/правый) – 2 канала XH2.54: GPIO 4 (левый), GPIO 5 (правый)
  • 2x I2C-пина Raspberry Pi
  • PWM – 12 каналов (P0-P11)
  • 4x ADC-пина (A0-A3)
  • 4x цифровых пина (D0-D3)
  • Индикаторы состояния батареи
    •   LED 2 активен при напряжении >7.8 В
    •   LED 1 активен при напряжении 6.7–7.8 В
    • Оба LED отключены при напряжении <6.7 В
  • Напряжение питания – 7–12 В постоянного тока через 2-контактный PH2.0 (одновременно питает Raspberry Pi)

Установка (пользовательской) ОС Raspberry Pi

ОС для PiCar-X 2.0 устанавливается на microSD-карту с помощью программы Raspberry Pi Imager .

Доступны два образа ОС:

  • Для программирования на Python используйте Raspberry Pi OS (Legacy)
  • Для IDE Ezblock Studio скачайте RaspiOS-xxx_EzBlockOS-xxx.img – базовый образ Raspberry Pi OS с предустановленной Ezblock Studio. Нажмите CHOOSE OS , выберите Use Custom, укажите скачанный файл, отметьте устройство хранения, нажмите WRITE и дождитесь завершения.

Загрузка Raspberry Pi OS на SunFounder PiCar-X 2.0

Извлеките microSD-карту из компьютера, вставьте в Raspberry Pi. Подключите кабель аккумулятора и переведите выключатель на Robot HAT в положение ON.

SunFounder PICAR-X slide to power

После загрузки Raspberry Pi OS проверьте установку, подключив монитор HDMI, клавиатуру и мышь – система должна работать как автономный одноплатный компьютер.

Raspberry Pi OS Desktop

Начало работы с EzBlock Studio для PiCar-X 2.0

EzBlock Studio – визуальная среда программирования от SunFounder для новичков, поддерживающая Blockly (сборка программ из блоков) с конвертацией в Python-код. Загрузка программ на Raspberry Pi выполняется по Bluetooth или Wi-Fi.

Скачайте приложение в App Store (iOS) или Google Play (Android) по запросу «Ezblock Studio» либо перейдите на http://ezblock.cc/ezblock-studio для работы в браузере. Примечание: с 28 февраля EzBlock Studio V3.2 перейдет в офлайн-режим (проекты сохраняются локально, без облачного хранилища).

Создайте проект через раздел New Project .

EzBlock Studio

Выберите продукт PiCar-X:

EzBlock Studio Choose Device

Нажмите Connect .

EzBlock Picar-X

Программа отобразит IP-адрес робота – подтвердите кнопкой Confirm .

EzBlock Setup IP Address

При успешном соединении отобразятся данные робота: уровень заряда батареи, напряжение, версия ПО.

EzBlock PiCar-X Connected Robot

Установка Python-библиотек и модулей

Запустите терминал в Raspberry Pi OS для обновления системы:

Установите библиотеку SunFounder PICAR-X Robot Hat:

Затем скачайте и установите модуль Vilb:

Повторите для модуля Picar-X:

Запустите скрипт i2samp.sh для установки драйвера I2S-усилителя:

Введите «y» для подтверждения установки:

SunFounder PICAR-X I2S

И снова для активации фонового воспроизведения /dev/zero…

SunFounder PICAR-X I2S Confirm

Перезагрузите систему по запросу.

SunFounder PICAR-X I2S Reboot

Активация интерфейса I2C

Введите команду для настроек Raspberry Pi OS:

Выберите Interface Options…

raspi-config Interface Options

I2C

raspi-config Enable I2C

…подтвердите «Yes«.

SunFounder PICAR-X Confirm I2C Enable

Перезагрузите систему по запросу для завершения.

Установка сервопривода на 0° для упрощения сборки

SunFounder PICAR-X Servo Arm

Диапазон угла сервопривода PiCar-X: -90°–90°, но на заводе угол не калиброван (возможны 0° или 45°). Сборка при случайном угле ≠0° может повредить сервопривод. Перед установкой на робота задайте всем сервоприводам угол 0°. Для центрирования выполните команду:

Затем подключите кабель сервопривода к порту P11, и вы увидите, как рычаг сервопривода повернётся в позицию (это положение 0°). Далее установите рычаг сервопривода согласно инструкции по сборке.

SunFounder PICAR-X P11 Connect

Калибровка робота PiCar-X 2.0 (Python)

Из-за возможных отклонений при сборке PiCar-X или ограничений сервоприводов углы установки могут быть слегка смещены. Для коррекции запустите программу calibration.py:

Запустится помощник калибровки PiCar-X с меню, как показано ниже.

PICAR-X Calibration

Клавиша R проверяет работоспособность сервопривода управления передними колёсами. Нажмите 1 для выбора сервопривода передних колёс, затем клавишами W/S отрегулируйте положение колёс строго прямо без смещения влево/вправо.

Calibration Direction Servo

Теперь нажмите 2 для выбора сервопривода камеры №1 (поворот по горизонтали), затем клавишами W/S отрегулируйте поворотную платформу строго вперёд без смещения влево/вправо.

Calibrate Camera Servo1

Повторите для сервопривода камеры №2 (наклон по вертикали), выбрав 3 и регулируя клавишами W/S положение платформы строго вперёд без наклона вверх/вниз.

SunFounder PICAR-X Calibrate Camera Servo

При возможном обратном подключении моторов нажмите E для проверки движения вперёд. При некорректной работе выберите левый/правый мотор клавишами 4/5, затем клавишей Q откалибруйте направление вращения.

PICAR-X Calibrate Direction Motor

По завершении калибровки нажмите Пробел для сохранения параметров. Подтвердите действие вводом «y», затем нажмите ESC или Ctrl+C для выхода.

SunFounder PICAR-X Calibration Confirm

Калибровка робота PiCar-X 2.0 (EzBlock Studio)

Альтернативно калибровку можно выполнить через веб-интерфейс EzBlock Studio. После подключения нажмите кнопку Settings .

EzBlock Studio Robot Setting

Затем выберите Calibrate.

EzBlock Studio Robot Calibrate

В открывшемся окне выберите сервоприводы для калибровки: поворотно-наклонного механизма камеры или рулевых колёс.

EzBlock Studio Calibrate

Начните с калибровки сервоприводов поворотно-наклонного механизма. Кнопками управления отрегулируйте положение камеры вверх/вниз (наклон) и влево/вправо (поворот). После выравнивания камеры нажмите Confirm .

EzBlock Studio PiCar-X Calibrate Pan Tilt

Аналогично откалибруйте рулевые колёса, регулируя их положение влево/вправо. После выравнивания нажмите Confirm .

EzBlock Studio PiCAR-X Calibrate Steering

Тестирование движения робота PiCar-X 2.0

Запрограммируем движение робота по S-траектории с последующей остановкой. Пример реализации на Python:

… и в EzBlock Studio.

EzBlock Studio Robot Move Code

Тест объезда препятствий

Робот оснащён ультразвуковым сенсором HC-SR04 с диапазоном 0-400 см. Демо-программа поворачивает колёса на -35° при обнаружении объекта ближе 25 см, иначе поддерживает угол 0°. Тестирование подтвердило работоспособность в Python и EzBlock Studio.

HC-SR04 ultrasonic sensor

Python:

EzBlock Studio:

EzBlock Studio Obstacle Avoidance Code

Программа следования по линии для PiCar-X 2.0

Робот использует «3-канальный датчик серой шкалы SunFounder», выдающий аналоговые значения для каждого выхода. Алгоритм предусматривает три условия:

  1. Движение вперёд на скорости 10% с углом сервопривода 0° по умолчанию.
  2. При обнаружении чёрной линии левым сенсором установите угол сервопривода 12°.
  3. При обнаружении линии правым сенсором установите угол -12°.
  4. При отсутствии условий 2 и 3 верните угол 0°.

SunFounder 3-ch Gray Scale Sensor

Программа на Python:

Эквивалентная визуальная реализация в EzBlock Studio.

EzBlock Studio Line Follower Code

Озвучивание текста через встроенный динамик

Используем технологию Text-to-Speech (TTS) для воспроизведения фразы «Hello!» через динамик. После установки драйвера i2samp.sh создайте программу:

Аналогичный пример в EzBlock Studio использует распознавание лиц через камеру для фразы «Hello, nice to meet you!»

EzBlock Studio Say Hello Code

Компьютерное зрение на Raspberry Pi 4

Распознавание лиц — лишь одна из задач, выполняемых Raspberry Pi 4 через 5Мп камеру SunFounder на сенсоре OV5647 Full HD. Рассмотрим другие примеры машинного зрения.

SunFounder Camera

Распознавание цвета

Для теста используйте цветные круги. Распечатайте шаблон из этого PDF-файла .

SunFounder PICAR-X Color Cards

Программа определяет цвет круга, обводит его зелёным прямоугольником и подписывает цвет в левом верхнем углу.

EzBlock Studio Color Detect Sign

Код распознавания цвета на Python:

Более простая реализация в EzBlock Studio требует всего двух блоков.

EzBlock Studio Color Detection Code

Функция распознавания лиц

В тесте динамика мы кратко проверили распознавание лиц, но рассмотрим детали. Метод основан на каскадных классификаторах Хаара — эффективной технологии обнаружения объектов, разработанной Полом Виолой и Майклом Джонсом (2001).

Алгоритм: преобразование изображения в градации серого, обнаружение лиц через модель классификаторов Хаара, рисование прямоугольников вокруг лиц на исходном изображении.

EzBlock Studio Face Detection

Код на Python:

Эквивалентный пример в EzBlock Studio.

EzBlock Studio Face Detection Code

Видеообзор PiCar-X 2.0

Заключение

SunFounder PiCar-X 2.0 — роботизированная платформа с ИИ для изучения Raspberry Pi, компьютерного зрения и робототехники. Робот программируется для объезда препятствий, следования по линии и автономного движения с функциями распознавания лиц/цветов.

Комплект предназначен для образовательных учреждений и энтузиастов. Полный перечень функций (распознавание QR-кодов, отслеживание лиц, игра «Бой быков» и др.) доступен в документации .

Благодарим SunFounder за предоставленный комплект PiCar-X 2.0. Комплект с аккумулятором и зарядным устройством доступен за $81.99 ($154.99 с Raspberry Pi 4 4ГБ в фирменном магазине; $74.99 и $145.10 на Amazon с учётом скидки $15).

CNXSoft: Обзор переведён с оригинальной публикации CNX Software Thailand авторства Kajornsak Janjam под редакцией Suthinee Kerdkaew .

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments