Nxt управление через bluetooth

Организация управления роботом Lego NXT c помощью BLUETOOTH
статья по информатике и икт на тему

Роботы LEGO NXT серии Mindstorms получили широкое распространение в качестве устройств для апробации алгоритмов управления робототехническими средствами. Целью работы являлось исследование удаленного управления роботом посредством Bluetooth-соединения. Проведено тестирование возможностей встроенного в робота LEGO NXT модуля беспроводной связи CSR BlueCore 4 v2.0. Тестирование осуществлялось пересылкой пакетов данных различной длины по беспроводному каналу между роботом и компьютером. Полученные результаты затем сравнивались с показателями, требующимися для решения реальных задач. Поставленный эксперимент наглядно продемонстрировал, что имеющийся в роботе Bluetooth-модуль нe обеспечивает достаточной скорости передачи данных. В работе предложено переносить требовательные ко времени реакции задачи с компьютера на управляющий микроконтроллер робота с целью обойти ограничения беспроводного канала связи в задаче управления роботом в реальном времени.

В настоящее время роботы Mindstorms NXT компании LEGO нашли самое широкое применение в учебном процессе в высших учебных заведениях. Роботы используются при проведении различных соревнований по мехатронике, робототехнике и искусственному интеллекту. Ежегодно проводится до 100 крупных соревнований международного уровня, самым крупным из которых является WRO (World Robot Olympiad — Всемирная олимпиада роботов). В России крупнейшим мероприятием подобного уровня являются ежегодные соревнования Робофест. Большое развитие получило движение робототехнических кружков.

Распространенность и популярность роботов NXT серии Mindstorms обоснована, в первую очередь, их доступностью широкому кругу пользователей. Процесс программирования и сборки роботов был максимально упрощен компанией LEGO. Сборка конструкции робота осуществляется с помощью универсальных строительных блоков. Написание управляющей программы возможно с использованием простых и наглядных в освоении графических языков, например NXT-G, а также более серьезных графических и процедурных языков, таких как LabView или С. Инженеры LEGO создали модульный конструктор с большими возможностями для построения как простых, так и сложных роботов. Исходные тексты управляющей программы, описания протоколов, а также полное описание внутренней архитектуры находятся в открытом доступе, что открывает широкое поле для деятельности конструкторам и любителям со всего мира. В связи с этим роботы LEGO нередко используются для апробации различных алгоритмов управления робототехническими устройствами.

Аппаратное устройство робота Lego NXT

Управляющий блок робота, так называемый брик, оснащен управляющим микроконтроллером AT91SAM7S256 производства корпорации Atmel на базе 32-битного микропроцессора ARM7. В табл. 1 приведены основные характеристики микроконтроллера.

Читайте также:  Нет значка блютуз вин 10

ARM7TDMI 32-битный, RISC- архитектура

Объем внутренней Flash-памяти

Объем внутренней SRAM-памяти

Таблица 1. Основные характеристики AT91SAM7S256

В качестве управления силового модуля (сервоприводы робота) используется микроконтроллер на базе 8-битного ATmega48, который в данном случае способен управлять тремя моторами. Брик оснащен небольшим динамиком, диапазон воспроизводимых частот которого составляет 2-16 кГц. Вывод информации осуществляется посредством монохромного LCD- экрана с разрешением 100х64 пикселей и физическим размером 40,6х26 мм. Робот также оснащен четырьмя кнопками, которые предназначены для навигации по интерфейсу посредством иерархического меню. Доступны четыре порта для ввода, три порта для вывода, а также интерфейс USB 2.0, работающий в режиме Full speed (12 Мбит/с). Также робот способен получать данные от четырех датчиков. В табл. 2 представлены основные типы датчиков. Для беспроводного соединения доступен модуль Bluetooth 2.0 EDR, характеристики которого представлены в табл. 3. Питание робота осуществляется от шести батареек типа АА либо от литий-ионного аккумулятора емкостью 1400 мА/ч.

