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, чтобы увидеть, как реализовано соединение.
НТН.
- Включите функцию Bluetooth и iPod/iPhone на блоке EV3. Это можно сделать из меню инструментов на EV3.
- Включить Bluetooth на iPhone.
- Запустите процесс сопряжения Bluetooth.
- Запустите приложение Lego EV3 на iPhone. Готово.