-         

Ergebnis 1 bis 9 von 9

Thema: Encoder Progr. Erkl.

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    28.07.2007
    Ort
    Roboland
    Alter
    41
    Beiträge
    70

    Encoder Progr. Erkl.

    Anzeige

    Kann mir jemand eventuell neben dem Programm ein Paar Erklärungen zu den Werten ind den Commandos schreiben das währe sehr gut das könnte mir weuiter helfen Danke für jeden Tip

    Ich müsste dieses umschreibn so das es den Weg nicht misst sondern den weg durch den Encoder messen(keine msleep Programmierung) kann das ich kleine unangenehmen Abweichungen beheben kann

    eventuell reichen auch Erklärungen zu den Werten und Den Commands

    Controller ATMEL128

    '################################################# ##
    'rncontrol_drehzahl.BAS
    'für
    'RoboterNetz Board RN-Control ab Version 1.1
    'Das neue preiswerte Controllerboard zum experimentieren

    ' Achtung:
    ' Diese Demo ist mit Bascom Compiler 1.11.7.8 getestet

    '
    'Aufgabe:
    ' Dieses Testprogramm demonstriert wie man mit Drehgeber
    ' die Umdrehungszahl von Motoren anzeigen kann
    ' Als Drehgeber wird ein Sharp GP1A030 mit Codescheibe
    ' verwendet (siehe http://www.robotikhardware.de Rubrik Sensoren)
    ' In diesem Demo wird nicht die Drehrichtung ausgewertet, daher
    ' wird nur ein Interrupt Port (INT0) an den Sensorausgang (VOA)
    ' angeschlossen. Zudem noch +5V, GND und +5V wüber 330 Ohm
    ' Widerstand an Anode des Sensors. Also einfachste Beschaltung.

    ' Wenn man nun Programm startet wird jede Sekunde die Drehzahl
    ' ermittelt und alle 3 Sekunden über RS232 auf einem
    ' Terminalprogramm (oder KN-KeyLCD) ausgegeben.

    ' Das Programm eigent sich somit zum Messen von Drehzahlen als
    ' als auch zur Überprüfung der Drehgeberfunktion. Es läßt sich
    ' sehr einfach zu Wegstrecken Auswertung ausbauen. Statt
    ' an einem Interrupt könnte man Sensor auch an einen Timereingang
    ' anschließen, jedoch wird dies hie rim Programm nicht berücksichtigt.



    'Autor: Frank
    'Weitere Beispiele und Beschreibung der Hardware
    'unter http://www.Roboternetz.de oder robotikhardware.de
    '################################################# ######



    $regfile = "m32def.dat"
    ' bei Mega 16 $regfile = "m16def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32

    $crystal = 16000000 'Quarzfrequenz
    $baud = 9600



    Config Int0 = Falling

    Config Timer1 = Timer , Prescale = 256
    Const Timervorgabe = 3036
    Const Markierungenproscheibe = 120

    Dim Zaehlerirq0 As Long
    Dim Impulseprosekunde As Long
    Dim Impulseprominute As Long
    Dim Umdrehungenprominute As Integer

    Print
    Print "* RN-Control 1.4 *"
    Print "Drehzahl Messung" "



    Zaehlerirq0 = 0
    On Int0 Irq0
    Enable Int0

    On Timer1 Timer_irq
    Enable Timer1

    Enable Interrupts


    Do
    Print
    Print "Impulse Sek: " ; Impulseprosekunde
    Impulseprominute = Impulseprosekunde * 60
    Umdrehungenprominute = Impulseprominute / Markierungenproscheibe
    Print "Umdreh. Min: " ; Umdrehungenprominute
    Wait 3
    Loop

    End




    'Pro Impuls (Markierung auf Scheibe) ein Aufruf
    Irq0:
    Incr Zaehlerirq0
    Return


    'Pro Sekunde ein Aufruf
    Timer_irq:
    Timer1 = Timervorgabe
    Impulseprosekunde = Zaehlerirq0
    Zaehlerirq0 = 0
    Return

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    28.07.2007
    Ort
    Roboland
    Alter
    41
    Beiträge
    70
    Wenn ich das oben in Bascom schreibe kann ich das ja ohne Probleme Compilieren in mega128 oder?

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von UlrichC
    Registriert seit
    14.11.2005
    Beiträge
    1.037
    ist für einen Mega32 (m32def.dat) .

    Code:
    On Int0 Irq0 'Befehl = Wenn am interupt 0 was passiert springe zu Irq0(:)
    Enable Int0 'Interupt aktivieren
    
    On Timer1 Timer_irq 'Befehl = Wenn der Timer Anspricht  springe zu Timer_irq(:)
    Enable Timer1 'Timer aktivieren
    
    ---
    Irq0: 'Zählt die Impule = Teilstriche auf Encoderscheibe
    
    Timer1: 'Verrechnet jede Sekunde die ergebnise aus Irq0 und gibt die aus
    --------------------
    Ich hoffe das hilft etwas...
    Sorry, ich kann sowas nicht wirklich erklären, weil es ja eigentlich selbsterklärend ist.

    Grüße
    Christian

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    28.07.2007
    Ort
    Roboland
    Alter
    41
    Beiträge
    70
    Der oben genannte code ist also die weg strecke über Impuls aus dem Encoder an den Motor ( Kontrollierte Fahrt der weg strecke)
    mit welche Code(Commando lass ich denn beide Motoren über beide Encoder laufen ca 1m mit einer scheibe von 120 strichen 1 Umdrehung ist 31,4cm?
    sorry die frage aber ich fang erst an!

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von UlrichC
    Registriert seit
    14.11.2005
    Beiträge
    1.037
    Hi!

    Genau genommen ist der Code oben nur die Geschwindigkeit der Motoren.
    Noch genauer genommen ist der Code nur ein Testprogramm für einen Encoder von dem man seine Wünsche ableiten kann.
    Wieviel cm eine Umdrehung sind Berechnet man einfach mit Raddurchmesser(cm) * Pie(3,14xxxx).

    Ich kann dir leider auf die Schnelle kein fertiges Programm aus dem Ärmel schütteln. Zudem würde dir das nicht wirklich Helfen.. denn Du willst ja was lernen
    Versuche doch erstmal die Motoren zum laufen zu bringen.

    Der Mega32 hat z.B. 2 Interupts die du dann verwenden könntest INT0 und INT1 ... das wären die "zwei" Encoder.

    Mit was für einem Contoller bzw. Board arbeitest du?
    Das ist wichtig, mit dieser Information können dir dann sicher mehrere helfen.
    (Mega128 ?!?)

    Das du gerade Anfängst ist super! Nur der Ansatz ist etwas weit vorne. Du solltest vl. erst etwas über die Programmiersprache und das Programmieren an sich in Erfahrung bringen.
    Das Ziel hast du ja schonmal "Du willst den Code verstehen und für deine Motoren nutzen".
    Da helfen die Grundlagen von Bascom weiter als eine Coderklärung.
    ... 0. Mache ein paar schlichte Ausgaben mit "print"
    1.bringe LEDs zum Blinken
    2.bewege Motoren
    3.lese Sensoren aus
    X.dann erst ist der Zeitpunkt sich über Programmabläufe gedanken zu machen.
    Ist irgendwie wie Autofahren erst Einsteigen und dann Anfahren und Blinken lernen usw. .

    Ich hoffe mein Beitrag hat dich nicht zusehr generft oder entmutigt!

    Grüße
    Christian

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    28.07.2007
    Ort
    Roboland
    Alter
    41
    Beiträge
    70
    Hi
    Ich hab schon mal ein Programm mit einer Zeitschaltung also in ms geschrieben und da waren Schleifen drin wegen den Sensoren mein Board hat 2 intigrierte LEDs die blinken alle 500ms 1 mal am Anfang und per Button fährt der Robo. los nen Beeper der einen Signal Ton gibt hab ich auch zum beepen gebracht
    das Ding ist Richtung Wohnzimmer gefahren aber dann hab ich gemerkt das es nichts bringt ohne die beiden Encoder und jetzt denk ich das ich da einiges dazu lernen muss um die Encoder zu benutzen da durch die Spannung ja doch der weg nicht genau gefahren werden kann und das Board ist ein Soccer Board(für Encoder Digital Ausgänge)+ 4 IR Sens. mir fehlen halt die Befehle und ich müsste halt wissen wo die Werte sind die ich ab ändern muss um den weg zu dirigieren den er zurück legen soll dann müsste ich mir wenn das geklappt hat noch in Erfahrung bringen wie ich die Sensoren in den block den ich schreibe bei den Motoren Intigriere da haberts dann auch wenn ich die Motoren mit den Encodern zu laufen gebracht habe!
    Ich hoffe ich kann die Commandos die ich mir angeeignet für LED Button und Beeper bei der Zeitsteuerung noch benutzten und mit einbinden!
    ich hab noch keine Ahnung was mich da erwartet mit den Encoder nur die Anwendung für den zweck versteh ich!

    Es sollte irgendwann ein Service und (Vereinfachter-Sicherheits Roboter) werden!
    Das mit dem Kurz Programm ist ja nicht viel nur so 1meter geradeaus und dann eine rechts Kurfe und mit beiden Sensoren noch mal 1meter,das reicht denke ich aus um dann den Parkur hoffe ich alleine schreiben zu können,eventuell nco ein parr tips dazu!

    Ich find es klasse das mir da jemand einen Text schreibt der fast eine Din. A4 Seite ist danke!


    Ps: Der Robo. auf der Seite ist genial das Getriebe ist irre kompliziert das da drin sein muss und schwenkbar denk ich ist ES auch ich kann zwar nicht rein schauen aber mit,ich denke 4 Motoren+Sensoren(Ich glaube eine IR Cam hab ich gesehen) und den ??????? das es verbiergt,da geht schon was was das Programm angeht da hast du in sachen Überwachung nicht viel ausgelassen!

    MFG Rainer!!

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von UlrichC
    Registriert seit
    14.11.2005
    Beiträge
    1.037
    Hallo Rainer,
    hab mal ein wenig über dein Board gelesen.

    Das Board nun für mich doch etwas transparenter geworden.

    1. Wenn du bei denen die Encoder gekauft hast kannst du da (normalerweise) nix verklemmen.
    Die Verkabelung ist schon fertig bzw. vorbereitet mit den entsprechenden Steckern.

    2. Falls du die Encoder wo anders gekauft hast ist das auch kein Hexenwerk, da kann man auch nach der RN-Wissen Verkabelung verfahren.

    3. Anhacken geht auf jeden Fall mit dem ATMega128 der hat mehr IOs als man zu Begin nutzen kann.

    Hast du eine Beschreibung zu dem Board dazubekommen?
    Wenn ja würde die mich mal interessieren.

    Abgesehen vom offenbar missen Support usw. ist das Board an sich eigentlich ok.

    Meld dich einfach wieder wenn eine Encoder eintrudeln

    Bis denn
    Christian

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    28.07.2007
    Ort
    Roboland
    Alter
    41
    Beiträge
    70
    Hi!
    Ich hab da ein Datenlatt über das Board ich denke da stehen die Digital Ports so drin das man die 5V ,Gnd und Signal Raus lesen kann schau dir das aber noch mal an ich wollte es nicht falsch anklemmen!
    ich weiss nur nicht wo ich es hinschicken soll.

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von UlrichC
    Registriert seit
    14.11.2005
    Beiträge
    1.037
    Zitat Zitat von Astro
    Hi!
    Ich hab da ein Datenlatt über das Board ich denke da stehen die Digital Ports so drin das man die 5V ,Gnd und Signal Raus lesen kann schau dir das aber noch mal an ich wollte es nicht falsch anklemmen!
    ich weiss nur nicht wo ich es hinschicken soll.
    Tach,
    zu mir geht das mit den Dateien mit einem Formular:
    http://www.ulrichc.de/cgi-bin/exec/cu-upload.pl
    Oder PM.
    Meine E-Mail will ich hier nicht reinposten... sonst habe ich wieder 5 Wochen Spam im Mailer

    Du kannst es auch hier posten (Add Attachment oder Dateinalage beim Beitrag erstellen). Das wäre sogar besser, denn vielleicht findet sich doch noch jemand hier der auch mit dem Board von QFix arbeitet oder zumindest den ATMega128 soweit kennt, das er dir helfen kann.

    Viele Grüße,
    Christian

    PS: Wenn man die richtigen Antworten haben möchte kann man auch die Frage entsprechend optimieren..
    Nenne diesen Thread mal in "Mega128 Encoder anschließen" um. Betreff "Encoder Progr. Erkl." macht keinen Spaß

Berechtigungen

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