Forum: Mikrocontroller und Digitale Elektronik PIC mit PS3 Controller über Bluetooth ansprechen


von Lukas Eminger (Gast)


Lesenswert?

Hallo miteinander,

Im Zuge einer Projektarbeit an meiner Schule haben ich und 2 Kollegen 
vor ein kleines Fahrzeug mit Mecanum-Rädern zu bauen. Das einzige was 
uns an Bauteilen jetzt noch fehlt wäre ein passendes Bluetooth Modul, 
das wir in Verbindung mit einem PS3 Controller verwenden können, bzw. 
falls das mit allen erhältlichen geht, eines das auch leicht 
verständlich ist da die Bluetooth-Übertragung völliges Neuland für uns 
ist.

Wir haben hier im Forum schon mal bei der Wahl eines Motorcontrollers 
gestöbert, wobei es ziemlich hilfreich war und deshalb wollt ich mal 
fragen ob schon irgendjemand Erfahrungen mit der Übertrageung zwischen 
PS3 Controller und PIC hat.

Danke schonmal im Vorraus.

von Frank K. (fchk)


Lesenswert?

Kennst Du das hier?

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2909

Ich denke, das beste ist, Ihr kauft Euch so ein Eval-Kit. Angesichts der 
Komplexität von Bluetooth ist das der einzige Weg, wie Ihr in endlicher 
Zeit Resultate erzielen werdet.

fchk

von SNR (Gast)


Lesenswert?

Wird der PS3 Kontroller überhaupt erkannt?
Wenn ja als was für ein Device meldet er sich?

von SNR (Gast)


Lesenswert?

Achso...oder nehmt doch das standard BTM-222 Modul.
Das meldet sich als serielle Schnittstelle.
Dann könntet ihr ganz normal den PC oder ein Handy benutzen und 
bräuchtet "nur" die Daten auswerten die über die serielle Schnittstelle 
an den uC reinkommen.

von Lukas E. (mecanumbot) Flattr this


Lesenswert?

Danke sowas wäre perfekt uns!

Das einzige Problem, das ich darin sehe ist das wir eine PIC18 verwenden 
(wegen 4 CCP/ECCP Outputs) und bei dem Eval-Kit nur was von PIC24, dsPIC 
oder PIC32 steht. Würde das mit dem PIC18 auch funktionieren?

von Lukas E. (mecanumbot) Flattr this


Lesenswert?

Ist das BTM-222 mit allen BT-Geräten kompatibel ?
Also auch eine Steuerung mit Android-Applikation vom Handy ?
Oder hab ich das falsch verstanden ?

von SNR (Gast)


Lesenswert?

Lukas Eminger schrieb:
> Also auch eine Steuerung mit Android-Applikation vom Handy ?

Hatte selbst schon mal ein kleines App für mein SGS geschrieben dass 
Daten vom Handy über das BTM-222 an den uC und umgekehrt durchgereicht 
hat.
Such nach dem App "BlueTerm" (oder ein ähnliches einfaches 
Terminalprogramm), installier es auf Deinem Android Handy, schließ an 
das BTM-222 ein USART-USB-Wandler alle CP2102 oder FT232 an und Du 
kannst es direkt testen.

Später dann einfach
1
Handy/PC/Laptop <--> BTM222 <---> uC

Lukas Eminger schrieb:
> Ist das BTM-222 mit allen BT-Geräten kompatibel ?

Keine Ahnung ob es mit allen geht. Mit denen die das richtige 
Bluetooth-Profil unterstützen müsste es gehen. Hier müsste es SPP 
(Serial Port Profile) sein:
http://de.wikipedia.org/wiki/Bluetooth-Profile

Hier noch das "Datenblatt":
http://plischka.at/Files/btm222_datasheet.pdf

und der Hersteller:
http://www.rayson.com/


Grüße

von SNR (Gast)


Lesenswert?

Achso, aber ACHTUNG.
Maximale Betriebsspannung sind 3,3V !!!
Auch die Portpins sind NICHT 5V kompatibel!!!

Also am besten einfach den uC auf 3,3V betreiben.

Grüße

von Lukas E. (mecanumbot) Flattr this


Lesenswert?

Ok ich hab das mit den andern beiden besprochen und ich glaub es ist 
entschieden =)
Danke für die Infos und soweit ich weiß sind die PS3 Controller alle mit 
normalem 2,4GHz BT ausgestattet also sollts gehen.
Hoffe wir haben damit Erfolg =)

von SNR (Gast)


Lesenswert?

Lukas Eminger schrieb:
> Danke für die Infos und soweit ich weiß sind die PS3 Controller alle mit
> normalem 2,4GHz BT ausgestattet also sollts gehen.

Habe gerade mal beim Nachbarn einen ausgeliehen...am PC kann ich ihn 
nicht finden bzw. wird er nicht erkannt.

