-
-
Erfahrener Benutzer
Robotik Einstein
Schau dir in deinem Code doch mal den Abschnitt Fahrbefehle an.
Sub Fast_forward()
Motor_l = 1000
Motor_r = 1000
End Sub
Sub Fast_backward()
Motor_l = 50
Motor_r = 50
End Sub
Er hat vermutlich als Spanne 0-1023, und 512 ist halt die Mitte.
Also stehender Motor.
Im Abschnitt PID-Regler findest du das dann wieder.
'>>> rückwärts
If Motor_l < 512 And Motor_r < 512 Then
'>>> vorwärts
If Motor_l > 512 And Motor_r > 512 Then
'>>> links drehen
If Motor_l < 512 And Motor_r > 512 Then
'>>> rechts drehen
If Motor_l > 512 And Motor_r < 512 Then
'>>> Begrenzung
If Motor_l > 1023 Then Motor_l = 1023
If Motor_l < 1 Then Motor_l = 0
If Motor_r > 1023 Then Motor_r = 1023
If Motor_r < 1 Then Motor_r = 0
Also definitiv 0= maximale Drehung für rückwärts,
1023 = maximale Drehung für vorwärts und 512 = Stillstand des Motors.
Bei aktivierter Motorspannung.
Damit bleibt der Roby dann auch auf einer Schrägen stehen. wenn der Motor einfach spannungsfrei geschaltet wird, würde er einfach wegrollen.
Das ist wie Anfahren am Berg. Wenn man die Kupplung durchtritt rollt man wenn man entsprechend Gas gibt und die Kupplung schleifen lässt hält das den Wagen auf der Stelle.
Verbrennungsmotor passt zwar nicht hundertprozentig auf E-Motor war aber das Beispiel das mir am schnellsten einfiel.
Übrigens ich habe auch noch nie mit Bascom gearbeitet, der Code liest sich aber ganz sauber.
Die Regelung wird dann mit Dem Offset PID realisiert.
Was dann auch im Abschnitt "PID-Regler" des Codes zu sehen ist.
Also wird mit dern Variablen: Motor_l und Motor_r sowie den Zuständen <512, = 512 und >512 auf 5 Fälle verzweigt.
Vorwärts, Rückwärts, Linkskurve, Rechtskurve und Stop.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen