PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abgleich der Phototransitoren



Hans Z
30.12.2006, 18:38
Hallo miteinander,
ich habe jetzt auch meinen "Assi" zum Laufen gebtacht und den ersten Test mit einem primitiven Linienprogramm gemacht.
Sehr wichtig erscheint mir der Abgleich der Phototransitoren an der Unterseite des Asuro. Wenn die bei einer z.B. weißen Fläche unterschiedliche Werte erzeugen, dann gibt es auch Probleme mit der Linienverfolgung...

Das folgende kleine Programm dient zum Abgleich der beiden Phototransitoren und macht nichts anderes als die Helligkeitswerte der beiden Transistoren im Terminalprogramm auszugeben.
Ich habe nur die rote LED in der Mitte ausrichten müssen und schon habe ich einigermaßen gleiche Heligkeitswerte erhalten.

Grüße, Hans.

Hier der Quelltext für den Phototransitoren-Abgleich:


#include "asuro.h" // Prüfung der Phototransitoren
/* ------------ Line Sensor Test ---------------- */
/* Left Sensor -> Left Break LED ON when Light on
Left Phototransistor bright enough */
/* Right Sensor -> Right Break LED ON when Light on
Right Phototransistor bright enough */
int main(void)
{
unsigned char tmp[2] = {OFF,OFF};
unsigned int data[2];
unsigned int z;
Init();
SerWrite("\n\r --- Line Sensor Test ---",28);
StatusLED(OFF);
FrontLED(ON);
do
{
/* for(z = 1; z < 100; z++); EDIT 1: unnützer Code
{
}
*/
LineData(data);
if (data[0] > 400)
tmp[0] = ON;
else
tmp[0] = OFF;
if (data[1] > 400)
tmp[1] = ON;
else
tmp[1] = OFF;
BackLED(tmp[0],tmp[1]);
SerWrite("\n\r Phototransistorwerte links/rechts: ",39);
PrintInt(data[0]);
SerWrite("/ ",2);
PrintInt(data[1]);
// SerWrite("\f",1); //Seitenvorschub EDIT 2: bringt Fehler bei der Ausgabe
}
while(1);
return 0;
}
/* END Line Sensor Test ------------------------- */


Hier der Quelltext für die Linienverfolgung:


#include "asuro.h" // Linienverfolgung auf die einfachste Art

int main(void)
{
unsigned int data[2]; //Speicher bereitstellen
Init();
FrontLED(ON); // Linienbeleuchtung einschalten
//MotorDir(RWD,RWD); // Beide Motoren auf rückwärts!!!!
MotorDir(FWD,FWD); // Beide Motoren auf vorwärts
while(1)
{ // Endlosschleife, ASURO soll beliebig lang einer Linie nachfahren
LineData(data); // aktuelle Helligkeitswerte der Fototransistoren einlesen
if (data [0] > data [1] ) // links heller als rechts...
{MotorSpeed(150,100);} // ... dann links mehr Gas geben...
else
{MotorSpeed(100,150);} // ... sonst rechts mehr Gas geben!
}
return 0;
}

DeltaEx
04.01.2007, 22:11
hi,

ich habe den test gemacht und er zeigt mir folgendes an:

Phototransistorwerte links/rechts: 59/ 1022

