PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hindernissen Ausweichen -> Fehlfunktion



JeyBee
27.10.2008, 21:04
Hallo Leute,

Ich habe soeben meinen ersten Roboter zusammen gebastelt. Ich möchte als erstes nur schauen, dass der Roboter nirgens hinein fährt. Dazu habe ich drei Sharp Infrarot Sensoren an der Fron befestig. Einer gerade aus und je einer links und recht in einem 30° Winkel (schätzungsweise).

Ich habe das Programm im Anhang, welches ich geschriben habe. Ich habe es geflash und gleich ausprobiert. Ich freute mich tierisch, als ich merkte, dass es direkt funktionierte. Jedoch hielt die Freude nicht lange. Sobal der Roboter zwei bis drei Hindernissen ausgewichen ist, spielt er komplett verrückt. er denkt, dass es nur noch Hindernisse gibt und fährt rückwärts Kurven. Wenn ich den Bot resete, geht das Spiel wieder von Vorne los.

Als Info: M1-M4 sind die Ausgänge für die zwei Motoren, ich verwende das L293D IC.
A-C sind die drei Sensoren (A rechts, B mitte, C links)

Ich hoffe ihr könnt mir helfen, ich konnte den Fehler bisslang nicht finden.

Hier das Programm:



$regfile "m16def.dat"
$crystal = 16000000

Dim A As Word
Dim B As Word
Dim C As Word

Config Porta.4 = Output
Config Porta.5 = Output
Config Porta.6 = Output
Config Portc.7 = Output
Config Portc.6 = Output
Config Portc.5 = Output

M1 Alias Porta.5
M2 Alias Porta.6
M3 Alias Portc.6
M4 Alias Portc.5

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Do

Porta.4 = 1
Portc.7 = 1

A = Getadc(1)
B = Getadc(2)
C = Getadc(3)


If A > 150 Then
M1 = 1
M2 = 1
M3 = 1
M4 = 1
Waitms 500
M1 = 0
M2 = 1
M3 = 0
M4 = 0
Wait 1
Else
M1 = 0
M2 = 1
M3 = 0
M4 = 1
End If

If B > 200 Then
M1 = 1
M2 = 1
M3 = 1
M4 = 1
Waitms 500
M1 = 1
M2 = 0
M3 = 0
M4 = 0
Wait 1
Else
M1 = 0
M2 = 1
M3 = 0
M4 = 1
End If

If C > 200 Then
M1 = 1
M2 = 1
M3 = 1
M4 = 1
Waitms 500
M1 = 0
M2 = 0
M3 = 1
M4 = 0
Wait 1
Else
M1 = 0
M2 = 1
M3 = 0
M4 = 1
End If

Loop

Panzerfan
13.11.2008, 21:03
In welcher Sprache ist denn das Programm geschrieben????? Die kenn ich gar nich. Und was für einen Roboter hast du denn?

Wsk8
15.11.2008, 13:51
Hallo,
ich weiß jetzt nicht genau wie deine Leitungen am L293 angeschlossen sind, wodurch die Fahrtrichtung nicht genau zu bestimmen ist. Aber versuch mal am Anfang der Do-Schleife M1,M2,... wieder auf Vorwärts zu setzen.

mfg