- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Mein erster "Mehrebenen" Roboter

  1. #11
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    36
    Beiträge
    1.400
    Anzeige

    Powerstation Test
    naja du optokoppler kannst dua uch per doppelseitigem klebeband befestigen. hatte ich so bei meinem eigenen cybot umbau geamcht aber mehr als das anbringen und nicht zufriedenstellenden ergebnis hab ich es dann verfallen lassen.

    du könntst den koppler auch festschrauben... es gibt so aluprofile im baumarkt die wei eine schelle im querschnitt ist

    Code:
    __    __
      |__|
    nur wie willst du sonst eine odometrie aufbauen.. ansonsten musst du das twinset umbauen. evtl. wnen platz ist an dem motorende eine kleine encoderscheibe aus einer alten kugelmaus befestigen udn dann per gabellichtschranke.

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Sorry, dass ich mich jetzt erst melde, aber ich hatte sehr viel zu tun! *blödes G8*
    Mittlerweile habe ich mir nicht so viele Gedanken um die Befestigung des Sensors gemacht, sondern viel mehr um das Programm selbst! Zu einem PID-Regler habe ich aber noch ein paar Fragen, vielleicht kann mir die ja jemand hier beantworten?

    1. Sollte ich die PID-Wert berechnung in der Hautpschleife dauernd machen lassen, oder nur immer, wenn wieder der Sensor ausgelesen wird (also nach ta)??
    2. Wie kann ich beide Motoren zum Synchronlauf "zwingen"? Also wie ich einen Motor auf einer const. Geschwindigkeit halte, das ist mir jetzt klar (auch wenn ich mir nicht sicher bin, ob ichs richtig umgesetzt habe).
    3. Muss der Wert KPID_buffer (in meinem Beispiel) zum alten PWM-Wert addiert werden, also:
    Code:
    pwm1a = pwm1a + kpid_buffer
    oder sollen die beiden miteinander multipliziert werden, also:
    Code:
    pwm1a = pwm1a * kpid_buffer
    oder soll der PWM-Wert durch den KPID_buffer wert ersetzt werden, also:
    Code:
    pwm1a = kpid_buffer
    Ich persönlich tendiere ja dazu, die Werte zu addieren, aber 100%ig sicher bin ich mir da nicht!
    hier mal mein derzeitiger Code:
    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $hwstack = 150
    $swstack = 150
    $framesize = 150
    $baud = 19200
    
    
    
    Config Portc.0 = Output
    Portc.0 = 0
    
    
    Config Pind.2 = Input
    Config Portd.4 = Output
    Config Portd.5 = Output
    Config Portb.0 = Output
    Config Portb.1 = Output
    Portb.0 = 1
    Portb.1 = 0
    Portd.2 = 1
    
    
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
    Pwm1a = 0
    Pwm1b = 0
    
    Config Timer2 = Timer , Prescale = 64
    Timer2 = 6
    On Timer2 Isr_von_timer2
    Enable Timer2
    
    Config Int0 = Rising
    On Int0 Isr_von_int0
    Enable Int0
    
    
    Dim Abtastrate_flag As Byte
    Dim Drehzahl_links As Word
    
    
    '3
    '10
    '70
    
    Const Kp = 1.2                                              '0.5
    Const Ki = 0                                                '0.6
    Const Kd = 0
    
    
    Dim Esum As Single
    Dim E As Single
    Dim Ta As Single
    Dim Ealt As Single
    
    Dim Soll As Word
    Dim Ist As Word
    
    Dim Kp_buffer As Single
    Dim Ki_buffer As Single
    Dim Kd_buffer As Single
    Dim Kpid_buffer As Single
    
    'Dim Y As Word
    Dim Y As Integer
    
    
    Ta = 0.1                                                    'ta = 0.1 --> 10 mal pro sek abtasten
    
    Soll = 250
    
    
    Print "Let's go"
    Print
    Wait 1
    Portc.0 = 1
    
    Pwm1a = 400
    
    Enable Interrupts
    
    Waitms 500
    
    
    
    Do
    
    
    E = Soll - Ist
    
    'Esum = Esum * 0.95
    Esum = Esum + E
    
    Kp_buffer = Kp * E
    
    Ki_buffer = Ki * Ta
    Ki_buffer = Ki_buffer * Esum
    
    Kd_buffer = E - Ealt
    Kd_buffer = Kd_buffer / Ta
    Kd_buffer = Kd_buffer * Kd
    
    Kpid_buffer = Kp_buffer + Ki_buffer
    Kpid_buffer = Kpid_buffer + Kd_buffer
    
    Ealt = E
    
    'Pwm1a = Pwm1a * Kpid_buffer
    
    'Y = Kpid_buffer
    
    If Kpid_buffer <= 0 Then
    Y = Abs(kpid_buffer)
    Pwm1a = Pwm1a - Y
    Elseif Kpid_buffer >= 32000 Then
    Y = 32000
    Pwm1a = Pwm1a + Y
    Else
    Y = Kpid_buffer
    Pwm1a = Pwm1a + Y
    End If
    
    'Pwm1a = Pwm1a + Y
    'Pwm1a = Pwm1a + Kpid_buffer
    
    '
    Print "Ist = " ; Ist
    Print "Soll = " ; Soll
    Print "PWM1A = " ; Pwm1a
    Print "kp_buffer = " ; Kp_buffer
    Print "ki_buffer = " ; Ki_buffer
    Print "kd_buffer = " ; Kd_buffer
    Print "kpid_buffer = " ; Kpid_buffer
    Print "Y = " ; Y
    Print
    '
    
    Loop
    
    End
    
    Isr_von_timer2:
    Timer2 = 6
    Incr Abtastrate_flag
    If Abtastrate_flag = 100 Then
    Abtastrate_flag = 0
    Ist = Drehzahl_links
    Drehzahl_links = 0
    End If
    Return
    
    Isr_von_int0:
    Incr Drehzahl_links
    Return
    Natürlich kommen die Prints raus, wenns mal funktioniert
    Derzeit habe ich einfach einen Motor mit einem Holzzylinder auf der Achse (welcher halb weiß und halb schwarz ist) über einen CNY70 mittels Tape geklebt, nur Probeweise. Die Auswertung der fiktiven Drehzahl funzt sehr gut, da ich den CNY70 mittels einem 74HC14N (Schmitttrigger) auswerte.
    Bitte nehmt die Werte für Kp, Ki und Kd nicht so ernst, sind nur testweise!

    Meine eigentlich Frage ist einfach nur, ob die Programmstruktur hier stimmt, also die ganzen multi- und additionen im Hauptteil?!

    Gruß
    Chris

  3. #13
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    36
    Beiträge
    1.400
    hallo was macht dein roboter eigentlich?

    wollte dir ne pn schreiben aber das hast du iwie net freigeschaltet.
    habe gerade ein eigenen thread zu meine robby aufgemacht.
    https://www.roboternetz.de/phpBB2/vi...=466563#466563

    gruß bammel

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hallo,

    er macht das was er soll: er fährt
    wegen der pn muss ich nochmal schauen. Ich bin gerade dabei, mir informationen und evtl. auch einen Schaltplan von einem Ladegerät für Akkus zu besorgen. Könnt ihr mir eventuell sagen, wieviel Ah (mAh) 8 normale AA Batterien haben??! Den mit den Batterien bewegt er sich nach 15 min. nur noch sehr langsam . .

    Welchen Akkutyp würdet ihr mir den empfehlen? Hier hab ich einen NiCd-Akku mit Ladegerät! Dieser hat allerdings nur 9,6V, was glaube ich sehr wenig ist bei einem L7806.

    @Bammel:
    Dein Roboter sieht wirklich sehr gut aus, ich werde hierzo aber noch in deinen Thread schreiben.

    Gruß
    Chris

  5. #15
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    36
    Beiträge
    1.400
    also die voltzahl ist im prinzip egal wenn deine schaltungen für 9,6bolt ausgelegt ist ist das gut so.. um längere fahrzeiten zu haben musst du auf die mAh achten. mein lipo hat 11,1volt und 3200mAh

    bei den standart AA akkus gibt es keine feste mAh die haben ja nachdem unterschiedlich das fängt (schätzungsweise) bei 400mAh udn das höchste was ich gesehen habe waren 2700mAh dies waren dann NiHm-Akkus.

    in bezug auf ladegeräte habe ich keine ahnung benutzze immer fertige dinger

  6. #16
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    mir geht es eigentlich darum, wie hoch die mindestspannung sein muss, damit der L7806 noch zuverlässig seine 6V liefert!?

    Kann man den davon ausgehen, dass akkus und batterien in etwa die gleiche Kapazität haben?

    Gruß
    Chris

  7. #17
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    36
    Beiträge
    1.400
    bei aa zellen haben batterien 1,5 volt und akkus 1,2 volt. von den mAh ist das je nach dem unterschiedlich steht aber auf den zellen drauf

  8. #18
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Für einen 7806 wird man wenigstens 8 V brauchen um stabil 6 V rauszubekommen. Bei mehr Strom sind vielleicht auch 8,5 V nötig. Das werden dann als 7 Akkus zu 1,2 V je Zelle. Oder theoretisch 6 Einwegzellen zu je 1,5 V. Es gibt aber auch low Drop Regler die mit etwa 6,2 V auskommen können.
    Bei Batteriebtreib sind Regler wie 7806 , 7805 oder ähnliches eigenlich nur für eine kleine Leistung sinnvoll. Bei mehr Leistung sollte man ein Schaltregler oder Lowdrop Regler in Betracht ziehen. Wozu eigentlich 6 V ?
    Die Motoren sollte man direkt aus den Akkus beteiben können (ggf. weniger Spannung bei den Akkus), und die µCs brauchen 4,5 - 5 V.


    Bei den Akkus steht die Kapazität fast immer drauf. Das sollten bei neueren Akkus der Größe AA gut 2000 mAh sein. Bei Batterien hat man vielleicht etwas mehr Kapazität, aber nicht viel. Steht nur sehr selten drauf.

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Labornetzteil AliExpress