Wieso sind die Werte so unterschiedlich?? Was kann das Problem sein?
Linienfolgen will er aus nicht :-(

damaltor
04.01.2007, 22:35
probie das gleiche nochmal in einem völlig dunklen raum und dann, wenn du die beiden sensoren mit einer lampe direkt anstrahlst.

DeltaEx
05.01.2007, 10:27
Bei direktem Licht sind die beide 1023/1023 ... und im dunkeln ist der linke 85 und rechte 1020 :-(

DeltaEx
05.01.2007, 10:44
Ich habe eben die SFH 300 Fototransistoren umgetauscht ... und trotzdem ist das ergebniss links/rechts 65 / 1020

Also sind die Fototransistoren 100% in Ordnung.
Was kann das Problem dann sein? Kann man das näher eingrenzen?

Arexx-Henk
05.01.2007, 10:47
Guck mal ob R15 richtig gelotet ist.

Beide Photo sensoren T9 und T11 sollten visuel gleich orientiert auf dem PCB montiert sein.

Gruss

Henk

inka
05.01.2007, 11:41
hi habe das gleiche problem, siehe
https://www.roboternetz.de/phpBB2/viewtopic.php?t=9449&sid=12683a00fb1631d5c9437099eaf39d10

letzter beitrag

gruß inka

DeltaEx
05.01.2007, 11:46
Ja sind richtig montiert ... und sind visuel gleich orientiert.

R15 hat bei mir einen Wert von 19,6 KOhm und R14 20,3 KOhm, das ist doch ok oder?

mmhhh das ist sehr merkwürdig :-(

DeltaEx
05.01.2007, 12:10
PIN 25 am AVR hat 5.13V und PIN 26 hat 0.53 V.

Da stimmt was nicht :-k

Einer eine Idee wie ich es noch eingrenzen kann?

inka
05.01.2007, 12:45
ich muss meine aussage über die gemessenen werte am pin 25/26 korrigieren, ich habe nämlich um es zu testen andere fototransistoren eingesetzt, jetzt habe ich die original wieder drinn.
pin 25: hell 5,11V, dunkel 0,2
pin 26: hell 5,09V, dunkel 0,18

trotzdem geht die linienkennung und der test der fototransistoren nach dem testfile von Hans_z nicht :-(

gruß inka

damaltor
05.01.2007, 14:49
das sind perfekte werte. wenn diese werte nicht gehn dann ist wahrcheinlich dein prozessor kaputt.

hell: beinahe batteriespannung
dunkel: beinahe 0

genau so sollte es sein!

Arexx-Henk
05.01.2007, 15:15
@DeltaEx


R15 hat bei mir einen Wert von 19,6 KOhm und R14 20,3 KOhm, das ist doch ok oder?

Ist okay denn mit 5% Widerstande sollte es zwischen 19K und 21K sein.
Die Wert ist im Schaltung weiter nicht so kritisch.


PIN 25 am AVR hat 5.13V und PIN 26 hat 0.53 V.
Der rechter sensor sollte falsch sein, dass ist pin 25. Es schein der Spannung geht nicht herunter im Dunkeln. Im Licht leitet die Sensor T10 die Strohm und sollte Pin 25 hoch gehen. Im dunkeln wird T10 blokkiert und zieht die R15 die Spannung nach 0 Volt. Da ist die R15 nicht angeschlossen, oder der T10 ist kaput (vermutlich nicht, denn Du hattest die T10 und T9 ausgewechseld), oder irgendwo gibt's ein Kurzschluss zwischen Pin 25 und VCC.

Da fellt mir nochwas ein. Sind die R23, R15, oder R28 richtig orientiert montiert auf die Platine!??? (rechts vorne auf dem Asuro)

Gruss

Henk

Hans Z
06.01.2007, 08:26
Hallo Leute,

ich habe meinen Code bez. des Ableiches der Phototransistoren editiert. Es wurden Fehlausgaben der Werte erzeugt. Keine Ahnung warum. Bei mir hatte der alte Code bisher funktioniert - heute jedoch nicht mehr...

Bitte den neuen, geänderten Code im 1. Beitrag verwenden...

Sorry!

Hans.

inka
06.01.2007, 09:38
also ich denke mit dem neuen/geänderten programm kommen die werte so wie es sein soll: die über einen dunklen untergrund stehende seite ist ca. halb so groß wie die überm hellen untergrund.
danke hans
auch anderen, die sich an der lösung meines problems beteiligten recht schönen dank...

Noch etwas:
auf die idee hat mich (aber es ist eigentlich ja schon der ansatz der software) das gebracht, dass auf einmal eine der backLED´s an und ausging beim durchfahren mit einem schwarzen streifen unter den sensoren, die andere blieb dunkel. Hab ein wenig justiert und jetzt leuchten sie auf, oder gehen aus, je nach dem wo der streifen liegt. Linienfolgefahrt habe ich noch nicht gemacht aber ich denke das ist nun eine reine formsache???

gruß inka

inka
06.01.2007, 10:18
hallo jungs,
von wegen formsache, egal welche linienfolgesofteare ich auch lade, ob die von hans_z, von thille, oder edh, der asuro fährt nur im kreis rechtsherum und schert sich nicht um den schwarzen strich.
Wenn er mal im spitzen winkel die papierkante trifft, folgt er ihr, obwohl darunter nur ein beigefarbener teppich liegt, also der helligkeitsunterschied sehr gering ist. Er richtet sich offensichtlich nach dem rechten sensor aus (die kante liegt zwischen der frontLED und dem rechten sensor).

So langsam bin ich aufgeben. Der asuro besteht ja nicht nur aus den linienfolgesensoren, aber wenn das nicht geht, ist er schon irgendwo unfertig...

gruß inka

damaltor
06.01.2007, 12:07
=)

eigentlich ist es wirklich eine formsache.
du weisst ja jetzt ungefähr welche werte du von deinen sensoren zu erwarten hast. vielleicht musst du die dann in den programmen etwas anpassen. oder du denkst es dir selbst aus, versuche dann zu anfang was zu machen wie dass er stopt wenn er auf der linie ist. oder lass ihn fahren, und er soll nur die lichtchen anmachen wenn er schwarz findet. so kannst du dich dann langsam hinarbeiten.
versuche, den unterschied zwischen dunkel und hell so groß wie möglich zu halten. schick mir eine pn mit deiner email-adresse, dann sende ich dir die tage mal die "Linientestarena".

inka
06.01.2007, 12:34
lauter gute ideen, werde mich da reindenken. Aber es ist schon komisch, dass es solche hardwareunterschiede gibt...

gruß inka

damaltor
06.01.2007, 16:27
tja... das liegt an verschiedenen lötmitteln, lötkenntnissen, bauteiltoleranzen (diese sind recht hoch, da alle teile durchweg nicht von großer qualität sind um den roboter so günstig wie möglich zu halten)...

kann man nichts machen. aber sieh das nicht als behinderung, sondern als anreiz =)

inka
06.01.2007, 16:37
hast schon recht.
Ich habe mir die testlinie neu aufgemalt, etwas schmäler, so ca. 1-1,5 cm, wie schon hier irgendwo beschrieben, jetzt fährt er fast ganz rum, aber nur rechts herum, beim linksherum fährt er fast sofort raus, hängt das mit der reihenfolge der abfrage der sonsoren im programm? Er fährt auch sonst - ohne strich - rechtsherum im kreis...

gruß inka

Danjo00
17.01.2007, 20:35
habe mir jetzt auch mal den Phototransitoren-Abgleich drauf gemacht die werte ligen im dunkeln durchgehend bei 45/46 und im hellen bei 129/129.
Jetzt habe ich mit isolierband ein kreis gemacht die breite des isolierbandes ist 19mm wenn ich dann losfahren lasse fährt er immer nur gerade aus über die lienien hinweg ohne sie zu folgen der untergrund ist weiss einer ne ahnung was ich falschmache? habe es im dunklem und im hellen probiert beides erfolglos. Beim Selbsttest leuten die BackLeds so wie sie sollten wenn ich sie mit einer Lampe anstrahle . das programm habe ich von oben.