Произведем первое включение контроллера fischertechnik ROBOBTICS TXT Controller (далее TXT). Для этого из набора берем сам контроллер и блок питания (БП) на 9 Вольт и 2,5 Ампера.
На шилдике БП есть такие обозначения:
fischertechnik Model: MTX-30-090-2500 Pri: 230VAC 50Hz 0.4A Sec: 9VDC 2.5A
В гнездо «9V- IN» на верхней торцевой панели контроллера TXT вставляем разъем от БП, включаем БП в розетку 220 Вольт и нажимаем, удерживая 2 секунды, на TXT кнопку ON/OFF пока кнопка не засветится синим цветом.
После включения и начала загрузки операционной системы на экране TXT будет виден статусбар, показывающий ход загрузки, затем мы увидим верхнюю статусную строку, в верхней половине экрана «NO PROGRAM», ниже три пункта «File», «Setting», «Test».
Экран TXT сенсорный, поэтому нажимая на пункты меню, мы можем в них войти.
«File» - здесь пока пусто, но в будущем здесь будут размещены программы для запуска.
«Settings» - это экран настройки TXT, позволяет выбрать:
- «Role» - роль контроллера TXT (Master — ведущий, Extension — добавочный),
- «Language» - язык надписей (русского нет),
- «Network» - сеть, для настройки BlueTooth соединения (pairing code), и WLAN Setup — для настройки WiFi, как точка доступа или как клиент.
- «Info» - номера версий контроллера Id, App, Sys. Нажав в верхнем правом углу стрелку вниз, можно прокрутить экран до информации по WiFI (SSID — имя WiFi-точки запущенной на TXT, security key — пароль WiFi) и BT (device name — BT имя устройства контроллера TXT, pairing code — код для подключения устройств (ПК, смартфон и т.д.) к TXT по BT).
- «Date & time» - прокрутив экран ниже, увидим пункт настройки даты и времени на TXT. На тыльной стороне корпуса TXT есть гнездо для установки батарейки CR2032 3Вольт для питания встроенных часов реального времени. Если вставить батарейку и установить дату и время, то часы на контроллере TXT будут точно работать даже после отключения БП.
«Test» - позволяет проиграть звуки, записанные в память TXT.
Соединение с ПК
После первого включения и осмотра пунктов меню TXT, подключил его кабелем mini-USB к ноутбуку под управлением Linux Ubuntu. На экране ноутбука сразу же всплыло системное сообщение «Проводное соединение 2 Соединение установлено». Так, очень интересно! Уточним в терминале командой ifconfig детали:
eth2 Link encap:Ethernet HWaddr 00:54:58:54:ff:02 inet addr:192.168.7.1 Bcast:192.168.7.3 Mask:255.255.255.252 inet6 addr: fe80::254:58ff:fe54:ff02/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:57 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:656 (656.0 B) TX bytes:10105 (10.1 KB)
Во второй строчке видно (выделил жирностью), что ноутбук получил от TXT ip-адрес 192.168.7.1 с маской сети 255.255.255.252. Прямо классическая задачка из ЕГЭ по информатике, из которой мы легко высчитываем, что с такой маской сети может быть всего 4 уникальных хоста, при этом адреса 192.168.7.0 и 192.168.7.3 — это широковещательные адреса (broadcast), следовательно ip-адрес самого контроллера TXT по моим расчетам должен быть — 192.168.7.2. Проверяю это командой ping 192.168.7.2:
$ ping 192.168.7.2 PING 192.168.7.2 (192.168.7.2) 56(84) bytes of data. 64 bytes from 192.168.7.2: icmp_req=1 ttl=64 time=0.549 ms 64 bytes from 192.168.7.2: icmp_req=2 ttl=64 time=0.384 ms 64 bytes from 192.168.7.2: icmp_req=3 ttl=64 time=0.359 ms 64 bytes from 192.168.7.2: icmp_req=4 ttl=64 time=0.400 ms
Пинг проходит, значит, TXT с таким IP-адресом работает!
Чуть позже нашел информацию в интернет, что номера IP-адресов ПК и TXT зависят от типа соединения:
через USB кабель IP-адрес ПК - 192.168.7.1, IP-адрес TXT - 192.168.7.2,
через WiFi IP-адрес ПК - 192.168.8.1, IP-адрес TXT - 192.168.8.2,
через Bluetooth IP-адрес ПК - 192.168.9.1, IP-адрес TXT - 192.168.9.2.
Загрузка файлов с ПК на TXT
Составлять программы для TXT на ПК и потом загружать в TXT можно программой ROBO Pro, идущей в комплекте с набором. Однако, во-первых, это ПО работает только под Windows, а у меня на ноутбуке Linux. Во-вторых, на TXT работает операционная система Linux, поэтому он гарантированно будет работать с Linux на ПК. В-третьих, для преимущества в соревнованиях лучше программировать роботов на текстовых языках, например, C/C++. В-четвертых, правительство РФ приняло план на 2018-2020 по переходу на отечественное ПО, в т.ч. и ОС, а в реестре российского программного обеспечения из ОС присутствуют только дистрибутивы Linux. Поэтому я буду пробовать кросспрограммирование контроллера TXT с Linux-ноутбука.
Сначала пробую подключиться с ПК (ноутбук под Linux) к TXT для удаленного управления по SSH (https://ru.wikipedia.org/wiki/SSH). Воодушевил меня на это пост Григория Зайцева на форуме сайта Пакпак про программирование TXT С-компилятором linaro и загрузки откомпилированной программы в TXT по SSH. В этом же тексте было написано, что при подключении к TXT нужно вводить login ROBOPro и пароль ROBOPro. На ПК в терминале ввожу команду, подтверждаю, что хочу продолжать соединение, ввожу пароль и вижу:
$ ssh ROBOPro@192.168.7.2 The authenticity of host '192.168.7.2 (192.168.7.2)' can't be established. ECDSA key fingerprint is d0:79:84:13:81:5f:07:62:11:23:33:8e:57:22:fa:45. Are you sure you want to continue connecting (yes/no)? y Please type 'yes' or 'no': yes Warning: Permanently added '192.168.7.2' (ECDSA) to the list of known hosts. ROBOPro@192.168.7.2's password: _____ _____ _ _ | ___|_ _| | |___ _| |_ | |_ | |_____| __\ \/ / __| | _| | |_____| |_ > <| |_ |_| |_| \__/_/\_\\__| Welcome to FT-txt $
Ура! Подключились! В сеансе соединения по SSH можно теперь в терминале на ПК вводить команды — они будут выполняться прямо на контроллере TXT.
Введем команду ls — показать список файлов и папок в текущей папке: $ ls ROBOProFiles SoundFiles TxtControlMain run.sh update.sh
В этом списке видим папки ROBOProFiles (для программ TXT) и SoundFiles (для звуковых файлов), файл TxtControlMain — это скорее всего главная программа управления контроллером TXT, которая запускается на TXT при запуске, файлы run.sh и update.sh - полагаю, что это скрипты для запуска и обновления.
Далее я выяснил, что при подключении текущая папка имеет путь /opt/knobloch/ , следовательно файлы программ TXT нужно будет загружать в папку /opt/knobloch/ROBOProFiles/.
Кросскомпилятор Linaro
Попробую написать простую программу HelloWorld.c откомпилировать ее кросскомпилятором linaro, загрузить в TXT и запустить.
Скачал на linux-ноутбук кросскомпилятор Linaro, введя в терминале команду wget: wget https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabihf/gcc-linaro-7.2.1-2017.11-i686_arm-linux-gnueabihf.tar.xz
К слову, по ссылке https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/a… могут найти для себя версию кросскомпилятора linaro и пользователи Wibdows.
Затем распаковал этот архив. Кросскомпилятор к работе готов. Пробую написать простую программу, сохранив ее в файл hellotxt.c:
#include <stdio.h> int main(int argc, char* argv) { printf("Hello TXT\n"); return 0; }
Теперь компилируем ее, войдя в папку, куда распаковали архив с Linaro, и введя в терминале такую команду:
$ ./bin/arm-linux-gnueabihf-gcc hellotxt.c -o hellotxt
В папке появился скомпилированный исполняемый файл hellotxt.
Теперь его нужно скопировать в контроллер TXT в папку /opt/knobloch/ROBOProFiles/ через ssh-соединение командой scp (регистр символов важен) логин ROBOPro и пароль ROBOPro:
$ scp hellotxt ROBOPro@192.168.7.2:/opt/knobloch/ROBOProFiles/ ROBOPro@192.168.7.2's password: hellotxt 100% 12KB 12.4KB/s 00:00 $
Этот файл теперь даже видно через пункт «File» на экране TXT, правда, запуск этого файла через тачскрин контроллера никакого видимого эффекта не производит, но его можно запустить с ПК через SSH и увидеть текст, который он выводит.
Давайте запустим эту программу через ssh-сеанс, для этого применим команду cd (сменить текущий каталог) и ls (вывести список файлов/папок):
$ cd ROBOProFiles/ $ ls hellotxt $ ./hellotxt Hello TXT $
Ура! Надпись «Hello TXT » выводится. Программа работает!
Далее хотелось бы в своих программах на C/C++ задействовать устройства TXT, а именно: экран, тач, динамик, внешние датчики и моторы.
Будем экспериментировать с fischertechnik дальше.