воскресенье, 15 сентября 2013 г.

Запуск C программы на EV3 блоке

В данной статье будет рассмотрено, как скомпилировать и запустить программу, написанную на языке С, на EV3 блоке без изменения стандартной прошивки. Эта инструкция была проверена в Linux (Ubuntu 13.04), но я полагаю, что она подойдет и для других дистрибутивов Linux или Windows с незначительными изменениями.

Аппаратные требования:

  • Блок EV3
  • Wi-Fi адаптер (например, NetGear WNA1100)
  • Карта памяти MicroSD

Установка С компилятора

Компилятор для языка С под архитектуру ARM можно скачать здесь или следующей командой в Linux:
wget -c http://www.codesourcery.com/sgpp/lite/arm/portal/package4571/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

Далее надо создать папку для компилятора и распаковать туда архив:
mkdir CodeSourcery
tar -jxvf ~/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C ~/CodeSourcery/



Добавить путь до компилятора в системную переменную PATH:
echo ‘export PATH=~/CodeSourcery/arm-2009q1/bin/:$PATH’ >> ~/.bashrc && . ~/.bashrc

После этого шага требуется открыть новое окно терминала для обновления переменной PATH.

Написание и компиляция программы

Создайте файл hello.c со следующим кодом:

#include <stdio.h>
int main()
{
   printf(“Hello World!\n”);
   return 0;
}


Скомпилируйте этот код, используя команду:
arm-none-linux-gnueabi-gcc hello.c -o hello

Скопируйте программу hello с компьютеру на карту памяти MicroSD. Вставьте карту в EV3. Этот метод потребует наличие MicroSD адаптера, альтернативный метод, описанный ниже, использует команду scp.

Вход в консоль EV3 и запуск программы

EV3 блок может быть подключен к беспроводной сети, используя Wi-Fi адаптер. После подключения к сети, его ip адрес (xxx.xxx.xxx.xxx) может быть обнаружен во вкладке EV3 "Brick Info":


Теперь можно подключиться к EV3 через telnet:
telnet 192.168.43.114 (в эту команду надо подставить ip адрес своего блока)

Используя "root" как логин, можно подключиться к блоку. Поменяйте папку на ту, которая содержит программу на MicroSD карте, эта папка должна находиться в media:
cd /media/card/

Наконец, запустите программу:
./hello

Она должна вывести "Hello World!" на экран:


Использование команды scp для копирования программы

Также возможно скопировать программу с компьютера на EV3 блок, используя scp команду. После входа в консоль EV3 через telnet, надо запустить dropbear команду - реализацию ssh сервера. На компьютере запустите следующую команду, она скопирует программу hello на блок:
scp hello root@192.168.43.114:/media/card

Данная статья является переводом оригинальной статьи "EV3" Lauro Ojeda с согласия автора.

2 комментария:

  1. А не проще подключится к кирпичу через ssh, установить mc, там написать файл.с, скомпилировать и запустать ?

    ОтветитьУдалить
  2. Очень позновательно! а есть возможность делать это без WiFi?

    ОтветитьУдалить

Related Posts Plugin for WordPress, Blogger...