PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ACS Funktioniert nicht richtig



Mario94
26.12.2010, 11:23
Hey,
Mein ACS funktioniert nur auf der linken Seite, woran kann das liegen ?

Hier ist mal der Code falls da was falsch ist ^^

#include "RP6RobotBaseLib.h"

void acsStateChanged(void)
{
if(obstacle_left || obstacle_right)
{
moveAtSpeed(0,0);
move(100,BWD,DIST_CM(10),true);
changeDirection(RIGHT);
move(100,RIGHT,DIST_CM(15),true);
changeDirection(FWD);
moveAtSpeed(100,100);
}
}
int main(void)

{
initRobotBase();
setLEDs(0b111111);
mSleep(1500);
setLEDs(0b000001);
setACSPwrLow();
powerON();
ACS_setStateChangedHandler(acsStateChanged);

{
changeDirection(FWD);
moveAtSpeed(100,100);
}
{
while(true)
task_RP6System();
}
return 0;
}

TobiKa
26.12.2010, 12:21
if(obstacle_left || obstacle_right)
Egal was gedrückt wird, er fährt immer nur nach rechts.

Mario94
26.12.2010, 12:23
richtig, das soll er ja auch^^
Mein Problem ist das nur das ACS rechts funktioniert.
Wenn ich meine Hand an das linke halte fährt er einfach weiter, nur beim rechten hällt er an und fährt nach rechts.

Hier ein Video wo man das mit der Hand auch sieht:
http://www.youtube.com/user/MyRP6?feature=mhum

TobiKa
26.12.2010, 12:25
Ach Sorry, hatte irgendwie die Bumper im Kopf...
Nee dann wüsste ich es so auch nicht.
Ist die Diode denn in Ordnung?

Mario94
26.12.2010, 12:27
Wie soll ich das überprüfen?

Mario94
26.12.2010, 12:44
Ich hab nochmal nachgesehn, es ist nicht der linke sondern der Rechte der nicht funktioniert. Sie sind auch richtig ausgerichtet.

Sonst keine Idee ?

TrainMen
26.12.2010, 14:32
@Mario94
mit einer Kamera kannst Du sehen ob die Dioden leuchten.
Trainmen

Mario94
26.12.2010, 15:39
mit der Kamera seh ich kein leuchten.
Hab mal das Selftest-Programm drüber laufen lassen, dort wird mir ganz selten angezeigt das die Linke Diode Aktiv ist.
Und wenn ich mein Programm laufen lasse ( das vorher nur mit dem linken funktioniert hat ) fährt er einfach gegen alles und die dioden gehen garnicht.

Wäre ein Ultraschall-Sensor eine Alternative um Kollisionen zu vermeiden ?

TrainMen
27.12.2010, 10:59
Hi,
wenn Deine Dioden (die unteren) nicht flackern , sind sie wahrscheinlich kaputt. Ich hab das gerade mal dem Example_Basis ACS getestet.
Warum ersetzt Du sie nicht einfach ?
Statt den US Sensoren nimm doch IR. Die von Sharp sind gut und leicht zu programmieren.
Trainmen

Mario94
27.12.2010, 12:08
Also ich sehe da kein Flackern, kannst du mir einen bestimmten sensor empfehlen ? Und ist da ein IR Sensor besser als ein US sensor ?

Ich hätte mir dann den hier geholt :
http://www.conrad.de/ce/de/product/504596/DISTANZ-SENSOR-GP2Y0A41SK0F/0231511

radbruch
27.12.2010, 12:25
Hallo

Das Blitzen der ACS-LEDs kann man auch mit der Digicam fast nicht erkennen. Es ist sehr kurz (nur ein paar 36kHz-Takte) und eher selten im RP6-Task. Um die ACS-LEDs sicher und dauerhaft einzuschalten, müßte man den 36kHz-Takt aktivieren und die LEDs einschalten:

enableACS();
setACSPwrLow();

PORTB &= ~ACS_L;
PORTC &= ~ACS_R;
while(1);

Jetzt sollten die LEDs leuchten.

Da war dann noch was mit setACSPwrOff(). Das muss man zuvor noch aufrufen um die Datenrichtungen der Ports richtig zu initialisieren?
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=51811

