- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 26

Thema: "Config Servo" in Bascom - Warum so krumme Werte??

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.12.2005
    Beiträge
    161

    "Config Servo" in Bascom - Warum so krumme Werte??

    Anzeige

    E-Bike
    Hallo zusammen,

    nach langer Zeit beschäftige ich mich mal wieder mit meinen Megas. So nun spiele ich gerade ein wenig mit dem Befehl "Config Servo".

    Soweit ist alles klar, nur eins ist mir nicht ganz verständlich. Warum brauche ich so "krumme" Servowerte? Wenn ich das richtig verstanden habe bastelt Bascom anhand der $crystal=XX, dem Preload = 10 die Timereinstellung so, das der Servowert eigentlich doch so um 100 (=1ms), 150 und 200 liegen sollte.

    Ich habe schon mit versch. Takten und $crystal Werten gespielt. Die Werte sind immer "krumm".

    Ich benutze:

    1. Mega8
    2. Internen Oszilator mit 8Mhz
    3. Ein Graupner Digi-Servo DS361
    4. Das ganze auf nem STK500
    5. Terminalprogramm auf PC

    Mit den paar Codezeilen hier, (nur zum Spielen) gebe ich übers Terminal die Werte fürs Servo vor.

    Framesize; HW-Stack usw. habe ich mal weggelassen.

    Code:
    $regfile = "m8def.dat"
    $crystal = 8000000
    $baud = 9600
    
    Dim Servowert As Byte
    Dim Links As Byte
    Dim Mitte As Byte
    Dim Rechts As Byte
    
    Dim Rc_ch1_out As Word
    Dim Rc_ch1_in As Word
    
    Config Pinb.0 = Output                                      'LED
    Config Pinc.0 = Input                                       'Servo in
    Config Pinc.2 = Output                                      'Servo out
    
    Config Servos = 1 , Servo1 = Portc.2 , Reload = 10
    
    Enable Interrupts
    
    Portb.0 = 0
    
    Links = 132
    Mitte = 87
    Rechts = 43
    
    '+++++++++Werte bei 3.6864 Mhz und Preload =10++++++++++++++++
    'Links = 97
    'Mitte = 66
    'Rechts = 36
    '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    Servo(1) = Mitte
    
    Do
    
    Pulsein Rc_ch1_in , Pinc , 0 , 0
    Print "R/C- Impuls Input:" ; Rc_ch1_in
    
    Input "Bitte Servoinput (132- 43 bei 8Mhz Prozessortakt) : " , Servowert
    Servo(1) = Servowert
    
    Loop
    
    
    End
    Die Werte sind immer so entstanden: Ich habe mit den Endausschlagswerten so lange gespielt, bis das Digi-Servo ausgestiegen ist. Die Werte sind also die Maximalwerte die das Servo noch verarbeitet.

    Gibt es einen Trick um "saubere" Werte zu bekommen die so in etwa an die 100, 150, 200 kommen? Die Auflösung ist zudem jetzt doch recht bescheiden. Kann man die mit dem Preloadwert (auf 5) noch erhöhen? Ich möchte in Zukunft ein wenig mit Servomanipulation arbeiten. Also die Signale vom Empfänger verändern und je nach dem manipuliert an die Servos weiterleiten.


    Merci schon mal

    Gruß
    Markus

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Bei 10 µS und 8 MHZ vergehen bei der Bascom-Servo-Methode
    https://www.roboternetz.de/wissen/in...ide-Code#SERVO
    gerade mal 800 Cycles von einem Intgerrupt zum nächsten. Das ist eine knappe Sache, wenn noch was anderes zu tun ist.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.12.2005
    Beiträge
    161
    Hi PickNick,

    danke für die Antwort. Dann ist es, wenn man etwas komplexere Aufgaben zu erledigen hat, nicht sinnvoll die Bascom Servo Methode oder eine Messmethode mit Interrupts zu verwenden?

    Habe auch nachgedacht das über den mitlaufenden Timer zu machen der bei Flankenwechsel abgefragt wird. Das ganze dann über einen Atmega88 mit Pin Change. Glaube das ist sicher der bessere Weg, oder?

    Kein Interrupt belegt, der Timer ist auch noch für andere Sachen zu gebrauchen und die Messungen werden zuverlässiger.

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Hat der µC ausser der Impulsbearbeitung noch was (zeitkritisches) zu tun ?
    Wenn nicht, ist die von dir angedachte Methode sicher am besten, denk' ich.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.12.2005
    Beiträge
    161
    Na ja,

    er soll im Endausbau eine kleine autom. Fluglagensteuerung übernehmen.
    Er muss bis zu 4 R/C- Kanäle einlesen,
    Sensoren abfragen, (z.B. Geschwindigkeit, Höhe usw. )
    und nach Bedarf die vier R/C Kanäle an- bzw übersteuern. Also entweder die Impulse "durchschleifen"oder eigene saubere R/C Impulse ausgeben.

    Wird noch ne Menge Arbeit, ich möchte mich im Vorfeld nur auf ein sinnvolles Grundgerüst einlassen und mir nicht selbe ein Bein stellen.

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    uiuiui. Naja, der Weg ist das Ziel
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.12.2005
    Beiträge
    161
    so ist es! Erst mal die vielen kleinen Teile einzeln ausprobieren und dann schön langsam Stück für Stück zusammenführen.... so habe ich es mir zumindest gedacht.

    Was denkst Du, ist die Vorgehensweise mit der R/C- Signalausleserei sinnvoll mit der Geschichte ständig laufender Timer und PinChange? Ich denke schon.

    Habe bisher mit der Servosignal - Geschichte nix gemacht. Sonst schon (fast) alles....

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Ein ständig laufender Time/Counter ist sicher gut, mach ich auch immer. Denn für fast alles braucht man eine Time-Line.
    Und bei PinChange brauchst du nur die Zeit übernehmen.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Hi M@rkus,

    hast Du schon mal PWM in Betracht gezogen? Ich weiß, "machs-doch-ganz-anders" - Lösungen sind immer doof, aber Hardware-PWM besticht durch zwei Vorteile: Es ist sehr fein abstufbar, und es kostet keine Rechenlesitung. Mit einem Mega88 könntest Du 4 Kanäle nutzen und hättest trotzdem noch einen Timer frei, um die Eingangssignal-Längen zu messen.

    Ich habe vor einem Jahr mal für einen Modellflieger-Kollegen etwas gelötet und programmiert, das qualitativ ähnlich war wie Dein Problem (wenn auch mit weniger Kanälen - dafür läuft´s auch mit einem Tiny25):

    Mit einem senderseitigen Kippschalter (ein-aus) sollte das Hauptfahrwerk einer Scale-ME109 ein- und ausgefahren werden. Im Modell war es dafür notwendig, dass erstens ein Servo das Fahrwerk ein- bzw. ausfährt, wobei nach einem bestimmten Teilweg eine kurze Pause gemacht werden musste (für die Fahrwerksklappen). Danach musste zweitens ein weiteres Servo die Ver- bzw. Entriegelung übernehmen - nicht zu früh, aber auch nicht zu spät...

    Und was soll ich sagen - sie fliegt noch heute




    Habe bisher mit der Servosignal - Geschichte nix gemacht. Sonst schon (fast) alles....
    Und PWM??

    Gruß,

    Daniel

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.12.2005
    Beiträge
    161
    Hallo Daniel,

    PWM - Ja daran habe ich auch gedacht und nein ich habe damit noch nicht wirklich viel damit gemacht.

    Das Ganze wird eine automatisierte, Speedabhängige Klappensteuerung mit Throttle- und Höhenruder- Kompensierung. Uff.... da hab ich mir was angetan....

    Das Flußdiagramm steht, jetzt muss ich mir schön langsam Gedanken machen wie ich die R/C Signale auslese und zum Schluß wieder ausgebe.

    Das ganze muss dann noch einen "Notaus" haben, per Schalter am Sender komplett wegschaltbar. Auch Hardwaremäßig, alle R/C Signale 1 zu 1 an die Servos.

    Wir ein größeres und längeres Projekt.........

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress