Інтелектуальні іграшки - програмовані роботи конструктори. Код основних класів ПЗ руки-маніпулятора. Чи існують інструменти для створення моїх власних програмованих блоків для програмного забезпечення LEGO® MINDSTORMS® EV3 Home Edition

Основний модуль конструктора Lego Mindstorms EV3 може працювати з прошивкою leJOS, що дозволяє запускати Java-програми. Спеціально для цього Oracle випустив та підтримує окрему версію повноцінної Java SE.

Нормальна JVM дозволила мені використовувати вбудований у неї протокол Java Management Extensions (JMX), щоб реалізувати віддалене управлінняроботом-маніпулятором. Для об'єднання керуючих елементів, показань датчиків і картинок із встановлених на роботі IP-камер використовується мнемосхема, зроблена на платформі AggreGate.


Сам робот складається з двох основних частин: шасі та руки-маніпулятора. Вони управляються двома повністю незалежними комп'ютерами EV3, вся їхня координація здійснюється через керуючий сервер. Прямого з'єднання між комп'ютерами немає.

Обидва комп'ютери підключені до IP-мережі приміщення через Wi-Fi адаптери NETGEAR WNA1100. Робот управляється вісьмома двигунами Mindstorms - з них 4 «великі» та 4 «маленькі». Також встановлені інфрачервоний та ультразвуковий датчики для автоматичної зупинки у перешкоди під час руху заднім ходом, два датчики дотику для зупинки повороту маніпулятора через перешкоду, та гіроскопічний датчик, що полегшує орієнтування оператора за допомогою візуалізації положення плеча.

У шасі встановлені два двигуни, кожен з яких передає зусилля на пару гусеничних приводів. Ще один двигун повертає всю руку-маніпулятор повністю на 360 градусів.

У самому маніпуляторі два двигуни відповідають за підйом та опускання «плеча» та «передпліччя». Ще три двигуни займаються підйомом/опусканням кисті, її поворотом на 360 градусів та стисканням/розтисканням «пальців».

Найскладнішим механічним вузлом є «пензель». Через необхідність винесення трьох важких двигунів у район «ліктя» конструкція вийшла досить хитра.

В цілому все виглядає так (коробок сірників був важко знайдений для масштабу):

Для передачі зображення встановлено дві камери:

  • Звичайний Android смартфон з встановленим додатком IP Webcam для загального огляду (на знімку HTC One)
  • Автономна Wi-Fi мікро-камера AI-Ball, встановлена ​​прямо на «пензлі» маніпулятора і допомагає вистачати предмети складної форми

Програмування EV3

ПО самого робота вийшло максимально простим. Програми двох комп'ютерів дуже схожі, вони запускають JMX сервер, реєструють MBean"и, що відповідають двигунам і датчикам, і засинають в очікуванні операцій з JMX.

Код головних класів ПЗ руки-маніпулятора