Gruß

mic

[Edit]
btw. Wo ist denn enableACS(); oben im Code? Das hatte ich damals auch vergessen und deshalb haben meine LEDs nicht geblickt. Ich glaube mich zu erinnern...

Mario94
27.12.2010, 12:43
Damit leuchtet bei mir nichts, komischer weise funktioniert der Selftest jetzt wieder mit dem linken ACS. Das Rechte scheint kaputt zu sein.

TrainMen
27.12.2010, 12:43
Hi,
@radbruch. Also ich erschrecke nun nicht wenn die LED blitzen, aber es ist doch sehr deutlich. Trotzdem hab ich Dein Code in meine Sammlung aufgenommen.
@Mario94
Also empfehlen will ich nichts weil ich nicht weiß was Du genau willst u.s.w. und lies Dich mal ein in den Vor und Nachteilen von US und IR Sensoren. z.B. http://www.rn-wissen.de/index.php/Sensorarten
Wenn Du IR nehmen willst such mal nach GP2D120 und noch so nebenbei -Preise vergleichen -.
Trainmen

Mario94
27.12.2010, 13:02
Danke für die Hilfe, habs mir mal durchgelesen.

Ich hab ja vor ( wenn ich mich noch besser mit dem Programmieren auskenne etc. ) einen Greifarm dran zu bauen.

Jetzt ist nur die Frage, kann ein IS oder ein US ein Objekt von einer Wand unterscheiden?

Sodass ich dann ein Programm schreiben könnte das sagt:
- Wenn wand, dann wegfahren
- wenn objekt, dann greifen

Würde sowas funktionieren ? Und kann man die Infos des Sensors so auswerten das der Greifarm auch genau das Objekt greift ? ( und nicht einfach daneben greift )

TrainMen
27.12.2010, 13:20
Hi,
Ich weiß nicht ob es was fertiges gibt. Du mußt eben mal Datenblätter Lesen, Bsp-Programmen studieren, Suchen hier im Forum benutzen. Studiere alles, Begreife , mache Versuche, Fluche, Beiß in die Tischkante und stell erst dann Deine Frage hier.
Trainmen

SlyD
27.12.2010, 14:13
@Mario94:

Da Du den RP6 von eBay gebraucht gekauft hast und somit ein Umtausch sowieso nicht möglich wäre:
Wenn tatsächlich nur ein Kanal des ACS nicht funktioniert, könnte natürlich die entsprechende IR Diode hinüber sein. Die kannst Du auch selbst austauschen (sind alle LD271 - s. Datenblatt auf der RP6 Homepage / CD - unbedingt richtig herum einlöten!)

VORHER aber bitte mal testen was passiert wenn Du das ACS auf maximale Sendeleistung stellst. Bitte auch die Ausrichtung der Dioden und insbesondere auch des Empfängers auf dem Mainboard überprüfen (s. Fotos in der RP6 Anleitung). Ist evtl. irgendwo Dreck am Empfänger?

MfG,
SlyD

PS:
Es kommt auch auf die Kamera an ob man von den IR Dioden was sieht - einige sind da weniger empfindlich!

Mario94
27.12.2010, 15:10
Der linke funktioniert gut, hab alles mal sauber gemacht aber der rechte geht immer noch nicht.

Hier mal ein Bild von den Dioden, vielleicht ist ja was an den Leiterbahnen etc. kaputt :-s :

Richard
27.12.2010, 16:06
Der linke funktioniert gut, hab alles mal sauber gemacht aber der rechte geht immer noch nicht.

Hier mal ein Bild von den Dioden, vielleicht ist ja was an den Leiterbahnen etc. kaputt :-s :

Ich habe keinen RP6, habe mir aber eben mal die Schaltpläne geladen. Leider ist dort nur D1 D2 ohne genaue Verdrahtung eingezeichnet so das eine Signalverfolgung nicht besonders einfach wird. Es kann natürlich durchaus sein das eine LED kaputt oder nur falsch herum eingelötet ist.

Einfach einmal mit einem Diodentester ( RP6 OHNE Spannung) durchklingeln. Dann wird man schon sehen was Passiert. IR Licht kann man mit !billigen! (Handy) Kameras recht gut sehen, teure Kameras filtern das gerne aus.