Определяет до шести различных цветов: синий, зеленый, красный, желтый, белый и черный

Определяет уровень яркости

Реагирует на нажатие на кнопку

Измеряет расстояние в диапазоне от 9 до 75 см

Позволяет определить направление Севера

Определяет ускорение и направление движения робота

Таблица 2. Основные типы датчиков робота LEGO NXT

Объем внутренней RAM- памяти

Объем внешней Flash- памяти

Таблица 3. Характеристики модуля CSR BlueCore 4 v2.0 и EDR System

На рис. 1 представлена структурная схема, которая иллюстрирует взаимосвязь всех компонент робота.

Рис. 1. Структурная схема робота LEGO NXT

Способы управления роботом Lego NXT

Аппаратное и программное обеспечение Lego NXT, представленное прошивкой LEGO MINDSTORM Firmware 1.28, позволяют осуществлять управление роботом тремя возможными способами.

Первым из способов является подключение NXT к персональному компьютеру посредством USB-кабеля. Использование подобного способа управления ограничивает удаленность робота от компьютера максимальной длиной кабеля, которая составляет пять метров. Также это требует наличия определенного программного обеспечения, установленного на компьютере, с которого осуществляется управление роботом. В реализации микроконтроллера AT91SAM7S256 передача сообщений через USB организована по принципу FIFO-очереди длиной в 328 байт. Команды в виде опкодов посылаются с персонального компьютера, а затем обрабатываются виртуальной машиной робота. Структура команды с двумя аргументами представлена в табл. 4.

Источник

Дистанционное управление NXT через Bluetooth

На прошедшем недавно V открытом городском фестивале технического творчества учащихся в ДПиШ г.Челябинска был один вид соревнований, связанный с дистанционным управлением роботом. В связи с этим, я задался вопросом, как управлять роботом удобнее всего?

Читайте также:  Колонка портативная беспроводная bluetooth sven ps 400

Варианта возможно всего два:

Требования к программе выделим следующие:

  • Возможность поворота и одновременно движения вперед;
  • Возможность двигать дополнительным мотором, кроме двух ведущих;
  • Удобство использования.

Самая распространенная ОС на устройствах, имеющихся у нас в наличии – Андройд. Поэтому и рассматриваться будут приложения для этой ОС. Ну и рассмотрим только бесплатные приложения.

В первую очередь, что нам предлагает Google Play.

  1. NXT Remote Control от автора Jacek Fedorynski.
    Страница в Google Play.
    Внешний вид приложения, подключенного к NXT:
    Достоинства: небольшой размер (45 Кб), возможность регулировки мощности.
    Недостатки: нельзя одновременно ехать вперед и влево. Нет возможности управлять третьим мотором.
    Итог: не подходит.
  2. NXT Controller Plus от Lukas Dilik.
    Страница в Google Play.
    Внешний вид приложения:
    Достоинства: возможность работы с датчиками (все 4 порта одновременно), плавные повороты. Небольшой размер (233 Кб).
    Недостатки: По-прежнему нет возможности управлять третьим мотором.
    Итог: не подходит.
  3. NXT Remote by iCount от iCount.pl.
    Страница в Google Play.
    Внешний вид приложения:
    От предыдущего отличается только тем, что нет возможности работы с датчиками.
    Итог: не подходит.
  4. NXT GSensor Remote от Ferdinand Stueckler.
    Страница в Google Play.
    Внешний вид приложения:
    Особенностью приложения является то, что управление роботом осуществляется с помощью наклона смартфона (планшета) в нужную сторону. Это забавно, но очень не практично. Нет управления третьим мотором.
    Итог: не подходит.

Подведем небольшой итог. Среди рассмотренных бесплатных приложений ни одно не удовлетворяет всем условиям. Использовать их для соревнований нельзя.

