Легко и просто управляем Lego-роботом из под ОС Android
Оценка пользователей: / 20
ПлохоОтлично 
14.02.14 08:17
LEGO AndroidНаверняка каждый в детстве мечтал о тех же кубики Lego. Для многих это навсегда осталось лишь детской мечтой.
Сегодня же в любом супермаркете можно не только увидеть, но и купить конструктор Lego. Дети и взрослые, сидя на полу, готовы день и ночь напролет его собирать.
LEGO Android-1
Компания LegoGroup значительно расширила диапазон игровых консолей. Это и покорители космоса, и отважные пожарные, и благородные пираты, и многие другие герои фильмов и сериалов. Наборы Lego очень реалистичны: поршни двигателя вращают колеса болида и он мчится вперед. Конструкторы Lego помогают разобраться во взаимодействии механических элементов.
Особую зависть вызывают наборы Lego Mindstorms, которые позволяют создавать и программировать настоящих роботов.
Старый добрый Lego Mindstorms NXT
С 2006 года датская компания LegoGroup активно начала развивать курсы обучения как основам механики и конструирования, так и введением в робототехнику и программирование. Этими курсами занимается отдельное подразделение компании - LegoEducation.
Как оказалось, Lego Education это не только курсы для детей и взрослых, но и учебные наборы. Основу этих наборов составляет набор LegoMind storms. Также следует отметить положительные отзывы ученых из университета в Кембридже, которые взяли себе в помощьego-роботов.
Серия Lego Mindstorms была впервые представлена в далеком 1998 году. В 2006 Mindstorms NXT, а в 2009 - Mindstorms NXT 2.0. В апреле 2013 года в Киеве был представлен новый Lego Mindstorms EV3.
Появление новой серии EV3 не повод расстаться со старым добрым NXT. В силу вступают не только экономические соображения, но и желание доказать, что NXT может составить достойную конкуренцию новой серии - «не силой, так умением».
Данный набор очень простой в использовании, как и вся продукция Lego.
Каков бы ни был хорош сам робот, программная часть (удобная NXT G) имеет существенные недостатки. ПО робота разработано под ОС MS Windows, что ограничивает его использование на мобильных девайсах. Это усложняет работу с ним вне дома.
Будущее за мобильными девайсами
Обзор рынка цифровых технологий позволяет утверждать, что количество мобильных девайсов, что в распоряжении современного человека, растет год от года. На данный момент распространено три основных вида девайсов: планшет, ноутбук и портативные устройства. По данным сайта Hi-Tech силы распределились следующим образом:
LEGO Android-2
Как можно заметить, планшеты занимают около 40%. Это самый большой показатель для планшетных ПК за всю историю.
Что касается сотовых телефонов, то безусловно, главную долю рынка завоевали смартфоны. Число продаж 2013 достигло 55% (по данным сайта Forbes).
Совместимость технологий
Для передачи информационных пакетов на блок Mindstorms NXT 2.0 предусмотрено кабельное подключение через USB порт, а также через беспроводное соединение Bluetooth.
Мобильные аксессуары обладают большим набором коммуникативных технологий - mini USB, Bluetooth, WiFi, 3G и другие.
Наличие пересечений позволяет говорить о возможности совместного использования мобильных девайсов и модуля Lego Mindstorms NXT 2.0.
Это беспроводная технология Bluetooth.
Android рулит...
Говорить отдельно о мобильных ОС не представляется возможным без указания конкретной модели девайса, потому что аксессуары продаются с предустановленной ОС. Ее замена на нем невозможна. Поэтому, обзор рынка цифровых технологий автоматически ставит приоритеты и на предустановленные мобильные ОС.
Сейчас на рынке конкурируют несколько серьезных ОС. Часть их уже доживают свои последние дни , но часть - стремительно развиваются.
LEGO Android-3
По приведенным выше данным можно можно сделать вывод, что лидирует ОС Android. И действительно, эта платформа самая стабильная ОС. Android-устройства - недорогие и доступные.
А также огромным плюсом является тот факт, что система для разработчиков предоставляет множество полезных инструментов и хорошую документацию.
Особенности разработки приложений под ОС Android
ОС Android предоставляет множество полезных инструментов разработчикам. К ним относятся: встроенная база данных SQLite, работа с файловой системой, удобное управление сетью Bluetooth, работа с графической частью программы и многое другое.
Нашей основной задачей является разработка программы для управления Lego-роботом. Так как основными пользователями этого приложения будут дети, то интерфейс программы должен быть простым и наглядным. Для того, чтобы сложное объектно-ориентированное программирование для ребенка показалось игрой, предлагаем блочный интерфейс для построения логической схемы работы Lego-робота. Для этого можно использовать DragandDrop інтерфейс.
Как же заставить двигаться элементы так по экрану, как этого хочет пользователь?
К счастью, Google предлагает разработчикам нужные ресурсы. Остается грамотно их использовать в нашем случае. Приложение должно считывать все нажатия, движение, изменять рабочее пространство и сохранять данные в базу. При нажатии кнопки "Выполнить", данные передаются компилятору. Компилятор, в свою очередь, формирует информационный пакет с командами для микроконтроллера. Затем этот пакет с помощью Bluetooth отправляется в блок NXT и робот готов для выполнения своей миссии.
LEGO Android-4
Чем нас порадует Интернет?
Изучение материалов Интернете и GooglePlay, позволяет сделать выводы, что существует множество приложений для управления Lego-роботом. Но они предназначены только для управления!
Нам же необходимо самостоятельное приложение, с помощью которого можно создать алгоритм и реализовать его на реальном работе. Единственное приложение, которое может удовлетворить этому условию, - это LEGO MINDSTORMS Commander, но он предназначен для Lego-робота EV3, который недавно появился на рынке.
Работа з Bluetooth
Компания LegoGroup на своем официальном сайте выложила всю необходимую информацию для создания нашего приложения. Есть описание внутреннего содержимого блоков, датчиков и протоколов передачи данных.
Нас интересует только «BluetoothDeveloperKit». Внутри 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
Управление NXT заключается в наборе определенных команд. Рассмотрим формат команды:
byte 0: младшая часть длины команды
byte 1: старшая часть длины команды
byte 2: тип команды
byte 3: команда
byte...: аргументы
Одним из примеров может быть получение от NXT уровня заряда батареи:
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)
Именно таким образом формируются команды для робота. Далее подключаемся к блоку управления и передаем команды. Подключение не имеет сложностей и полностью описано все в той же документации Android. Единственное, с чем пришлось повозиться, это создание сокета:
Method met = device.getClass().getMethod("createRfcommSocket", new Class[] { int.class });
BluetoothSocketsendSocket = (BluetoothSocket) met.invoke(device, 1);
Предлагаемый инструментарий
И вот наше приложение готово!
Но что же он умеет? Приложение имеет достаточно гибкие настройки движения. Пользователь может начать работу с двигателями, также с датчиками и встроенным таймером. Также поддерживаются настройки мощностей серво-двигателей, выбор порта подключения, указание продолжительности выполнения в вращениях, градусах и по времени. Также, как и в обычном программировании, доступны операторы циклов и ветвления.
Приложение также удобно для управления памятью и уровнем заряда аккумулятора блока NXT. Теперь, с помощью нашего приложения, можно мобильно и быстро создавать алгоритмы на нашем Android-устройстве и выполнять их с помощью Lego-робота.
Автор Александр Погребенный, МАН Украины
 
>
КнигаНовости Практика поискаПартнерыО нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting