Усі датчики ev3 правильна назва. З'єднання двох і більше блоків EV3

Традиційно роботи, збудовані на платформі Lego Mindstorms EV3програмуються з використанням графічного середовища LabVIEW. У цьому випадку програми запускаються на контролері EV3 і робота працює автономно. Тут я розповім про альтернативний спосіб керування роботом – використання платформи.NET, запущеної на комп'ютері.

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

  • Потрібно віддалене керування роботом з ноутбука (наприклад, натисканням кнопок)
  • Потрібно збирати дані з контролера EV3 та обробляти їх на зовнішній системі (наприклад, для IoT-систем)
  • Будь-які інші ситуації, коли хочеться написати алгоритм управління на .NET і запускати його з комп'ютера, підключеного до контролера EV3

LEGO MINDSTORMS EV3 API for .NET

Управління контролером EV3 із зовнішньої системи здійснюється шляхом відправки команд у послідовний порт. Сам формат команд описаний у Communication Developer Kit.

Але реалізація цього протоколу вручну – справа нудна. Тому можна скористатися готовою.NET-обгорткою, яку дбайливо написав Brian Peek. Вихідні коди цієї бібліотеки розміщені на Github, а готовий до використання пакет можна знайти в Nuget.

Підключення до контролера EV3

Для зв'язку з контролером EV3 використовується клас Brick. При створенні цього об'єкта конструктор потрібно передати реалізацію інтерфейсу ICommunication - об'єкт, що описує спосіб підключення до контролера EV3. Доступні реалізації UsbCommunication, BluetoothCommunication та NetworkCommunication (підключення через WiFi).

Найбільш популярний спосіб підключення – через Bluetooth. Розглянемо детальніше цей спосіб підключення.

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

Після того, як контролер підключений, йдемо в налаштування Bluetooth та вибираємо вкладку COM-порти. Знаходимо наш контролер, нам потрібний вихіднийпорт. Його і будемо вказувати під час створення об'єкта BluetoothCommunication.

Код для підключення до контролера виглядатиме так:

Public async Task Connect(ICommunication communication) ( var communication = новий BluetoothCommunication("COM9"); var brick = _brick = новий Brick(communication);

Опціонально можна вказати таймаут підключення до контролера:

Await _brick.ConnectAsync(TimeSpan.FromSeconds(5));

Підключення до блоку через USB або WiFi здійснюється аналогічно, за винятком того, що використовуються об'єкти UsbCommunication і NetworkCommunication .

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

Покрутимо моторами

Для виконання команд на контролері EV3 звернемося до якості DirectCommand об'єкта Brick. Для початку спробуємо запустити двигуни.

Припустимо, що наш двигун підключений до порту A контролера, тоді запуск цього двигуна на потужності 50% буде виглядати так:

Await _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50);

Є й інші способи управління мотором. Наприклад, можна повернути двигун на заданий кут, використовуючи методи StepMotorAtPowerAsync() та StepMotorAtSpeedAsync() . Усього є кілька методів, які є варіаціями на режими включення моторів - за часом, швидкості, потужності і т.д.

Примусова зупинка здійснюється методом StopMotorAsync() :

Await _brick.DirectCommand.StopMotorAsync(OutputPort.A, true);

Другий параметр вказує на використання гальма. Якщо його встановити в false , то двигун буде зупинятися «накатом».

Читання значень із датчиків

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

Доступ до портів для зчитування значень можна отримати через властивість Ports об'єкта Brick. Ports – це колекція портів, доступних на контролері. Тому для роботи з конкретним портом його потрібно вибрати. InputPort.One... InputPort.Four - це порти для датчиків, а InputPort.A... InputPort.D - це енкодери моторів.

Var port1 = _brick.Ports;

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

Brick.Ports.SetMode(ColorMode.Reflective);

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

Float si = _brick.Ports.SIValue; int raw = _brick.Ports.RawValue; byte percent = _brick.Ports.PercentValue;

Властивість SIValue повертає оброблені дані. Тут все залежить від того, який датчик використовується і в якому режимі. Наприклад, при вимірі відбитого світла ми отримаємо значення від 0 до 100 залежно від інтенсивності відбитого світла (чорний/білий).

Властивість RawValue повертає "сире" значення, отримане з АЦП. Іноді зручніше використовувати саме його для подальшої обробки та використання. До речі, серед розробки EV3 теж є можливість отримання «сирих» значень - для цього потрібно скористатися блоком з синьої панелі.

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

Виконання команд «пачкою»

