Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Настройка среды разработки

Настройка среды разработки — важный первый шаг, который определяет ваш успех на протяжении всей серии лабораторных работ. В отличие от облачной разработки ML, где инфраструктура скрыта, встраиваемые системы требуют понимания всей цепочки инструментов: от компиляции кода до развёртывания на оборудовании.

Настройка среды обычно занимает 30–60 минут в зависимости от выбранной платформы и скорости интернета. Эти процедуры рассчитаны на студентов, у которых нет опыта работы со встраиваемыми системами.

Системные требования

Прежде чем начинать установку, убедитесь, что ваш компьютер для разработки соответствует следующим требованиям:

Компьютер для разработки:

  • Операционная система: Windows 10/11, macOS 10.15+ или Linux (Ubuntu 18.04+)
  • Память: минимум 8 ГБ ОЗУ (для разработки на Raspberry Pi рекомендуется 16 ГБ)
  • Накопитель: 10 ГБ свободного места для инструментов разработки и библиотек
  • Порты USB: хотя бы один порт USB 2.0/3.0 для подключения устройства
  • Интернет: необходим для установки программ и загрузки библиотек

Программные требования:

  • Arduino IDE 2.0+ для платформ на базе Arduino (XIAO, Nicla Vision)
  • Python 3.8+ для разработки на Raspberry Pi
  • Git для управления версиями и доступа к примерам кода
  • Текстовый редактор или IDE, например VS Code или PyCharm

Аксессуары для оборудования:

  • USB-кабели: USB-C или Micro-USB (кабель должен передавать данные, а не только питание)
  • SD-карта: 32 ГБ и больше, класс 10, для Raspberry Pi
  • Блоки питания: подходящие для каждой платформы
  • Модули камеры: входят в состав большинства наборов или продаются отдельно

Установка программного обеспечения для конкретных платформ

Каждая аппаратная платформа требует собственного подхода к разработке, который отражает практику реальной встраиваемой инженерии. Системы на базе Arduino сосредоточены на эффективном использовании ресурсов и ограничениях реального времени, Raspberry Pi демонстрирует полноценные возможности периферийных вычислений, а специализированное ИИ-оборудование показывает методы аппаратного ускорения.

Выберите процедуры установки, подходящие для вашей платформы.

Платформы на базе Arduino (Nicla Vision, XIAOML Kit)

Встраиваемые системы на базе Arduino дают прямой контроль над оборудованием с минимумом программных прослоек, что делает их идеальными для понимания ограничений ресурсов и методов оптимизации. Среда разработки ориентирована на быструю обратную связь между изменениями кода и поведением системы.

Установка Arduino IDE:

  1. Скачайте Arduino IDE 2.0 с сайта arduino.cc/software
  2. Установите программу, следуя мастеру установки для вашей платформы
  3. Запустите Arduino IDE и откройте меню File → Preferences (Файл → Настройки)
  4. Добавьте ссылки на пакеты поддержки плат:
    • для XIAOML Kit: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • для Nicla Vision: ссылка указана в Boards Manager (менеджере плат) Arduino IDE

Установка пакетов поддержки плат:

  1. Откройте Tools → Board → Boards Manager (Инструменты → Плата → Менеджер плат)
  2. Найдите свою платформу:
    • XIAOML Kit: введите «ESP32» и установите «esp32 by Espressif Systems»
    • Nicla Vision: введите «Arduino Mbed OS Nicla Boards» и установите пакет
  3. Выберите свою плату в меню Tools → Board (Инструменты → Плата)
  4. Установите нужные библиотеки через Library Manager (менеджер библиотек)

Основные библиотеки:

  • TensorFlow Lite Micro
  • драйверы камер для конкретной платы
  • библиотеки интерфейсов датчиков (I2C, SPI)

Платформа Grove Vision AI V2

Эта платформа демонстрирует ИИ с аппаратным ускорением на выделенных нейропроцессорных блоках и показывает, как специализированный кремний достигает производительности, недоступной универсальным процессорам. Визуальный интерфейс программирования позволяет быстро прототипировать, а традиционные среды разработки дают больше возможностей для настройки.

Настройка SenseCraft AI:

  1. Создайте учётную запись на сайте sensecraft.seeed.cc
  2. Подключите Grove Vision AI V2 через USB
  3. Откройте устройство в веб-интерфейсе SenseCraft AI
  4. Для визуального программирования локальная установка программ не требуется

