-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: RC-Fernsteuerung + RN Control

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    26.12.2007
    Beiträge
    35

    RC-Fernsteuerung + RN Control

    Anzeige

    Guten Abend allerseits

    Ich hab da so ein Problem. Zwar wollte ich meinen Roboter über eine RC-Fernsteuerung fernsteuern, da ich aber nicht nur die Steuerung benutzen werde, mache ich die Ansteuerung der Motoren über ein RN-Control. Ich möchte nun aber trotzdem mein RC-system einbinden. Meine Frage diesbezüglich: wie bewerkstelligt man am einfachsten die Verbindung von RC-Empfänger und RN-Control? geht das über PWM?

    Besten Dank für alle Antworten

    lg flo

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    Am besten gehts wenn du einen Empfänger benutzt der ein Summensignal ausgibt:
    http://www.mikrokopter.de/ucwiki/RC-Empf%C3%A4nger
    Der wird am ATmega an einen Interrupt angeschlossen und ausgewertet. Ich kann dir meinen Code geben wenn du willst.
    Viele Grüße, William
    -> http://william.thielicke.org/

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    26.12.2007
    Beiträge
    35
    Danke für die Antwort.
    Für Code wäre ich sicherlich froh (senkt die Fehlerquote =)). Sache ist, das ich den Empfänger schon habe --> diesen auch gerne weiterverwenden würde. Wie findet man nun heraus ob dieser Empfänger passend ist oder nicht? (vielleicht kennt ihn ja jemand: http://tinyurl.com/5kkeaz --> nummer5 ).

    lg flo

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    Das wird schwierig bei diesem nicht sehr gängigen Empfänger ein Summensignal zu bekommen... Schieß dir doch bei ebay einfach einen Graupner C16/C17/C19, das kostet kaum was...
    Viele Grüße, William
    -> http://william.thielicke.org/

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    der code:

    TIMER0
    Code:
    $baud = 9600
    $crystal = 16000000
    $regfile "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 64
    
    Config Timer0 = Timer , Prescale = 256 , Capture Edge = Falling , Noise Cancel = 1
    Enable Timer0
    On Timer0 Pausenerkennung
    
    Config Int1 = Falling                           
    Enable Interrupts                               
    Enable Int1                                       
    On Int1 Summensignalmessung       
    
    Dim Empf(6) As Word
    Dim Channel As Byte
    
    
    Sound Portd.7 , 200 , 300
    
    
    Do
    Print Empf(1) ; " CH1"
    Print Empf(2) ; " CH2"
    Print Empf(3) ; " CH3"
    Print Empf(4) ; " CH4"
    Print Empf(5) ; " CH5"
    Print Empf(6) ; " CH6"
    Print " "
    Waitms 500
    
    
    Loop
    
    
    Summensignalmessung:
    Select Case Channel
        Case 1 :
        Empf(1) = Timer0
        Case 2 :
        Empf(2) = Timer0
        Case 3 :
        Empf(3) = Timer0
        Case 4:
        Empf(4) = Timer0
        Case 5:
        Empf(5) = Timer0
        Case 6:
        Empf(6) = Timer0
    End Select
    Timer0 = 6                   
    Incr Channel
    Return
    
    
    Pausenerkennung:
    Channel = 0
    Return
    
    
    
    End
    TIMER1
    Code:
    $baud = 9600
    $crystal = 16000000
    $regfile "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 64
    
    Config Timer1 = Timer , Prescale = 8 , , Capture Edge = Falling , Noise Cancel = 1
    Enable Timer1
    On Timer1 Pausenerkennung
    
    Config Int1 = Falling      
    Enable Interrupts          
    Enable Int1                  
    On Int1 Summensignalmessung 
    
    Dim Empf(6) As Word
    Dim Rc(6) As Integer
    Dim Channel As Byte
    
    
    Sound Portd.7 , 200 , 300
    
    
    Do
    Rc(1) = Empf(1) - 60543
    Rc(2) = Empf(2) - 60543
    Rc(3) = Empf(3) - 60543
    Rc(4) = Empf(4) - 60543
    Rc(5) = Empf(5) - 60543
    Rc(6) = Empf(6) - 60543
    
    Rc(1) = Rc(1) / 10
    Rc(2) = Rc(2) / 10
    Rc(3) = Rc(3) / 10
    Rc(4) = Rc(4) / 10
    Rc(5) = Rc(5) / 10
    Rc(6) = Rc(6) / 10
    
    Print Rc(1)
    Print Rc(2)
    Print Rc(3)
    Print Rc(4)
    Print Rc(5)
    Print Rc(6)
    Waitms 500
    
    
    Loop
    
    
    Summensignalmessung:
    Select Case Channel
        Case 1 :
        Empf(1) = Timer1
        Case 2 :
        Empf(2) = Timer1
        Case 3 :
        Empf(3) = Timer1
        Case 4:
        Empf(4) = Timer1
        Case 5:
        Empf(5) = Timer1
        Case 6:
        Empf(6) = Timer1
    End Select
    Timer1 = 57536  
    Incr Channel
    Return
    
    
    Pausenerkennung:
    Channel = 0
    Return
    
    
    
    End
    Viele Grüße, William
    -> http://william.thielicke.org/

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    26.12.2007
    Beiträge
    35
    Danke für die Antworten. Am Bieten bin ich schon, den Code muss ich aber zuerst noch gründlich studieren damit ich die Logik dahinter auch verstehe. Trotzdem vielen DANK.

    lg flo

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.03.2008
    Ort
    Huntlosen
    Alter
    25
    Beiträge
    391
    versuche es doch einfach mal hiermit, so kannste auch nen normalen Empfänger anschließen. Das Progis jetzt nur zur bestimmung des Timerwertes bei einer bestimmten Knüppelstellung. Musste noch n bisschen ändern.

    Code:
    $crystal = 5000000
    $regfile "attiny2313.dat"
    
     Config Lcd = 16 * 2
     Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4
     Config Lcdbus = 4
    
    
    Config Int1 = Change                                        'ISR bei jedem Flankenwechsel
    On Int1 Sprung
    Enable Int1
    Enable Interrupts
    
    Dim Flag As Byte                                            ' "Habe-fertig"-Flag
    Dim A As Word
    Config Timer1 = Timer , Prescale = 1
    
    
    
    
    Do
     If Flag = 1 Then
      Flag = 0
      A = Timer1
      Timer1 = 0
    
     End If
    
    Loop
    
    Sprung:
     If Pind.3 = 0 Then                                         'Fallende Flanke: Impulsbeginn
      Start Timer1
     Else                                                       'Steigende Flanke: Impulsende
      Stop Timer1
      Flag = 1
    
      End If
    Return
    Hunni

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    so kannste auch nen normalen Empfänger anschließen.
    Aber nur einen Kanal auslesen, oder? Dafür ist ja das Summensignal da.... da bekommt man alle Kanäle hintereinander.
    Viele Grüße, William
    -> http://william.thielicke.org/

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.03.2008
    Ort
    Huntlosen
    Alter
    25
    Beiträge
    391
    richtig, aber ich will auch nur einen kanal auslesen, da meine schaltung auis zwei unabhängig arbeitetenden attinys besteht. dies is für die sicherheit , aber für n Roboter is deins vollkommen ausreichend und auch geeigneter als meins.

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    26.12.2007
    Beiträge
    35
    ich frag mich, ob dies nicht ein wenig kompliziert ist. im grunde genommen muss das ganze nicht einmal proportional sein --> wird der knüppel auch nur ein bisschen, sprich es kommt ein kontakt zustande fährt der roboter zum beispiel eine sekunde vorwärts. würde das nicht mit einem normalen input funktionieren?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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