Gruß Richard

SlyD
27.12.2010, 16:10
Nette Staubschicht :)

Ne also da erkennt man natürlich nix - Leiterbahnen gehen auch eher selten kaputt. Was aber mal Probleme bereiten kann sind die Lötstellen - also schraub das Mainboard mal ab und schau Dir die Lötpunkte von der nicht funktionierenden IR LED an.
Der Vorbesitzer hat ja scheinbar auch schon ein paar zusätzliche Teile angelötet also ringsrum mal auf Lötzinnreste und ähnliches überprüfen.

Wie Richard schon sagt - mit einem Multimeter wärs natürlich einfacher zu überprüfen wo der Fehler liegt.

MfG,
SlyD

Mario94
27.12.2010, 16:22
Danke :D ..hab mir schon ein Druckluftspray bestellt ;)

Woran erkenn ich das etwas falsch gelötet ist ?

Kann ich eigentlich das Mainboard etc. anfassen ohne das es Kaputt geht, da ja ladungen vom finger überspringen könnten ? Natürlich im ausgeschalteten Zustand ;)

SlyD
27.12.2010, 16:33
Du hast ja sicherlich einen PC mit einem Schuko Stecker (die Geräte mit den Steckern wo 3 Kontakte drin sind ;) ) das heisst dessen Metallgehäuse sollte geerdet sein - das vor dem hantieren mit dem Mainboard an einem blanken Metallteil anfassen um sich zu entladen (je nachdem was für Klamotten Du anhast hält das aber nicht lange... ). Einen mit einem geerdeten PC (Notebooks sind das oft NICHT!) verbundenen USB Stecker am Metall anfassen geht meist auch.

Heizungsrohre oder Wasserhähne gehen meist auch.


> Woran erkenn ich das etwas falsch gelötet ist ?

Vielleicht helfen ein paar Bilder:
http://www.projektlabor.tu-berlin.de/menue/onlinekurs/testen_fehlersuche/tips_fuer_die_fehlersuche/meine_schaltung_geht_in_die_strombegrenzung/der_fehler_liegt_beim_loeten/?showp=4&uid=111624

Mario94
27.12.2010, 16:49
ich hab mal nachgesehen aber nichts gefunden.
Dann werd ich mir wohl einen neuen Sensor kaufen müssen ^^

http://www.nodna.com/product_info.php?products_id=607&XTCsid=e65161e7d681d194a692b379f601eab6

wäre dieser geeignet ?
Und vorallem ..wie programmiere ich sowas ? Wie steuere ich es an ?

SlyD
27.12.2010, 17:23
http://www.conrad.de/ce/de/product/184365/IR-S-DIODE-LD271-LD271L

???

Mario94
27.12.2010, 17:31
Das wäre natürlich auch eine Idee ;)
Ich werds mal bestellen, jetzt muss ich nur noch wissen wie man richtig lötet und wie ich die kaputte diode rausbekomme.

SlyD
27.12.2010, 17:41
Nur um das noch klarzustellen:
Es muss NICHT an der LED liegen - es kann auch genausogut sein das der Pin vom Mikrocontroller defekt ist.
Wie gesagt ohne Multimeter schwer zu sagen.
Es ist SEHR zu empfehlen das vorher zu untersuchen bevor man dran rumlötet - ganz besonders wenn man vorher noch nie gelötet hat.
Ein billiges 5 Euro Teil reicht schon.


> jetzt muss ich nur noch wissen wie man richtig lötet

Das solltest Du dann aber nicht direkt am RP6 ausprobieren sonst geht noch mehr kaputt...
Besser irgendwo Übungsmaterial besorgen (eine Lochrasterplatine und ein paar Bauteile z.B. ).

MfG,
SlyD

Mario94
27.12.2010, 17:45
Diese Diode kostet noch nichtmal 1 €, also einen Versuch wäre es Wert.

" Ein billiges 5 Euro Teil" ...wo ?

Bei Conrad gehen die Lötgeräte ab 30 € los .

SlyD
27.12.2010, 21:59
Ich meinte das Multimeter!
(Es ist natürlich schöner gleich ein richtiges zu kaufen das kann man allgemein immer wieder gebrauchen)