Припустимо, у нашому розпорядженні є робот-візок із двома колесами і ми хочемо розгорнути його на місці. У цьому випадку два колеса повинні обертатися у протилежному напрямку. Якщо ми скористаємося DirectCommand і послідовно відправимо дві команди контролеру, між їх виконанням може пройти деякий час:

Await _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50); await _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, -50);

У цьому прикладі ми відправляємо команду для обертання мотора A на швидкості 50, після успішного закінчення відправки цієї команди, повторюємо те саме з мотором, підключеним до порту B. Проблема в тому, що відправка команд відбувається не моментально, тому мотори можуть почати крутитися в різний час – поки передається команда для порту B, мотора A вжепочне крутитись.

Якщо для нас важливо примусити крутитися мотори одночасно, можна відправляти команди контролеру «пачкою». У цьому випадку слід скористатися властивістю BatchCommand замість DirectCommand:

Brick.BatchCommand.TurnMotorAtPower(OutputPort.A, 50); _brick.BatchCommand.TurnMotorAtPower(OutputPort.B, -50); await _brick.BatchCommand.SendCommandAsync();

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

Що ще можна зробити

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

  • CleanUIAsync() , DrawTextAsync() , DrawLineAsync() та ін. - маніпуляція вбудованим екраном контролера EV3
  • PlayToneAsync() та PlaySoundAsync() - використання вбудованого динаміка для відтворення звуків
  • WriteFileAsync() , CopyFileAsync() , DeleteFileAsync() (з SystemCommand) - робота з файлами

Висновок

Використання .NET для управління роботами Mindstorms EV3 добре демонструє, як технології «з різних світів» можуть працювати спільно. Як результат дослідження EV3 API для .NET було створено невелику програму, яка дозволяє керувати роботом EV3 з комп'ютера. На жаль, аналогічні програми існують для NXT, а EV3 вони оминули. У той же час вони корисні на зірваннях керованих роботів, наприклад, у футболі роботів.

Програму можна завантажити та встановити за цим посиланням:

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

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


Дивно, але червоний провід – це земля (GND), зелений – плюс харчування 4,3В. Синій провід – одночасно SDA для шини I2C та TX для протоколу UART. Крім цього, синій провід - вхід аналогово-цифрового перетворювача для EV3. Жовтий провід – одночасно SCL для шини I2C та RX для протоколу UART. Білий провід – вхід аналогово-цифрового перетворювача для датчиків NXT. Чорний – цифровий вхід, для датчиків, сумісних з NXT – він дублює GND. Непросто, чи не так? Давайте по порядку.

Аналоговий вхід EV3

У кожному порту датчика є канал аналогово-цифрового перетворювача. Він використовується для таких датчиків, як Touch Sensor (кнопка), датчиків NXT Light Sensor та Color Sensor у режимі вимірювання відбитого світла та зовнішнього освітлення, NXT датчика звуку та NXT-термометра.

Опір 910 Ом, підключений згідно зі схемою повідомляє контролера, що даний порт необхідно переключити в режим аналогового входу. У такому режимі до EV3 можна підключити будь-який аналоговий датчик, наприклад Arduino. Швидкість обміну з таким датчиком при цьому може досягати декількох тисяч опитувань в секунду, це найшвидший тип датчиків.

Датчик освітленності

Термометр

Датчик вологості ґрунту

Також можна підключити: мікрофон, кнопку, ІЧ далекомір і багато інших поширених сенсорів. Якщо для датчика недостатньо живлення 4,3В, можна запитати його від 5В від роз'єму USB-порту, розташованого на боці контролера EV3.

Згадана вище "крутилка гучності" (вона ж змінний резистор або потенціометр) є чудовим прикладом аналогового датчика - її можна підключити так:

Для читання значень такого датчика в стандартному середовищі програмування LEGO необхідно використовувати синій блок RAW

Протокол I2C

Це цифровий протокол, по ньому працює, наприклад, ультразвуковий датчик NXT, багато датчиків Hitechnic, такі як IR Seeker або Color Sensor V2. Для інших платформ, наприклад для Arduino, є маса i2c-датчиків, їх ви теж зможете підключити. Схема наступна:

Опір 82 Ом рекомендовано LEGO Group, однак у різних джерелах зустрічаються згадки про 43 Ом і менше. Насправді ми спробували взагалі відмовитися від цих опорів і все працює принаймні "на столі". У реальному роботі, що працює в умовах різного роду перешкод, лінії SCL і SDA варто все ж таки притягнути до живлення через опори, як це зазначено на схемі вище. Швидкість роботи i2c в EV3 досить невелика, приблизно 10000 кбіт/с, саме тому всіма улюблений Hitechnic Color Sensor V2 такий гальмівний:)

