- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 40

Thema: Einfachen Servomotor aus DC-Getriebemotor umbauen?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Da versteh ich jetzt nicht, was du meinst. Das Pololu Board hat eine Mini-USB-Buchse, die an den PC angeschlossen wird. Darüber lässt sich dann der TTL-Port des Pololu Boards als virtueller COM-Port verwenden. Ich hab halt den Rx-Pin des Boards mit dem Tx-Pin des µC verbunden und den Tx mit dem Rx.

    Komischerweise funktioniert es jetzt wieder... keine Ahnung, was das Problem ist...

    Edit: Nachdem sich das Board sich jetzt ja wieder eingekriegt hat habe ich mal versucht, ein paar Verläufe vom Motor aufzunehmen.
    Klicke auf die Grafik für eine größere Ansicht

Name:	Kennlinie.jpg
Hits:	19
Größe:	40,1 KB
ID:	20546
    Im Diagramm steht die weiße Linie für den Winkel, die rote Linie für die Winkelgeschwindigkeit und die grüne Linie für die Winkelbeschleunigung. Anscheinend ruckelt die Drehzahl ein wenig, mal sehen, was sich daran machen lässt. Man sieht aber schonmal, dass der Motor ziemlich fix hochbeschleunigt. Was ich beim Regler wohl noch Bedenken muss: der Motor läuft erst ab einer Spannung von 1,5 bis 2V an, das müsste ich dann wohl noch irgendwie abfangen.
    Hier noch ein paar Bilder vom hingefrickelten Encoder
    Klicke auf die Grafik für eine größere Ansicht

Name:	100_1081.jpg
Hits:	23
Größe:	70,9 KB
ID:	20545Klicke auf die Grafik für eine größere Ansicht