Настройка Arduino IDE (для собственной разработки):

Следуйте инструкциям для платформ на базе Arduino, описанным выше, и используйте в менеджере плат ссылку на пакет Seeed Studio.

Платформа Raspberry Pi

Среда Raspberry Pi соединяет ограничения встраиваемых систем с полноценными вычислительными возможностями: студенты знакомятся и с оптимизацией ресурсов, и с продвинутыми ML-фреймворками. Такой двойной взгляд показывает, как вычислительные ресурсы влияют на выбор алгоритмов и архитектуру системы.

Установка операционной системы:

  1. Скачайте Raspberry Pi Imager
  2. Запишите Raspberry Pi OS (рекомендуется 64-разрядная версия) на microSD-карту объёмом не меньше 32 ГБ
  3. Во время записи настройте доступ по SSH и учётные данные Wi-Fi
  4. Вставьте записанную SD-карту и включите Raspberry Pi

Настройка программной среды:

Следующие команды создают полноценную среду разработки ML на Python с правильным управлением зависимостями:

# Обновление системных пакетов
sudo apt update && sudo apt upgrade -y

# Установка инструментов разработки Python
# python3-pip: установщик пакетов Python
# python3-venv: создание виртуальных окружений
# python3-dev: заголовочные файлы для разработки на Python
sudo apt install python3-pip \
                 python3-venv \
                 python3-dev -y

# Установка зависимостей ML-фреймворков
# libatlas-base-dev: библиотека линейной алгебры (BLAS/LAPACK)
# libhdf5-dev: библиотека формата данных HDF5
# libhdf5-serial-dev: последовательная версия HDF5
sudo apt install libatlas-base-dev \
                 libhdf5-dev \
                 libhdf5-serial-dev -y

# Установка зависимостей компьютерного зрения
# libcamera-dev: библиотека интерфейса камеры
# python3-libcamera: привязки Python для libcamera
# python3-kms++: библиотека установки режима ядра (kernel mode setting)
sudo apt install libcamera-dev \
                 python3-libcamera \
                 python3-kms++ -y

# Создание виртуального окружения для проектов
python3 -m venv ~/ml_projects
source ~/ml_projects/bin/activate

# Установка основных пакетов ML
# tensorflow: основной фреймворк ML
# tensorflow-lite: оптимизирован для периферийных и мобильных устройств
# opencv-python: библиотека компьютерного зрения
# numpy: основа численных вычислений
pip install tensorflow \
            tensorflow-lite \
            opencv-python \
            numpy

Настройка инструментов разработки

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

Настройка последовательной связи (Serial)

Последовательная связь — основной интерфейс для отладки и сбора данных во встраиваемых системах. Она показывает поведение системы, без чего невозможно понять ограничения производительности и возможности оптимизации.

Windows:

  • установите подходящие драйверы USB-to-serial (CH340, FTDI или драйверы конкретной платы);
  • проверьте в диспетчере устройств, что плата распознаётся.

macOS/Linux:

  • большинство адаптеров USB-to-serial работают без дополнительных драйверов;
  • проверить распознавание устройства можно командой ls /dev/tty* (macOS/Linux);
  • добавьте пользователя в группу dialout: sudo usermod -a -G dialout $USER (Linux).

Настройка IDE

Параметры среды разработки напрямую влияют на эффективность цикла «написать — проверить — развернуть», который характерен для разработки встраиваемых систем. Правильная настройка сокращает время отладки и даёт ясную обратную связь о производительности системы.

Параметры Arduino IDE:

  • выберите нужный COM-порт в меню Tools → Port (Инструменты → Порт);
  • задайте правильную плату и процессор;
  • проверьте скорость загрузки (обычно 115200 бод);
  • включите подробный вывод при компиляции для отладки.

Разработка на Raspberry Pi:

  • настройте SSH-ключи для удалённой разработки;
  • установите VS Code с расширениями Python и Remote SSH;
  • настройте доступ к Jupyter Notebook для интерактивной работы.

Проверка среды

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

Тесты распознавания оборудования

Ниже приведены проверочные процедуры, которые тестируют основные функции, необходимые для лабораторных работ: обмен данными с оборудованием и корректную работу программных библиотек.

