Abfragen in Welcher Position sich ein Servo befindet?

Alles über Software für die Elektronik

Moderator: dussel07

Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon blueberlin » 18.09.2011, 12:21

Hallo,

es ist ja möglich mit Bascom ein Servo anzusteuern, dies ist ja sogar
mit relativ wenig Code möglich.


Jetzt frage ich mich, wenn ich das Steuerleitungssignal eines Servos mit
ein Atmega8 z.b verbinde ob es auch möglich ist abzufragen auf welscher
Position sich der Servo befindet? Sozusagen soll der Atmega immer
"mitlesen" auf welsche Position der Servo geschickt worden ist.

Ist das möglich?

Als Steuerung habe ich ein normalen Empfänger für Modelbauautos und als
Servos normale Analage.


würde mich auf eine antwort freuen :)


( sollte ich hier im falschen bereich gepostet haben seit nicht böse^^ habe irgendwie kein passenden gefunden und dachte das passt zu software )
blueberlin
 
Beiträge: 236
Registriert: 23.09.2009, 19:23
Wohnort: Berlin

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon hws » 18.09.2011, 13:17

blueberlin hat geschrieben:Jetzt frage ich mich, wenn ich das Steuerleitungssignal eines Servos mit
ein Atmega8 z.b verbinde ob es auch möglich ist abzufragen auf welscher
Position sich der Servo befindet?
Das Problem: es gibt keine Steuerleitung, die die Servoposition zurückmeldet.
zwei Möglichkeiten: Eine solche Rückmeldung selbst bauen (Strichscheibe, Poti o.ä.)

Oder die Länge des Steuerimpulses auswerten. Dann weiss man zwar nicht, wo der Servo tatsächlich steht, aber wo er eigentlich stehen müsste, wenn nix kaputt ist.

hws
hws
 
Beiträge: 1081
Registriert: 11.01.2009, 18:58
Wohnort: NRW

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon blueberlin » 18.09.2011, 14:01

hws hat geschrieben:Oder die Länge des Steuerimpulses auswerten. Dann weiss man zwar nicht, wo der Servo tatsächlich steht, aber wo er eigentlich stehen müsste, wenn nix kaputt ist.

hws


das würde mir ja schon reichen :)

gibt es da vielleicht auch eine einfache möglichkeit in bascom das signal auszuwerten?



habe im netz folgenden code gefunden, der ist für ein atmega32 mit 16mhz, wie müssten die timereinstellungen sein bei 1mhz? ich komme damit irgendwie nie richtig zurecht :(

    $baud = 9600
    $crystal = 16000000
    $regfile "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 64
    Config Timer0 = Timer , Prescale = 256 , Capture Edge = Falling , Noise Cancel = 1
    Enable Timer0
    On Timer0 Pausedetected
    Config Int1 = Falling 'Summensignal an int1 (am Mega32: Port D3), Reaktion auf fallende Flanke
    Enable Interrupts
    Enable Int1 'einschalten Int1
    On Int1 Measure 'springe zum Interrupt von Timer0
    Dim Empf(6) As Word
    Dim Channel As Byte

    Do 'Main Loop gibt Signale per UART aus
    Print Empf(1) ; " CH1"
    Print Empf(2) ; " CH2"
    Print Empf(3) ; " CH3"
    Print Empf(4) ; " CH4"
    Print Empf(5) ; " CH5"
    Print Empf(6) ; " CH6"
    Print " "
    Waitms 500
    Loop

    Measure: 'Reaktion auf fallende Flanke

    If Channel > 0 And Channel < 6 Then
    Empf(channel) = Timer0
    End If

    Timer0 = 6 'preload für 4ms
    Incr Channel
    Return

    Pausedetected:
    Channel = 0
    Return

    End
blueberlin
 
Beiträge: 236
Registriert: 23.09.2009, 19:23
Wohnort: Berlin

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon Anse » 18.09.2011, 14:25

In Bascom steuers du den Servo warscheinlich mit diesem Befehl:
Code: Alles auswählen
Servo(1)=Variable

Die Variable gibt ja schon an wo der Servo stehen sollte.
Anse
Anse
 
Beiträge: 1442
Registriert: 09.06.2011, 14:18

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon blueberlin » 18.09.2011, 14:29

hast mich falsch verstanden ;)

ich will den servo NICHT Steuern, ich möchte gerne die Datenleitung die vom Sender zum Servo geht "Anzapfen" und mitlesen auf welsche Position der Servo geschickt wird, ob er da wirklich steht ist mir egal ;)
blueberlin
 
Beiträge: 236
Registriert: 23.09.2009, 19:23
Wohnort: Berlin

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon Anse » 18.09.2011, 14:35

Dann wird dir nichts anderes übrig bleiben als das Puls/Pauseverhältnis
zu bestimmen. Vieleicht mit einem Timer, der über einen Interrupt gestartet und gestopt wird. Der Timer zählt beim Überlauf eine Variable hoch aus der dann das Verhältnis berechnet werden kann.
Anse
 
