четверг, 12 июля 2018 г.

Программирование Lego NXT на текстовом языке NXC под Linux


Проверено на Linux Mint 18. 

Особенности:

 

 1  Чтобы программировать на NXC не нужно прошивать блок Lego NXT

 2  NXC — это си-подобный текстовый язык программирования конструкторов Lego NXT, аббревиатура расшифровывается как Not eXatly C (англ. не совсем Си).


Пример кода. Движение вперёд в течение 5 сек.

task main() //Определяем новую задачу. Обязательно нужно использовать main()
 {
      OnFwd(OUT_BC,75); // Подаём на двигатели, подключенные к портам B и C, 
// мощность 75%.
      Wait(5000); // ждем 5000 миллисекунд, т. е. 5 сек.
      Off(OUT_BC); // отключаем двигатели, подключенные к портам B и C.
 }

nxcEditor — программа для программирования на NXC под Linux. Чтобы программировать под Windows на NXC используется программа BricxCC.

 4  nxcEditor включает в себя помимо текстового редактора и компилятора nbc, симулятор робота Lego NXT. Это позволит виртуально отработать базовые алгоритмы на компьютере без конструктора Lego.


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


 

Установка вспомогательных программ

 

Совет. Работать мы будем преимущественно в терминале, поэтому потребуется вводить много команд. Их можно не перепечатывать из этой статьи, а копировать и вставлять в терминал. Комбинации Ctrl + Insert / Shift + Insert.

 1  Вначале установим gambas3 (аналог Visual Basic на Linux)


 1.1  Добавляем PPA-репозиторий

 sudo add-apt-repository ppa:gambas-team/gambas3

 1.2  Обновляем информацию о пакетах в системе

sudo apt update

 1.3  Непосредственно устанавливаем gambas3

 sudo apt install gambas3

 1.4  Далее можете убедиться, что программа установлена и посмотреть версию программы
which gambas3
gambas3 --version
у меня вывелись сообщения "/usr/bin/gambas3" и "3.11.2".

 2  Теперь установим компилятор nbc и утилиту nexttool. Вначале перейдём в домашнюю директорию для скачивания программы

cd ~

 3  Скачиваем файлы

wget https://sourceforge.net/projects/nxceditor/files/nbc_and_nexttool_07_2013_64.zip

 4  извлекаем их в папку

sudo unzip nbc_and_nexttool_07_2013_64.zip -d /usr/local/bin

 5  Заходим в эту папку

cd /usr/local/bin

 6  Делаем файлы nbc и nexttool исполняемыми

sudo chmod +x nbc nexttool

 7  Открываем файл sudoers (этот файл распределяет права между пользователями)

 sudo visudo

 8  Добавляем две строки в конце файла

ALL ALL = NOPASSWD: /usr/local/bin/nbc
ALL ALL = NOPASSWD: /usr/local/bin/nexttool
  9  Сохраняем изменения и закрываем файл sudoers.

Установка nxcEditor

 

 1  Зайдём в домашнюю директорию
cd ~

 2  Скачаем 64-разрядную программу по ссылке с официального сайта

sudo wget https://sourceforge.net/projects/nxceditor/files/nxcEditor/nxcEditor_v0.4.7_64.gambas.zip

другие варианты загрузки смотрите по ссылке 


 3  Программа nxcEditor не имеет репозитория. Для определенности такие программы я устанавливаю в папку /opt (хотя конечно можно выбрать любую папку). Поэтому извлекаем архив в /opt

sudo unzip nxcEditor_v0.4.7_64.gambas.zip -d /opt/nxcEditor

 4  Далее переходим в папку /opt/nxcEditor

cd /opt/nxcEditor

 5  и делаем файл программы исполняемым

sudo chmod +x nxcEditor_v0.4.7_64.gambas

 6  Пробуем запустить программу

./nxcEditor_v0.4.7_64.gambas
Если программа не запустилась, проверьте правильность выполнения всех шагов.

 7  Включите NXT-блок и соедините его USB-кабелем с компьютером.


 8  Щёлкните в программе по значку увеличительного стекла. NXT-блок должен автоматически определиться.

 9  Закройте программу.
Запуск nxcEditor из командной строки не очень удобен, поэтому создадим ярлык для запуска.


Создание ярлыка для nxcEditor

 

1. Создайте файл ярлыка в удобном редакторе (я использую nano, для тех, кто первый раз его использует: Ctrl + O — сохранить, Ctrl + X — выйти)
nano ~/.local/share/applications/nxcEditor.desktop

2. Вставьте следующий текст, сохранитесь и закройте документ.
#!/usr/bin/env xdg-open
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=nxcEditor
Exec=./nxcEditor_v0.4.7_64.gambas
StartupNotify=true
Comment=Программирование на языке NXC для Lego NXT
Path=/opt/nxcEditor/
Icon=gambas3
Categories=Development;


3. Разрешаем запуск ярлыка

sudo desktop-file-install ~/.local/share/applications/nxcEditor.desktop

Если возникает ошибка "sudo: desktop-file-install ~/.local/share/applications/nxcEditor.desktop: command not found", то установите вначале утилиту

sudo apt install desktop-file-utils

4. Ярлык готов! Можете добавить его из Меню на Рабочий стол. Для этого в Меню начните набирать название программы nxcEditor. Щёлкните правой кнопкой мыши по найденному ярлыку и выберите Добавить на рабочий стол.

Программирование в nxcEditor

 

В интернете можно найти много руководств по изучению языка NXC.

 1  Рекомендую к изучению пособие Александра Колотова (Университет Иннополис).


 2  Не менее интересно пособие Бенедеттелли (англ.). Примеры из этого учебника интегрированы в nxcEditor


 2.1  Например, находим код на 10 странице пособия.


 2.2  Выбираем в программе FileNew, чтобы создать новый проект.

 2.3  Нажимаем на меню HelpCode и указываем нужную страницу, т. е. 10. Нажимаем Enter.

Код из книги добавился автоматически! Не нужно ничего перепечатывать.
 3  Пособие Бенедеттелли также переведено на русский язык и доступно онлайн (русский перевод).

Бонус. Полезные ссылки

 

 1  Официальная страница программы nxcEditor http://nxceditor.sourceforge.net/

 2  Официальная страница программы BricxCC (Window) http://bricxcc.sourceforge.net/


 3  Видео-инструкция nxcEditorInstallation & Overview https://www.youtube.com/watch?v=qkQkNVtZIBo


 4  Видео об автоматической вставке кода со страницы учебника Бенедеттелли https://www.youtube.com/watch?v=QTuXATi7cf8


 5  NQC – язык программирования для блоков RCX – робототехнических конструкторов Lego первого поколения http://bricxcc.sourceforge.net/nqc/

Комментариев нет:

Отправить комментарий