Archiv verlassen und diese Seite im Standarddesign anzeigen : ASURO emittelt Werte für Lib V2.70 myasuro.h selber
Sternthaler
28.05.2007, 02:03
Hallo Leute,
ich habe mich mal dran gemacht, dass der Asuro die Parameter in der Datei myasuro.h aus der Asuro Lib V2.70 (Release Candidate 3) (https://www.roboternetz.de/phpBB2/viewtopic.php?t=26594) selber ermittelt.
Bis jetzt können mit dem angehängten Programm (V200) folgende Werte ermittelt werden:
-- Für die Tastenberechnung
MY_SWITCH_VALUE
-- Für die Odometrie
MY_ODO_LIGHT_VALUE_L
MY_ODO_DARK_VALUE_L
MY_ODO_LIGHT_VALUE_R
MY_ODO_DARK_VALUE_R
-- Für die Go()-Funktion
MY_GO_ENC_COUNT_VALUE
-- Für die Turn()-Funktion
MY_GO_ENC_COUNT_VALUE
[EDIT] Nun können auch die beiden Werte für die Funktionen Go() und Turn() ermittelt werden.
-- Somit fehlt nur noch der Wert für die Motordifferenz
MY_MOTOR_DIFF
Das 'Packet' besteht aus 2 Teilen:
1) Asuro-Programm
2) Windows-Programm (Installationsfunktion ist dabei)
Das Asuro-Programm besteht im Wesentlichen aus 3 Teilen:
1 a) Automatisches Erfassen aller Messwerte über Interrupt und senden an den PC
1 b) Hauptprogramm zum starten der einzelnen Testkomponenten und zur
'Beantwortung' der im PC-Porgramm gestellten 'Aufgaben' über die Tasten.
1 c) Ermittlungsfunktionen für MY_????_VALUE's
Das Windows-Programm teilt sich in 4 Teile:
2 a) Serielle Schnittstelle zur IR-Kommunikation einstellen.
2 b) Permanete Anzeige der Sensordaten vom Asuro
2 c) Bedienungsanleitung zur Ermittlung der Asuro-Parameter
2 d) Datenausgabe vom Asuro bei der Ermittlung
Da das Ganze bis jetzt noch in einem Beta(2)-Stadium ist, seit bitte etwas nachsichtig mit mir.
Unterstützt, durch hilfreiches Testen, hat mich immer m.a.r.v.i.n.
Deshalb hier ein ganz großes Danke an dich.
Da das Windows-Programm (mit Installer) als Attachment etwas zu groß ist, kann es hier gefunden werden:
Version 200 : PCSensorenV200.zip (http://www.asuro-sternthaler.de/asuro/sensoren/PCSensorenV200.zip) (ca. 2,1 MB)
Das Asuro-Programm ist als Attachment vorhanden.
[EDIT 21.01.2010] Ist unten an diesem Beitrag sichtbar/downlodbar, wenn man als User angemeldet ist.
[EDIT] Die Ausgabe vom Test 2 der MY_ODO_[LIGHT|DARK]_VALUE_[L|R] - Werte getauscht, da sie falschrum ausgegeben wurden.
Entfernen der alten Versionen.
[EDIT 31.12.2008] Link zum 'PCSensorenV200.zip'-Programm angepasst.
Grundsätzliche Bedienung:
- Windows-Programm installieren.
- Asuro-Programm flashen.
- Windows-Programm starten und die korrekte Schnittstelle auswählen.
- Asuro mit 'Sichtverbindung' einschalten. (KEINE TASTEN drücken)
- 'Test 1: Tastaturabfrage' im Windows-Programm mit Button 'Wie geht's' starten. Bedienungsanleitung im Windows-Programm LESEN und ausführen.
- 'Test 2: Odometrie / Encoder' ebenso bearbeiten.
- 'Test 3 und 4': dito
ACHTUNG:
Taste 6 (rechte Taste, wenn man von VORNE auf den Asuro schaut) fährt einen Nikolaus mit ca. 50cm Kantenlänge. Sind die Odometriewerte noch nicht korrekt, kann der ASURO VOM TISCH FALLEN. AUFPASSEN, ich übernehme keine Garantie.
(0602420022)
bin im moment etwas gehandicapt was das ausprobieren betrifft (problem mit flashen), aber finde so ein programm super...
damaltor
28.05.2007, 10:37
seeehr schön, das ist wirklich eine ganz geute idee. so gibts keine probleme mehr mit rumprobiere-werten.
allerdings sind die werte doch nur für den entsprechenden untergrund, oder?
was passiert bei einem asuro (wie meinem) der keine liniensensoren hat? kann man diesen schritt überspringen?
habe nur den kleinen rechner dabei, und unter linux windiws applikationen zu starten ist recht prozessorintensiv. teste es morgen an dem großen rechner.
Sternthaler super Lösung. Das werde ich meinen Schülern auch empfehlen.
Ich habe bisher keinen Fehler feststellen können, alle Werte entsprechen meinen selbstermittelten Einstellungen.
[Edit:] Nachtrag, bei mir sagt der Compiler < 74% also 6028Bytes, da könnten die restlichen Testprogramme doch noch hineinpassen. (Klar, der Bootloader geht auch noch von ab.)
Sternthaler
28.05.2007, 14:48
... (problem mit flashen), aber finde so ein programm super...Ich finde das super, dass du das super findest ;-) Danke.
Ich drücke die Daumen, dass das flashen bald wieder geht.
seeehr schön, ...Danke
.. entsprechenden untergrund, oder?
was passiert bei einem asuro der keine liniensensoren hat?Da mein Programm die Liniensensoren aktuell nur liesst und die Werte nur sendet (keine Auswertung), kann eigendlich nichts schief gehen. Hauptsache ist dann aber, dass vor allem am LED-Anschluß nichts angeschlossen ist was kaputt gehen könnte, wenn ich dort ständig den Strom an- und abschalte. -> Erweiterungen also lieber abmachen.
kann man diesen schritt überspringen?Nein, aktuell kann man den Schritt (Linienensensoren lesen) nicht abschalten.
.. unter linux windiws ..Da habe ich keine Alternative geplant. (Mir reicht es vollkommen mich mit XP rumzuärgern.)
Sternthaler super Lösung.Auch dir ein Dank für das Lob.
.. meinen Schülern empfehlen.Was empfiehlst du? So ein Programm mal selber zu schreiben, oder 'nur' zu nutzen? Kommt natürlich auf die/den Klasse/Jahrgang an, was da schon möglich ist.
.. keinen Fehler feststellen könnenDa geht das Lob vor allem an m.a.r.v.i.n, da er ein sehr geduldiger Beta-Tester war/ist.
.. da könnten die restlichen Testprogramme doch noch hineinpassen.Ja, da habe ich schon ein bisschen Platz schaffen können, aber wenn der 3.te Test nicht reinpasst, dann ist da nun mal im Moment Schluß.
...
.. meinen Schülern empfehlen.Was empfiehlst du? So ein Programm mal selber zu schreiben, oder 'nur' zu nutzen? Kommt natürlich auf die/den Klasse/Jahrgang an, was da schon möglich ist.
...
Im Moment haben 8 Kinder (5. -8. Klasse) meiner AG einen ASURO zu Weihnachten bekommen. Für sie war es hauptsächlich der Abschluss ihres Lötkurses. Einen kleinen C-Kurs habe ich auch mit ihnen und ihrem ASURO gemacht. Ich werde ihnen empfehlen dein Programm zu benutzen.
In der Robotik-AG bauen die Kinder ansonsten Roboter für FLL, IRC, RCJ und Roboking.
Robo Bob
29.05.2007, 01:09
hi also ich hab des programm mal probiert und bei mir funktioniert nichts, d.h. mein asuro startet das programm das ich zuletzt geflasht habe. kann mir da jemand evtl. helfen?
damaltor
29.05.2007, 12:21
du hast evtl die falsche .hex-datei geflasht. oder aber, es wurde überhaupt nicht grflasht. einfach nochmal probieren, und genau auf denm pfad zur datei achten.
Robo Bob
29.05.2007, 15:35
ne ich hab nix geflasht. welches programm muss ich flashen?
Robo Bob
29.05.2007, 15:41
habs in griff bekommen, ich hab jetzt nur noch ein problem nämlich mein asuro fährt statt einen 90 grad winkel einen 120 grad winkel, welche einstellung muss ich da vornehmen?
damaltor
29.05.2007, 16:33
keine. du hast die falschen odometrie-scheiben aufgeklebt. nimm die anderen, klebe sie auf dei zahnräder und probiere es nochmal.
Sternthaler
29.05.2007, 19:00
Hallo Stop, Stopp, Stopp
der Asuro soll beim Test 2 nur CIRCA eine Umdrehung machen.
Dabei werden die Odometrie-Parameter erst VERMESSSEN.
Erst danach sind die korrekten ODO-Parameter bekannt und können für eine GERADEAUS-Fahrt bei Taste 6 (von vorn auf den Asuro gesehen die rechte Taste) benutzt werden!
Sternthaler
06.06.2007, 02:05
.. 8 Kinder (5. -8. Klasse) meiner AG ..
... In der Robotik-AG bauen die Kinder ansonsten Roboter für FLL, IRC, RCJ und Roboking.
Wow, ich habe mich mal etwas auf deiner, in der Fußzeile angegeben, Seite umgesehen. Schade, dass ich nicht mehr in so einer Klasse bin. Ich bin mir ziemlich sicher, dass die Motivation der Kiddis recht hoch ist.
Ich hoffe, dass ihr auch etwas mit Version V200 anfangen könnt.
Verfasst am: 06.06.2007, 02:05 Titel:
Nachtschwärmer. :-)
...
Wow, ich habe mich mal etwas auf deiner, in der Fußzeile angegeben, Seite umgesehen. Schade, dass ich nicht mehr in so einer Klasse bin. Ich bin mir ziemlich sicher, dass die Motivation der Kiddis recht hoch ist.
...
Ja, die sind sehr eifrig.
...
Ich hoffe, dass ihr auch etwas mit Version V200 anfangen könnt.
Danke für den Hinweis, heute wollen wir deine Software das erste mal in der AG testen. Da werde ich mal schnell noch die neue Version herunterladen.
damaltor
06.06.2007, 09:43
Verfasst am: Heute um 08:57
Frühaufsteher... =)
Verfasst am: Heute um 08:57
Frühaufsteher... =)
Hihi, da war die erste Mathematikstunde schon rum ...
@Sternthaler: Die Test deiner Software haben auf 5 ASUROS super funktionert. Auf dreien gab es zu Anfang noch ein wenig Probleme. Ursache waren schlecht eingestellte Überträger.
Also, noch mal dickes Lob für deine Software!
Sternthaler
08.06.2007, 02:43
Schön, dass es so gut bei diesem Massentest funktioniert hat.
Aber was soll eigendlich das 'Nachtschwärmer' bedeuten? Da fängt der Tag doch erst an ;-)
hat auch bei mir gut funktioniert, danke, beeindruckendes programm...
Sternthaler
26.06.2007, 01:33
@inka
Freut mich, dass es auch bei dir geht.
ich habe noch ein bischen experimentiert:
- zunächst einmal die 18er odoscheiben mit den "tangentialen" dreiecken aufgeklebt
- die werte vom programm vermessen lassen, myasuro.h geändert
- unterschied der gemessenen werte:
bei go 12er - 20740 /18er - 14115
bei rurn 12er - 147 / 18er - 227
dass es da unterschiede geben muss, war mir klar. Auch kann man alles einstellen, kürzer/länger fahren und drehen lassen.
wenn ich die werte mit meinem minitestprogramm https://www.roboternetz.de/phpBB2/viewtopic.php?t=31775&sid=dd1f0be7545a996572d5b51f48aa11b9 teste, ist die gefahrene strecke aber kürzer und der winkel nicht 90, sondern ca.70 grad.
Woran kann das liegen? Werden die messungen nicht abhängig von den odo scheibe gemacht?
Bei mir werden die durch Asuro gesendeten daten nicht von das Windows programm ausgewertet. Links wird nach wählen von der richtigen schnittstelle der text "Break empfangen 1" angegeben. Weiter passiert nichts im Sensoren bereich. Auch nicht wenn ich die tests probiere.
Im Hyperterminal sehe ich aber das daten empfangen werden.
Mache ich etwas falsch?
ich glaube den fehler gefunden zu haben:
auf der netzwerkfestplatte (NAS) stimmte die zeit nicht, weil wir heute mittag einen stromausfall hatten und ich habe die zeit nicht korrigiert.
Kann es sein, dass AVR-studio in so einem fall auch das neuere geändert file nicht nimmt, weil es glaubt bereits ein neueres zu haben (weil das auf dem netz nicht die richtige zeit hat)???
noch eine frage:
kann man in bei der turn() funktion auch winkelminuten angeben?
edit: (90+91)/2 =90,5??
Sternthaler
27.06.2007, 00:06
Links wird nach wählen von der richtigen schnittstelle der text "Break empfangen 1" angegeben.
Im Hyperterminal sehe ich aber das daten empfangen werden.
Mache ich etwas falsch?
Hallo Petje, eigendlich kann man nicht viel falsch machen. (War zumindest mein Wunsch bei dem Programm.)
Die von dir angegebene Fehlermeldung für das MSComm-Element heißt bei Microsoft Visual Basic (VB5 Copyright 1987-1997) wörtlich: "comBreak 1001 Es wurde ein Anhaltesignal (Break-Signal) empfangen.".
(Das Internet hilft mir da leider nicht weiter, was das denn nun eigendlich heissen soll.)
Die dahinterstehende 1 sagt nur, dass das Break-Signal auf der Schnittstelle COM 1 empfangen wurde.
Hast du die COM-Schnittstelle 1 ausgewählt?
An welcher Schnittstelle ist dein IR-Empfänger?
Welche der 10 möglichen COM1 bis COM10 sind bei dir aktiviert?
Ich suche bis zu 10 Schnittstellen ab, ob sie aktivierbar sind und lasse dann die letzte gefundene Schnittstelle aktiv. Ist bei dir COM 1 aktiv?
Da du das Hyperterminal erwähnst:
Es darf NICHT auf die Schnittstelle zum IR-Empfänger zugreifen, da das ASURO-Windows-Programm diese Schnittstelle dann NICHT benutzen kann.
(Hyperterminal offline oder beenden, danach erst das ASURO-Windows-Programm starten.)
- unterschied der gemessenen werte:
bei go 12er - 20740 /18er - 14115
bei rurn 12er - 147 / 18er - 227
... ist die gefahrene strecke aber kürzer und der winkel nicht 90, sondern ca.70 grad.
Hallo inka,
mir kommen deine angegeben Werte ganz ok vor.
Mit dem guten alten Dreisatz bei deinen go-Werten komme ich mit der Rechnung: 12 / 14115 * 20740 auf 17,63 was also recht nahe an 18 liegt.
Bei den turn-Werten gerechnet: 12 / 147 * 227 = 18,53 anstatt 18, also auch 'halbwegs' dicht dran.
Bei meinem Asuro mit den 16er-Scheiben rechnet sich das dann so:
go 16er - 15150 --> 12 / 15150 * 20740 = 16,42 (akzeptabel)
turn 16er - 212 --> 12 / 147 * 212 = 17,3 (würde ich ein bisschen in Frage stellen)
Du sagst sowohl bei der Strecke, als auch beim Winkel, das der Asuro zu wenig fährt. Wie geht das? Der Asuro hört ja auf die Räder zu drehen, wenn er 'meint' genügend Tik's gesehen zu haben.
Da wir bei Go() eine Division durch den ermittelten Wert machen, um die zu fahrende Tik-Anzahl zu berechnen, ist es also schon mal richtig, dass der Wert bei der 18er-Scheibe kleiner werden muss. Schließlich wird dadurch die zu fahrende Tik-Anzahl mathematisch größer, was ja auch zu erwarten ist bei mehr SW-Wechseln auf der Scheibe.
Somit müssen 'irgendwie' mehr Tik's gesehen werden, als eigendlich zu erwarten sind. Hätte ich jetzt irgendwie anders erwartet.
Allerdings hatte ich dieses Problem auch schon mal nachgewiesen beim 'Nikolausfahren'. Ich bin dort darauf gekommen, dass man nur 94% der zu erwartenden Tik's vorgeben darf. Also auch da schon: Es kommen mehr Tik's als erwartet!
Wie groß sind denn die Werte für MY_ODO_???_Value_[L|R] bei dir?
Ist der Unterschied klein? Das würde auf eine große Fehlerrate, und damit auf mehr Tik's schliessen lassen.
Es wäre aber echt interressant, mal das von ehenkes vorgeschlagen Programm von Arexx-Henk aus dem Beitrag (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=292879#292879) zu testen und ein Bildchen aus den Messdaten machen.
Oder war es doch die Platte im Netz? [-o<
@inka
Ich sehe gerade deine Frage zu den Winkelminuten.
Nein, das geht nicht, da der Winkelwert ja nur als int-Variable an die Funktion weitergegeben wird.
Hochgenaue Präzisionsfahrten erwarten wir nur bei Mars-Robotern, und nicht bei Asuros ohne Raketenantrieb, die 18er-Scheiben drauf haben :-)
radbruch
27.06.2007, 01:00
Hallo
dass man nur 94% der zu erwartenden Tik's vorgeben darf.
Ich verwende zwar nicht die Lib V2.7, aber mir ist schon mehrmals aufgefallen, dass, wenn ich mir Line- oder Ododaten senden lasse, in regelmäßigen Abständen offensichliche Fehllesungen auftreten. Dies passiert sowohl beim direkten Übertragen einzelner Daten sowie auch beim blockweisen Übertragen gespeicherter Werte. Ich vermute, hier spukt irgendein Interrupt rein, ich habe das aber bisher nicht näher untersucht. Vielleicht gibt es da einen Zusammenhang.
Gruß
mic
Sternthaler
27.06.2007, 07:34
@radbruch
In diesem Beitrag (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=168267#168267) ist im Anhang eine EXCEL-Tabelle, mit der Tik's für Bogenfahrten bei beliebigen Winkeln (auch 0 Grad) und Radien berechnet werden. Oben rechts im Blatt (grün hinterlegt) ist diese Prozentangabe. (sind im übrigen 96%).
Erst mit diesen 'Verlusten' konnte ich meinen Asuro dazu überreden die gewünschte Strecke zu fahren.
Auch im Anhang (2 Beiträge vorher), ist das 'Nikolaus'-Programm von mir, wobei dort komplett nur über Interrupts gearbeit wird. Ich bin mir ziemlich sicher, dass in dem Programm keine Probleme mit den Interrupts auftreten, da ich ca. 10 Monate so alles durchgetestet hatte was nur irgendwie geht. (Soll nicht heißen, dass da tatsächlich kein Bug mehr vorhanden ist.)
Von einem Arbeitskollegen, der privat viel mit Lasern und verstellbaren Spiegeln macht, habe ich das gleiche Phänomän gehört, dass seine Positionsgeber (ODO-Scheiben) auch mehr Daten liefern als erwartet. Er hatte mich erst auf die Idee gebracht den Prozentwert im EXCEL-Blatt einzubauen.
Die von dir angegebene Fehlermeldung für das MSComm-Element heißt bei Microsoft Visual Basic (VB5 Copyright 1987-1997) wörtlich: "comBreak 1001 Es wurde ein Anhaltesignal (Break-Signal) empfangen.".
(Das Internet hilft mir da leider nicht weiter, was das denn nun eigendlich heissen soll.)
Die dahinterstehende 1 sagt nur, dass das Break-Signal auf der Schnittstelle COM 1 empfangen wurde.
Hast du die COM-Schnittstelle 1 ausgewählt?
Ja. Im moment des anwählen von COM1 erscheint die Meldung. Also direkt.
An welcher Schnittstelle ist dein IR-Empfänger?
An COM1.
Welche der 10 möglichen COM1 bis COM10 sind bei dir aktiviert?
Ich suche bis zu 10 Schnittstellen ab, ob sie aktivierbar sind und lasse dann die letzte gefundene Schnittstelle aktiv. Ist bei dir COM 1 aktiv?
Also COM1, 4, 7, 8 und 9 sind aktiv. Beim starten des ASURO-Windows-Programms ist COM9 selektiert. Im moment ich COM1 anwähle kommt auch die Meldung. Aber nur wenn auch der IR-Empfänger angeschlossen ist (logisch). Dabei kann ich auch ausschliessen das der ASURO dieses command sendet denn es passiert auch wenn der ASURO nicht sendet (ausgeschaltet)!
Da du das Hyperterminal erwähnst:
Es darf NICHT auf die Schnittstelle zum IR-Empfänger zugreifen, da das ASURO-Windows-Programm diese Schnittstelle dann NICHT benutzen kann.
(Hyperterminal offline oder beenden, danach erst das ASURO-Windows-Programm starten.)
Nee, nee, diesen test mit Hyperterminal habe ich gemacht ohne das das ASURO-Windows-Programm aktiv war. Also nur um den IR-Empfänger zu testen. Aber das Ding funktioniert gut weil ich ja ach die ASURO flashen kann ohne probleme.
Wie sieht es denn aus mit der Übertragungsgeschwindigkeit der COM1. Hyperterminal muss mann ja auf 2400 baud setzen. Das ASURO-Windows-Programm hat keine einstellungsmöglichkeiten.
Weil ich nie derartige Probleme mit COM1 habe denke ich doch das ASURO-Windows-Programm wertet etwas aus (comBreak) was nicht gesendet wurde.
Könnte es sein das das Programm auf eine spätere VB Runtime Module zugreift die etwas anders funktioniert?
@Sternthaler
Wie groß sind denn die Werte für MY_ODO_???_Value_[L|R] bei dir?
Ist der Unterschied klein? Das würde auf eine große Fehlerrate, und damit auf mehr Tik's schliessen lassen
die daten sind originalbelassen, absichtlich, weil der asuro (oder ich) anfangs irgendwie mit den werten nicht klarkam.
Oder war es doch die Platte im Netz?
definitiv ja. Nachdem ich dort die ortszeit gewählt habe und die zeit extern synchronisieren lasse ist alles wieder so wies sein soll, der asuro fährt sein quadrat...
Es wäre aber echt interressant, mal das von ehenkes vorgeschlagen Programm von Arexx-Henk aus dem Beitrag zu testen und ein Bildchen aus den Messdaten machen.
mache ich, wenn mich der bevorstehende umzug, alles was in einem 1,5 famileinhaus platz hat in eine - zwar sehr große - wohnung, von Tschechien nach Deutschland (Pirna) am 5/6. juli, dazu kommen lässt. Also werde ich mich vermutlich so in der 2ten dekade juli wieder melden...
Habe es jetzt auf meinem Desktop PC probiert und da funktionierte das Programm bis auf Test 5 der Motoausgleich/differenz. Bei diesem Test passiert nichts.
Muss sagen, ein tolles Programm.
Merkwürdig das es auf mein Laptop nicht funktioniert wegen den Combreak Empfang und damit stoppen des Auswerten der Daten.
Hallo Sternthaler,
Auch im Anhang (2 Beiträge vorher), ist das 'Nikolaus'-Programm von mir, wobei dort komplett nur über Interrupts gearbeit wird. Ich bin mir ziemlich sicher, dass in dem Programm keine Probleme mit den Interrupts auftreten, da ich ca. 10 Monate so alles durchgetestet hatte was nur irgendwie geht. (Soll nicht heißen, dass da tatsächlich kein Bug mehr vorhanden ist.)
bei meinen Versuchen mit dem Bluetooth-ASURO (http://www.roboterclub-freiburg.de/asuro/hardware/bluetooth/bluetooth.html) bei dem die Encoderwerte über die Funkschnittstelle übertragen werden, konnte ich ein interessantes Phänomen beobachten: Wenn die Motoren ausgeschaltet waren und der ASURO stillstand, gab es trotzdem manchmal den Fall, dass ein Encoder hochgezählt hat. Dies kam nur selten, bei bestimmten Stellungen der Codescheiben vor.
Dieser Fehler würde Deine 94% Vorgabe erklären. Bei dem Zählvorgang werden wohl manchmal einige Ticks zuviel gezählt. Vielleicht gibt es doch in der Interruptauswerteroutine ein Problem.
Ein einfacher Test wäre vielleicht, bei jedem Encodertick einen Impuls auf einen Ausgangspin des Atmega8 zu geben und mit einem Speicheroszilloskop zu versuchen, den Ausreißer zu lokalisieren. Falls er regelmäßig kommt, könnte das ja auf einen Konflikt mit anderen Routinen hindeuten.
Immerhin läuft ja der 36Khz Interrupt und der 4Khz? Encoderinterrupt gleichzeitig.
Gruß,
robo
Ich habe hier nog mal meine Werte:
Test 1:
MY_SWITCH_VALUE = 63
Test 2:
MY_ODO_LIGHT_VALUE_L = 142
MY_ODO_DARK_VALUE_L = 160
MY_ODO_LIGHT_VALUE_R = 174
MY_ODO_DARK_VALUE_R = 185
Test 3:
MY_GO_ENC_COUNT_VALUE = 18740
Test 4:
MY_TURN_ENC_COUNT_VALUE = 147
Was auffällt ist das die ermittelten ODO werte sich nicht mit die Kriterien (Light hat grösseren Wert als Dark) verhalten. Ich habe mehrmals versucht und es kommen immer diese Werte heraus.
Wie gesagt Test 5 funktionniert nicht.
Wie sehen die Werte bei euch aus?
die werte bei mir sind so:
MY_ODO_LIGHT_VALUE_L = 128
MY_ODO_DARK_VALUE_L = 154
MY_ODO_LIGHT_VALUE_R = 95
MY_ODO_DARK_VALUE_R = 127
so viel ich mich erinner kann, ist der test der motoren (test5) noch nicht eingebaut...
@inka
Also bei dir sind die werte für LIGHT auch niederiger als für DARK.
In den Comments in MyAsuro.H steht es soll genau umgekehrt sein.
Merkwürdig.
http://www.henkessoft.de/Roboter/Bilder/Odometrie_Links_Rechts.jpg
@ehenkes
Tolle Grafik. Aber wie verstehe ich das?
Ich verstehe das licht-dunkel-Verhalten des Odometers und der Underschied links und rechts.
Aber die Werte von Inka und mir sind Streitig mit der Angabe das Light einen höheren Wert haben soll als Dark.
Die Grafik zeigt das Dark und Light verschiedene Werte haben aber nicht ob die höhere Werte zu der Dark-parametern gehören oder zu den Light-parametern.
Sternthaler
29.06.2007, 19:24
Das mit den verschiedenen Schnittstellen (Laptop, Desktop, USB, RS232, ...) scheint sich hier ja durchzuziehen.
Ich werde also erst einmal KEINE weitere Fehlersuche dahingehend machen. Sorry.
Dieser Fehler würde Deine 94% Vorgabe erklären. Bei dem Zählvorgang werden wohl manchmal einige Ticks zuviel gezählt.96% anstatt 94% hatte ich ermittelt. Ist aber egal, da das Prinzip scheinbar unerwartete Tik's erzeugt.
Mit deiner Beobachtung bestätigt sich diese Aussage ja auch.
Ein einfacher Test wäre vielleicht, ... und mit einem Speicheroszilloskop ... Falls er regelmäßig kommt, könnte das ja auf einen Konflikt mit anderen Routinen hindeuten. ... Immerhin läuft ja der 36Khz Interrupt und der 4Khz? Encoderinterrupt gleichzeitig.Den Vorschlag für den Test mit Speicher-Oska halte ich für brauchbar. Leider habe ich so ein Ding nicht. Kann hier jemand helfen? (ehenkes vielleicht?)
Allerdings bin ich immer noch (nach nochmaligem 'Codeanstarren') relativ sicher, das da nichts her kommt. Zum einen deshalb, da die Interrupts nicht verschachtelt aufgerufen werden, und zum anderen weil der Timer nichts mit der Ermittlung der Tik's zu tun hat. Ich sehe einfach keinen Zusammenhang. (Wahrscheinlich betriebsblind)
MY_ODO_LIGHT_VALUE_L = 142
MY_ODO_DARK_VALUE_L = 160
MY_ODO_LIGHT_VALUE_R = 174
MY_ODO_DARK_VALUE_R = 185
Was auffällt ist das die ermittelten ODO werte sich nicht mit die Kriterien (Light hat grösseren Wert als Dark) verhalten. Ich habe mehrmals versucht und es kommen immer diese Werte heraus.
Das ist in der Tat sehr merkwürdig. Die Beschreibung in myasuro.h ist korrekt.
Es gibt allerdings eine Situation in den Daten, die ich im Asuro-Testprogramm sammel, bei denen ich LIGHT und DARK bewust 'umdrehe'.
Wenn zu viel seitliches Licht vorhanden ist, dann erkennt das Programm dies. Dann sind die erfassten Duchschnittswerte bei der Drehung vom Asuro so, dass der mittlere Duchschnitt der hellen Werte kleiner ist als der mittlere Durchschnitt der dunklen Werte.
Ich werde dies nochmal prüfen, ob da ein Fehler in meinem Programm ist.
Wie gesagt Test 5 funktionniert nicht.inka hat Recht. Der Test 5 ist noch nicht vorhanden. Allerdings auch noch nicht wichtig, da dieser Wert in der LIB aktuell nicht benutzt wird.
Sternthaler
01.07.2007, 00:28
Das ist in der Tat sehr merkwürdig.
Nicht merkwürdig, sondern tatsächlich falsch.
Ich habe die Texte MY_ODO_DARK_VAULE_[L|R] und MY_ODO_LIGHT_VAULE_[L|R] im Windows-Programm allerdings 'nur' vertauscht.
Ich stelle im ersten Beitrag eine korrigierte Version des ASURO-Programms zur Verfügung als Version V205.
Asuro-Programm deshalb, weil es kleiner ist. Dort werden die Werte dann nur vertauscht gesendet.
Toll, dass ihr dies gefunden habt. Ich hatte einfach immer nur die kleineren Werte hinter DARK eingetragen. (Ist ja schliesslich so richtig ](*,) )
P.S.: Da fällt mir so ein, dass ich noch nichts von einem auftauchenden Button neben den ODO-Values erzählt habe, wenn ein Problem oder eine Warnung festgestellt wurde.
Haltet mal eine helle Lampe seitlich neben den drehenden Asuro wenn der Test 2 gemacht wird.
Heisst dies das ich nur die gemessene Werte Light und Dark wechseln soll.
Oder muss ich die messung neu durchFühren?
Sternthaler
01.07.2007, 20:33
Hallo Petje,
es ist nicht notwendig neu zu messen.
Wenn du in deiner myasuro.h die höheren Werte bei den _LIGHT_-Defines eingesetzt hast, ist alles OK.
Wenn du dir aber das ASURO-Programm Version V205 von der ersten Seite aus diesem Thread holst, dann werden die Werte nun richtig im Windows-Programm ausgegeben, und die Verwirrung ist wenigstens weg.
hi allerseits,
folgende frage:
ist die taster-erkennung wirklich so empfindlich dass bei 2 asuros, der eine mit R25=2,01k und der andere mit R25= 1,97 schon nicht mehr mit dem gleichen parameter in der myasuro.h erkannt werden, sondern mit 63 und 64 arbeiten = die K1 taste erkennen?
Es ist sicher kein problem bei dem einem ein widerstand mit 4 ohm dazuzuhängen, aber es ist eben die frage, ob ich damit das problem löse?
radbruch
13.11.2007, 16:15
Das sind 40 Ohm Unterschied, also 2% Abweichung der asuros. In diesem Widerstandsbereich würde ich allerdings nur einer EinKnopf-Messbrücke (http://de.wikipedia.org/wiki/Wheatstonesche_Messbr%C3%BCcke) trauen, ein Multimeter ist eher ein Schätzeisen. Und ja, das kann den Unterschied zwischen 63 und 64 verursachen (2% von 60 sind 1,2!).
mic
Sternthaler
13.11.2007, 20:55
Hallo inka,
wie radbruch schon schreibt, ist die Toleranz nicht zu unterschätzen.
Da ich ja weiß wie der endgültige Wert ermittelt wird, kann ich dir emfehlen auf alle Fälle den kleineren Wert auch im '64-er'-Asuro zu probieren.
Nicht andersherrum, da der vom Programm angegeben Wert immer der größte fehlerfreie Wert ist.
Gruß Sternthaler
mhh ich hab das selbe problem wie petje bei seinem laptop.. bei mir sieht das windows programm nur schnittstelle COM1 und COM2 bei mir is er auf COM1 drauf.. flashen klappt auch die verbindung zhum hypertreminal.. aber nur zum windows programm nicht.. da kommt auch "BRAKE empfangen 1"
gibt es schon ne lösung?^^ sollte ich evtl rebooten?
mfg
hat sich erledigt.. ein reboot hilft immer :D
Sternthaler
19.01.2008, 12:33
Hallo JensK,
uff, da bin ich aber froh, dass ein booten ausgereicht hat.
Ich habe nämlich immer noch keine wirkliche Erklärung zu der "BRAKE empfangen Nr"-Meldung, bzw. was das überhaupt für ein Break sein soll.
Gruß Sternthaler
Das Programm läuft wirklich schön.
Die Werte sehen auch akzeptabel aus.
Wir haben ein Programm, mit welchem der Asuro geradeaus fahren soll, bis er an ein Hindernis stößt, dann umdreht und wieder solange geradeausfährt, bist er wo dagegen stößt ad infinitum.
Der Geradeausteil funktioniert mit einem Odometrieprogramm. An welcher Stelle müssen wir jetzt die Werte aus dem Programm von Sternthaler eintragen?
pinsel120866
05.03.2008, 17:01
In die Datei "myasuro.h". Damit die Werte auch gelten muß die Datei bei jedem Programm auch aufgerufen werden mit
#include "myasuo.h"
Haben die Werte ausgelesen und eingetragen. Aber nun ergibt sich das Problem, dass die Asuros mit der GoTurn() Funktion aus der Asuro library (und den original Odometriewerten) fast gerade laufen und sobald wir die ausgelesenen Werte in die myasuro.h eintragen, fahren sie im Kreis...
pinsel120866
07.03.2008, 19:22
Hast du auch den Wert für "#define MY_MOTOR_DIFF" eingetragen? Damit kann du die Motorleistungen links und rechts anpassen.
Sternthaler
07.03.2008, 19:28
STOP, STOP
Der Wert MY_MOTOR_DIFF ist aktuell nur zur Verwirrung vorhanden. Er wird noch nirgendwo ausgewertet.
@Romili
Kannst du bitte mal die vom Asuro selbst ermittelten Werte hier angeben und dein Programm posten mit dem du Probleme hast.
Gruß Sternthaler
pinsel120866
07.03.2008, 19:33
Ups, wusste ich nicht - sorry. Thanx Sternthaler - wollte nur helfen...
Sternthaler
07.03.2008, 19:46
@pinsel120866
Helfen ist immer gut.
Hier wusste ich deshalb so gut Bescheid, da ich das Ding selbst erfunden hatte. Schande über mich :oops:
Gruß Sternthaler
Guten Abend,
an den Code und die Daten komm ich leider vor Montag nicht. Anbei aber das, an was ich mich noch erinnere:
Die Werte lagen einmal zwischen 161 und 140 (links) und 135 und 108 (rechts) und bei dem andern links irgendwo bei 170 und rechts ungefähr bei 178.
Das Programm war recht einfach. Wir haben die GoTurn-Funktion genomme und abgeändert, denn die Asuros sollen nicht eine nur eine Zeitlang, sondern unbestimmte Zeit fahren. D.h. wir haben sämtliche Teile, die von der Variable distance abhingen gelöscht.
Unser Code hatte dann folgende Form:
void fahren (int richtung, int speed)
// der Teil der GoTurn Funktion, der fürs geradeausfahren sorgt
int main(void)
Init()
EncoderInit()
while(1)
fahren(1,200)
Vielen Dank schonmal für die Hilfe :D
Grüße
Romili
Sternthaler
08.03.2008, 01:58
Hallo Romili,
die Werte sehen bei beiden Asuros noch ganz OK aus. 160 und 140 sind die Standardwerte in der Lib.
Deine niedrigeren 135/108-Werte deuten eventuell auf eine sehr gut leuchtende LED hin, da kleine Werte eine höhere Beleuchtung darstellen bei den Raddecodern. (Bei den Liniensensoren ist es anders rum.)
Die 170/?- 178/?-Werte machen auch einen guten Eindruck.
Wichtig ist, dass der Abstand zwischen .._LIGHT_.. und .._DARK_.. möglichst groß ist. Aber auch kleine Abstände sollten nicht zu einem Kreisverkehr führen. Höchstens zu einer nicht ganz so geraden Geraden, weil dann Farbwechsel auf den ODO-Scheiben nicht mehr unbedingt erkannt werden.
Bleibt also doch erst mal nur deine Änderung im Programm.
Vor allem, da du ja schreibst, dass die Original-Werte in der Originalfunktion GoTurn() (so verstehe ich deinen Beitrag) zu einer ordentlichen geraden Fahrt führen.
Mach dir keinen Stress, das Wochenende muss ja nicht immer mit dem Asuro verbracht werden ;-)
Gruß Sternthaler
Hikh'var
09.10.2008, 23:26
Hey ich habe bis jetzt nur das PC Programm, leider kann ich nirgendwo ein Link oder "Attachment"(was auch immer das sein soll) finden, um das Asuro Programm zu bekommen.
[edit] Sry anscheinend muss man angemeldet sein um die Attachments zu sehen.
RobotNeu
21.10.2008, 15:58
Hi,
Meine Werte sind wie folgt:
MY_ODO_LIGHT_VALUE_L :- 159
MY_ODO_DARK_VALUE_L :- 149
MY_ODO_LIGHT_VALUE_R :- 162
MY_ODO_DARK_VALUE_R :- 147
Laut die Beschreibung in myasuro.h sind die Werte so korrekt. Aber laut der Asuro Manual vom Arexx ist der Light Wert kleiner als vom Dark Wert. Welches ist richtig?
Kann mir da jemand weiterhelfen?
Danke.
mausi_mick
23.10.2008, 07:06
hi RobotNeu,
da die Transistoren T11 / T12 mit ihren Emittern an Masse liegen und bei Beleuchtung durch die IR-Leds D13/D14 (Light) (bei Reflexion durch die weissen Segmente) durchschalten, gehen dabei ihre Kollektoren Richtung 0V und ziehen die ADC-Eingänge ADC0/PC0 (PIN23) bzw. ADC1/PC1 (PIN24) nach Masse (kleinerer Wert).
Im un/weniger beleuchteten Zustand (Dark - schwarze Segmente) sind die Transistoren weniger durchgeschaltet, und die ADC-Eingänge liegen wegen der mit Vcc verbundenen Widerstände auf hohem / höheren Potential.
So sollte es sein , (falls ich mich nicht irre).
Ich verwende aber auch ähnliche Werte (Light > Dark).
Ich vermute aber , dass die Variablen im Programm
(encoder) irgendwo vertauscht werden. Ich meine, ich hätte das auch irgendwo gelesen, aber es wurde wohl - vielleicht aus Gründen der Kompatibilität - so belassen.
Gruss
mausi_mick
malediction
11.01.2009, 22:59
@ sternthaler:
SUPER programm!!! echt genial... ohne das hätte ich wohl jahre gebraucht, bis ich die richtigen einstellungen gefunden hab.
VIELEN DANK!
ein kleines feedback:
die tests liefen alle recht gut. ich hab jedoch des öfteren einen Frame-Fehler angezeigt bekommen, was ich anscheinend nur durch einen neustart des programms lösen konnte.
und dass test 5 nicht geht hätte mich fast wieder mal vom glauben abgebracht ;)
hab probiert und probiert... bis ich dann hier mal genauer nachgelesen hab.
also noch mal vielen dank für die arbeit, weiter so!
gruß,
male...
Sternthaler
17.01.2009, 22:46
Hallo zusammen.
Erst mal ein schönes neues Jahr an alle.
@RobotNeu
Kannst du mal bitte angeben, welche Doku du mit "Asuro Manual vom Arexx" meinst? Ich habe so einiges durchgesucht, aber nichts gefunden.
Die Erklärung von mausi_mick ist jedenfalls richtig. Die Hardware vom Asuro liefert eben diese Werte.
Und nicht vergessen: Die MY_ODO_xxx_VALUE_[Seite]-Werte sind ja für die LIB hier aus dem Forum gebaut worden. Es kann also, je nach Programmierung (z.B. bei Arexx) auch anders richtig sein. Es kommt eben nur auf die Auswertung nachher im Programm an.
@malediction
Schön, dass dir das Programm so gut geholfen hat.
Und besonders schön, wenn ich dafür ein so dickes Lob von dir bekommen. Danke.
Ja, ja, die Doku. Da ist halt nicht so viel Platz im Windows-Programm. Aber ich wollte keinesfalls noch ein 'dickes' Handbuch dazu schreiben. Wer liest den Handbücher ;-)? (Ist doch ne gute Ausrede, oder?)
Gruß Sternthaler
Hallo alle zusammen,
ich versuche gerade die Odometriewerte zu ermitteln. Irgendwas haut da aber nicht hin.
Wenn ich den Asuro den Test im "Halbschatten" (sprich bewölkter Himmel; nur Licht von außen; kein künstliches Licht; auf dem Fußoden stehend) erscheinen folgende Werte (253,253,252,252) mit dem Hinweis "Warnung - zu wenig Differenz". Bestrahle ich den Asuro jedoch direkt mit ner Lampe bzw. stell ihn direkt aufs Fensterbrett beim Test ausführen, so ermittelt er mir folgende Werte (223, 214, 178, 172) mit dem Hinweis "Problem - zu viel seitliches Licht". Der anschließende Test der Go-Funktion zeigte einen kurzen Versuch gerade aus zu fahren (bei den zweiten Werten!), endete aber darin, dass er ohne Ende im Kreis fährt!
Kann mir jemand helfen? Wo steck das Problem?
Vielen Dank und beste Grüße
hirb
Hallo zusammen,
soweit wie Ihr komme ich gar nicht.
Ich sehe zwar die Werte für die Sensoren auf der linken Fensterseite in grün und blau. Die Wertermittlung für myasuro.h funktioniert aber leider überhaupt nicht.
Die einzelnen Tests gehen nicht, da ich bei keinem der Tests eine Reaktion auf einen Tastendruck bekomme!
Die Taster funktionieren aber. Separater TastSensorTest liefert 1,2,4,8,16 und 33 (statt 32). Gerade dieses 33 statt 32 soll doch der Test aufspüren und korrigieren helfen oder hab ich da was falsch verstanden?
Hatte jemand schon mal ein ähnliches Problem?
Gruß
Landau
Sternthaler
05.09.2009, 19:42
Hallo hirbel und Landau,
euch Beiden erst einmal ein großes Willkommen im Forum.
Irgendwas haut da aber nicht hin.
Oh, je, da hast du aber etwas besonders 'feines' an deinem Asuro.
Deine Spannungswerte an den ODO-Sensoren sind viel zu groß. Die Werte bei fast 255 (Maximum) sehen mir so aus, als ob du irgendwie 5 Volt direkt an die AD-Wandlereingänge bekommst.
Wenn man im Schaltplan nachsieht, dann würde ich jetzt erst einmal auf falsch herrum eingebaute Brems-Leuchtdioden tippen. Ich meine die Bauteile D15 und D16 im Plan, die hinten neben den Batterien sind.
Wenn sie falschrum wären, dann würden die 5 Volt aus dem CPU-Anschluss PD7 (ist zum ODO-Messen auf hight gesetzt) nun über den 'kleinen' 1K-Ohm Widerstand (R19/R21) und die Diode (D15/D16) auf die ADC-Eingänge (ADC1/ADC0) kommen. Somit hätten wir nun R18 und R19 parallel geschaltet und nur noch 825 Ohm vor den 5 Volt. Soll wäre aber 4700 Ohm von R19.
Haust du nun viel Licht auf die Sensoren T11/T12, dann ist es auch OK, dass die Messwerte kleiner werden. Aber bei dir eben nicht klein genug.
Leuchten deine Brems-LED's überhaupt?
Ansonsten kannst du im PC-Programm "ASURO-Sensoranzeige" im Sensor-Teil mal prüfen, welche Werte bei der Ausgaben Rad: Hell und Dunkel angezeigt werden. Lass mal die Test-Button weg und dreh nur mal langsam an den Rädern so das die hellen und dunklen Flächen der ODO-Scheiben 'gesehen' werden.
Ändern sich hier die Werte in der Anzeige? Wie groß sind sie?
Hier werden die 10-Bit-Wandlerergebnisse ausgegeben. Somit wäre 1023 das Maximum und würde den 5 Volt entsprechen.
Die Kreisfahrt wird dann 'erzeugt', wenn Anzahl zu fahrender Tiks einer Seite erreicht wurden, aber die andere Seite einfach keine Tiks zählt.
Dann dreht diese Seite unendlich weiter.
soweit wie Ihr komme ich gar nicht.
Nee, ich habe von so einem Verhalten noch nicht gehört.
Es ist schon Merkwürdig, dass die Sensorwerte übertragen werden können, aber der Rest vom Programm nicht funktionieren sollte.
Das PC-Programm sendet keine Daten an den Asuro. Es wird immer nur vom Asuro an den PC gesendet. Also sollten die Daten aus den Tests auch beim PC ankommen können. Und halt nciht nur die reinen Messdaten.
Kommen irgendwelche Werte in der rechten Daten-Ausgabe an, wenn du eine Taste beim Asuro drückst?
Die Asuro-Taste zum starten von Test 1 sollte Z10 in der Datenausgabe liefern.
Dann sollte bei jedem weiteren ASURO-Tastendruck etwas ausgegeben werden.
Als angehängtes Bild mal eine Ausgabe an meinem PC.
Viel Erfolg und schön durchhalten.
Gruß Sternthaler
Hallo Sternthaler,
die rechte Seite bleibt komplett leer, egal welche Taste ich drücke, egal bei welchem Testabschnitt.
Ich poste mal ein Bild, wie es bei mir aussieht.
Die Liniensensoren (2xFoto-Transistor + Front-LED) habe ich noch nicht eingelötet, könnte es daran liegen???
Gruß
Landau
Sternthaler
06.09.2009, 15:00
Hey Landau,
nein, die fehlende Liniensensor-Hardware wird dieses Problem nicht auslösen.
Hast du mal darauf geachtet, ob in der linken Sensor-Anzeige bei Taster eine Ausgabe erfolgt?
Diese Anzeige hat nichts mit den Tests zu tun. Es sind, ebenso wie die ODO-Sensoren, nur Anzeigedaten.
Zum Starten eines Tests darf hier aber immer nur genau ein Taster erkannt werden. Wenn also der Asuro-Taster zum Starten vom Tasten-Test ncht als einzelner Taster erkannt werden kann, dann startet der Test (mit der rechten Datenausgabe) schon nicht.
(Dieser Taster ist im übrigen der Taster mit der größten Toleranzschwelle. Er ist in der Regel bei allen Asuros lesbar.)
Wie groß ist denn dein Umrechenfaktor in der PollSwitch()-Funktion bei dir? (Die aus dem von dir benutzten TastenTestProgramm)
Da ich nicht weiss, ob du die Original-LIB von der CD oder eine Asuro-LIB hier aus dem Form nutzt, hier mal beide Varianten:
Original-LIB:
==> return ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 63.0 + 0.5));
Asuro-LIB:
==> return ((10240000L / (long)i - 10000L) * MY_SWITCH_VALUE + 5000L) / 10000;
Es geht entweder um den Wert "63.0"
oder um den Wert von MY_SWITCH_VALUE
Den findest du in der Datei myasuro.h und sieht im Original so aus:
==> #define MY_SWITCH_VALUE 63L
In dem von mir geposteten ASURO-Programm ist, auch im Source myasuro.h, ein Wert von 65 zum ersten Start angegeben.
Eventuell reicht es, wenn du hier deinen Wert einträgst und mein Asuro-Programm neu übersetzt, flashst und es dann nochmal versuchst.
Gruß Sternthaler
Hallo Sternthaler,
danke für deine schnelle Antwort. Ich habe 2 Asuros hier stehen. Beim Einschalten blinken bei beiden vorn eine grüne LED. Bei einem von beiden leuchten die beiden Bremslichter. Beim anderen nicht!
Bei dem mit nicht leuchtenden Rücklichtern sind also die beiden LEDs falsch eingebaut? Also beide oder nur eine?
Grüße hirb
Sternthaler
07.09.2009, 21:35
Hallo hirbel,
ich tippe eher darauf, dass beide LED falsch rum sind.
Ich habe gerade mal meinen Asuro mit dem Programm geflasht.
Richtig, die grüne LED blinkt leicht hektisch nach dem Einschalten.
Also:
- einschalten
- Status-LED gelb; Brems-LEDs leuchten schwach; Linien-LED aus
dann nach 2-3 Sekunden
- Status-LED blinkt grün; Brems-LEDs leuchten schwach; Linien-LED ein
Nur mal der Vollständigkeit halber:
- Test-Taste (1-4) drücken und festhalten:
-- Status-LED blinkt gelb; Brems-LEDs leuchten schwach; Linien-LED ein
- Taste nun loslassen:
-- Status-LED rot; Brems-LEDs leuchten schwach; Linien-LED ein
- Taste (5-6) drücken und festhalten:
-- Status-LED blinkt gelb; Brems-LEDs leuchten schwach; Linien-LED ein
- Taste nun loslassen:
-- Status-LED blinkt grün; Brems-LEDs leuchten schwach; Linien-LED ein
Zur Anschauung mal ein Bild der beiden Brems-LEDs an meinem Asuro. Den schwarzen Umriss habe ich in die LEDs gemalt um dir zu zeigen, auf was du achten musst.
Haben denn beide Asuros dieses Problem? Oder ist der mit den leuchtenden Brems-LEDs in Ordnung und liefert mit meinem Programm vernünftige Werte?
Gruß Sternthaler
Hallo,
bei dem einen, bei dem die Bremslichter schwach leuchten, läuft das Programm ohne Probleme und liefert auch gute Werte.
Ich werde mal bei dem Anderen die Leds auslöten und neue einbauen.
Falls ich nochmals fragen habe, meld ich mich noch mal.
Vielen Dank für die super Hilfe!
Grüße hirb
Hallo Sternthaler,
als ich gestern so an meinem Schreibtisch hockte und beim nachdenken so am asuro rumspielte, habe ich bei dem "nicht funktionierenden" Asuro den Schalter eingeschaltet. Es ist immernoch dein Testprogramm geflasht. Da fiel mir auf, dass die Bremsleds am Heck am Anfang kurz aufleuchten. Also können die ja nicht verkehrt eingelötet sein oder? Wo kann stattdessen das Problem liegen? Vielleicht einfach das Programm nochmal neu aufflashen??
Vielen Dank und beste Grüße
hirb
Hallo,
ich muss erneut nochmal "nerven". Ich habe ein Programm hier, dass den Asuro 50cm vor fahren lassen soll und dann ne 180° Drehung machen lassen. Aber leider fährt er ohne Ende gerade aus. Nehm ich das Vorwärtsfahren raus, dann dreht er sich ohne Ende im Kreis.
Die software zum ermitteln der Tiks usw war einwandfrei bei dem einen asuro. Doch das von mir geschriebene Miniprogramm läuft nicht. Kann mir jemand eventuell helfen? Vielleicht kurz ein Programmcode posten, bei dem der Asuro 50 cm gerade aus fährt und dann ne 180° Drehung macht - Motordrehzahl sollte gesteuert werden, sodass er wirklich gerade aus fährt!
HILFE!?!?
Vielen Dank und Grüße hirb
Hallo Sternthaler,
vielen Dank für Deinen post.
Leider hatte ich diese Woche keine Zeit aber jetzt geht's weiter:
... Hast du mal darauf geachtet, ob in der linken Sensor-Anzeige bei Taster eine Ausgabe erfolgt?
Auch in der linken Anzeige bekomme keine Ausgabe für die Taster, die Felder bleiben leer.
... Wie groß ist denn dein Umrechenfaktor in der PollSwitch()-Funktion bei dir? (Die aus dem von dir benutzten TastenTestProgramm)
Da ich nicht weiss, ob du die Original-LIB von der CD oder eine Asuro-LIB hier aus dem Form nutzt, hier mal beide Varianten:
Original-LIB:
==> return ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 63.0 + 0.5));
Asuro-LIB:
==> return ((10240000L / (long)i - 10000L) * MY_SWITCH_VALUE + 5000L) / 10000;
Es geht entweder um den Wert "63.0"
oder um den Wert von MY_SWITCH_VALUE
Den findest du in der Datei myasuro.h und sieht im Original so aus:
==> #define MY_SWITCH_VALUE 63L
Ich benutze die original-lib und habe eine Wert von 64 ermittelt, damit geht jeder Taster einzeln und auch die Summen passen.
... In dem von mir geposteten ASURO-Programm ist, auch im Source myasuro.h, ein Wert von 65 zum ersten Start angegeben.
Eventuell reicht es, wenn du hier deinen Wert einträgst und mein Asuro-Programm neu übersetzt, flashst und es dann nochmal versuchst.
In dem original myasuro.h-File aus Deinem Programm ist MY_SWITCH_VALUE auf 61 gesetzt, dies habe ich auf 64 geändert.
Am Verhalten ändert sich aber leider überhaupt nichts. Weder links noch rechts in der Sensorenanzeige erhalte ich eine Ausgabe.
Wahrscheinlich habe ich aber jetzt ein Kuddelmuddel aus Original-Lib und Asuro-Lib, bin also nicht sicher ob der geänderte Eintrag in myasuro.h überhaupt eine Wirkung hat!
Gruß
Landau
Fehler gefunden!!!
R11 und R24 waren verdreht eingelötet. Jetzt klappt's.
Verstehen tu ich's zwar nicht ganz, denn ich konnte die Taster trotz des Lötfehlers auslesen ...
Vielen Dank an Sternthaler für das tolle Programm und Deine Hilfe.
Gruß
Landau
Sternthaler
03.10.2009, 00:35
Hossa Landau,
jetzt bin ich der Späte.
Zum Glück hast du ja schon selber alles auf die Reihe bekommen \:D/ .
Im übrigen ist dein Problem doch schon hier im Forum untergekommen. (Hätte ich aber nie wieder gefunden, wenn du die Lösung nicht mitgeteilt hättest.)
Den Anfang findest du hier (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=34091).
Und die Lösung ist dort (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=315065#315065). (Oh, Wunder)
Zwischendurch hatte ich hier (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=314966#314966) mal die Spannung bei nicht gedrücktem / gedrückten Taster am Punkt zwischen R24/1K und R23/1M angesprochen. Die aber ist genau dann wichtig, wenn die Tasten einen Interrupt auslösen sollen.
Und somit ist auch klar, warum mein Programm nicht funktioniert. Es liest die Spannung nur dann, wenn ein Tasten-Interrupts ausgelöst wurde. Aber genau der konnte nicht erzeugt werden.
Bei deinem anderen benutzten Tastenleseprogramm wird der Interrupt demnach wohl nicht benutzt und somit werden die Tastenspannungen immer gelesen und nur ein 'kleines bisschen krumm' ermittelt.
So, und nun geht es an die echten Aufgaben. Und lass den Asuro nur vor die Wand knallen, wenn du sicher bist dass alle Tasten funktionieren ;-).
Gruß Sternthaler
Sternthaler
03.10.2009, 01:51
Hallo nochmals.
Jetzt habe ich auch endlich den Beitrag wiedergefunden der genauer erklärt wie das mit dem Interrupt und dem Widerstand R24 bei 1000 Ohm funktioniert.
Angefangen hat das Ganze an dieser Stelle. (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=29559)
Erklärt wird das im 2.ten Codeblock hier. (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=274294#274294)
Und noch weitere Grüße vom
Sternthaler
fog.sliver
24.12.2009, 13:56
Hallo
erst mal: toles Programm. erleichtert einem cht die Arbeit :P
Nun zu meinem problem:
Test 1 und 2 funktionieren super. Doch Ab test 3, also soald die motren isn spiel kommen, hört der Asuro nicht mehr auf zu fahren! bspw. bei der 30cm strecke fährt er unendlich lang, ebenso bei der 90 grad kurve. Woran ligt das? Ich achte extra darauf, das ASuro's IR verbindung nciht abricht.
Sternthaler
31.12.2009, 02:31
Hallo fog.sliver,
na, hast du die Zeit vor der Bescherung noch sinnvoll genutzt?
Also als erstes: Die Reihenfolge der Tests ist wichtig.
Erst die Tasten mit Test 1 einnorden.
Dann mit Test 2 die ODO-Sensoren justieren.
Erst mit justierten ODOs können Test 3 und 4 durchgeführt werden.
Beim Test 2 kann es vorkommen, dass nach dem Testlauf im Windowsprogramm ein senkrechter Button rechts neben den 4 ODO-Ausgabefeldern erscheint.
Ist da bei dir nach Test 2 eventuell ein Button aufgetaucht?
Es gibt 2 mögliche Ausgaben (Der Button ist entsprechend beschriftet):
-- "Warnung":
"Die Differenz der LIGHT- und DARK-Werte ist sehr klein. Das Zählen der Tik's wird mit hoher Wahrscheinlichkeit nicht korrekt funktionieren."
Dies tritt dann auf, wenn entweder sehr viel Umgebungslicht aus allen Richtungen kommt, oder wenn die Sensoren nicht richtig funktionieren.
-- "Problem":
"Es ist so viel seitliches Licht vorhanden, dass die ODO-Werte für LIGHT und DARK eine negative Differenz aufweisen. Die Werte sind hier allerdings schon 'umgedreht' und könnten so in myasuro.h versucht werden. Mit diesen Werten kann der ASURO aber KEINESFALLS die Tik's korrekt zählen!"
Hier ist das Problem vorhanden, dass der Test bei sehr viel seitlichem Licht gemacht wurde. (Z.B. Schreibtischlampe.)
Einfach nochmal bei einer anderen Beleuchtung probieren.
In beiden Fällen ist es jedenfalls recht unwahrscheinlich, dass die Tests 3 und 4 überhaupt noch funktionieren werden, da die ODO-Sensoren keine brauchbaren Ergebnisse liefern können.
Kannst du bitte mal deine ermittelten ODO-Werte angeben.
Gruß Sternthaler
frank1210
16.01.2010, 14:01
Ich krieg das PC Programm nicht installiert, sie >>>
https://www.roboternetz.de/phpBB2/viewtopic.php?t=51984
Gruß Frank
Sternthaler
17.01.2010, 15:57
Hossa frank1210,
unter https://www.roboternetz.de/phpBB2/viewtopic.php?p=481209#481209 habe ich in deinem Thread mal was geschrieben.
Gruß Sternthaler
G3tzR@zor
21.01.2010, 19:18
Hallo Sternthaler,
ich habe mir gerade dein Programm geladen.
Leider kann ich in dem Zip file keine *.hex Datei finden,
die ich auf den Asuro flashen kann.
Wird diese bei der Installation irgendwo abgelegt?
Gruß
G3tzR@zor
Die link hier oben geht zum einen post von Sternthat mit einem test.hex datei.
G3tzR@zor
21.01.2010, 20:28
Hallo Valen,
danke für deine Antwort.
Aber warum wird hier darauf hingewiesen, dass das asuro programm mit in dem Packet enthalten ist?
Sollte man vll. wirklich noch mit rein packen :-k
Das 'Packet' besteht aus 2 Teilen:
1) Asuro-Programm
2) Windows-Programm (Installationsfunktion ist dabei)
Ein Lob muss ich trotzdem noch los werden, denn ohne dieses Prog hätte ich meinen Asuro wohl nie durchs Labyrinth bekommen :-)
Gruß G3tzR@zor
Ich weis nicht genau welcher .zip datei du meinst, aber in dem erste bericht von diesen thread (am ende) steht ein link zu ein .zip datei genannt: ASSensorenV205.zip
Das enthalt die .hex datei und den quell-code dafur.
Etwas höher in das erste bericht steht ein link zu ein weitere .zip datei: PCSensorenV200.zip. Das enthalt ein Windows program installer. Das program organisiert das ganze messung-prozess.
Sternthaler
21.01.2010, 23:26
Hallo Valen, hallo G3tzR@zor,
ihr habt das ja schon sortiert und die Asuro-ZIP-Datei gefunden. (danke dir Valen)
Das 'Problem' mit der fehlenden Asuro-ZIP ist, dass sie nur dann als Attachment sichtbar wird, wenn man hier im Forum angemeldet ist.
Aber genau das wollte ich so haben. Da ich normalerweise meinen Programmcode mitgebe, beschränke ich das so aber auf Forumsuser.
Ich habe jetzt im ersten Beitrag einen Hinweis dazu geschrieben.
So hoffe ich, dass es dann etwas klarer wird. Also hat dein Beitrag G3tzR@zor auch noch zu einem besseren Start in den "Start zum Werte Ermitteln" geführt.
Und nun G3tzR@zor, fehlt nur noch ein Hinweis auf dein Labyrinth und was du da so treibst.
Gruß Sternthaler
G3tzR@zor
22.01.2010, 17:21
Hallo,
nachdem ich das Projekt fertig hatte ist meine Arbeit am Asuro leider, mangels Zeit, ein wenig eingeschlafen.
Ich habe in letzter Zeit allerdings ein paar Emails bekommen mit Fragen zu meinem Programm, da ich ja ein Video davon bei Youtube hochgeladen habe.
Link zum Video:
http://www.youtube.com/watch?v=JB6F8HWTHLE
Beitrag zum Labytrinthprogramm:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=48123&highlight=
Da einer davon wohl mehr probleme mit den Programmen wie Asuro Flash hat, hat er mich gebeten ihm zu helfen. (Ich habe ihn natürlich auch auf das Roboternetz Forum aufmerksam gemacht O:) )
Gruß G3tzR@zor
Sternthaler
30.01.2010, 23:44
Hossa G3tzR@zor,
danke für die Infos.
Ich habe mir das Tube-Video nun einige mal angesehen. Es gibt nur genau eine Stelle an der der Asuro sich links rum dreht. Interessant, da bei den vielen Möglichkeiten in dem Labyrinth, es doch erstaunlich ist, wie gut man mit Rechtsdrehungen auskommt.
Ist das Programm von hier: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=449186#449186 , aus deinem Thread "Fertiges Labyrinthprogramm!!!!", auch das geTubte Video?
Dort wird KurveL() ja nur in Thirdcol() aufgerufen.
Wie seit ihr auf die Zeiten gekommen? 1. und 2. Kollision innerhalb von 1 Sekunde und die dritte Kollision schon nach 0,6 Sekunden? Da habt ihr doch bestimmt lange versuchen müssen.
Ansonsten finde ich, dass die Fahrten und Drehungen aussehen, als ob sie mit dem Lineal gezogen sind. Echt super!
Eine schöne Kombination zwischen fahren und drehen habt ihr da benutzt.
Zum Geradeausfahren den Code aus Band II von "Mehr Spaß mit ASURO" in der Funktion Fahren(). Und zum Drehen die LIB.
Habt ihr TRIGGERLEVEL und HYSTERESIS fürs fahren mit meinem Programm aus diesem Thread bestimmt? Und was steht in myasuro.h bei den MY_xxxx_VALUEs?
Gruß Sternthaler
G3tzR@zor
31.01.2010, 14:43
Hallo Sternthaler,
ja das geTubte Video ist genau das Programm.
Die Sache mit den Zeiten war wirklich ein wenig Probierarbeit, diese müssen natürlich dann auf das eigene Labyrinth abgestimmt werden.
Leider habe ich die Daten aus der myasuro.h nicht mehr, da diese wohl bei der letzen Neuinstallation von windoof verloren gegangen sind.
Gruß
G3tzR@zor
Hi, ich hab gerade seit einiger Zeit wieder mit Asuro angefangen. Damals war ich mit einem Testerproblem nicht weiter gekommen und hatte dann auch irgendwie keine Zeit mehr dafür.
Jetzt wollte ich endlich das Tasterproblem loswerden, habe mir auch brav die neuen Lib's runtergeladen, und verschiedene TasterTest Programme. Eines hat eine Reihe von Werten zwischen 55 und 70 (oder Ähnlich) bei jedem Tastendruck ausgegeben. Anhand dieser Werte waren die einzelnen Tasten eindeutig voneinander unterscheidbar. Mehrere Tasten gleichzeitig habe ich mit diesem Programm allerdings noch nicht getestet.
Anschließend habe ich ein anderes Programm verwendet, welches Werte zwischen 1 und 31 ausgibt. Für die rechten drei Tasten erhalte ich 1, 2 und 4, dann folgt aber leider 7 anstatt 8, so dass ich nicht unterscheiden kann, ob die rechten drei Tasten gedrückt wurden, oder die vierte von rechts. Die Fünfte Taste liefert 16 und die sechste Taste liefert 31.
Wie bekomme ich das Problem mit Taste 4 und 6 in den Griff? Das in diesem Beitrag vorgestellte Programm hat mir als Tasterwert die 64 geliefert, aber wenn ich das Flash-Programm so einstelle, dass nur neue Seiten geflasht werden sollen, nachdem ich den Wert in myasuro.h geändert habe und das TastenTest Programm erneut kompiliert habe, wird keine Seite neu geflasht, als hätte sich nichts geändert.
Dann habe ich versucht, alle Seiten neu zu flashen und habe im laufenden Programm wieder die beiden Tasten 4 und 6 falsch eingestellt gehabt. Auch das Ändern des Wertes auf verrückte Zahlen wie 55 hat garnichts am TestenTest Programm geändert, der Tastenwert bei 4 ist 7 und der bei 6 ist 31. Warum ändert sich bei mir das *.hex Programm anscheinend nicht, obwohl ich mit make-clean und make-all arbeite und die myasuro.h ändere?
Kann es daran liegen, dass die falsche myasuro.h verwendet wird? (ich habe noch alte vorhanden, weiß aber nicht, wo man einstellt, welche verwendet werden soll)
G3tzR@zor
24.03.2010, 19:18
Hallo Quarki,
hast du auch die lib neu kompiliert?
In dem Ordner der Asuro lib unter lib gibts eine make-lib.bat. Die musst du ausführen um die Änderungen in die Bibliotek zu übernehmen
Gruß
G3tzR@zor
](*,)
Vielen Dank, das hatte ich nämlich nicht gemacht.
Jetzt klappt es mit dem Wert 64 wunderbar!
Sternthaler
26.03.2010, 01:48
Was für ein Betrieb hier im Thread.
Ich wünsche euch allen schöne Feiertage, gaaaanz viel Urlaub und laaaange Ferien damit die Asuros so richtig beackert werden können.
Hat schon jemand ein Ostereiersuchprogramm geschrieben? ;-)
Gruß Sternthaler
wuerttemberg
17.06.2010, 20:32
Hallo,
das Programm sieht echt gut aus, aber ich habe ein problem, nachdem ich die Werte in Test 1 für die sechs Taster eingelesen habe und dann auf Analyse klicke, verschwinden diese wieder aus dem Fenster und auch in der grünen Box erschein kein Wert für die myasuro.h. Könntet ihr mir bitte so schnell wie möglich eine Antwort geben, es eilt.
Außerdem bleibt bei mir die gesamte linke Seite leer. Das einzige was angezeigt wird sind also die Werte in dem weißen Feld ganz links.
Gruß wuerttemberg
wuerttemberg
19.06.2010, 14:42
Hey,
es klappt nun, kann es sein, weil ich mein pc neugestartet hab??
Auf jeden Fall klappt jetzt alles super. Echt tolles Programm, danke :)
Hallo zusammen
Durch einen Link in einem anderen Beitrag bin ich erst hier drauf gestossen.
Jetzt kapiere ich ein wenig was das mit der myasuro.h auf sich hat.
Also nix wie Programm heruntergeladen und ausprobiert.
Bloss jetzt macht mich einiges stutzig.
Bei den Odometriewerten stehen ja default 160/140 (hell/dunkel) in der myasuro.h.
Sterntaler schreibt sogar das seine Werte bei ca.300 liegen.
Aber bei mir kommen keine Werte ueber 90 raus.
Ob ich den Test bei Tageslicht mache, im halbdunkeln, mit Taschenlampe angeleuchtet
oder sogar direkt unter der hellen Lupenleuchte.
Es kommen immer aehnliche Werte raus: fuer hell 88-90 und fuer dunkel 56-57.
Kann das normal sein ?? Sind die Exemplarstreuungen der ATmega8 so gross ??
Das sich mein Asuro anders verhaelt als andere ist mir schon klar, ist js schliesslich meiner. ;-)
Gruss Asko.
guten abend miteinander,
habe mich vor kurzen in diesem forum angemeldet, da wir in der schule nun auch einen asuro programmieren sollen.
ich habe mir die 2 datein auf seite 1 runtergeladen und wollte die werte meines asuros mal auslesen.
test 1: die tastenabfrage klappt auch wunderbar, jedoch bei
test 2: odometrie klappt es nicht mehr, das programm gibt mir die warnung das die differenz der light und dark werte sehr klein sei.
alle werte stehen bei 254, was nach nachforschungen hier im forum bedeuten soll das die sensoren kaputt sind. wie genau finde ich das nun herraus? kann ich was messen?
gibts andere tricks die man anwenden kann?
würde mich über eine antwort freuen :)
gruss paul
Leuchten die OdometrieLEDs während das messen? (Sie sind IR-licht, deshalb nicht mit deine Augen merkbar, aber mit eine Handy- oder Webcamera geht das) Sonnst bemerken die Odometrie Fototransistoren kaum eine Differenz.
Das abschirmen der Odometrie-stellen von Fremdlicht hilft auch die Schwarz-Weiss Differenz zu vergrössern. Oder jedenfals etwas in die Mitte des Messbereiches zu bekommen.
http://www.asurowiki.de/pmwiki/pmwiki.php/Main/OdometrieModifikation
schonmal danke für deine antwort :)
also das mit dem abschirmen habe ich schon gemacht.
eben habe ich mit der handy kamera geguckt, aber da scheint kein IR licht rauszukommen. sind nun beide IR-leds kaputt? gibts irgendeine möglichkeit die weiter zu testen?
edit:
in dem programm kann man ja auch die aktuellen werte ablesen. also nicht beim test sondern auf der linken seite. wenn ich da die sensoren mit licht bestrahle, dann ändert sich da der wert. aber wenn ich es nicht bestrahle, dann ist der wert bei 1022, jeweils bei Links-hell-dunkel und rechts-hell-dunkel. evtl hilft das weiter
Ok, es gibt weitere wegen zum testen. Aber diese waren schon die einfachste Testen.
Eigentlich sollte das Programm die OdometrieLEDs anschalten. Damit wir sicher sind das sie überhaupt leuchten, können wir sie auch selbe anschalten. Hol den Asuro-chip raus und verbinde Pin 13 (den vorletzte Pin/Sockelstelle an den Hinterseite, neben den StatusLED) mit pin 1 (oder Pin 7; Pin 1 ist Hinter-Links, bei R22 und den dikken Elko C8 ). Dann anschalten und wider mit Web/Handy angucken.
Wenn sie Beiden nicht leuchten:
Sie sind verkehrt herum eingelötet (den LEDs sollten Rosa sein, und in die D13/D14 Stellen eingelötet sein, mit den Linse zu den Scheiben): einfach zu beobachten,
oder es gibt irgendwo in die Leitungen zwischen Pin 13, R22,D13,D14 und Masse ein Unterbrechung: mit Widerstand/Durchgansprufung Modus deiner Messgerät testen zwischen den Lötstellen,
oder zwischen R22 und D13 gibt es ein Kürzschluss zu Masse/GND (über die beinchen von R22 soll den gesamte Batterie/Bordspannung +- 5v abfallen; wenn weniger abfällt soll zu mindeste D13 Leuchten): Kürzschluss lokalisieren,
oder sie sind wirklich Beide Kaputt.
Nur wenn diese sicher leuchten können wir anfangen die Fototransistoren zu testen.
Hallo Paul
Ich hab mal meinen fotografiert. Rechte Seite (in fahrtrichtung).
Sind Dioden und Transistoren so eingeloetet ? Mit den Linsen zum Zahnrad ?
Achsoo, da kommt mir ne doofe frage auf, hast Du die Segmentierung angeklebt ? So das da ueberhaupt nen Unterschied ist ?
Eigentlich muesste doch dann der Selbstest schon nicht funktioniert haben.
Wenn Du schreibst, die werte aendern sich, wenn Du mit einer Lampe raufleuchtest, dann muesste der Asuro ja schon was "sehen".
...na guck mal nochmal genau...
Gruss Asko.21373
jap sie sind beide richtig eingelötet. die segmentierung habe ich angeklebt (die grobere).
ja genau also "sehen" tut er was. es könnte ja sein das die IR-empfänger ok sind, jedoch die IR-sender nicht gehen.
ich werde mich gleich mal ans messen machen und die tipps von valen befolgen. dannach werde ich mich nochmal melden.
radbruch
31.01.2012, 17:12
Die Scheiben zwischen Codescheibe und Platine sind ungünstig, weil sich die Codescheibe dadurch von den Sensoren entfernt:
https://www.roboternetz.de/community/threads/7348-Asuro-Odometrie-Fehler
Hallo Paul
Wenn Du die LEDs nicht direkt auf betriebsspannung geloetet hast, sollten die auch noch ganz sein.
Kontrolliere mal, was Valen geschrieben hat, bestimmt ist bloss irgendwo eine kleine Unterbrechung.
Oder R22 hat aus versehen mehr als 470 Ohm.
Gruss Asko.
@radbruch
Das iss noch nen altes Bild, die Scheiben hab ich jetzt auch aussen am Zahnrad.
Gruss Asko.
also ich habe die befürchtung, dass es sich um eine kalte lötstelle handelt ( wie mir das nur passieren konnte...) . jedenfalls werde ich morgen mehr wissen ,wenn ich an mein lötequipment rankomme. ich werd mich dann wieder melden ;)
sooo...
also es handelte sich nicht um eine kalte lötstelle, nach etwas genauerem messen hat sich herrausgestellt das tatsächlich beide IR-Leds kaputt sind, warum auch immer?!
Nunja habe ich nun neu bestellt und wenn ich sie bekomme und eingebaut habe, meld ich mich nochmal wie es gelaufen ist ;)
danke an euch mit euren antworten ;)
so ich habe heute die neuen teile bekommen und auch eingebaut. und es kappt alles wie vorgesehen. :)
ich habe die werte in die myasuro.h eingetragen.
das sollte nun doch bedeuten, dass ich die neuen funktionen auch benutzen kann oder? oder muss ich noch was anderes beachten?
ich habe den "libpath" auch eingetragen. nur lässt sich mein kleines test programm nicht kompilieren.
muss ich spezielle header datein includen?
ich wollte nur das der asuro sich 90grad dreht kurz wartet dann 120 grad dreht, wieder wartet und dann kurzes stück grade aus.
hier einmal das programm:
#include "asuro.h"
int main(void)
{
Init();
while (1)
{
Turn(90,150);
Msleep(2000);
Turn(120,250);
Msleep(2000);
void Go(10);
Msleep(1000);
}
return 0;
}
Damit die myasuro.h werten auch später für deine Programmen zu Verfügung stehen muss auch die Asurolib erst neu compiliert werden. Hast du schon "make" gemacht in die Mappe lib?
Für neue Programmen kannst du die Mappe von das FirstTry Beispiel der neuen Asurolib kopieren (mit libpath Änderungen usw.) Alle benötigte Einbindungen werden dann gemacht.
ja habe das "make-lib.bat" ausgeführt.
das programm ist im first-try ordner. das sollte dann doch gehen oder?
Hallo Paul
Valen war schneller, Du musst erst dieAsurolib neu compilieren (mit makelib.bat)
Aber was mir noch aufgefallen ist, ist das "void" vor Go. Was hat das da zu suchen ?
Go reicht doch. Und dann wird er es immernoch nicht compilieren, aber jetzt zeigt Dir Programmersnotepad den Fehler an.
Go will naemlich zwei argumente. Aslo tipp mal Go (10,10) ein, und es wird funktionieren.
Gruss Asko.
ps. ich probier das auch mal auf meinem.
ja habe das "make-lib.bat" ausgeführt.
das programm ist im first-try ordner. das sollte dann doch gehen oder?Jah, das sollte es. Wenn dein Programm auch test.c heisst.
nur lässt sich mein kleines test programm nicht kompilieren.Nah, wieso nicht den? Den Compiler gibt doch Meldungen zurück? Wo stolpert er über?
okay sorry mein fehler, die funktion Go brauch 2 parameter. jetzt compiliert er es, aber er macht nicht das was er soll. er dreht sich nur in kreis, anstatt nach 90grad kurz zu stoppen. jmd ne idee?
sind meine werte in der myasuro evtl falsch?
In diese Erweiterte lib muss man auch noch die Funktion EncoderInit aufrufen dammit die Radencoders richtig Eingestellt werden. (BackLEDs aus, OdoLEDs an und automatische ADC Messungen mit Interrupt-betrieb) Das wird nicht in die unterlegende Funktion GoTurn gemacht. Die originale Lib Funktion "Go" ist nicht mehr in die Lib enthalten, aber ist eine Eingeschränkte Version von den erweiterte Funktion GoTurn.
Go ist definiert als GoTurn das nur gerade ausfahrt:
#define Go(distance,speed) GoTurn(distance,0,speed)
Hallo Paul
Ich hatte genau das selbe ergebnis wie Du, er fuhr nur rueckwarts im Kreis.
Danke an Valen fuer den Hinweis der Initialisierung.
so funktionierts:
#include "asuro.h"
int main(void)
{
Init();
EncoderInit ();
while (1)
{
Go(100,100);
Turn(90,150);
Msleep(200);
Turn(120,250);
Msleep(200);
Go(300,100);
Msleep(1000);
}
return 0;
}
Gruss Asko.
danke, ich werds morgen früh gleich ausprobieren ;)
eine frage noch eben,
die parameter die an "go" übergeben werden, sind ja "distance" und "speed" , und was genau sagt das distance aus? wird der eingegebene wert von mir in mm oder cm gemessen? oder wie kann man das verstehen?
Hallo Paul
Das "distance" sind mm. Maximalwert ist +/- 360. Also kann er so max 36 cm fahren (pro ein befehl).
Ich hab das jetzt mal mit GoTurn ausprobiert. Aber irgendwas haut bei mir mit den Werten noch nicht genau hin.
#include "asuro.h"
int main(void)
{
Init();
EncoderInit ();
while (1)
{
GoTurn(100,0,160);
GoTurn(0,90,160);
Msleep(200);
GoTurn(0,-180,160);
Msleep(200);
GoTurn(0,90,160);
Msleep(200);
GoTurn(200,0,160);
Msleep(200);
GoTurn(-300,0,160);
Msleep(1000);
}
return 0;
}
kannst ja mal ausprobieren, was Dein Asuro dazu sagt.
Auf jedenfall spielt hier schon der Schlupf der Raeder eine Rolle.
Ich haette nicht gedacht, dass das so auffaellt.
Gruss Asko.
Wann Asuro nicht die richtige abstand fahrt muss man MY_GO_ENC_COUNT_VALUE (in asuro.h) anpassen. Das ist die Abstand der Asuro fahrt pro Encoder Tick in mm, aber multipliziert mit Zehntausend. Die Einheit dieser Wert ist also ein Zehntel Mikrometer. Wenn er nur 18 cm fahrt wann er 20 cm fahren soll, muss man die wert mit den Fraktion 20/18 vergrössern.
Aber diese wert wird auch gemessen mit das Programm das im ersten Bericht diese Thema beschrieben wird.
Hallo Valen
Danke fuer die genaue erklaerung der Werte.
Das Programm hatte ich benutzt um die Werte zu ermitteln.
Ich habe jedoch fuer die hell/dunkel-Werte erstaunlich niedrige Werte.
Siehe mein Post vom 24.01.2012
Ich werde den Test nochmal machen muessen.
Gruss Asko.
so das programm hat nun funktioniert ! danke euch für eure hilfe.
mein asuro macht zwar keine genauen 90° winkel aber kommt nah ran, das mag wohl hier an den anderen lichtverhältnissen liegen und evtl an meine groben zahnradeinteilung.
Hallo zusammen
Durch einen Link in einem anderen Beitrag bin ich erst hier drauf gestossen.
Jetzt kapiere ich ein wenig was das mit der myasuro.h auf sich hat.
Also nix wie Programm heruntergeladen und ausprobiert.
Bloss jetzt macht mich einiges stutzig.
Bei den Odometriewerten stehen ja default 160/140 (hell/dunkel) in der myasuro.h.
Sterntaler schreibt sogar das seine Werte bei ca.300 liegen.
Aber bei mir kommen keine Werte ueber 90 raus.
Ob ich den Test bei Tageslicht mache, im halbdunkeln, mit Taschenlampe angeleuchtet
oder sogar direkt unter der hellen Lupenleuchte.
Es kommen immer aehnliche Werte raus: fuer hell 88-90 und fuer dunkel 56-57.
Kann das normal sein ?? Sind die Exemplarstreuungen der ATmega8 so gross ??
Das sich mein Asuro anders verhaelt als andere ist mir schon klar, ist js schliesslich meiner. ;-)
Gruss Asko.Sind die richtige Widerstanden eingelötet (R18,R20= 4K7). Hast du schon versucht fuer die Odometriestelle ein kleine Gehause zu machen. Niedrige werten meinen die IR-fototransistoren sind Hell beleuchtet. Höhe Werten meinen die Transistoren bekommen kaum Licht. Also vermute ich das die Umgebungslicht zu gross ist das den Geberscheibe Konstrast vernichtet. Mit ein eingeschränkteres Sicht auf den Schwarz/Weis Ubergang, und absperren von Rücklicht, soll den Differenz verbessern. Ein vertikale Schlitz macht den ubergang von Schwarz und Weiss auch schneller. (nicht ein Sinus Kurve aber mehr ein Rechtecksignal )
Oder die OdometrieLEDs sind einfach zu hell. Richtige Widerstand R22?
Hi Valan
Die Widerstaende sind richtig, das hab ich x-mal nachgemessen.
Das komische ist doch, das ich die Messung ja eigentlich mit anleuchten einer Taschenlampe zB. "aus dem Tritt" bringen muesste.
Aber was ich auch anstelle, es kommen immer sinnvolle, wenn auch niedrige" Werte bei raus.
Es ist mir schon klar, das, je groesser die differenz zwischen Hell und dunkel ist, die Sache besser funktioniert.
Aber genau dies gross differenz kriege ich nicht hin.
Nun habe ich schon ueberlegt, die Schwarzen Felder mit einem Edding nachzuzeichnen.
Aber bei einem Test auf einem Stueck papier musste ich feststellen, das die oberflaeche dann "schillert", also auch reflektiert.
Demzufolge hab ich das erst mal gelassen.
Man koennte vielleicht noch die Weissen Felder mit einer speziellen reflektierenden Farbe bemalen, aber da faellt mir gerade
nichts zu ein. Oder sagen wir´s mal besser, ich habe gerade nix brauchbares da.
Hast Du Dir mein Programm von gestern mal angesehen ??
Was mir naemlich nicht ganz klar ist, ist folgendes:
Ich moechte die Werte aus der myasuro.h benutzen. Muss ich die explizit aufrufen ??
also mit : #include myasuro.h oder wie geht das auch ohne.
Ich verwende ja die befehle GoTurn usw. die stehen ja auch nicht in der asuro.h.
Und trotzdem werden sie sauber abgearbeitet. Das Makefile sorgt dafuer, das asuro.c geladen wird.
Und in der Asuro.c steht der aufruf zur mayasuro.h.
Schreibe ich #include myasuro.h in mein programm, kommt kein fehler.
Lass ich es weg, kommt auch kein Fehler, und es funktioniert genauso.
Ich bin da ein wenig irritiert.
Ich kann C nur lernen, indem ich beispiele verstehen lerne.
Und das verstehe ich zZ. nicht . ;-)
Es waere schoen, wenn Du mich "aufklaeren" koenntest....nicht sexuell...eher programmtechnisch...hi.
Gruss Asko.
Hi Valan
Die Widerstaende sind richtig, das hab ich x-mal nachgemessen.
Das komische ist doch, das ich die Messung ja eigentlich mit anleuchten einer Taschenlampe zB. "aus dem Tritt" bringen muesste.
Aber was ich auch anstelle, es kommen immer sinnvolle, wenn auch niedrige" Werte bei raus.
Es ist mir schon klar, das, je groesser die differenz zwischen Hell und dunkel ist, die Sache besser funktioniert.
Aber genau dies gross differenz kriege ich nicht hin.
Nun habe ich schon ueberlegt, die Schwarzen Felder mit einem Edding nachzuzeichnen.
Aber bei einem Test auf einem Stueck papier musste ich feststellen, das die oberflaeche dann "schillert", also auch reflektiert.
Demzufolge hab ich das erst mal gelassen.
Man koennte vielleicht noch die Weissen Felder mit einer speziellen reflektierenden Farbe bemalen, aber da faellt mir gerade
nichts zu ein. Oder sagen wir´s mal besser, ich habe gerade nix brauchbares da.Das abdecken der Sensoren soll auch sicher helfen!
(Wenn ich mit ein Scheinwerfer in deine Gesicht strahle wirst du mich auch nicht erkennen! ;) )
http://www.asurowiki.de/pmwiki/pmwiki.php/Main/OdometrieModifikation
Hast Du Dir mein Programm von gestern mal angesehen ??
Was mir naemlich nicht ganz klar ist, ist folgendes:
Ich moechte die Werte aus der myasuro.h benutzen. Muss ich die explizit aufrufen ??
also mit : #include myasuro.h oder wie geht das auch ohne.
Ich verwende ja die befehle GoTurn usw. die stehen ja auch nicht in der asuro.h.
Und trotzdem werden sie sauber abgearbeitet. Das Makefile sorgt dafuer, das asuro.c geladen wird.
Und in der Asuro.c steht der aufruf zur mayasuro.h.
Schreibe ich #include myasuro.h in mein programm, kommt kein fehler.
Lass ich es weg, kommt auch kein Fehler, und es funktioniert genauso.
Ich bin da ein wenig irritiert.
Ich kann C nur lernen, indem ich beispiele verstehen lerne.
Und das verstehe ich zZ. nicht . ;-)
Es waere schoen, wenn Du mich "aufklaeren" koenntest....nicht sexuell...eher programmtechnisch...hi.
Gruss Asko.Die myasuro.h werten werden automatisch in dem Lib eingebaut wen du die Lib Compilierst. (Mit make-lib.bat) In zbs. encoder_low.c, das die "Low-level" Encoder Funktionen enthält (Tick-zahlung, EncoderStart/Stop usw.), steht schon das "#include myasuro.h"Befehl. Auch in switches.c das die Taster wert-Anpassungsfaktor benötigt. In dein Programm kannst du die definierte Werten wie Konstanten verwenden, aber ich sehe nicht wirklich das Vorteil davon. So von dir aus ist das nicht unbedingt nötig. Nur die Lib neu compilieren wann irgendwie die Odometrie-empfindlichkeit sich ändert wegen Hardware Modifikationen.
Den Subroutine GoTurn steht am Anfang von den encoder.c Datei. In Asuro.c steht eigentlich sehr wenig, nur Init, und einiger Interrupt-Funktionen. Die verschiedene Funktionen sind in mehrere .c Dateien untergebracht. Dadurch ist das alles aber sehr übersichtlich. Und es ist auch gut Dokumentiert. Sehe die Dateien mal durch. .C Dateien enthalten die Code, .H Dateien haben meistens nur Beschreibungen von der Art von Funktionen, Variablen und Konstanten. Wie das genau in Assembler umgewandelt wird und/oder dann als Objekt-dateien zusammen gestellt wird (und zu dein Programm gelinkt wird) ist mir aber auch Abrakadabra.
...ist mir aber auch Abrakadabra....
Prima Valen...besser kann man das nicht beschreiben.... ;-)
Gruss Asko.
asko, hast du evtl mal versuch in einem dunklen raum, ohne licht (evtl nur pc monitor an) die werte auszulesen? evtl gibt es da ja höhere werte.
Hi Valen
Ich hab ja selbst ein ganzes Wochenende damit verbracht, meine LCD-Anzeige ueber i2c zum laufen zu bringen.
Die wurde partout nicht initialisiert, bis ich dann aus beinahe verzweiflung die Make-Lib.bat nocheinmal aufgerufen hatte.
Ich hatte also doch noch nicht alles zu den Library´s gelesen, und vor allem nicht verstanden.
Seit dem funktioniert das auch.....aber man muss das wissen.
Hier auf meinem neuen Rechner (AMD-X6 Win7 64bit ultimate) bekomme ich aber leider das Programm aus diesem Thread nicht installiert.
Nicht im 32bit-mode....und nicht als Admin, und auch nicht in einer kombination von beiden....schade.
Also muss ich da auf meinen alten Schlepp-Topp zurueckgreifen ( 3kg Lebendgewicht, Akku im Eimer, aber dafuer eine RS232).
Gruss Asko.
Ja , Paul
Genau...ich hab das fast bei absoluter dunkelheit auch ausprobiert.
Und genau das war ja der Grund meiner absoluten unkenntnis.
Ich hatte ja geschrieben, das ich das im dunkeln, im halbdunkeln, im Sonnenlicht, mit Taschenlampe, und
selbst 30cm vor´m Monitor mit Lupenleuchte drueber gemacht hatte.....es kamen immer aehnliche Werte bei raus.
Zwar sinnvolle....jedoch zu "geringe".
Und vor allem, ich konnte die Ododaten nicht mal bei direktem anleuchten mit einer LED-Taschenlampe aus
dem "Tritt" bringen.
Normalerweise muesste das programm ja gleich meckern.....zuviel Gegenlicht oder aehnliches....
Aber nix da....deswegen bin ich ja so erstaunt...nicht boese...eher verwundert.#
Gruss Asko.
ja da wird anscheinend irgendwas nicht hinhauen. normal sollte das programm ein warnhinweiß anzeigen, wenn zu viel seitenlicht da war. das hatte es bei mir auch gemacht als ich das getestet hatte.
wie wäre es wenn du dir einfach 2 neue bestellst? die sollten nur 1€ pro stück kosten (bei conrad habe ich sie mir gekauft). und wenn du die mal tauscht, vllt gehts dann.
Hi Paul
Das werd ich wohl mal machen. ( mit dem neu einloeten) Mal sehen was dann dabei rauskommt.
Hat uebrigens das Programm bei Dir funktioniert ??
bei mir faehrt er links-rueckwaerts leider weniger als 90°.
normalerweise sollte er ja immer den gleichen Weg fahren...vor, wie zurueck.
Aber nach ca. 5 versuchen ist der "Startpunkt" doch schon 5cm ve3rschoben.
de3r Winkel sowieso....wenn es bei Dir klappt ist es jedoch prima.
Wie Valen schon schrieb, ist es nicht erforderlich, jedoch nicht schaedlich
wenn man nach #include asuro.h noch zusaetzlich #include myasuro.h eingibt.
Gruss Asko.
ja das programm hat soweit funktioniert, aber auch meiner hat sich ein wenig vom startpunkt entfernt. wie gesagt, liegt wohl an der groben scheibe. aber damit kann ich leben.
habt ihr zufällig ne seite wo es gute beispiel programme gibt? die die bei der lib dabei sind habe ich ja, aber gibt es noch andere?
ich muss nämlich ein programm schreiben, wo der asuro auf einer rechteckigen fläche einen blauen startpunkt sucht und findet und von dort aus der schwarzen linie folgt, bis er beim ziel (farbe grau) ankommt. im prinzip ein einfaches linienfolge programm, aber halt mit den unterschiedlichen farben. hat jmd sowas schonmal irgendwo gesehen?
Arexx-Henk hat verschiedene Test-programmen auf seine Seite. Aber nicht alle mit Quell-code. Aber vielleicht bringt es ihn was Inspiration. Vermutlich aber nicht geeignet für die erweiterte Lib. Die beste Chance gibt hier im Forum, denke ich. Oder im Arexx Forum.
http://home.kpn.nl/h.van.winkoop/Asuro/Software/AsuSfwPagFrm.htm
Kann man den Schritt "Liniensensoren lesen" nun überspringen, da ich die Minesweeper erweiterung drauf habe?!
Grüße Martin
Kann man den Schritt "Liniensensoren lesen" nun überspringen, da ich die Minesweeper erweiterung drauf habe?!
Grüße MartinIn meine Erinnerung werden die Liniensensoren nur ausgelesen. Ich habe keine ahnung wie die MineSweeper Schaltung aufgebaut ist, aber ich vermutte du kannst diese Werten einfach ignorieren. Die Liniensensoren werden nicht benutzt zur auswerten der OdometrieDaten, oder Motorausgleich.
Funktioniert das Programma auch für Win7 und der neuesten Version der Lib-v2.80 ?
Hab grad nur einen Ubuntu Rechner da, kann es deswegen nicht ausprobieren.
Habe das Gestern noch versucht. Ich habe selbst 64bit. Ich habe aber keine Funktionierende Asuro, deshalb kann ich mit die Test schritten in das Programm nicht weiter anfangen.
Die werten sind gleich für 2.70 und 2.80.
So bin wieder an einem Windoof und hab alles gemacht, so wie es in der Anleitung steht.
Wenn ich Tastaturabfrage "Wie geht's?" drücke, dann muss ich erst den Taster 6 betätigen um zu starten und dann alle Taster von 1-6 testen,
nun steht der Wert My_Switch_Value 63 dort.
Ich drücke auf Odometrie "Wie geht's?" es färbt sich rot, aber nichts passiert.
Lass ich den Asuro eine Zeit stehen um zu schauen, ob noch was passiert, fährt immer gerade aus(einmal hat er sich immer im Kreis gedreht).
Was mach ich falsch, oder wie starte ich die nächsten Tests?
Grüße
Martin
[EDIT] Gelöst: Man muss ja nur die schöne Bilder Beschreibung angucken :)
TEST 5 funktioniert aber generell nicht oder?
Sternthaler
17.09.2012, 22:53
Grüß dich Phenix.
Noch darf ich: Willkommen im Forum.
Schön, dass du die Bilder magst ;) .
Und richtig, Taster 5 hat keine Test-Funktion.
Ursprünglich sollte dort der Wert für den Define MY_MOTOR_DIFF ermittelt werden. Das Programmteil passte aber nicht mehr in den Speicher vom Asuro und ist so entfallen bzw. per Define in test.c (ganz oben) 'entsorgt'.
Ausserdem ist der Wert nicht wirklich sinnvoll, da die Asuro-Lib diesen Wert nicht komplett richtig benutzt. (Kann sein, dass das in der Lib mittlerweile auch schon entfernt wurde. Weiss ich aber gerade nicht.)
Gruß Sternthaler
Sternthaler
17.09.2012, 23:23
Hallo Asko.
Du hattes am 08.02.12 geschrieben: (https://www.roboternetz.de/community/threads/27943-ASURO-emittelt-Werte-für-Lib-V2-70-myasuro-h-selber/page13?p=540094&viewfull=1#post540094)
Normalerweise muesste das programm ja gleich meckern.....zuviel Gegenlicht oder aehnliches....
Aber nix da....deswegen bin ich ja so erstaunt...nicht boese...eher verwundert.Kurze Erklärung: Das Programm meckert nicht wenn 'irgendwie' zu viel oder zu wenig Licht an den Scheiben ankommt.
Es wird im Windoof-Programm ein senkrechter Button rechts neben den 4 ODO-Ausgabefeldern eingeblendet wenn 'falsches' Licht "von der Seite" kommt. Dann diesen Button drücken, und es gibt dann eine genauere Fehlerbeschreibung. (siehe hier: https://www.roboternetz.de/community/threads/27943-ASURO-emittelt-Werte-für-Lib-V2-70-myasuro-h-selber/page8?p=441445&viewfull=1#post441445)
'Falsches Licht' wird bei dem Test ermittelt, wenn sich der Asuro dreht. Die Drehung wird beim Messen in mehrere Teilstücke zerlegt und dann wird für diese einzelnen Stücke ermittelt wie gut die Encoder zu lesen sind. Wenn nun bei einem Teilstück gute Werte erkannt werden und bei einem anderen Teilstück gibt es Probleme weil da gerade die Lampe voll auf die Sensoren leuchtet, dann wird dies als 'falsches Licht' erkannt.
Wie hatte Valen schon ganz richtig geschrieben:
(Wenn ich mit ein Scheinwerfer in deine Gesicht strahle wirst du mich auch nicht erkennen! :wink: )So geht es dem Asuro auch.
Teilstück 1: Kopf/Augen/Asuro in Richtung Lampe: Schlecht
Teilstück 2: Kopf/Augen/Asuro zur Seite gedreht: Gut
Du hattes auch geschrieben:
Ich hatte ja geschrieben, das ich das im dunkeln, im halbdunkeln, im Sonnenlicht, mit Taschenlampe, und
selbst 30cm vor´m Monitor mit Lupenleuchte drueber gemacht hatte.....es kamen immer aehnliche Werte bei raus.
Zwar sinnvolle....jedoch zu "geringe"So soll es auch sein. Der Asuro kann ja nur einen Wert bekommen und das Programm soll den möglichst optimalen Wert auch für unterschiedliche Beleuchtungssituationen liefern.
Ich hoffe hier ein wenig, natürlich nicht zu viel, Licht in das Dunkel gebracht zu haben.
Gruß Sternthaler
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.