Обратимся к платным приложениям. Установкой и апробацией их не занимался, поэтому только информация, получаемая из Google Play.

  1. NxtRemote от SmartphoneRemote .
    Страница в Google Play.
    Внешний вид приложения:
    С помощью данной программы возможно следующее:
    Управление всеми моторами;
    Считывание показаний всех сенсоров;
    Считывание списка программ и запуск нужной.
    Стоимость: 122,38 руб.
    Итог: подходит.

Другие платные приложения не рассматриваю, поскольку не нашел среди них ни одного, удовлетворяющего всем условиям.

Среди рассмотренных бесплатных приложений не нашлось ни одного, подходящего по всем параметрам. Надо либо покупать приложение. либо писать свое. На просторах интернета встретил несколько статей, каким образом осуществляется взаимодействие. Будем работать в этом направлении.

Управление с компьютера рассмотрим в следующей статье.

Источник

Android, NXT и Bluetooth

Уже многие распаковывали, описывали и программировали для Mindstorms NXT, поэтому круг поклонников данной серии довольно широк. Сегодня пришло время расширить этот круг описанием особенности данного конструктора — bluetooth, благодаря которому конструктор может спокойно управляться с телефона.

Читайте также:  Поддерживает ли мой ноутбук блютуз

Статья будет полезна тем, кто хочет просто поиграть с чем-нибудь механическим в свободное от работы время.

Вступление

С детства люблю различные конструкторы, поэтому этим летом решил купить себе Mindstorms 8547, благо цена устраивала и в описании упоминался bluetooth. К моему великому разочарованию выяснилось, что абсолютно не интересно сидеть и складывать кубики вместе — чувствуешь бездарное расходование времени. Но программная сторона вопроса манила. Чтение User Guide показало, что должна быть возможность управления роботом с помощью bluetooth, хотя бы банальными движениями — вперёд/назад/вправо/влево. В Google Play уже достаточно программ управления, но задача в том, чтобы сделать такую самостоятельно.

Дано:
1. Телефон на базе Android (LG P970)
2. Машинка из Mindstorms NXT 2.0

image

Реализация

После нескольких ночей в google выяснилось, что сайт Lego содержит всю необходимую информацию (не надеялся на такого подарок). Есть описание всего внутреннего содержимого блоков, сенсоров и протоколов передачи данных. Нас интересует только «Bluetooth Developer Kit». Внутри 4 файла:

• LEGO MINDSTORMS NXT Bluetooth Developer Kit.pdf
• Appendix 1-LEGO MINDSTORMS NXT Communication protocol.pdf
• Appendix 2-LEGO MINDSTORMS NXT Direct commands.pdf
• Appendix 3-LEGO MINDSTORMS NXT ARM7 Bluetooth Interface specification.pdf

Итого, вся задача сводится к тому, чтобы:
1. установить сопряжение телефона и блока управления NXT
2. подключиться к блок NXT
3. передать правильную команду.
4. получить ответ

Формат команды:

byte 0: младшая часть длины команды
byte 1: старшая часть длины команды
byte 2: тип команды
byte 3: команда
byte . аргументы, зависят от команды.

Примеры:

Получение заряда батареи:

GETBATTERYLEVEL
Byte 0: 0x00 or 0x80
Byte 1: 0x0B

Return package:
Byte 0: 0x02
Byte 1: 0x0B
Byte 2: Status Byte
Byte 3-4: Voltage in millivolts (UWORD)

код:

byte[]command = new byte[] 0x02, 0x00, 0x00, 0x0b
>;
mmOutStream.write(command);
mmOutStream.flush();

Движение вперёд:

byte[]command = new byte[] 0x0C,
0x00,

Запуск залитой программы:

Зная протокол обмена, реализация уже не представляет проблемы. Задача подключения к блоку управления тривиальна и описана на сайта Android, единственный интересный момент — это создание сокета. Создать его получилось, используя следующий код:

Method m = device.getClass().getMethod(«createRfcommSocket», new Class[] < int.class >);
BluetoothSocket sendSocket = (BluetoothSocket) m.invoke(device, 1);

Источник

Оцените статью
Adblock
detector