На жаль, для стандартного EV3-G від LEGO не існує повноцінного блоку для двостороннього зв'язку з i2c датчиком, але використовуючи сторонні середовища програмування, такі як RobotC, LeJOS або EV3 Basic можна взаємодіяти практично з будь-якими датчиками i2c.

Здатність EV3 працювати за протоколом i2c відкриває цікаву можливість для підключення декількох датчиків до одного порту. I2C протокол дозволяє підключити до однієї шині до 127 підлеглих пристроїв. Уявляєте? По 127 датчиків до кожного з портів EV3:) Більше того, часто купу i2c датчиків поєднують в одному пристрої, наприклад, на фото нижче датчик 10 в 1 (містить компас, гіроскоп, акселерометр, барометр і т.д.)

UART

Майже всі стандарти EV3-датчики, за винятком Touch Sensor, працюють за протоколом UART і тому вони не сумісні з контролером NXT, який хоч і має такі ж роз'єми, але на портах датчиків у нього UART не реалізований. Погляньте на схему, вона трохи простіша, ніж у попередніх випадках:

UART-датчики автоматично узгоджують із EV3 швидкість своєї роботи. Спочатку з'єднавшись на швидкості 2400 кбіт/с вони домовляються про режими роботи та швидкість обміну, переходячи потім на підвищену швидкість. Типові швидкості обміну для різних датчиків 38400 та 115200 кбіт/с.
LEGO реалізувала у своїх UART-датчиках досить хитромудрий протокол, тому сторонніх датчиків, призначених спочатку не для цієї платформи, але сумісних з нею, не існує. Проте цей протокол дуже зручний для підключення саморобних
датчиків, з урахуванням микроконтроллеров.
Для Arduino існує чудова бібліотека EV3UARTEmulation, написана відомим LeJOS-розробником Lawrie Griffiths, яка дозволяє цій платі прикинутися UART-LEGO-сумісним датчиком. У його блозі LeJOS News є безліч прикладів підключення датчиків газу, IMU-сенсора та цифрового компасу з використанням даної бібліотеки.

Нижче на відео – приклад використання саморобного датчика. У нас немає достатньої кількості оригінальних датчиків відстані LEGO, тому один із датчиків на роботі ми використовуємо саморобний:


Завдання робота - стартувати із зеленої клітини, знайти вихід із лабіринту (червона клітина) і повернутися на місце старту найкоротшим шляхом, не заїжджаючи в безвихідь.

Виберіть режим екрану

Вибір режиму
Текстове поле блоку
Введення
Кнопка попереднього перегляду

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

Ви можете клацнути на кнопці «Попередній перегляд», щоб переглянути те, що відображатиметься на екрані EV3. Ви можете залишити перегляд відкритим під час вибору вхідних значень блоку.

Екранні координати

Багато режимів блоку «Екран» використовують координати X і Y для визначення розташування елемента. Координати визначають положення пікселів на екрані модуля EV3. Положення (0, 0) знаходиться у верхньому лівому кутку екрана, як показано на малюнку нижче.

Розміри екрана: 178 пікселів завширшки і 128 пікселів заввишки. Діапазон значень X координат: від 0 на екрані ліворуч до 177 праворуч. Діапазон значень координат Y: від 0 зверху до 127 знизу.

Поради та підказки

Ви можете використовувати кнопку «Попередній перегляд» у верхньому лівому куті блоку «Екран» для пошуку правильних екранних координат.

Текст – Пікселі

Режим «Текст – Пікселі» дозволяє відображати текст у будь-якому місці екрана модуля EV3.

Вікно скидання налаштувань

Режим «Вікно скидання налаштувань» повертає екран модуля EV3 до стандартного інформаційного екрана, що відображається під час роботи програми. Цей екран показує ім'я програми та іншу інформацію зворотного зв'язку. Коли ви запускаєте програму на модулі EV3, екран відображається до виконання першого блоку програми «Екран».

Забезпечення видимості елементів, що відображаються

Після завершення програми EV3 екран модуля EV3 очищається та повертається до екрана меню модуля EV3. Будь-який текст або графіка, які відображаються програмою, будуть стерті. Якщо, наприклад, ваша програма має один блок «Екран» і нічого більше, екран буде так швидко очищений відразу після завершення програми, що ви не побачите результати блоку «Екран».

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

