Глава 3. Подготовка к работе с микрокомпьютером NanoPi-AR
Одноплатный микрокомпьютер NanoPi-AR, по умолчанию, поставляется с установленной на него YoctoBased Linux. Таким образом, он полностью готов к работе в рамках решаемых с помощью робототехнических наборов задач. Однако, при необходимости, пользователь может установить на него любую из совместимых с микрокомпьютером операционных систем. В последующих разделах будут продемонстрированы базовые возможности функционала микрокомпьютера NanoPi-AR, применительно к штатной операционной системе. Разбираемые примеры, а также образ с операционной системой доступны на официальном Git’е компании ООО «Прикладная робототехника» В официальном Git, а также в разделе «Учебные материалы» официального сайта компании находится архив с примерами, которые будут разобраны далее.
3.1. Подключение к плате расширения NanoPi-AR Shield
Прежде чем осуществлять подключение к плате, необходимо установить программу для работы с сетевым протоколом SSH, например, бесплатную программу MobaXTerm, которая доступна для скачивания по ссылке. После этого необходимо подключить плату расширения NanoPi-AR Shield к ПК при помощи кабеля MicroUSB к соответствующему разъему, находящемуся на плате микрокомпьютера NanoPi-AR. После этого переключить тумблер питания. При подаче питания на плате расширения должен загореться зелёный светодиод, а на микрокомпьютере NanoPi-AR загорится красный светодиод.
Процесс загрузки микрокомпьютера можно наблюдать с помощью зелёного светодиода на NanoPi-AR.
При подключении платы к ПК в диспетчере устройств появится сетевой адаптер Remote NDIS Compatible Device, через который будет осуществляться подключение. Для подключения необходимо открыть окно MobaXTerm и войти во вкладку Session (Рис. 3.1). После чего откроется окно настроек подключения.

Рис. 3.1. Кнопка «Session» в окне программы MobaXTerm
В окне настроек подключения (Рис. 3.2) необходимо выбрать тип подключения «SSH», ввести стандартный адрес платы «192.168.42.1» и имя пользователя «root», включив перед вводом имени пользователя параметр «Specify username», после чего нажать кнопку «ОК» для запуска подключения к плате.

Рис. 3.2. Окно настроек подключения
Далее в терминале появится командная строка с просьбой ввести пароль пользователя (Рис. 3.3). В данной строке необходимо ввести стандартный пароль «12345» и нажать «Enter». Пароль при вводе не отображается. Необходимо помнить, что после успешного входа пароль необходимо изменить из соображения безопасности данных.

Рис. 3.3. Строка ввода пароля
После успешного входа в окне программы слева от терминала появится файловый менеджер, в котором можно работать с файлами (Рис. 3.4). Проверить то, что терминал находится в той же папке, что и файловый менеджер, можно с помощью ввода в терминале команды «ls», которая выводит список всех папок в текущем каталоге.

Рис. 3.4. Окно программы MobaXTerm с файловым менеджером
3.2. Работа с файловой системой
Ниже приведён список основных команд для работы с файлами через терминал:
pwd – возвращает адрес текущего каталога.
ls -1 – возвращает список файлов в текущем каталоге с подробным выводом данных о файлах.
cd <путь к каталогу> - переход в другой каталог из текущего расположения. Если не указан путь команда перейдёт в корневой каталог root. При указании “..”, вместо пути каталога, команда перейдёт в каталог на уровень выше.
mkdir <имя каталога> - создание каталога с заданным именем. Если нужно создать каталог не в текущей директории, то необходимо указать пусть до нужной директории.
touch <имя файла> - создание пустого файла заданного расширения с заданным именем. Если нужно создать файл не в текущей директории, то необходимо указать путь до нужной директории.
nano <имя файла> - открытие файла в текстовом редакторе nano.
cp <исходный путь> <конечный путь> - копирование указанного файла в другую директорию. Если необходимо скопировать директорию целиком, то после команды “cp” нужно указать флаг “-r”.
mv <исходный путь> <конечный путь> - перемещение указанного файла или каталога в другую директорию.
rm <путь к файлу> - удаление файла. Для удаления всех файлов в каталоге необходимо поставить “*”, вместо пути к файлу. Для удаления каталога нужно поставить флаг “-r”.
ls /dev/mmc* - вывод списка всех внутренних и внешних разделов.
mount <исходный путь> <конечный путь> - монтирование раздела в выбранный путь. Используется для работы с внешними накопителями.
umount <исходный путь> <конечный путь> - отключения раздела от выбранного пути. Используется для работы с внешними накопителями.
Cmake .. – сборка проекта в текущей папке.
make -j2 – компиляция проекта в исполняемый файл с использованием двух потоков процессора.
При отправке команды ls /dev/mmc* без подключенных внешних устройств выводится список внутренних разделов микрокомпьютера, cписок которых показан на Рис. 3.5.

