Archiv verlassen und diese Seite im Standarddesign anzeigen : ACS Funktioniert nicht richtig
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;
}
if(obstacle_left || obstacle_right)
Egal was gedrückt wird, er fährt immer nur nach rechts.
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
Ach Sorry, hatte irgendwie die Bumper im Kopf...
Nee dann wüsste ich es so auch nicht.
Ist die Diode denn in Ordnung?
Wie soll ich das überprüfen?
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
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
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...
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
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
@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!
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 :
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
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
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 ;)
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
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 ?
http://www.conrad.de/ce/de/product/184365/IR-S-DIODE-LD271-LD271L
???
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.
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
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 .
Ich meinte das Multimeter!
(Es ist natürlich schöner gleich ein richtiges zu kaufen das kann man allgemein immer wieder gebrauchen)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.