Forum: PC-Programmierung pololu encoder am pro bot128


von zsolt l. (croal)


Angehängte Dateien:

Lesenswert?

Hi leute!
Ich habe einen pro bot 128 mit ein mega128 µc und befinde mich noch ganz 
am anfang in sachen robotik und überhaupt mit µc-s. ich habe viel 
gelesen und gegooglet aber das meiste setzt einen gewissen 
standardwissen vorraus. ich habe mein pro bot 128 umgebaut auf ein zumo 
chassis und da bot sich an einen pololu encoder zu verwenden. hier ein 
kleines video was ich auf die schnelle gemacht habe

http://www.youtube.com/watch?v=_jc-rOv6UEo

und ein link zum sensor was ich verbaut habe:

http://www.pololu.com/catalog/product/1217

alles schön und gut, ich habe die standard sensoren T3 und T4 entfernt 
sowie die vorwiderstände R6 und r7. danach habe ich auf die pins x_9 und 
x_10 den rechten und linken sensor angelötet in der hoffnung ich würde 
die libary nicht verändern müssen. jetzt bin ich seid taagen auf der 
suche nach eine lösung nur ich weiss nicht wo ich ansetzen soll da ich 
mir nicht sicher bin ob ich alles richtig angeschlossen habe oder das 
problem die sofwareseitige programmierung ist. hier ein link über dem 
sensor, leider war nichts dabei in richtung datenblatt oder libary.
PS: der pro bot 128 hat eine abgewandelte Basic womit ichs versucht habe 
etwas zu erreichen,ich poste mal das testprogramm was bei den original 
sensoren funktioniert. danke schon mal für die hilfe.

#define Encoder_IR 8

Dim Text(40) As Char
Dim Encoder_left As Integer
Dim Encoder_right As Integer


'Mainprogramm
Sub main()

    SPI_Disable()                       'SPI "OFF"
    Port_DataDirBit(Encoder_IR,1)       'Port For IR LED = Output
    Port_WriteBit(Encoder_IR,PORT_OFF)  'IR Diode PORT_OFF = IR "Ein"

    'Radencoder Interrupts
    Irq_SetVect(INT_6,Ext_ISR_R)        'Interrupt Service Routine right 
encoder
    Irq_SetVect(INT_7,Ext_ISR_L)        'Interrupt Service Routine left 
encoder

    Ext_IntEnable(6,2)                  'Interrupt right falling edge
    Ext_IntEnable(7,2)                  'Interrupt left  falling edge


    Do While True

       Msg_WriteInt(Encoder_left)
       Text = " left"
       Msg_WriteText(Text)
       Msg_WriteChar(13)

       Msg_WriteInt(Encoder_right)
       Text = " right"
       Msg_WriteText(Text)
       Msg_WriteChar(10)
       Msg_WriteChar(13)

       AbsDelay(100)

    End While

End Sub


'Interrupt Service Routine "Encoder right"
Sub Ext_ISR_R()
    Dim irqreq As Integer
    irqreq = Irq_GetCount(INT_6)        'Interrupt Request Counter = 0
    Encoder_right = Encoder_right + 1
End Sub


'Interrupt Service Routine "Encoder left"
Sub Ext_ISR_L()
    Dim irqreq As Integer
    irqreq = Irq_GetCount(INT_7)        'Interrupt Request Counter = 0
    Encoder_left = Encoder_left + 1
End Sub

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.