Рис. 3.5. Список разделов микрокомпьютера NanoPi-AR
При подключении к плате карты памяти microSD, в списке разделов появится новый раздел с адресом /dev/mmcblk0. Для монтирования данного раздела необходимо использовать команду mount /dev/mmcblk0 / mnt (Рис. 3.6). После выполнения данной команды при просмотре содержимого раздела /mnt будет отображаться список файлов, находящийся в корне MicroSD карты. В данном случае, отображается папка "Исходники примеров к учебному пособию «Одноплатный микрокомпьютер NanoPi- AR»"с примерами по работе с данной платой, которую можно скачать по ссылке

Рис. 3.6. Монтирование раздела с картой microSD
3.3. Установка и запуск примеров
Для перехода в папку с примерами необходимо ввести команду «cd nanopi_examples/» и нажать клавишу «Enter». Для того, чтобы не вводить название папки целиком, можно ввести первые символы названия папки и нажать клавишу «TAB». В этом случае система сама пропишет название.
Если в корне существует несколько папок с похожими названиями, система пропишет только совпадающую часть, после чего нужно будет «подсказать» конец названия, введя нужное продолжение. После этого можно просмотреть список папок с помощью команды ls (Рис. 3.7).

Рис. 3.7. Просмотр списка файлов в папке
В данном каталоге находятся примеры для работы микрокомпьютера NanoPi-AR с Dynamixel-совместимыми модулями через протокол Dynamixel. В каждой папке с примером находится файл исходного кода с расширением .cpp и текстовый файл «CmakeLists.txt», отвечающий за сборку проекта из папки источников src. Сама папка src находится в каталоге с примерами и одинакова для всех проектов.
Рассмотрим типовую структуру файла CmakeLists.txt:
cmake_minimum_required(VERSION 3.14)
project(example)
file(GLOB SRC_DYNAMIXEL
«../src/dynamixel_sdk/*.cpp»
)
add_executable(example)
target_sources(example PRIVATE
example.cpp
${SRC_DYNAMIXEL}
)
target_compile_definitions(example PRIVATE -DFMT_HEADER_ONLY=1)
target_compile_options(example PRIVATE -Wno-psabi)
target_include_directories(example PRIVATE
../src
../src/dynamixel_sdk
)Здесь:
cmake_minimum_required – проверка версии Cmake с указанием минимальной версии.
project() - название проекта.
file .. – список файлов, используемых системой в сборке.
add_executable .. – название выходного исполняемого файла
target_sources .. – команда добавления источников в сборку.
target_compile_definitions – команда указания определений компиляции файлов в сборке.
target_compile_options – команда добавления параметров определений в сборку.
target_include_directories – команда добавления используемых каталогов в проект.
3.4. Компиляция и запуск проекта
Для сборки и компиляции проекта необходимо перейти в папку с проектом, используя для этого команду «cd». Далее необходимо создать папку, в которой будет собираться проект, с помощью команды «md» и перейти в созданную папку (Рис. 3.8).

Рис. 3.8. Создание папки «build» в каталоге проекта «example»

Рис. 3.9. Успешная сборка проекта
Теперь можно собрать проект. Для этого необходимо ввести команду «cmake ..», находясь в папке «build». Результат сборки показан на Рис. 3.9.
После сборки проекта в папке «build» появится список файлов, необходимых для компиляции проекта. Для компиляции необходимо использовать команду «make -j2» (Рис. 3.10)

Рис. 3.10. Компиляция проекта в исполняемый файл
Для запуска исполняемого файла нужно использовать команду «./<имя исполняемого файла>».