INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Codeproblem Failsafe PS3 Controller + BT + Arduino mit USB-Shield
27.01.2015, 22:23
Beitrag #1
Codeproblem Failsafe PS3 Controller + BT + Arduino mit USB-Shield
Hi zusammen,

bin seit ein paar Wochen stiller Mitleser hier und habe es nun gewagt mich
zu registrieren und schlaue Fragen zu stellen Big Grin

Habe einen PS3 Controller der soweit erfolgreich mit dem Arduino Uno über
BT kommuniziert.

Ich will mir da ein kleines Mehrweckfahrzeug bauen, das ganze gelenkt über
die angetriebenen Hinterräder (tank steering).

Gut, aber jetzt zu meinem Problem. Ich kann mit u.g. Code, wenn ich CROSS
am PS3 Controller klicke die Motoren stoppen. Ich habe aber festgestellt das
wenn der Controller das Signal zum BT Stick verliert (z.B. zu grosse Entfernung),
dann laufen die Motoren trotzdem weiter. Der Arduino muss manuell resettet
werden um die Motoren zu stoppen. Ist natürlich schlecht, und auch nicht
ungefährlich. Bin Anfänger, deshalb bin ich noch zu unerfahren um da einen
passenden Code zu entwickeln, ich stelle mir das aber vor das es evtl. über
Serialprint gehen sollte falls nicht z.b. jede Sekunde Daten vom Controller
kommen sollten - also BT unterbrochen - die Motoren gestoppt werden.

Hier mein etwas angepasster Code:


/*
This is a modified version of the PS3BT.ino example sketch by Kristian Lauszus
For more information visit his blog: http://blog.tkjelectronics.dk/ or
send him an e-mail: kristianl@tkjelectronics.com
*/

#include <PS3BT.h> //Include the necessary libraries.

USB Usb;
BTD Btd(&Usb);
PS3BT PS3(&Btd);

int mleftpwm = 3;
int mleftphase = 4;
int mleftreset = 12;
int mrightpwm = 5;
int mrightphase = 6;
int mrightreset = 8;

int j = 0;
int k = 0;

void setup() {
digitalWrite(mleftreset, HIGH);
delay(200);
digitalWrite(mrightreset, HIGH);
delay(200);
Serial.begin(115200);
if (Usb.Init() == -1) {
Serial.print(F("\r\nOSC did not start"));
while(1); //halt
}

Serial.print(F("\r\nPS3 Bluetooth Library Started"));

}
void loop() {
Usb.Task();
if(PS3.PS3Connected || PS3.PS3NavigationConnected) {
int Ly =(map(PS3.getAnalogHat(LeftHatY),0,255,0,1023));
int Ry =(map(PS3.getAnalogHat(RightHatY),0,255,0,1023));

j=Ly -517;
j=abs(j);
if(j>=510){
j=510; //the most the PWM pin can do is 255
}
if(j<=200&&j>10){
j=200; // below 100 PWM the motor makes a high pitch sound and does not move
}
if(j<=10){
j=0; // below 10 the joystick is very close to center
}

if
(Ly >=630 ){
digitalWrite(mleftphase, LOW); //
analogWrite(mleftpwm,j/2);
}

if
(Ly <=450 ){
digitalWrite(mleftphase, HIGH); //
analogWrite(mleftpwm,j/2);
}

k=Ry -517;
k=abs(k);
if(k>=510){
k=510;
}
if(k<=200&&k>=10){
k=200;
}
if(k<=10){
k=0;
}

if
(Ry >=630 ){
digitalWrite(mrightphase, HIGH); //
analogWrite(mrightpwm,j/2);
}

if
(Ry <=450 ){
digitalWrite(mrightphase, LOW); //
analogWrite(mrightpwm,j/2);
}

if((Ly <=580&&Ly>=450)&&(Ry<=580&&Ry>=450)){
analogWrite(mleftpwm,0);
analogWrite(mrightpwm,0);
}
if(PS3.getButtonClick(PS)){
analogWrite(mleftpwm,0);
analogWrite(mrightpwm,0);
PS3.disconnect();
}
}
}

Kann mir jemand einen Rat geben wie ich das Problem lösen könnte ?

Vorab Danke !

greeneater
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.01.2015, 11:53
Beitrag #2
RE: Codeproblem Failsafe PS3 Controller + BT + Arduino mit USB-Shield
(27.01.2015 22:23)greeneater schrieb:  Kann mir jemand einen Rat geben wie ich das Problem lösen könnte ?
So:
Zitat:ich stelle mir das aber vor das es evtl. über
Serialprint gehen sollte falls nicht z.b. jede Sekunde Daten vom Controller
kommen sollten

Wo ist genau das Problem, Du hast doch selbst schon die Lösung gegeben.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.01.2015, 21:57
Beitrag #3
RE: Codeproblem Failsafe PS3 Controller + BT + Arduino mit USB-Shield
Hallo Thorsten,

danke für den Hinweis. Das war nur meine Überlegung, aber in der Praxis sieht's noch mager aus mit der Umsetzung in Code.

Ich durchforste das Netz schon wieder ein paar Stunden aber ich komm
nicht weiter. Scheinbar hat auch keiner der eine PS3 mit BT-Dongle
benutzt einen Failsafe..?