Name:	100_1080.jpg
Hits:	18
Größe:	38,5 KB
ID:	20544
    Geändert von Geistesblitz (12.11.2011 um 13:10 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.093
    Schön wenn es jetzt funktioniert.
    Es gibt 2 Möglichkeiten wie das UART Signal bzw USB Signal an den µC des Pololu Boards angeschlossen ist.
    Hier sind Skizzen wie ich es meine:
    Code:
    entweder:
    USB---USB/UART Wandler (z.B. FT232)---Pin des Pololu µC
    UART--------------------------------|
    
    oder:
    USB--- USB/UART Wandler---Pin des Pololu µC
    UART----------------------anderer Pin des Pololu µC
    Die Skizze ist aber nur zur Erklärung. Wenn es nicht funktioniert hätte, hätte ich es über den USB Port versucht, wenn es auf den gleichen Pin des Pololu µC geht. So kannst du ausschließen dass das Programm am Atmega oder die Verbindung fehlerhaft ist oder nicht.

    Aber das brauchst du jetzt ja nicht mehr (zumindest vorerst).

    MfG Hannes

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    So, wenn ich jetzt in die Routine den PWM-Ausgang setze, dann verzählt sich dar µC komischerweise ständig, besonders, wenn ich nur lagsam drehe. Wenn ich das weglasse, zählt er wieder jeden Schritt genau. Hier der Code, den ich bisher zum Testen geschrieben hab:

    Code:
    regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600
    
    Declare Sub Serial0charmatch()
    
    Config Serialin = Buffered , Size = 30 , Bytematch = 13
    Config Porta = Output
    Config Pinc.0 = Input
    Config Portc.1 = Output
    Config Portb.3 = Output
    Config Timer1 = Counter , Edge = Rising
    Config Timer0 = Pwm , Compare Pwm = Clear Down , Prescale = 8
    On Timer1 Count
    Enable Timer1
    Enable Interrupts
    
    Dim T As Long
    Dim Preset As Byte
    
    T = 0
    Preset = 1
    
    Waitms 500
    
    Load Timer1 , Preset
    
    Do
    !nop
    Loop
    
    Count:
      Load Timer1 , Preset
      If Pinc.0 = 1 Then
        T = T + 1
      Else
        T = T - 1
      End If
    Return
    
    Sub Serial0charmatch()
       Local Incoming_data As String * 30
       Local Soll As Long
       Local E As Long
       Input Incoming_data Noecho
       Print T
       Soll = Val(incoming_data)
       E = Soll - T
       E = 10 * E
       'Compare0 = 127 - E                <---hier ist der kritische Term, auskommentiert bereitet er Probleme
    End Sub
    Kann es sein, dass dadurch die Sub zu lange dauert und daher das Programm blockiert? Ich weiß irgendwie nicht, woran das liegen kann...

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Hallo,
    ich kann nicht entdecken, wo die Sub Serial0charmatch(), in der der kritische Term steht, aufgerufen wird.

    EDIT: Hab grad entdeckt, was die Sub macht.

    Kann es sein, dass dadurch die Sub zu lange dauert und daher das Programm blockiert?
    Würd ich jetzt auch vermuten.

    Vielleicht gibt es Probleme mit dem $hwstack. 32 ist wohl das absolute Minimum wenn Interrupts laufen:
    http://halvar.at/elektronik/kleiner_...swstack_frame/

    Gruß
    Searcher
    Geändert von Searcher (14.11.2011 um 18:42 Uhr)
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Hab jetzt die Ursache gefunden: das PWM-Signal für den Motor stört den Inkrementalgeber, selbst wenn der Strom für den Motor abgestellt wird. Wenn ich das Kabel vom Pololu-Board entfern (darüber läuft gerade die PWM) wird wieder richtig gezählt. Anscheinend muss ich dort die Schaltung noch etwas entstören, allerdings weiß ich nicht, wie. An den Bauteilen, wo die PWM anliegt, Kondensatoren parallel zum Gnd-Anschluss legen?

    Edit: nun klappt es so halbwegs. Musste noch die Versorgungsleitungen vom Steckbrett und dem Pololu-board miteinander verbinden. Dachte, das wäre über die TTL-Schnittstelle, wo ich auch schon +5V und Gnd angeschlossen hatte, geklärt, aber nun läuft es.

    Der Regler läuft, ist erstmal nur ein einfacher Proportionalregler, allerdings musste ich einen kleinen Versatz einbauen wegen der Anlaufspannung am Motor. Dadurch flattert die Welle relativ fix um die Nulllage. Außerdem passiert es hin und wieder, dass er sich verzählt und die Nulllage verschiebt sich. Mal gucken, was sich dagegen machen lässt.
    Geändert von Geistesblitz (17.11.2011 um 19:31 Uhr)

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    So, jetzt gibts von mir auch mal ein kleines Video.
    Zuerst spiel ich nur ein wenig mit der Sollwertvorgabe herum, nicht wundern, dann lenk ich die Antriebswelle ein wenig von Hand aus und im Anschluss ist nochmal die Bedienoberfläche, die ich in Labview erstellt habe, mehr schlecht als recht zu sehen. Ich verstell da auch wieder ein wenig die Sollwertvorgabe, sodass man gemessene Position (weiß) und Geschwindigkeit (rot) in dem Panel sehen kann.

    http://www.youtube.com/watch?v=OKjAIZY8F0A

    Bekomm das Video leider igendwie nicht eingebettet...

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Gratuliere!

    Bin selbst an etwas ähnlichem: Quadratursignal vom Mausencoder mit ATtiny24 auswerten und kämpfe gerade damit, ob meine gemessenen Werte bei Vorwärts- und Rückwärtslauf mit den tatsächlichen übereinstimmen. Wie hast Du das gemacht?

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Ähnliche Themen

  1. Suche einfachen Tabplet-PC
    Von Shinzon im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 11
    Letzter Beitrag: 26.09.2011, 14:21
  2. Suche einfachen Microcontroller
    Von Ilm_Stoffel im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 5
    Letzter Beitrag: 10.02.2010, 11:39
  3. Getriebemotor zum servo umbauen?!
    Von foxmovie im Forum Motoren
    Antworten: 20
    Letzter Beitrag: 30.05.2009, 12:56
  4. suche einfachen Li-Ion-Akkulader
    Von Turtle im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 05.08.2006, 15:17
  5. Einfachen Aufzug bauen
    Von soulid im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 05.10.2005, 09:24

Berechtigungen

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

LiFePO4 Speicher Test