public class Arm ( public static void main(String args) ( try ( EV3Helper.printOnLCD("Starting..."); EV3Helper.startJMXServer("192.168.1.8", 9000); MBeanServer mbs = ManagementFactory.getPlat motor = новий EV3LargeRegulatedMotor(BrickFinder.getDefault().getPort("A")); LargeMotorMXBean m = новий LargeMotorController(motor); ); // Зареєструвати інші motory тут EV3TouchSensor touchSensor = новий EV3TouchSensor(SensorPort.S1); // Registering інші sensors here EV3Helper.printOnLCD("Running"); Sound.beepSequenceUp(); Thread.sleep(Integer.MAX_VALUE); ) ( static void startJMXServer(String address, int port) ( MBeanServer server = ManagementFactory.getPlatformMBeanServer(); try ( java.rmi.registry.LocateRegistry.createRegistry(port); JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + address + ":" + String.valueOf(port ) + "/server"); props = новий HashMap (); props.put("com.sun.management.jmxremote.authenticate", "false"); props.put("com.sun.management.jmxremote.ssl", "false"); JMXConnectorServer connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, props, server); connectorServer.start(); ) catch (Exception e) ( e.printStackTrace(); ) ) static void printOnLCD(String s) ( LCD.clear(); LCD.drawString(s, 0, 4); ) )

Для кожного типу датчика і мотора створений інтерфейс MBean і реалізує його клас, які безпосередньо делегує всі виклики класу, що входить до leJOS API.

Приклад коду інтерфейсу

public interface LargeMotorMXBean (public abstract void forward(); public abstract boolean suspendRegulation(); public abstract int getTachoCount(); public abstract float getPosition(); public abstract void flt(); public abstract void waitComplete(); public abstract void rotateTo(int limitAngle, boolean immediateReturn); abstract int getLimitAngle(); public abstract void rotate(int angle); public abstract void setStallThreshold(int error, int time);public abstract int getRotationSpeed();public abstract float getMaxSpeed(); public abstract void stop(); public abstract int getSpeed(); public abstract void setSpeed(int speed); )

Приклад коду реалізації MBean

public class LargeMotorController implements LargeMotorMXBean ( final EV3LargeRegulatedMotor motor; public LargeMotorController(EV3LargeRegulatedMotor motor) ( this.motor = motor; ) @Override public void forward() ( motor.forward(); ) suspendRegulation(); ) @Override public int getTachoCount() ( return motor.getTachoCount(); ) @Override public float getPosition() ( return motor.getPosition(); ) @Override public void flt() ( motor.flt() ; ) @Override public void flt(boolean immediateReturn) ( motor.flt(immediateReturn); ) // Similar delegating methods skipped )

Як це не дивно, на цьому програмування закінчилося. На боці сервера та операторського робочого місця не було написано жодного рядка коду.

Підключення до сервера

Безпосереднє керування роботом здійснює сервер IoT-платформи AggreGate. Встановлена безкоштовна версіяпродукту AggreGate Network Manager включає драйвер протоколу JMX і дозволяє підключити до десяти JMX-хостів. Нам знадобиться підключити два - по одному на кожну цеглу EV3.

Перш за все, потрібно створити обліковий запис JMX пристрою, вказавши в налаштуваннях URL, заданий при запуску JMX сервера:

Властивості з'єднання з JMX-пристроєм


Після цього вибираємо активи (тобто MBean"и в даному випадку), які будуть додані в профіль пристрою:

Вибір MBean"ів


І через кілька секунд дивимося та змінюємо поточні значення всіх опитаних властивостей MBean"ів:

Знімок пристрою


Можна також потестувати різні операції, викликаючи вручну методи MBean"ів, наприклад forward() і stop().

Список операцій


Далі налаштовуємо періоди опитування для датчиків. Висока частотаопитування (100 разів на секунду) використовується, так як керуючий сервер знаходиться в локальної мережіразом із роботом і саме сервер приймає рішення про зупинку обертання при упорі на перешкоду тощо. Рішення, безумовно, не промислове, але у добре працюючій Wi-Fi мережіу межах однієї квартири показало себе цілком адекватним.

Періоди опитування


Інтерфейс оператора

Тепер переходимо до створення інтерфейсу оператора. Для цього спочатку створюємо новий віджет та накидаємо в нього потрібні компоненти. У кінцевому працюючому варіанті виглядає він так:

По суті, весь інтерфейс складається з декількох панелей з кнопками, слайдерами та індикаторами, згрупованими в різні сіткові розкладки, і двох великих відеоплеєрів, що транслюють картинки з камер.

Вигляд зсередини редактора інтерфейсів

Вся форма:

Вид із показаними панелями-контейнерами:


Тепер, як кажуть АСУТПшники, залишилося «оживити мнемосхему». Для цього застосовуються так звані прив'язкизв'язувальні властивості та методи графічних компонентів інтерфейсу з властивостями та методами серверних об'єктів. Так як комп'ютери EV3 вже підключені до сервера, серверними об'єктами можуть бути і MBean"и нашого робота.

Весь інтерфейс оператора містить близько 120 прив'язок, більшість з яких однотипна:

Половина однотипних прив'язок реалізує керування за допомогою кліків на кнопки, розташовані на мнемосхемі. Це красиво, зручно для тестування, але непридатне для реального пересування робота та переміщення вантажів. Активаторами прив'язок із цієї групи є події mousePressedі mouseReleasedрізних кнопок.

Друга половина прив'язок дозволяє керувати роботом з клавіатури, попередньо натиснувши кнопку Keyboard Control. Ці прив'язки реагують на події keyPressedі keyReleased, а за умови кожної прив'язки прописано, який саме код кнопки потрібно реагувати.

Усі керуючі прив'язки викликають методи forward(), backward()і stop()різних MBean"ів. Оскільки доставка подій відбувається асинхронно, важливо, щоб виклики функцій forward()/backward()та наступні виклики stop()не переплуталися. Для цього прив'язки, що викликають методи одного MBean, додані в одну чергу (Queue).

Дві окремі групи прив'язок виставляють початкові швидкості та прискорення двигунів (зараз це реалізовано на стороні сервера за допомогою моделі, тому ці прив'язки відключені) та змінюють швидкості/прискорення при переміщенні повзунків Speed ​​та Acceleration.

У цьому розділі представлені різні роботи Лего. Починаючи з Mindstorms – робота для просунутих користувачів і навіть професіоналів, закінчуючи персонажами легенд: Hero Factory, Ninjago, Chima та ін.


Почнемо нашу розповідь із незвичайної лего іграшки – електронного інтерактивного робота на базі процесора NXT 2.0! Його, за допомогою інструкції, може зібрати навіть 10-12-річну дитину! LEGO Роботи mindstorms сподобається не лише дітям, а й їхнім батькам, тому що він дуже функціональний і можливості його програмування справді безмежні! Можна сформулювати свої програмовані моделі!

Програмування робота дуже зручно здійснювати через дружній інтерфейс програми, яку можна встановити з диска! При бажанні вибрати набір функцій можна комбінацією клавіш на центральному блоці керування. Robot має дуже хорошу функціональність, що досягається за рахунок інтерактивних сервомоторів та спеціальних датчиків, що реагують на світло, звук, механічні дії та інші зовнішні подразники!

Mindstorms може пересуватися у різному напрямку, відтворювати звуки, розрізняти кольори, збирати кубик Рубика, брати в руки не важкі предмети, охороняти кімнату, керувати лего поїздом або машиною з відстані та багато іншого! Крім звичайних датчиків, які поставляються в початковому комплекті, можна докупити й інші аксесуари: різні сенсори, перехідники, мотори, акумулятори та багато іншого, які істотно розширять можливості Вашого лего робота!

Інструкція, яка є на диску програмного забезпечення, пропонує кілька початкових, нескладних у складанні моделей mindstorms: Робогатор, Сортувальник кольорових кульок, Сторож кімнати та деякі інші.

Ваша дитина ніколи не нудьгуватиме, а вчитися навичкам конструювання та програмування в ігровій формі, теж дуже пізнавальне заняття!

Ще одна серія – це Фабрика Героїв. Герої із серії Hero Factory є дуже колоритними істотами, це гібрид людини та робота та назва їм – кіборги! Фігурки роботів мають рухливі руки і ноги, вони тримають різну зброю, яка допомагає їм боротися з полчищами мутантів, які служать Вогненному Лорду.

Ця серія Hero Factory є аналогом Біоніклів, тому її радо сприймуть шанувальники мультфільмів для роботів.

Серед персонажів є як добрі: Стормер, Фурно, Бриз та інші, так і негативні герої: Дріллдозер, Джетбаг, Он Небула, які підкоряються могутньому та злому Вогненному Лорду. Спробуйте зібрати всю колекцію фігурок Фабрика Героїв лего роботів та влаштувати свою битву за торжество добра та справедливості!

У статті міститься опис досвіду використання конструктора Lego Mindstorms EV3 для створення прототипу робота з його подальшим програмним та ручним керуванням за допомогою Robot Control Meta Language (RCML).

  • Складання прототипу робота на базі конструктора Lego Mindstorms EV3
  • Швидке встановлення та налаштування RCML для Windows
  • Програмне керування роботом на базі контролера EV3
  • Ручне керування периферією робота за допомогою клавіатури та геймпада
Забігаючи трохи вперед, додам, що для реалізації керування Lego-роботом за допомогою клавіатури потрібно створити програму, що містить лише 3 рядки програмного коду. Детальніше про те, як це зробити написано під катом.

1. Для початку з конструктора Lego Mindstorms EV3 було створено прототип робота, який використовуватиметься для програмування та ручного пілотування.

Опис прототипу робота

Робот має конструкцію схожу з автомобільним шасі. Два двигуни, встановлені на рамі, мають одну загальну вісь обертання, яка з'єднана із задніми колесами через редуктор. Редуктор перетворює момент, що крутить, шляхом збільшення кутової швидкості задньої осі. Рульове управління зібрано з урахуванням конічного редуктора.



2. Наступний крок – підготовка RCML до роботи з конструктором Lego Mindstorms EV3.

Слід завантажити архіви з виконуваними файлами та файлами бібліотек та .

Завантажені архіви потрібно витягти до каталогу з довільним ім'ям, проте слід уникатиросійських букв у назві.

Вміст каталогу після розпакування в нього архівів



Далі необхідно створити файл конфігурації config.ini, який необхідно розташувати у тому самому каталозі. Для реалізації можливості керування контролером EV3 за допомогою клавіатури та геймпада, слід підключити модулі lego_ev3, keyboard та gamepad.

Лістинг конфігураційного файлу config.ini для RCML

Module = lego_ev3 module = keyboard module = gamepad


Далі слід зробити пару контролера EV3 і адаптера.

Інструкція для сполучення контролера EV3 та Bluetooth адаптера

Інструкція містить приклад сполучення контролера Lego Ev3 та ПК під керуванням операційної системи Windows 7.

1. Потрібно перейти до розділу налаштувань контролера Ev3, далі в меню Bluetooth.

2. Переконайтеся, що параметри конфігурації є правильними. На проти пунктів “Visibility”, “Bluetooth” мають бути встановлені галочки.

3. Потрібно перейти до панелі керування, далі «Пристрої та принтери», далі «Пристрої Bluetooth».

4. Натисніть кнопку «Додати пристрій». Відкриється вікно для вибору доступних Bluetooth пристроїв.

5. Виберіть “EV3” і натисніть кнопку “Далі”.

6. На екрані контролера EV3 відобразиться діалогове вікно "Connect?". Потрібно вибрати варіант галочки і підтвердити свій вибір натисканням центральної клавіші.

7. Далі відобразиться діалогове вікно «PASSKEY», у рядку введення повинні бути вказані цифри «1234», далі слід підтвердити ключову фразу для пару пристроїв, шляхом натискання центральної клавіші на позиції із зображенням галочки.

8. У майстрі пари пристрою з'явиться форма для введення ключа для пари пристроїв. Потрібно ввести код «1234» та натиснути клавішу «Далі».

10. На ПК необхідно повернутися до «Панель керування», далі «Пристрої та принтери», далі «Пристрої Bluetooth». В списку доступних пристроївз'явиться пристрій, з яким було зроблено пару.

11. Слід подвійним натисканням зайти у властивості підключення “EV3”.

14. Вказаний у властивостях індекс COM-порту слід використовувати в конфігураційному файлі config.ini модуля lego_ev3. У прикладі показані властивості Bluetooth підключення контролера Lego EV3 з використанням стандартного порту послідовного COM14.


Подальша конфігурація модуля зводиться до того, що необхідно прописати в конфігураційному файлі модуля lego_ev3 адресу COM-порту, через яку здійснюється комунікація з роботом Lego.

Лістинг файлу конфігурації config.ini для модуля lego_ev3

Connection = COM14 dynamic_connection = 0


Тепер необхідно налаштувати модуля keyboard. Модуль знаходиться у каталозі control_modules, далі keyboard. Слід створити конфігураційний файл config.ini поряд із файлом keyboard_module.dll. Перед тим, як створити файл конфігурації, необхідно визначити, які дії повинні бути здійснені за натисканням клавіш.

Модуль клавіатури дозволяє використовувати клавіші, які мають певний числовий код. Таблицю віртуальних кодів клавіш можна переглянути.

Як приклад, використовуватиму натискання наступних клавіш:

  • Стрілки вгору/вниз використовуються для обертання двигуна задніх коліс вперед/назад
  • Стрілки вліво/вправо повертають колеса вліво/вправо
Файл конфігурації модуля keyboard визначає, які осі доступні програмісту, для здійснення взаємодії з роботом в режимі ручного управління. Таким чином, у прикладі вийшло дві керуючі групи – це осі клавіатури. Для додавання нової осі слід дотримуватися наступних правил опису осей.

Правила опису осей для модуля keyboard

1. При додаванні нової осі необхідно в секцію додати властивість, ім'я якого є ім'я осі, та присвоїти йому значення кнопки клавіатури в HEXформаті, у своїй кожну кнопку заводиться подібна запис, тобто. Ім'я осі може бути використане кілька разів. У загальному випадку запис до секції буде виглядати так:

Ім'я_осі = значення_кнопки_клавіатури_в_HEX_форматі
2. Необхідно встановити максимальне та мінімальне значення, що може відкладатися за цією осі. Для цього необхідно з нового рядкадодати секцію у конфігураційному файлі config.ini, однойменну з ім'ям осі, та задати властивості upper_valueі lower_value, які відповідають максимуму та мінімуму осі відповідно. У загальному вигляді дана секція виглядає так:

[ім'я_осі] upper_value = максимальне_значення_осі lower_value = мінімальне_значення_осі
3. Далі слід визначити, яке значення матиме вісь у разі натискання кнопки на клавіатурі, яка була прикріплена до неї. Визначення значень відбувається за допомогою створення секції, назва якої складається з імені осі та значення кнопки клавіатури в HEXформат, розділені між собою символом нижнього підкреслення. Для завдання значення за замовчуванням (у не натиснутому) та натиснутому стані використовуються властивості unpressed_valueі pressed_valueвідповідно, які передаються значення. Загальний вигляд секції у такому разі виглядає так:

[ім'я-осі_значення-кнопки-клавіатури] pressed_value = значення_осі_при_натиснутій_клавіші unpressed_value = значення_осі_при_віджатій_клавіші
Текст спойлера для зручності перегляду скопійовано з документації RCML.


Для реалізації управління прототипом робота був створений конфігураційний файл модуля keyboard, який включає осі go і rotate. Вісь go використовується для завдання напряму руху робота. При натисканні клавіші стрілка вгору вісь отримає значення 100, при натисканні клавіші стрілка вниз вісь прийме значення -50. Вісь rotate використовується для встановлення кута повороту передніх коліс. При натисканні клавіші "стрілка вліво" значення осі дорівнюватиме -5, при натисканні "стрілки вправо" вісь прийме значення 5.

Лістинг конфігураційного файлу config.ini для модуля keyboard

;Обов'язкова секція ;назва_осі = код_клавіші (в HEX форматі) ;Вісь go отримує значення від стрілки_вгору go = 0x26 ;Вісь go отримує значення від стрілки_вниз go = 0x28 ;Ось rotate отримує значення від стрілки_вліво rotate = 0о2 rotate = 0x27 ;Опис осі go, завжди повинен мати обидва ключі ;Верхня межа значень осі go upper_value = -100 ;Нижня межа значень осі go lower_value = 100 ;Опис осі rotate, завжди повинен мати обидва ключі u 100; Нижня межа значень осі rotate lower_value = 100; рівним 0 unpressed_value = 0 ;Опис поведінки осі go для клавіші *стрілка_вниз* (0x28) ;При натисканні клавіші *стрілка_вниз* значення осі задати рівним -50 pressed_value = -50 ;При відпуску клавіші *стрілка_вниз* значення u поведінки осі rotate для клавіші *стрілка_вліво* (0x25) ;При натисканні клавіші *стрілка_вліво* значення осі задати рівним -5 pressed_value = -5 ;При відпусканні клавіші *стрелка_влево* значення осі задати рівним 0 unpressed_val *стрілка_вправо* (0x27) ;При натисканні клавіші *стрілка_вправо* значення осі задати рівним 5 pressed_value = 5 ;При відпусканні клавіші *стрілка_вправо* значення осі задати рівним 0 unpressed_value = 0


Далі для реалізації управління за допомогою геймпада необхідно налаштувати модуль gamepad. Конфігурування модуля включає створення конфігураційного файлу config.ini поруч з gamepad_module.dll, що знаходиться в каталозі control_modules, далі gamepad.

Універсальний файл конфігурації модуля для взаємодії з геймпадом

;Обов'язкова секція опису використовуваних осей ;Вісь для завершення режиму ручного управління Exit = 9; 11 бінарних осей, що відповідають кнопкам геймпада B1 = 1 B2 = 2 B3 = 3 B4 = 4 L1 = 7 L2 = 5 R1 = 8 R2 = 6 start = 10 T1 = 11 T2 = 12; 4 осі стиків; Правий стік рух вгору/вниз RTUD = 13 ; Правий стік рух вліво / вправо RTLR = 16 ; Лівий стик рух вгору / вниз LTUD = 15 ; 2 осі хрестовини; Рух хрестовини вгору/вниз arrowsUD = 17; Рух хрестовини вліво/вправо arrowsLR = 18; Опис поведінки осі B1; e = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = u = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 ;Опис поведінки осі правого стику рух вгору/вниз ;Значення осі при переміщенні в максимально можливе верхнє положення upper_value = 0 ;Значення осі при переміщенніu ue = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 ;Опис поведінки осі хрестовини рух вгору/вниз ;Значення осі при натисканні стрілки вгору; lower_value = -1 upper_value = 1 lower_value = -1


Додаткова інформація про особливості налаштування модуля gamepad відображена у довідковому посібнику з RCML.

3. Наступний крок – написання програми на мові RCML.

У корені створеного каталогу необхідно створити файл програми. Ім'я файлу програми та його розширення може бути будь-яким, проте слід уникати російських літер у назві. У прикладі використано ім'я файлу – hello.rcml.

Для модуля lego_ev3 програмний код резервування робота має такий вигляд:

@tr = robot_lego_ev3;

На сторінці підключення модуля lego_ev3 описано більшість функцій, які підтримує контролер. Як тестовий приклад, була створена програма для автоматичного входження робота в занесення.

Алгоритм програми наступний:

Після резервування першого вільного робота встановлюється зв'язок двох двигунів для подальшої роботи з ними, як з одним. Потім робот починає виконувати замети. Програмний описдій робота дозволяє точно встановлювати кути повороту передніх коліс та швидкість обертання задніх. Використання цього прийому дозволяє досягати результатів, які важко повторити під час ручного пілотування з клавіатури чи геймпада.

Лістинг програми для Lego робота на мові RCML

function main() ( @tr = robot_lego_ev3; //Резервування робота @tr->setTrackVehicle("B","C",0,0); //Установка синхронізації двигунів @tr->motorMoveTo("D",100, 0,0);system.sleep(500); @tr->trackVehicleForward(-100);system.sleep(1000); (4000); @tr->motorMoveTo("D",50,50,0); system.sleep(4000); @tr->trackVehicleOff();


Для компілювання програми необхідно використовувати командний рядок Windows. Спочатку слід переміститися у створений каталог із виконуваними файлами rcml_compiler.exe та rcml_intepreter.exe. Далі слід ввести наступні команди.

Команда для компілювання файлу hello.rcml:

Rcml_compiler.exe hello.rcml hello.rcml.pc
В результаті компілювання у створеній директорії з'явиться новий файл hello.rcml.pc.

Скріншот командою рядка після успішного компілювання



Тепер слід переконатися в тому, що контролер EV3 увімкнений, пов'язаний з адаптером Bluetooth. Геймпад має бути підключений до комп'ютера. Після цього потрібно виконати команду виконання програмного файлу:

Rcml_intepreter.exe hello.rcml

Зовнішній вигляд командного рядкана виконання програми



Відеоролик, що демонструє програму руху робота, розташований внизу статті.

4. Наступний крок – керування роботом у ручному режимі за допомогою клавіатури.

За допомогою клавіатури можливе керування будь-яким двигуном робота. У рамках прикладу реалізовано керування такими механізмами:

  • Кутом повороту передніх коліс
  • Напрямом обертання задніх коліс

Лістинг програми взаємодії клавіатури та робота Lego на базі контролера EV3

function main() ( @tr = robot_lego_ev3; //Резервування робота @tr->setTrackVehicle("B","C",0,0); //Установка синхронізації двигунів system.hand_control(@tr,"keyboard", " straight","go", "speedMotorD","rotate");


Далі слід відкомпілювати програму та виконати її. Результат ручного керування Lego роботом за допомогою клавіатури показаний на відео внизу сторінки.

5. Крім клавіатури доступний модуль gamepad, що дозволяє маніпулювати роботом за допомогою геймпада. Для реалізації управління робота з допомогою геймпада необхідно описати лише на рівні програми, які осі робота прийматимуть значення осей геймпада.

Лістинг програми взаємодії геймпада та робота Lego

function main() ( @tr = robot_lego_ev3; //Резервування робота @tr->setTrackVehicle("B","C",0,0); //Установка синхронізації двигунів system.hand_control(@tr,"gamepad", " straight","RTUD", "speedMotorD","RTLR");


Далі слід повторити процес компілювання програми та виконати її. Далі показаний результат ручного управління Lego роботом за допомогою на геймпада, і всі раніше підключені способи:

У статті коротко продемонстровані лише деякі можливості RCML. Найбільш докладний описперебувати у довідковому посібнику.

Теги:

  • lego mindstorms
  • робототехніка
  • програмування
Додати теги

Роботом, зібраним із конструктора LEGO Mindstorms EV3, ви легко можете керувати дистанційно від першої особи. Для цього вам додатково знадобиться два смартфони з встановленим додатком RoboCam на один з них. Давайте познайомимося докладніше з додатком RoboCam та навчимося ним користуватися.

Стаття описує нові можливості, що з'явилися у першій версії версії 1.0 RoboCam. Усі статті присвячені додатку RoboCam ви можете знайти. Додаток RoboCam можна встановити з магазину Google Play.

Спочатку давайте подивимося відео, де показаний робот, керований від першої особи, яку я назвав Дослідник EV3. Крім того, що робот може їздити в будь-якому напрямі, він вміє піднімати та опускати голову, тобто. рамку, до якої прикріплено смартфон. А це означає, що ви зможете дивитися не тільки на всі боки, але і вгору/вниз.

Що потрібне для проведення експерименту?

Щоб повторити експеримент, який ви бачите на відео, вам потрібне таке:

  1. Робот, Зібраний з конструктора LEGO Mindstorms EV3.
  2. Android-смартфонз камерою та встановленим на нього додатком RoboCam. Підтримується Android 2.3 та вище. У смартфоні як мінімум має бути хоча б одна камера, а також модулі Bluetooth та Wi-Fi.
  3. Смартфон або планшетз сучасним браузеромз підтримкою HTML5. Добре підходять та протестовані браузери Google Chrome, Яндекс.Браузер, Firefox та Opera останніх версій. Операційна система може бути будь-якою (Android, iOS або Windows), але повноцінні тести проводилися тільки на Android. У смартфона або планшета має бути як мінімум сенсорний екран(бажано з розпізнаванням не менше 2-точок торкання) та модуль Wi-Fi.

Схема підключення

Спочатку, давайте подивимося, як усі перелічені вище пристрої підключені один до одного. Найкраще це ілюструє малюнок знизу.

Як ви бачите, програма RoboCam встановлена ​​на смартфон 1. Цей смартфон прикріплюється до роботи та підключений до нього через Bluetooth. Від смартфона 1 до EV3 йдуть команди, що управляють моторами, назад надходить інформація з датчиків.

2-й смартфон або планшет підключається до смартфону 1 через Wi-Fi. Смартфон 1 та смартфон або планшет 2 повинні бути підключені до одного роутера. Від смартфона або планшета 2 йдуть координати джойстиків на смартфон 1, а назад йде відеопотік з камери.

Як відбувається керування EV3

Щоб краще зрозуміти, як відбувається керування роботом EV3, подивимося таку схему.

Коли ви починаєте торкатися джойстиків A і B, смартфон або планшет 2 передає координати дотиків смартфону 1, який перетворює їх на команди для моторів EV3. Як координати будуть перетворені, залежить від налаштувань програми RoboCam. Докладніше про налаштування ми поговоримо нижче.

Збираємо робота

Щоб повторити експеримент, перш за все, вам потрібно зібрати робота, яким ви керуватимете. Це може бути простий двоколісний робот, робот-автомобіль або робот із складним механізмом пересування. За великим рахунком, не важливо, яким буде ваш робот, адже програма RoboCam гнучко налаштовується, і ви зможете керувати з її допомогою роботом будь-якої конструкції. Головне, щоб ви змогли закріпити на своєму роботі смартфон таким чином, щоб камера була спрямована вперед, по ходу руху.

Починати я рекомендую із простої моделі. Якщо у вас є освітній набір LEGO Mindstorms EV3, то ви можете зібрати Дослідника EV3, якого ви бачите на фото та відео на початку статті. Ось схема складання Дослідника EV3:

Інструкція для збирання дослідника EV3Версія:2

Інструкція для збирання робота дослідника EV3 з базового освітнього набору конструктора LEGO Mindstorms Education EV3 (45544).

У версії 2: рамка закріплена міцніше та не відвалюється.

04.06.2016 4.95 MB 5783

Готуємо Android-смартфон та програму RoboCam

Програма RoboCam працює на смартфонах або планшетах під керуванням операційної системи Android 2.3 та вище. Обов'язковою є наявність у пристрою будь-якої вбудованої камери та модулів Bluetooth та WiFi. Додаток безкоштовний, ви можете встановити його за допомогою магазину Google Play. Ось сторінка програми RoboCam. Для встановлення натисніть кнопку «ВСТАНОВИТИ», і прийміть потрібні дозволи, натиснувши кнопку «Прийняти».

Після встановлення відкрийте програму. В Android 6 і вище ви відразу побачите запит на дозвіл використовувати камеру. Камера нам обов'язково потрібна, тому натисніть "Дозволити".

Після того як програма відкриється ви побачите, три круглі кнопки для основних дій, а на задньому плані картинку з камери.

Зелена кнопка зліва відповідає за запуск та зупинку сервера RoboCam, який потрібен для підключення смартфона або планшета 2, див. схему вище. Одночасно кнопка показує, працює сервер чи ні. На малюнку фон кнопки білий, це означає, що сервер не працює. Про це говорить підказка зверху. Ви можете запустити або зупинити сервер у будь-який момент, натиснувши на цю кнопку.

Середня кнопка пурпурового кольору відповідає за підключення до роботи EV3. Одночасно кнопка показує, чи підключений смартфон до роботи чи ні. На зображенні, фон кнопки білий, це означає, що робот не підключений. Ця кнопка також має підказку, прямо під кнопкою, де у верхньому рядку відображається стан підключення (на картинці це напис «EV3 не підключений»), а в нижньому рядку – назва поточних налаштувань робота (на картинці це «Дослідник EV3»).

Кнопка праворуч відкриває налаштування програми RoboCam. Якщо ви будете використовувати мого дослідника EV3, то додатково нічого налаштовувати не треба, т.к. відразу після першого запуску програми за замовчуванням будуть вибрані налаштування під назвою «Дослідник EV3». Якщо робот у вас інший, то спочатку доведеться поколупатися в налаштуваннях. Але про це поговоримо нижче.

Запуск сервера RoboCam та підключення до нього

Відразу скажу, що зовсім неважливо, що ви зробите раніше, запустіть сервер RoboCam або підключіть смартфон до роботи. Це можна зробити у будь-якому порядку.

Отже, після того, як програма встановлена ​​на смартфон 1 (див. схеми вище) і відкрито, ви можете запустити сервер RoboCam. Для цього натисніть на зелену копку зліва, при цьому кнопка почне блимати, а в підказці буде написано "Ініціалізація сервера RoboCam...". Через деякий час, після того, як сервер запуститься, фон кнопки забарвиться в зелений колір, а в підказці буде написано "Сервер RoboCam працює".

Якщо смартфон ще не підключений до вашого Wi-Fi-роутера (як у нас на картинці), то настав час це зробити. Після підключення у верхній підказці у другому рядку з'явиться адреса для підключення до сервера RoboCam. При включенні сервера немає різниці, що включати спочатку сервер RoboCam або Wi-Fi.

Тепер можна підключитися до сервера RoboCam. Для цього візьміть другий смартфон або планшет (я буду використовувати планшет), переконайтеся, що він підключений до того ж Wi-Fi-роутера, відкрийте браузер і перейдіть на сторінку з адресою, яка показана у підказці в додатку RoboCam (на малюнку це «http ://192.168.1.153:8088»). Браузер потрібно використовувати один із тих, про які було написано вище. Якщо ви все зробили правильно, то в браузері завантажиться сторінка для введення логіну та пароля. Введіть тут логін та пароль та натисніть кнопку «Увійти». Якщо після установки ви нічого не змінювали в налаштуваннях, то за умовчанням встановлено логін «admin» та пароль «123».

Після цього відкриється основна сторінка сервера RoboCam, де ви побачите картинку з камери смартфона 1 (див. схему вище).

Як бачите орієнтація смартфона 1 – портретна, а мого планшета – альбомна. Ви можете перевернути смартфон 1 так, щоб він теж був у альбомній орієнтації. При цьому картинка на планшеті автоматично зміниться на альбомну.

Зверніть увагу, що орієнтація не змінюється, якщо ви заблокували смартфон 1.

Щоб зробити зображення на весь екран, натисніть праворуч зверху на сторінці. Так приберуться всі непотрібні нам кнопочки, закладки браузера і т.д., а зображення з камери стане більшим.

Підключення RoboCam до EV3

Перш ніж підключати програму RoboCam до EV3, переконайтеся, що у вашого робота EV3 та смартфона включений Bluetooth і що вони спарені. Також переконайтеся, що двигуни підключені саме до тих портів, які вказані в налаштуваннях робота. Назва поточних налаштувань написана у підказці до середньої кнопки у другому рядку, на малюнку нижче, це «Дослідник EV3». Якщо ви зібрали дослідника EV3 за моєю схемою (див. вище) і після встановлення програми RoboCam не змінювали налаштування, будьте впевнені, що все налаштовано правильно. Детально про налаштування буде написано нижче.

Отже, якщо все готово, натисніть на центральну фіолетову кнопку. Якщо у вас на смартфоні Bluetooth вимкнено, ви побачите запит на його включення. Натисніть "Так".

Далі ви побачите, що кнопка почне блимати, а замість підказки з'явиться перелік спарених через Bluetooth пристроїв. Виберіть тут вашого робота EV3 (на малюнку – це «EV3», але у вас у налаштуваннях EV3 може бути виставлене інше ім'я).

Після цього програма підключиться до EV3.

Якщо в цей час клієнт підключений до сервера RoboCam, ви побачите, як з'являться джойстики (прямокутний і круглий джойстики на малюнку знизу). Після цього ви одразу можете керувати роботом.

У налаштуваннях за замовчуванням для дослідника EV3 у вас будуть два джойстики: круглий і вертикальний (див. картинку вище). Вертикальним джойстиком управляється рамка-тримач смартфона, а круглим – рухи робота. Іконка із зображенням долоні зверху праворуч, змінює джойстики місцями, щоб швидко перемикати управління для шульги та правші. Докладніше про джойстики буде написано нижче.

Зупинка сервера RoboCam та вимкнення EV3

Після того, як ви закінчили керувати роботом перед тим як закрити програму RoboCam рекомендується зупинити сервер RoboCam і відключити EV3 від смартфона. Це можна робити у будь-якому порядку. Щоб зупинити сервер, натисніть на зелену кнопку зліва. Після цього фон кнопки стане білим, а підказка покаже "Сервер RoboCam вимкнено". Щоб вимкнути EV3, натисніть на центральну фіолетову кнопку. Після цього фон кнопки стане білим, а на підказці у верхньому рядку ви побачите напис "EV3 не підключений". При цьому двигуни зупиняться або приймуть початкове положення в залежності від налаштувань.

Щоб перейти до налаштувань, натисніть на сіру кнопку праворуч.

Установки розділені на 2 частини: налаштування сервера та налаштування робота. Спочатку давайте подивимося, що є в налаштуваннях сервера. Виберіть "Сервер".

Налаштування сервера поділяються на 2 групи: налаштування камери та налаштування безпеки. У налаштуваннях камери можна вибрати камеру (фронтальну або тилову), розмір зображення та якість JPEG. Чим менше ви встановите розмір зображення, тим плавнішим і швидшим буде передача відео клієнту, але погіршиться якість картинки. Аналогічно впливає передача відео та якість JPEG: чим краща якість JPEG (90 і більше відсотків), тим краще картинка, але повільніша швидкість, і навпаки, ніж гірша якість JPEG (40 і менше відсотків), тим швидше швидкість, але гірша картинка. Виберіть те, що є оптимальним для вас.

У налаштуваннях безпеки можна змінити ім'я та пароль водія (за замовчуванням – ім'я «admin» і пароль – «123»). Також за замовчуванням включено спостерігачів. Спостерігачі можуть паралельно бачити зображення з камери, але не можуть керувати роботом. Для спостерігача також можна задати ім'я та пароль (за замовчуванням тут використовується ім'я guest і пароль 123). Щоб вимкнути спостерігачів, заберіть галку «Дозволити спостерігачів».

Кількість водіїв та спостерігачів не обмежена, проте підключення більше одного водія може викликати конфлікти при одночасному керуванні та передачі відео потоку. Не рекомендується підключатися до сервера RoboCam більше одного водія. Велика кількість спостерігачів може негативно позначитися на передачі відео. Бажано зменшити кількість спостерігачів до мінімуму або взагалі вимкнути цю функцію.

Після зміни налаштувань, ви можете зберегти їх, натиснувши кнопку «Зберегти» праворуч зверху або вийти без збереження, натиснувши кнопку «Скасування» або стрілку зліва зверху. Після збереження параметрів сервера клієнти можуть бути вимкнені, і потрібно буде підключатися знову.

Список налаштувань роботів

Друга частина налаштувань програми RoboCam – це налаштування роботів. Натисніть кнопку «Робот», щоб перейти до списку налаштувань роботів.

У списку налаштувань роботів ви можете побачити налаштування для всіх ваших роботів. Ви в будь-який момент можете додати або видалити налаштування, натиснувши, відповідно, кнопку «ДОДАТИ» або «ВИДАЛИТИ» зверху праворуч. А одразу під кнопками ви можете побачити поточні налаштування. За допомогою цього пункту відбувається перемикання між налаштуваннями для ваших роботів. Тепер давайте подивимося налаштування дослідника EV3. Для цього оберіть у списку «Дослідник EV3».

У самому верху вказано Загальна інформація: назва робота та опис. Назва та опис відображаються у списку, щоб ви могли легко знайти потрібні налаштування. Назва також відображається в основному екрані програми під центральною кнопкою, за допомогою якої ви підключаєтеся до EV3. Нижче йдуть налаштування джойстиків.

Усього ви можете налаштувати до 4-х джойстиків, але одночасно на екрані у клієнта буде видно лише одну пару джойстиків 1-2 або 3-4. Однак якщо ви використовуватимете джойстик 1 і 3, то вони все одно не будуть видно одночасно, т.к. відносяться до різних пар, і ви бачитимете або джойстик 1, або джойстик 3. Видимість кожного джойстика включається галочкою « Видимість». Якщо ви ввімкнули дві пари джойстиків, то на екрані клієнта з'явиться кнопка для перемикання між парами.

Отже, в налаштуваннях ви можете побачити групи «Джойстик 1», «Джойстик 2», «Джойстик 3» та «Джойстик 4». У кожній із них зібрані налаштування для одного джойстика. Давайте подивимося налаштування для «Джойстика 1». Галочка "Видимість", як ви вже зрозуміли, показує або ховає джойстик. Якщо галочка не встановлена, то й налаштування для цього джойстика будуть заховані.

Трохи нижче у списку « Форма» ви можете вибрати форму джойстика, а разом із формою та його характеристики. Доступні такі форми джойстиків: вертикальна, горизонтальна, кругла, квадратна, стрілки, вертикальні стрілки та горизонтальні стрілки. Ось як виглядають перелічені джойстики:

Вертикальний джойстик приймає лише висоту торкання щодо нього, тобто. йому все одно, доторкнулися ви до нього ліворуч чи правіше, головне на якій висоті. Координата дотику для нього буде в межах від -100 у нижній точці до 100 у найвищій точці з 0 посередині.

Горизонтальний джойстик працює аналогічно, але по горизонталі. Для нього все одно, на якій висоті відбувається торкання, головне ліворуч чи праворуч. Тут координата дотику обчислюється по горизонталі від -100 в лівій точці до 100 в правій точці з 0 посередині.

Круглий та квадратний джойстики схожі. Тут визначаються координати торкання по горизонтальній та вертикальній осях, також у межах від -100 до 100 з 0 по центру. Але у круглому джойстику торкання не можуть вийти за межі кола. Тобто. якщо точка торкання знаходиться за межею кола, то буде взята точка, яка перебуває на перетині лінії від точки торкання до центру кола з колом. Наочніше це видно на малюнку нижче.

Джойстики-стрілки не чутливі до точки дотику, головне, якої стрілки ви торкаєтеся. Якщо ви торкаєтеся стрілки вгору, то вважається, що координата джойстика по вертикалі буде 100, а по горизонталі 0. Для стрілки вниз горизонтальна координата джойстика також буде 0, а вертикальна перетвориться на -100. Аналогічно зі стрілками вліво і вправо: вертикальна координата джойстика дорівнюватиме 0, а горизонтальна буде відповідно -100 і 100.

Відразу під формою вибирається тип джойстика у списку « Тип». Тут можна вибрати одне з наступних значень: "Незалежні мотори", "Рулення 1", "Рулення 2" та "Поштова скринька".

Джойстики з типами Керування 1» та « Керування 2» дозволяють керувати роботом із двома незалежними провідними колесами, таким як Дослідник EV3. Координати дотику до таких джойстиків автоматично трансформуватимуться в команди двигунів. Для джойстика потрібно буде лише вибрати, на якому порту буде ліве, а на якому праве колесо. Але про це буде написано трохи нижче.

"Рулення 1" дозволить керувати двоколісним роботом, як автомобілем. Тут ви не зможете розгорнути робота на місці. Чим ближче дотик до центру по вертикалі, тим нижча швидкість. "Рулення 2" дозволяє роботу крутитися на місці.

Джойстик з типом « Незалежні двигуни» перетворює горизонтальну координату торкання команди мотору незалежно від вертикальної координати. Для джойстика потрібно буде вказати, який двигун буде керуватися при зміні горизонтальної координати, а який при зміні вертикальної координати. Цей тип джойстика можна використовувати для керування машиною, у якої один двигун повертає кермо, а другий двигун крутить провідні колеса. У цьому випадку зміна горизонтальної координати потрібно налаштувати на обертання першого двигуна, а зміна вертикальної координати - на обертання другого двигуна.

Джойстик з типом « Поштова скринька» просто передаватиме координати дотику в поштові ящики EV3. Щоб ваш робот ожив, вам потрібно буде написати програму для EV3, яка оброблятиме ці координати. За допомогою джойстика такого типу ви можете зробити складніші моделі управління роботом, т.к. можете реалізувати свій власний алгоритм перетворення координат, знятих з джойстика в команди моторам. Наприклад, ви зможете зробити керування Гіробоєм EV3. Джойстик 1 передає координати поштові скриньки з іменами x і y, джойстик 2 – поштові скриньки w і z, джойстик 3 – поштові скриньки a і b і джойстик 4 – поштові скриньки c і d.

Наступні два налаштування Закінчення дотику (для горизонтальної осі)» та « Закінчення дотику (для вертикальної осі)» визначають, що відбуватиметься, коли ви перестали торкатися джойстика. Тут можна вибрати один із двох варіантів: "Повертатися до нуля" або "Зберігати позицію". Повернення до нуля має сенс використовувати в більшості ситуацій, наприклад, якщо вам потрібно, щоб робот зупинився, коли ви перестали торкатися джойстика, якраз підходить варіант «Повертатися до нуля». Варіант із збереженням позиції буде корисним, коли потрібно пам'ятати останню координату торкання. Цей варіант використовується, наприклад, для нахилу рамки EV3. Це налаштування доступне для всіх форм джойстика, крім джойстиків-стрілок.

Якщо ви використовуєте тип джойстика "Незалежні двигуни", "Рулення 1" або "Рулення 2", то нижче ви знайдете налаштування портів для цього джойстика. Порти, якими керуватиме джойстик можна додавати та видаляти. Для цього є кнопки «ДОДАТИ» та «ВИДАЛИТИ». Кількість портів не обмежена. Знизу на першому малюнку показано налаштування для джойстика з типом «Незалежні мотори», а на другому малюнку для джойстика з типами «Рулення 1» та «Рулення 2». Як бачите, є невелика різниця.

Давайте пробіжимося за налаштуваннями портів. Налаштування " Вісь джойстика» з'являється лише для джойстика з типом «Незалежні двигуни». Варіантів тут два: «Горизонтальна» та «Вертикальна». Якщо ви вибрали «Горизонтальна», то мотор буде реагувати лише при зміні координати дотику по горизонтальній осі, а якщо вибрали «Вертикальна» – то на дотик по вертикальній осі.

Налаштування " Мотор» з'являється лише для джойстика з типом «Рулення 1» або «Рулення 2». Тут ви вибираєте між «Лівий» та «Правий».

Налаштування " Модуль EV3» знадобиться, якщо ви зібрали робота з використанням кількох модулів EV3, з'єднаних у «гірлянду». Тут можна вибрати номер модуля від 1 до 4. Якщо у вас використовується лише один модуль EV3, то тут завжди має бути 1.

Налаштуванням « Номер порту» Ви можете вибрати порт двигуна від A до D.

Налаштування " Змінюване значення» з'являється лише для джойстика з типом «Незалежні двигуни». Тут можливо два варіанти: "Потужність мотора" і "Кут повороту мотора". Якщо ви вибрали Потужність двигуна», то джойстик впливатиме потужність мотора, тобто. чим далі від центру джойстика ви торкаєтеся, тим швидше крутиться мотор. Якщо ви вибрали Кут повороту двигуна», то джойстик впливатиме на кут повороту двигуна, тобто. що далі від центру джойстика ви торкаєтеся, то більший кут повернеться мотор. В цьому випадку потужність для мотора буде налаштовуватися Потужність». Чим більше буде ця цифра, тим швидше мотор реагуватиме на зміну координати дотику, і тим краще він буде тримати кут.

Встановлення галочки « Інвертувати» дозволить інвертувати обчислену потужність чи кут, а « Коефіцієнт» збільшити чи зменшити обчислене значення.

При установці галочки « Гальмувати», Мотори будуть зупинятися швидко, тобто. гальмуватимуть. При знятті цієї галочки мотори деякий час крутитимуться за інерцією до повної зупинки.

Ось, власне, і всі налаштування, які є в програмі RoboCam. Якщо щось незрозуміло, пишіть у коментарях.

Підключення без роутера

Тепер трохи трюків, які можуть зробити використання програми RoboCam трохи зручнішим. Якщо поблизу немає роутера, наприклад, якщо ви знаходитесь на вулиці, ви можете організувати підключення між смартфоном 1 та смартфоном або планшетом 2 безпосередньо. Для цього вам потрібно включити точку доступу на смартфоні 1 (точка доступу в системі Androidзазвичай включається в налаштуваннях мережевих підключень). Після включення смартфон 1 перетвориться на роутер W-Fiі ви без проблем зможете підключити до нього планшет або смартфон 2. Ось так схематично виглядатиме підключення.

Адресу сервера RoboCam ви зможете точно так само дізнатися з підказки до кнопки. В більшості випадків, для такої точки доступу адреса завжди буде http://192.168.43.1:8088.

Використання смартфона 1 як джойстик

Є ще один трюк, який ви можете зробити з програмою RoboCam. На смартфоні 1 (на якому у вас встановлено програму RoboCam) запустіть сервер, підключіться до роботи, а потім на цьому ж смартфоні запустіть браузер (природно такий, що підтримує HTML5) і перейдіть за адресою http://localhost:8088. Ви побачите сторінку для введення логіну та пароля. Увійдіть як водій. Після входу ви побачите джойстики та зможете керувати роботом. Щоправда, у цьому випадку зображення з камери передаватися не буде. Wi-Fi можна вимкнути.

Підсумок

Сподіваюся, я дав достатньо інформації про те, як можна використовувати програму RoboCam. Якщо залишилися питання щодо програми чи є пропозиції, можете залишати їх у коментарях до цієї статті або у спільноті

Роботи-конструктори - ідеальна можливість, щоб поєднати гру та навчання найпростішим навичкам програмування. Саме тому вони користуються такою великою популярністю у світі.

Розрізняються вони не тільки виробниками, а й способами та можливостями програмування, типами кріплень, а також матеріалами.

Більшість спрощених (для новачків) і роботів мають у комплекті спеціальне програмне забезпечення, яке дозволяє легко задати команди своєму творінню. У більш досконалих моделях доведеться спочатку вивчити, засновані на С, мови.

LEGO Mindstorms

Конструктор випускається у двох типах:

  • дитячий;
  • просунутий.

У дитячому вкладено лише кілька моторів, лампочок, а також інструкція з можливими варіантамизбирання. Але з LEGO часто інструкція виявляється вже не потрібна після першого складання, і справа вступає фантазія.

Варто зауважити, хоч програмування цих роботів можливе, блоків управління в цьому наборі не передбачено, це означає, що робот завжди буде з'єднаний з комп'ютером за допомогою кабелю USB.

Просунутий набір відкриває набагато більший простір для фантазії. Він існує у кількох варіантах та поколіннях (на даний момент поколінь три). Вони відрізняються кількістю деталей, наявністю додаткових мікрокомп'ютерів, а також різними датчиками та іншими приладами. Мікрокомп'ютери цієї серії оснащені операційною системою Linux.Ці схеми підтримують як спеціальні мови програмування, а й C++, C і навіть Python.

Для зручності перепрограмування робота можна скористатися офіційною програмоювід LEGO, яка дозволить налаштовувати елементи з допомогою інтуїтивно зрозумілого інтерфейсу.

Лего тримає пальму першості у роботах-конструкторах вже понад десять років. Влаштовуються змагання зі створення, де головним призом найчастіше виявляється бюджетне місце у престижному ВНЗ.

LEGO Mindstorms – один із 17 варіантів складання

HUNA

Це порівняно новий бренд, родом з південної Кореї, який поступово набирає популярності у колах юних кібернетиків. Типів наборів HUNA є два. Їх принципова відмінність полягає в тому, що в одному випадку деталі виконані з пластику, а в іншому - з металу. Але водночас їх можна комбінувати, оскільки принцип з'єднання елементів вони загальний.

Дізнатися більше про захоплюючі металеві конструктори для хлопчиків можна.

Пластикові набори HUNA призначені для дітей віком від шести років, тому що не вимагають знання навіть основ програмування.

Як "мозок" залізних комплектів виступає контролер Arduino, на якому вже стоїть спеціальна прошивка. Середовище програмування тут – звичайна C-подібна мова для Arduino, але для більшої зручності її візуалізували.

За рахунок Arduino, а також більш розвинених систем, ці набори спеціалізуються на аудиторії, що досягла п'ятнадцяти років. Тобто тих, хто вже переріс Mindstorms.

Makeblock

Наступним конструктором у нашому списку є китайський Makeblock.Як і попередньому випадку, тут використовується електроніка Arduino. Кількість наборів, що продаються на офіційному сайті, просто величезна. Ви можете знайти як дешеві комплекти звичайних машинок, так і досить серйозні набори, які дозволяють створити 3D-принтер своїми руками.

Всі деталі Makeblock виконані з алюмінію, на який електростатичним способом нанесена фарба (приблизно, як і на автомобілі). Таким чином, ймовірність того, що з часом деталі виглядатимуть непоказно, прагне нуля.

З цікавих моделей слід помітити ті, що виконують малюнки, серед них:

  • mScara- Робо-рука, на яку можна замість маркера поставити лазер;
  • mSpider- він малює у вертикальних площинах, подібно до павука переміщаючись на ниточках;
  • mCar- Машинка, яка малює маркером там, де вона їздить.

Також для цих роботів є спеціальне програмне забезпечення, яке дозволяє створити малюнок будь-якої складності. Для цього достатньо завантажити його в графічний редакторпрограми.

#Структор

Цей конструктор виробляється у Росії відрізняється від інших тим, що його деталі виконані зі спіненого ПВХ. Їхня товщина становить п'ять міліметрів, що дозволяє створювати невеликі, але досить міцні конструкції.

А той факт, що ПВХ – м'який матеріал дозволяє вирішити вічну проблему конструкторів – деталі не такі, як їх хочеться бачити. У разі все вирішується звичайним канцелярським ножем чи скальпелем.

Переваги ПВХ:

  • низька вартість;
  • простота обробки – достатньо лише озброїтися ножем, олівцем та лінійкою;
  • висока міцність;
  • вологостійкість;
  • Пожежна безпека – температура загоряння листового ПВХ перевищує 400 градусів Цельсія.

Малу міцність конструкції виробники пропонують вирішити двома способами.Перший – просто склеїти деталі. Найкраще для таких цілей підійде спеціальний клей Космофен. Другий спосіб – об'єднати #Структор із радянським (або аналогічним) залізним конструктором.

#Структор від "Амперка"

Хоча деталі від такого звернення довго не проживуть, ви завжди зможете купити пластик і вирізати нові. Креслення деталей перебувають у вільному доступі, та й фантазію ніхто не виключав.

Управління елементами #Структор проводиться на Arduino. А завдяки універсальності матеріалу, з якого виготовлені елементи конструктора, будь-який датчик, сервопривід або двигун легко впроваджуються в конструкцію.

Vex

Фірма відома переважно завдяки своїм вібророботам.Але мало хто в курсі, що вона також виробляє набори для створення повноцінних роботів. Набори призначені для дітей віком від десяти років. Але завдяки широкому асортименту продукції їх також можна використовувати у школах чи університетах.

Якщо якогось елемента бракуватиме, завжди можна придбати його окремо. На сайті виробника є маса різних датчиків, двигунів та інших елементів конструктора. Крім того, купуючи додаткові деталі, можна збільшити складність виробів.

Тільки в наборах корейської компанії Vex зустрічаються коробки або колеса Ілона.

Програмування відбувається однією з кількох середовищ.Усього середи три. Перша є екраном, де замість прописування команд просто перетягуються блоки. Друга - класичні блок-схеми, як на уроках інформатики. Третє середовище дуже схоже на ПЗ від LEGO - те ж перетягування блоків з командами та значеннями.

Примітною особливістю є також наявність програмного забезпечення VEX Assembler.Це 3D редактор, у якому ви можете придумати та випробувати свого робота до того, як почнете його будувати наживо.

VEX Robotics by HEXBUG

FischerTechnik

Комплекти конструкторів виготовляє німецька компанія.Лінійка ROBOTICS, яка відкриває для дітей світ роботів, налічує шість наборів. Усі вони пропонують створити кілька роботів, які виконують ті чи інші функції. Як і з усіма конструкторами, веселощі починаються в той момент, коли всі інструкції вже перепробовані.

Щоб не було недоліку в деталях та електронних компонентах, окремо можна придбати набори розширення, дистанційне керуванняі багато іншого.

На окрему увагу заслуговують контролери, що продаються окремо.Хоча їхня вартість порівнянна з вартістю цілого набору, межі, які вони відкривають, легко перекривають цей факт.

У продажу є два типи контролерів:

  • Robo TX;
  • Robo TXT.

Висока ціна за них обумовлена ​​тим, що це не просто контролери, а справжні мікрокомп'ютери з підтримкою Wi-Fi, Bluetooth та досить потужною начинкою для своїх малих розмірів. Для підвищення продуктивності ці контролери можуть поєднуватися в одну мережу.

Програмування відбувається на безкоштовній програмі Robo Pro.Всі команди задаються за допомогою логічних блоків, що дозволяє навчити дитину азам програмування в ігровій формі.

ТРИК

Конструктор родом "народжений" у Росії.Його виробники вирішили допомогти шанувальникам робототехніки, які використовують радянські металеві конструктори. Тому всі деталі мають отвори з тими самими десятьма міліметрами, що й залізні конструктори.
Цей конструктор на ринку новачок, але вже зарекомендував себе універсальним і дуже зручним.

На даний момент є чотири типи наборів:

  • стартовий;
  • освітній;
  • шкільний;
  • змагальний.

Їхня відмінність у кількості деталей та електроніки. У всіх наборах ви знайдете мікроконтролер, мікрофон та відеокамеру або датчики, світлодіоди та колеса.

Мікроконтролер ТРІК працює на Linux і має на борту процесор з 24 мегагерцями та цілі 256 Мбайт оперативної пам'яті. Також її можна розширити за рахунок Flash-картки.

Набір для складання ТРІКС

Автори даного конструктора вирішили не прив'язувати контролер до одного середовища програмування.Тому він підтримує C, C++, Python і навіть Java. Для тих, хто тільки вивчає програмування, є спеціальне середовище програмування, призначене для контролера ТРІК.

Так як контролер підтримує безліч команд, для зручності управління є додаток для смартфонів під управлінням Android. Команди передаються за допомогою Wi-Fi.

MOSS


Американська компанія, яка вигадала MOSS, пішла нестандартним шляхом - вона відмовилася від проводів.
Натомість використовуються деталі кубічної форми, які мають кольорові грані. Їхнє призначення таке:

  1. Зелені – передача електроенергії від акумулятора.
  2. Червоні – вхід даних.
  3. Коричневі грані – вихід даних.
  4. Блакитні – ці грані передають і електрику та дані. Вони необхідні для того, щоб з'єднувати деталі за допомогою гнучкого елемента.

Так, конструкція досить складна, але якщо в ній розібратися, фантазію у створенні роботів буде не зупинити. А зрозуміти в чому суть у ній, може й дитина 8 років, на яку конструктор і розрахований. Модулі з'єднуються між собою за допомогою металевих куль, що кріпляться на магніти. Магніти розташовані на кутах модулів.

Robo Wunderkind від MOSS

Програмування мікроконтролерів можна здійснювати двох програмах.Перша являє собою візуалізатор з додатковими параметрами. Вона підійде для тих, хто не дуже добре розуміється на C-коді.

Друга програма спрямована на тих, хто добре в ньому розбирається. Вона компілює ваш код і переносить його до контролера. Обидві програми працюють на Windows і Mac OS, але не підтримуються Linux.

Для віддаленого правління роботом MOSS існує відразу кілька програм для мобільних пристроїв. Це і пульти управління, експорт даних із датчиків, малювання графіків та багато іншого. Всі програми доступні для iOS, а деякі для Android.

Для дітей дошкільного віку можна вибрати набір для збирання без електротехнічної складової, наприклад, .

Варто зауважити, що в огляді не враховувалися конструктори, вартістю понад сто тисяч рублів, а також ті, які потребують паяння.

Робот MECCANO, керований за допомогою смартфона або планшета

Відео

Дане відео детально розповість Вам про програмовані роботи: які вони бувають і який краще вибрати.

Щоб вибрати конструктор, потрібно визначитися, для кого він:

  • LEGO Mindstorms найкраще підійде дитині, яка захоплюється роботами. А оскільки більшість дітей мають велику колекцію LEGO, фантазія дитини буде воістину безмежною.
  • Якщо ви шукаєте конструктор для себе, то варто звернути увагу на ТРІК або #Структор, тому що вони обидва сумісні з радянським залізним конструктором, а другий ще й виконаний з ПВХ.
  • Але, так чи інакше, ці конструктори дуже сильно покращать здібності вашої дитини до логічного мислення, а також підготують його до того, що чекатиме його у школі чи інституті.

Не зайвим буде, перед покупкою, докладно вивчити кожен набір для складання, що сподобався. А також подумати над тим, щоб віддати дитину до клубу радіоаматорів, якщо дана тематика їй подобається.