Das ganze muss doch in die Loop Schleife, so auf die Art...

while(Serial.available() <= 0){
digitalWrite(LED, LOW);
}

Bin ich da auf der richtigen Spur ?

Ich habe mir auch noch überlegt, da ich Ultraschallsensoren habe, diese
entsprechend einzubinden und das Gefährt 20 cm bevor es evtl. unkontrolliert
wo dagegenkracht damit zu stoppen. Aber die Variante oben würde mir schon
eher zusagen.
Alternativ ginge wohl auch eine RC Funke mit Failsafe Empfänger, aber die
Kosten sollen ja im Rahmen bleiben...

Patrick
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.01.2015, 10:31
Beitrag #4
RE: Codeproblem Failsafe PS3 Controller + BT + Arduino mit USB-Shield
(28.01.2015 21:57)greeneater schrieb:  while(Serial.available() <= 0){
digitalWrite(LED, LOW);
}

Bin ich da auf der richtigen Spur ?
Hi,
nicht wirklich. Obiges Coding würde einfach warten, bis was über Serial reinkommt. Das ist nicht, was Du willst. Wahrscheinlich eher sowas:
Code:
static long lastReceived = millis();  //für's erste mal mit millis() initialisieren
long now = millis();
if(Serial.available() != 0){
    lastReceived = now;
}else   // nothing received
    if(lastReceived - now > 1000) {  // mehr als 1 Sekunde
         digitalWrite(LED, LOW);
    }
};
Ich bin mir aber gar nicht sicher, ob Deine Daten wirklich über Serial reinkommen. Wie ist denn Dein genauer Aufbau? Du sprichst von Bluetooth-Dongle. Wo hängt der denn dran? Was für ein Arduino ist das?
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.01.2015, 11:11
Beitrag #5
RE: Codeproblem Failsafe PS3 Controller + BT + Arduino mit USB-Shield
Hi Thorsten,

Arduino Uno - Sainsmart USB-Shield und an diesem ein HAMA Nano BT Dongle EDR, Class2.

Meinen Code habe ich gestern spätabends noch um Serial.println erweitert, d.h. jede Bewegung oder Tastendruck auf
dem PS3Controller ist nun auf meinem SerialMonitor ablesbar, das funktioniert bestens.

Ich werde dann heute abend mal Deinen Code testen und berichte..

Danke Dir vielmals !

Patrick
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.01.2015, 11:20
Beitrag #6
RE: Codeproblem Failsafe PS3 Controller + BT + Arduino mit USB-Shield
(29.01.2015 11:11)greeneater schrieb:  Arduino Uno - Sainsmart USB-Shield und an diesem ein HAMA Nano BT Dongle EDR, Class2.
Hi,
ganz schön viel Aufwand, um einen Arduino Bluetooth-fähig zu machen. Gibt es dafür einen besonderen Grund?
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.01.2015, 11:39
Beitrag #7
RE: Codeproblem Failsafe PS3 Controller + BT + Arduino mit USB-Shield
Hallo Thorsten,

geht wohl nicht anderst wenn ich den PS3 Controller nutzen will.

Ich steuere bereits ein RC Car mit einem Uno und HC-06 BT Modul und einer Android App, das war
natürlich weniger Aufwand, aber der PS3 Controller will wohl nicht mit einem HC-05 oder HC-06,
siehe hier http://www.circuitsathome.com/mcu/arduin...rs-via-usb

Gruß
Patrick
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.01.2015, 12:35
Beitrag #8
RE: Codeproblem Failsafe PS3 Controller + BT + Arduino mit USB-Shield
Hi,
dann wird Dir aber auch die Abfrage über Serial.available nicht viel nützen. Ich nehme nicht an, dass das Shield über Serial kommuniziert.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  CP2102 und USB Host Shield ?? DL1AKP 0 47 01.12.2016 08:55
Letzter Beitrag: DL1AKP
  Arduino UNO und Ethernet Shield 2 POE und Fritzbox 3272 tr3 2 156 19.11.2016 10:46
Letzter Beitrag: tr3
  Kommunikation über das WiFi-Shield Flap 3 233 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Arduino Lan Shield - Visual Basic ZackiE 6 215 20.09.2016 19:26
Letzter Beitrag: ZackiE
  adafruit V2.3 Shield Hangloose 6 294 08.09.2016 17:13
Letzter Beitrag: rpt007
  Can-Bus Shield ok, aber keine Daten Clubsport 38 1.534 01.09.2016 14:17
Letzter Beitrag: Clubsport
  Arduino mega 2560 mit TFT LCD Touch Shield V1 Clemens55555 17 936 02.08.2016 20:51
Letzter Beitrag: Clemens55555
  SainSmart 3.2 TFT + 5" TFT/SD Shield + Due SAM3X8E ARM (Arduino Due) Techniker_UE 13 3.227 24.07.2016 14:34
Letzter Beitrag: Eichner
  PWM-Lüfter mit Adafruit Motor-Shield steuern? phischmi 9 450 22.07.2016 18:06
Letzter Beitrag: phischmi
  Arduino Uno+Motor Shield+Velleman Mustercode funktionieren nicht Dubidu 8 485 20.07.2016 19:05
Letzter Beitrag: Scheams

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste