Bluetooth-соединение с кирпичом LEGO Mindstorms EV3 из приложения iOS

Кто-нибудь знает, как установить соединение Bluetooth от самописного приложения для iOS до нового программируемого блока LEGO Mindstorms EV3?

Я пытался сделать это через scanForPeripheralsWithServices:options: метод CBCentralManager, но кирпич не распознается.

Но если я включаю Bluetooth в настройках iPhone, то там отображается устройство EV3. Также в AppStore есть приложение от LEGO ("Commander"), которое общается с кирпичом через Bluetooth, поэтому я думаю, что это должно быть вообще возможным (насколько я знаю, это было невозможно для предыдущего кирпича Mindstorms NXT).

У кого-нибудь есть идеи, как я могу это сделать?

Спасибо!

4 ответа

Как уже говорилось, устройство не указано в списке с помощью CoreBluetooth, оно получено с использованием инфраструктуры EAcessory, в вашем App-Info.plist необходимо иметь элемент "COM.LEGO.MINDSTORMS.EV3" в UISupportedExternalAccessoryProtocols:

<EAAccessory: 0x15567180> {
  connected:YES
  connectionID:18565483
  name: MFI Accessory
  manufacturer: LEGO
  modelNumber: DM240411
  serialNumber: 
  firmwareRevision: 1.0.0
  hardwareRevision: 1.0.0
  protocols: (
    "COM.LEGO.MINDSTORMS.EV3"
)
  delegate: (null)
}

Как и в случае с приложением Lego, вам необходимо сначала подключиться к EV3 с помощью приложения "Настройки". Затем посмотрите на пример Apple EADemo, он показывает, как использовать EASession (инкапсулировать поток чтения / записи).

Может быть, отправка данных типа C#, собранных из исходного кода monobrick.dk (говорится в ответе Mailerdaimon), будет работать... Я попробую через Wifi (после переноса C# в ObjC, долгая работа), после этого запись в EASession может быть проще Я обновлю этот ответ, когда закончите.

Вам придется подождать, пока Lego выпустит SDK, который, как мы надеемся, содержит информацию о протоколе. Это было возможно с NXT, и я думаю, что это будет возможно с EV3.

В то же время вы можете попробовать отправить свои сообщения через Wi-Fi, что возможно прямо сейчас.

Обратите внимание, что есть два протокола, с которыми EV3 связывается по Bluetooth. Один из них используется приложением LEGO EV3 на iPhone, а второй - через USB-HID и Wi-Fi. Он частично указан в руководстве разработчика по связи и в исходном коде. Последний протокол - тот, который вы должны использовать.

Вы можете позвонить / связать / проверить исходный код моего загрузчика для c4ev3, чтобы увидеть, как реализовано соединение.

НТН.

  1. Включите функцию Bluetooth и iPod/iPhone на блоке EV3. Это можно сделать из меню инструментов на EV3.
  2. Включить Bluetooth на iPhone.
  3. Запустите процесс сопряжения Bluetooth.
  4. Запустите приложение Lego EV3 на iPhone. Готово.
Другие вопросы по тегам