Платформы Arduino:

void setup() {
  // Запуск последовательного порта на скорости 115200 бод
  Serial.begin(115200);
  Serial.println("Development environment test");
  Serial.print("Board: ");
  Serial.println(ARDUINO_BOARD);
}

void loop() {
  Serial.println("Environment operational");
  delay(1000);
}

Raspberry Pi:

# Проверка интерфейса камеры
libcamera-hello --timeout 5000

# Проверка среды ML на Python
python3 -c \
  "import tensorflow as tf; print('TensorFlow:', tf.__version__)"
python3 -c \
  "import cv2; print('OpenCV:', cv2.__version__)"

Grove Vision AI V2:

  • проверьте, что устройство видно в веб-интерфейсе SenseCraft AI;
  • протестируйте базовое развёртывание модели через визуальный интерфейс программирования.

Типичные проблемы при настройке и их решения

Трудности при настройке — обычное дело, и они дают ценный опыт в понимании ограничений встраиваемых систем и методов отладки. Ниже описаны решения для наиболее частых проблем.

Проблемы с подключением устройства:

  • убедитесь, что USB-кабель передаёт данные, а не только питание;
  • установите драйверы USB для платформы, если устройство не распознаётся;
  • попробуйте другие порты USB или USB-хаб, если соединение нестабильно.

Ошибки компиляции:

  • проверьте, что в IDE выбраны правильная плата и процессор;
  • убедитесь, что все нужные библиотеки установлены в совместимых версиях;
  • проверьте, достаточно ли места на диске для компиляции.

Ошибки во время работы:

  • убедитесь, что блок питания достаточно мощный (особенно для работы камеры);
  • проверьте совместимость и формат SD-карты (Raspberry Pi);
  • проверьте распределение памяти под ML-модели в рамках ограничений платформы.

Сетевое подключение (платформы с Wi-Fi):

  • проверьте учётные данные сети и протоколы безопасности;
  • проверьте настройки брандмауэра для доступа инструментов разработки;
  • убедитесь, что сеть разрешает обмен данными между устройством и компьютером разработчика.

Поиск и устранение неисправностей

Типичные аппаратные проблемы:

  • Устройство не распознаётся: убедитесь, что USB-кабель передаёт данные, попробуйте другие порты;
  • Ошибки загрузки: проверьте выбор платы и настройки порта в IDE;
  • Проблемы с питанием: проверьте достаточность питания, особенно для работы камеры;
  • Ошибки памяти: убедитесь, что модель укладывается в ограничения платформы.

Программные проблемы:

  • Конфликты библиотек: используйте совместимые версии, указанные в руководствах по настройке;
  • Ошибки компиляции: проверьте, что все зависимости установлены правильно;
  • Сетевое подключение: проверьте настройки брандмауэра и разрешения сети.

Ресурсы для конкретных платформ:

Поддержка сообщества:

  • GitHub Issues: сообщайте об ошибках и предлагайте функции через репозиторий проекта;
  • Форумы: сообщества конкретных платформ на сайтах Arduino, Raspberry Pi и Seeed Studio;
  • Stack Overflow: задавайте вопросы с тегами соответствующих платформ.

Готовность к лабораторным работам

Когда среда разработки настроена и проверена, у вас есть базовые инструменты для программирования встраиваемых ML-систем. Навыки, полученные при настройке среды (понимание цепочек инструментов, управление зависимостями и проверка работоспособности системы), пригодятся во всех последующих лабораторных работах.

Настроенная среда поддерживает весь рабочий процесс: от реализации алгоритма до развёртывания на оборудовании и оптимизации производительности. В обзоре лабораторных работ собраны категории упражнений по сложности и учебным целям; они систематически опираются на эти базовые навыки.

Рекомендуемая последовательность:

  1. Начните с простых упражнений на датчики, чтобы проверить работу оборудования.
  2. Перейдите к приложениям ML с одним типом данных (изображения или звук).
  3. Затем переходите к мультимодальным упражнениям и задачам оптимизации.

Каждое лабораторное упражнение включает подробные процедуры реализации, ожидаемые показатели производительности и советы по поиску неисправностей с учётом требований конкретного проекта. Созданная вами среда разработки открывает путь к полному спектру встраиваемых ML-приложений и методов оптимизации.