Beiträge: 1442
Registriert: 09.06.2011, 14:18

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon Berger » 18.09.2011, 16:20

Hallo!

Was hast Du von hier nicht verstanden?


MfG
Berger
 
Beiträge: 52
Registriert: 27.04.2010, 15:10

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon topas » 20.09.2011, 10:17

Dann wird dir nichts anderes übrig bleiben als das Puls/Pauseverhältnis
zu bestimmen.

Die Pause enthält keine Information. Nur die Länge des Impulses (1...2ms).
topas
 
Beiträge: 3791
Registriert: 16.08.2010, 12:47

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon Anse » 20.09.2011, 16:19

Stimmt natürlich
Anse
 
Beiträge: 1442
Registriert: 09.06.2011, 14:18

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon topas » 20.09.2011, 18:37

Was soll das Bascom-Programm mit einem Servosignal zu tun haben?
topas
 
Beiträge: 3791
Registriert: 16.08.2010, 12:47

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon hws » 21.09.2011, 08:48

topas hat geschrieben:Was soll das Bascom-Programm mit einem Servosignal zu tun haben?
Irgendwie muss er ja die Stellung des Servos rauskriegen.
Z.B indem er den 1...2ms Steuerimpuls untersucht.
Das kann er mit einem µC und Bascom und internem Timer machen. Jede andere Programmiersprache geht auch (wenn man die kann).

Oder hardwaremässig mit einem Monoflop und einigen Logikgattern zum Impulsvergleich. So hab ich ganz früher mal einen Fahrtregler gebaut.

hws
hws
 
Beiträge: 1081
Registriert: 11.01.2009, 18:58
Wohnort: NRW

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon topas » 21.09.2011, 12:10

Ist ja gut und schön, die Frage bleibt trotzdem.
topas
 
Beiträge: 3791
Registriert: 16.08.2010, 12:47

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon hws » 21.09.2011, 12:59

topas hat geschrieben:Ist ja gut und schön, die Frage bleibt trotzdem.

?? Das Programm erkent die Stellung des Servos. Kann z.b. auf einer LED-Kette die entsprechende LED anmachen: ganz links - links - mitte - rechts - ganz rechts.
Oder Stellung der Drosselklappe sichtbar darstellen. Oder wasweissich, wozu er das braucht.

Mit nem µC und Bascom geht das (vermutlich kann er nix anderes als Bascom?)
Mit vielen anderen Möglichkeiten geht's auch, auch mit nur Hardware ohne µC und Bascom / andere Programiersprache.

hws
hws
 
Beiträge: 1081
Registriert: 11.01.2009, 18:58
Wohnort: NRW

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon topas » 21.09.2011, 15:50

Das von blueberlin am 18.09.2011 um 15:01 gepostete, kann das? Da staune ich nicht schlecht.
topas
 
Beiträge: 3791
Registriert: 16.08.2010, 12:47

Re: Abfragen in Welcher Position sich ein Servo befindet?

Beitragvon hws » 21.09.2011, 21:03

topas hat geschrieben:Das von blueberlin am 18.09.2011 um 15:01 gepostete, kann das? Da staune ich nicht schlecht.
Ob es exakt dieses Programm kann, weiss ich nicht, hab ich auch nicht behauptet. Aber prinzipiell geht es mit Bascom zu programmieren. (ich mag kein Bascom und analysiere nur ungern und selten fremde Programme und deshalb hab ich zu diesem aktuellen Programm auch nix gesagt)

Ausgangsfrage war: "Wie stelle ich die aktuelle Position eines Servos fest?". Dies geht nur mit irgendeinem Rückmeldesignal z.B. Poti, Strichscheibe o.ä.

Nach Rückfrage reichte ihm aber auch die Sollstellung des Servos, wenn alle Signale i.O. sind und das Servo nicht mechanisch blockiert ist.

Damit lässt sich die Sollstellung des Servos über den 1...2ms Steuerimpuls herausbekommen.

Dieses kann man auf (wie ich bereits erwähnte) diverse Arten lösen. Von Hardware bis µC mit passender Software. Wobei die Software auch in Bascom geschrieben sein kann. Bascom ist eine Programmiersprache bzw ein bestimmter Compiler und kein bestimmtes Programm.

Anse hat bereits erwähnt, dass man dazu ein passendes Programm im µC benötigt.
Je nachdem, wo man dieses Signal beobachtet, kann er sogar recht haben mit seiner Aussage, sowohl Puls als auch Pause zu betrachten.
Schaut er sich das Signal am Servo an, hat er nur dieses eine Signal.
Beim Sender oder direkt beim Empfänger dagegen hat er die Signale für alle Servos. Kurze Pause schaltet auf das nächste Servo weiter, Nach einer langen Pause folgt das Signal für das erste Servo.

hws
hws
 
Beiträge: 1081
Registriert: 11.01.2009, 18:58
Wohnort: NRW

Nächste

Zurück zu Elektronik-Software

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast