2013-09-07 14 views
5

Czy ktoś wie, jak ustanowić połączenie Bluetooth z samodzielnie napisanej aplikacji na system iOS do nowej programowalnej klocków LEGO Mindstorms EV3 o numerze ?Połączenie Bluetooth z klockiem LEGO Mindstorms EV3 z aplikacji iOS

Próbowałem zrobić to za pomocą metody scanForPeripheralsWithServices: options: CBCentralManager, , ale klocek nie został rozpoznany.

Ale jeśli włączę Bluetooth w ustawieniach iPhone'a, to urządzenie EV3 zostanie tam wyświetlone. Istnieje również aplikacja w AppStore od LEGO ("Commander"), która rozmawia z cegiełką za pośrednictwem Bluetootha, więc myślę, że to powinno być możliwe w ogóle (jak wiem, nie było to możliwe w przypadku poprzedniego klocka Mindstorms NXT).

Czy ktoś ma pomysł, jak mogę to zrobić?

Dzięki!

+0

Zastanawiam się również, gdzie mogę znaleźć protokół bluetooth dla iPhone'a i Androida. Daj mi znać twój postęp plz – GingerJim

+0

[tutaj] (http: //bricks.stackexchange.com/questions/652/how-can-i-wireless-connect-the-nxt-and-an-ios-device) niektóre informacje w tym łączu mogą być istotne. iPhone pozwala tylko na połączenie Bluetooth ze słuchawkami i innymi urządzeniami ios. nie wiesz, jak oficjalna aplikacja osiąga ten poziom – GingerJim

+0

Czy przekazujesz jakieś usługi do tablicy usług? Jeśli tak, możesz zablokować cegłę. Czy upewniłeś się, że ustawisz delegata na własny rachunek? – Mark

Odpowiedz

0
  1. Włącz opcję Bluetooth i iPod/iPhone na klocku EV3. Można to zrobić z menu narzędzi na EV3.
  2. Włącz Bluetooth na iPhonie.
  3. Rozpocznij proces parowania Bluetooth.
  4. Uruchom aplikację Lego EV3 na iPhonie. Gotowe.
+1

Przepraszam - może moje pytanie nie było wystarczająco jasne. Chciałbym wiedzieć, jak to zrobić w kodzie z mojej własnej napisanej aplikacji. – iosdeveloper

+0

to nie jest odpowiedź najwyraźniej – GingerJim

1

Będziesz musiał poczekać, aż Lego wypuści SDK, który, mam nadzieję, zawiera informacje o protokole. Było to możliwe dzięki NXT i myślę, że będzie to możliwe z EV3.

W międzyczasie możesz spróbować wysłać wiadomość przez Wi-Fi, która jest possible right now.

2

Jak powiedział, urządzenie nie znajduje się na liście za pomocą CoreBluetooth, dostał go za pomocą EAcessory ramy, trzeba mieć pozycji „COM.LEGO.MINDSTORMS.EV3” w UISupportedExternalAccessoryProtocols w swojej App-Info.plist:

<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) 
} 

Podobnie jak w przypadku aplikacji Lego, musisz najpierw połączyć się z EV3 za pomocą aplikacji Ustawienia. Następnie spójrz na przykład Apple EADemo, pokazujący jak korzystać z EASession (enkapsuluj strumień odczytu/zapisu).

Może wysyłanie danych takich jak C# zebrane z kodu źródłowego monobrick.dk (powiedział w odpowiedzi Mailerdaimon) będzie działało ... Zdobędę próbę przez Wifi (po przeniesieniu C# do ObjC, długiej pracy), po tym, pisanie do EASession może być łatwiejsze. Zaktualizuję tę odpowiedź po zakończeniu.

0

Należy pamiętać, że istnieją dwa protokoły, z którymi EV3 komunikuje się przez Bluetooth. Jeden jest używany przez LEGO EV3 App na iPhone'a, a drugi jest taki sam dostępny na USB-HID i WiFi i jest częściowo określony przez Communication developer manual i przez source code. Ten drugi protokół jest tym, którego powinieneś użyć.

Możesz zadzwonić/połączyć się z/sprawdź kod źródłowy my uploader dla c4ev3, aby zobaczyć, jak połączenie jest realizowane.

HTH.

Powiązane problemy