Gibts da nen Trick? Normalerweise hätte ich gesagt einfach auf den 
PS-Knopf drücken und er müsste sich ja melden, oder?

Gruß

von SNR (Gast)


Lesenswert?

Ok...scheinbar geht es über Bluetooth am PC.
Hier soll es einen Treiber geben:
http://www.motioninjoy.com/download

Ob das an einem uC genau so einfach geht bezweifle ich fast.

Grüße

von Frank K. (fchk)


Lesenswert?

Lukas Eminger schrieb:
> Danke sowas wäre perfekt uns!
>
> Das einzige Problem, das ich darin sehe ist das wir eine PIC18 verwenden
> (wegen 4 CCP/ECCP Outputs) und bei dem Eval-Kit nur was von PIC24, dsPIC
> oder PIC32 steht. Würde das mit dem PIC18 auch funktionieren?

Nein, der Bluetooth-Stack ist dafür zu groß. Es gibt aber genügend 16- 
und 32-Bit PICs mit 4 ECCPs.

Die erwähnten BTM222 Module und auch die meisten anderen werdet Ihr 
nicht nehmen können, weil die nur das SPP-Profil können. Bei Bluetooth 
gibts viele verschiedene Gerätearten, und das BTM222 kann eben nur das 
für serielle Schnittstellen und kein anderes. Also unbrauchbar für Euch. 
Ihr werdet wohl das HID-Profil brauchen.

An einem eigenen Bluetooth-Stack werdet Ihr Monate sitzen, das 
verspreche ich Euch. Also nehmt, was Microchip Euch anbietet.

fchk

von Naja...Schüler (Gast)


Lesenswert?

Frank K. schrieb:
> und das BTM222 kann eben nur das
> für serielle Schnittstellen und kein anderes. Also unbrauchbar für Euch.

Das ist hier die Frage. Um ein paar Bytes zu übertragen um einen Robot 
zu steuern reicht es vollkommen.


Muss es denn unbedingt der PS3 Controller sein?
Wenn nein wäre das in kürzester Zeit machbar
(ein paar grundlegende Kenntnisse vorausgesetzt).

von Frank K. (fchk)


Lesenswert?

Naja...Schüler schrieb:
> Frank K. schrieb:
>> und das BTM222 kann eben nur das
>> für serielle Schnittstellen und kein anderes. Also unbrauchbar für Euch.
>
> Das ist hier die Frage. Um ein paar Bytes zu übertragen um einen Robot
> zu steuern reicht es vollkommen.

Eben nicht. Der kann sich nur mit einem anderen SPP BT-Gerät verbinden. 
Ein HID-Gerät sieht er nicht, weil er eben nicht dessen Sprache spricht 
(d.h. das HID-Profil nicht implementiert).

Wenn Du das anders siehst, darfst Du Dir gerne die paar tausend Seiten 
an BT-Specs durcharbeiten und mir die Stelle sagen, wo das anders 
beschrieben ist.

Es gibt auch generische BT-Module. Die haben aber gar keine High-Level 
Protokolle implementiert, sondern können nur das Lowlevel-HCI Protokoll. 
Die High-Level-Protokolle ("Profile", z.B. HID, SPP, DUN, HFP, A2DP, 
etc., es gibt so an die 30 verschiedene) muss hier der Host 
bereitstellen. Genau so funktioniert die Microchip-Lösung.

fchk

von Naja...Schüler (Gast)


Lesenswert?

Frank K. schrieb:
> Wenn Du das anders siehst, darfst Du Dir gerne...

Wieso nicht einfach über ein C# Programm auf dem PC oder über ein 
Android-App auf dem Handy die Serielle-Bluetooth-Schnittstelle des 
BTM222 öffnen und die Daten zur Steuerung (z.B. Tastatur PC oder 
Lagesensor Android) des Robots übertragen?
Von mir aus ganz primitiv in einer Art CSV-String mit angehängter 
Checksumme!?

Wie gesagt, kurz die Lagesensoren des Handys auslesen und diese über die 
serielle Schnittstelle des BTM222 übertragen geht an einem bis zwei Tage 
und ist für einen "Schüler" mit Sicherheit am einfachsten!

Grüße

von Peter Z. (hangloose)


Lesenswert?

Wenn der PS3 Controller nicht zwingend ist,
würde ich ein Wii Nunchuk nehmen. Das kann man über I2C
auslesen und dann z.B. mit einem BTM-222 oder ein anderes
Funkmodul an das Fahrzeug schicken.
Hab so meinen Rasenmäher angesteuert ;-)
Mit PS3 Controller wär es natürlich eleganter.

von Frank K. (fchk)


Lesenswert?

Früher hätten wir das mit einer normalen analogen 
Modellbau-Funkfernsteuerung und einem dazugehörigen Empfänger gelöst. 
Die Ansteuerung von Servos ist sehr einfach, und selber Servo zu spielen 
sollte für Euch auch kein Problem sein.

fchk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.