Відображення кількох елементів

Якщо ви бажаєте відобразити на екрані одночасно кілька текстових або графічних елементів, важливо не очищати екран модуля EV3 між елементами. Кожен режим блоку "Екран" має введення "Очистити екран" . Якщо «Очистити екран» – істина, весь екран буде очищено перед відображенням елемента. Це означає, що для відображення декількох елементів, ви повинні налаштувати "Очистити екран" на "Брехня" для кожного блоку "Екран", крім першого.

Відображення чисел

Для відображення числового значення у вашій програмі підключіть шину даних до введення «Текст» блоку «Відображення тексту». Шина числових даних буде автоматично конвертуватися в текст за допомогою перетворення типу шини даних (детальнішу інформацію див.

Опис презентації з окремих слайдів:

1 слайд

Опис слайду:

2 слайд

Опис слайду:

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

3 слайд

Опис слайду:

Інтерфейс: Меню EV3 має меню, яке складається з 4-х частин: Нещодавні програми (Recent Programs) Менеджер файлів (File Navigation) Програми Блоку Управління (Brick Applications) Налаштування Блоку Управління (Brick Settings)

4 слайд

Опис слайду:

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

5 слайд

Опис слайду:

Менеджер файлів Доступ та керування всіма файлами, що зберігаються в пам'яті мікрокомп'ютера, а також на картці пам'яті. З цього вікна ви будете здійснювати доступ та керування всіма файлами у вашому модулі EV3, включаючи файли, що зберігаються на карті SD. Файли організовані за папками проектів, які крім програмних файлів також містять звуки і зображення, що використовуються в кожному проекті. Файли можна переміщувати або видаляти за допомогою навігатора файлами. Програми, створені за допомогою середовища програмування модуля та програм реєстрації даних модуля, зберігаються окремо в папках BrkProg_SAVE та BrkDL_SAVE.

6 слайд

Опис слайду:

Програми Блоку Управління EV3 має 4 встановлених програм: А. Подання порту. Б. Управління моторами. В. ІЧ управління. Г. Середовище програмування модуля.

7 слайд

Опис слайду:

А. Подання порту У першому вікні «Представлення порту» можна швидко переглянути, до яких портів підключені датчики або двигуни. За допомогою кнопок керування модулем EV3 перейдіть до одного із зайнятих портів, і ви побачите поточні показання, отримані з датчика або двигуна. Встановіть кілька датчиків і моторів та поекспериментуйте з різними налаштуваннями. Натисніть центральну кнопку, щоб переглянути або змінити поточні налаштування для встановлених двигунів і датчиків. Щоб повернутися до основного вікна програм модуля, натисніть кнопку «Назад».

8 слайд

Опис слайду:

Б. Керування двигуном Керуйте прямим або зворотним рухом будь-якого двигуна, підключеного до одного з чотирьох портів виведення. Існує два різні режими. В одному режимі ви зможете керувати моторами, підключеними до порту А (за допомогою кнопок «Вгору» та «Вниз») та до порту D (за допомогою кнопок «Вліво» та «Вправо»). В іншому режимі ви керуєте двигунами, підключеними до порту B (за допомогою кнопок «Вгору» та «Вниз») та до порту С (за допомогою кнопок «Вліво» та «Вправо»). Перемикання між двома режимами здійснюється за допомогою центральної кнопки. Щоб повернутися до основного вікна програм модуля, натисніть кнопку «Назад».

9 слайд

Опис слайду:

ІЧ-керування Керуйте прямим або зворотним рухом будь-якого двигуна, підключеного до одного з чотирьох портів виведення, використовуючи віддалений інфрачервоний маяк як дистанційне керування та інфрачервоний датчик як приймач (інфрачервоний датчик повинен бути підключений до порту 4 в модулі EV3). Існує два різні режими. В одному режимі ви використовуватимете канали 1 і 2 на віддаленому інфрачервоному маяку. На каналі 1 ви зможете керувати моторами, підключеними до порту (використовуючи кнопки 1 і 2 на віддаленому інфрачервоному маяку) і до порту С (використовуючи кнопки 3 і 4 на віддаленому інфрачервоному маяку). На каналі 2 ви зможете керувати моторами, підключеними до порту А (використовуючи кнопки 1 та 2) та до порту D (використовуючи кнопки 3 та 4). В іншому режимі ви можете керувати моторами так само, натомість використовуючи канали 3 і 4 на віддаленому інфрачервоному маяку. Перемикання між двома режимами здійснюється за допомогою центральної кнопки. Щоб повернутися до основного вікна програм модуля, натисніть кнопку «Назад».

10 слайд

Опис слайду:

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

11 слайд

Опис слайду:

Налаштування Модуля EV3 Це вікно дозволяє переглядати та коригувати різні загальні налаштування у модулі EV3.

12 слайд

Опис слайду:

Налаштування гучності Ви можете збільшувати та зменшувати Гучність (Volume) у вкладці Настройки (Settings) у EV3.

13 слайд

Підключення USB

LEGO Mindstorms EV3 може підключатися до ПК або іншого EV3 за допомогою USB-з'єднання. Швидкість з'єднання та стабільність у цьому випадку краще, ніж за будь-якого іншого способу, включаючи Bluetooth.

LEGO Mindstorms EV3 має два порти USB.

Зв'язок між LEGO EV3 та іншими блоками LEGO EV3 у режимі підключення шлейфом.

Режим підключення шлейфом служить для з'єднання двох та більше блоків LEGO EV3.

Цей режим:

  • призначений для підключення більш ніж одного LEGO Mindstorms EV3;
  • служить для підключення більшої кількості датчиків, двигунів та інших пристроїв;
  • дозволяє здійснити зв'язок між кількома LEGO Mindstorms EV3 (до 4), що дає нам до 16 зовнішніх портів і таку кількість внутрішніх портів;
  • дає можливість керувати всім ланцюжком з головним LEGO Mindstorms EV3;
  • не може функціонувати під час активного підключення Wi-Fi або Bluetooth.

Для включення режиму підключення шлейфом перейдемо у вікно налаштування проекту та поставимо галочку.

Коли вибрано цей режим, то для будь-якого двигуна ми можемо вибрати блок EV3, який буде задіяний, та необхідні датчики.

У таблиці наведено варіанти застосування блоків EV3:

Дія

Середній мотор

Великий мотор

Рульове управління

Незалежне управління

Гіроскопічний

Інфрачервоний

Ультразвуковий

обертання двигуна

Температури

Лічильник енергії

Звуковий

Підключення через Bluetooth

Bluetooth дозволяє LEGO Mindstorms EV3 підключитися до ПК, іншого LEGO Mindstorms EV3, смартфонів та інших пристроїв Bluetooth. Дальність зв'язку Bluetooth – до 25 м.

До одного LEGO Mindstorms EV3 можна підключити до 7 блоків. Головний блок EV3 дозволяє надсилати та отримувати повідомлення для кожного підлеглого EV3. Підлеглі EV3 можуть надсилати повідомлення на головний блок EV3, але не між собою.

Послідовність з'єднання EV3 через Bluetooth

Щоб з'єднати два і більше блоків EV3 між собою по Bluetooth, потрібно виконати такі дії:

1. Відкрити вкладку Налаштування.

2. Виберіть Bluetoothта натисніть центральну кнопку.

3. Ставимо Прапорець видимості Bluetooth.

4. Перевірте, чи Bluetooth знак ("<") виден на верхней левой стороне.

5. Зробіть вищезазначену процедуру для потрібної кількості блоків EV3.

6. Увійдіть у кладку Підключення (Connection):

7. Натисніть кнопку Пошук (Search):

8. Виберіть EV3, який потрібно підключити (або до якого ви хочете підключитися) і натисніть центральну кнопку.

9. З'єднуємо один і другий блок з ключем доступу.

Якщо зробити все правильно, то у верхньому лівому кутку з'явиться значок<>", аналогічно виконується підключення інших блоків EV3, якщо їх більше двох.

Якщо ви вимкнули LEGO EV3, то зв'язок пропаде і вам усі пункти потрібно буде повторити.

Важливо: для кожного блоку має бути написана своя програма.

Приклад програми:

Перший блок: при натисканні датчика торкання перший блок EV3 передає текст на другий блок із затримкою 3 секунди (головний блок).

Приклад програми для 2 блоків:

Другий блок очікує прийняття тексту з першого блоку, і як тільки він його отримав, виведе на екран слово (у нашому прикладі це слово Hello) протягом 10 секунд (підлеглий блок).

Підключення через Wi-Fi

Підключення Wi-Fi Dongle до порту USB на EV3 можливе.

Для використання Wi-Fi потрібно встановити на блок EV3 спеціальний модуль, використовуючи USB-роз'єм (Wi-Fi адаптер (Netgear N150 Wireless Adapter (WNA1100)), а також можна підключити Wi-Fi Dongle.