-         

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

Thema: Nunchuck auslesen

  1. #1
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    13.01.2008
    Ort
    Nordrhein-Westfalen
    Alter
    25
    Beiträge
    125

    Nunchuck auslesen

    Anzeige

    Hallo,

    wir versuchen grade einen Nunchuck der Wii an einem ATmega32 auszulesen.
    Leider bekommen wir immer nur 16 bei allen Bytes zurück.

    Wir haben folgenden Code verwendet um es zu testen:
    Code:
    '$regfile = "M8def.dat"                                      ' the used chip
    '$crystal = 16000000                                         ' frequency used
    '$baud = 9600
    
    $regfile = "M32def.dat"                                     ' RP6 mit Mega32
    $crystal = 16000000                                          ' taktet mit 8MHz
    $baud = 38400                                               ' Loader-Baud
    
    $lib "i2c_twi.lbx"                                          ' Für Hardware TWI
    
    'Config Scl = Portc.5                                        ' Ports fuer IIC-Bus
    'Config Sda = Portc.4
    
    Config Scl = Portc.0                                        ' Ports fuer IIC-Bus
    Config Sda = Portc.1
    
    Config Twi = 400000                                         ' Init TWBR und TWSR
    
    ' TWI gleich einschalten, das macht Bascom ansonsten erst beim I2CStart !
    Twcr = &B00000100                                           ' nur TWEN setzen
    
    'Const Nunchuck_write = &H52                                 ' Slaveadresse
    'Const Nunchuck_read = &H53
    Const Nunchuck_write = &HA4                                 ' Slaveadresse
    Const Nunchuck_read = &HA5
    
    Dim Buffer(6) As Byte
    Dim B As Byte
    Dim Tmp As Byte
    
    ' Startausgabe
    Print
    Print "I2C-TWI Demo mit Wii Nunchuck"
    Print
    
    Gosub Nunchuck_init
    Gosub Send_zero
    
    Do
        Buffer(1) = 0
    
        I2creceive Nunchuck_read , Buffer(1) , 0 , 6
        'Print Err
    
        For B = 1 To 6
    
            ' Hier soll noch etwas rumcodiert werden:
            Tmp = Buffer(b) Eor &H17
            Tmp = Tmp + &H17
    
            Print B ; ": " ; Hex(tmp ) ; "  ";
    
            Buffer(b) = 0                                       ' löschen
    
        Next B
    
        Gosub Send_zero
    
        'Print "------"
        Print
    
        Waitms 500
    Loop
    
    End
    
    Nunchuck_init:
        I2cstart
        I2cwbyte Nunchuck_write
        'Print "Fehler beim Init: " ; Err
        I2cwbyte &H40                                           ' sends memory address
        I2cwbyte &H00                                           ' sends sent a zero.
        I2cstop
    
    Return
    
    Send_zero:
    
        I2cstart
        I2cwbyte Nunchuck_write
        'Print "Fehler beim null senden: " ; Err
        I2cwbyte &H00                                           ' sends one byte
        I2cstop
    
    Return

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.01.2010
    Ort
    Deutschland
    Beiträge
    735
    Wofür brauchst du denn das Nunchuk?
    Also wenn du nur den Joystick brauchst ist hier ein Link:
    http://www.conrad.de/ce/de/FastSearc...e&initial=true
    Vieleicht kannst du damit ja etwas anfangen.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Geh mal mit der TWI-Frequenz von 400 runter auf 100kHz.
    Die 400 haben bei mir auch nicht funktioniert, mit 100 läufts perfekt.
    #ifndef MfG
    #define MfG

  4. #4
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    13.01.2008
    Ort
    Nordrhein-Westfalen
    Alter
    25
    Beiträge
    125
    Zitat Zitat von Jaecko
    Geh mal mit der TWI-Frequenz von 400 runter auf 100kHz.
    Die 400 haben bei mir auch nicht funktioniert, mit 100 läufts perfekt.
    Hmm ne das hat es leider nicht gebracht. Wenn ich mal diese Fehlerausgabe aktiviere dann kommt: "Fehler bei Init: 0" "Fehler beim null senden: 1" .

    Die 1 lässt mich aufhorchen aber woran es da dann genau liegen soll kann ich mir nicht erklären aufgrund von mangelender TWI erfahrung

    Clock und Data waren vertauscht aber wir empfangen weiterhin nur 16 und das bei allen 6 Bytes. Fehler bei Init und beim Null senden angebelich "0"

  5. #5
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    13.01.2008
    Ort
    Nordrhein-Westfalen
    Alter
    25
    Beiträge
    125
    Könnte es sein, dass die Kabelfarben nicht stimmen aber wenn ja müsste durch ein einfaches vertauschen doch die Sach erledigt sein oder nicht?

    Wir haben schon viel versucht aber wissen grade nicht wirklich weiter.

  6. #6
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    13.01.2008
    Ort
    Nordrhein-Westfalen
    Alter
    25
    Beiträge
    125
    Könnte es sein, dass die Kabelfarben nicht stimmen aber wenn ja müsste durch ein einfaches vertauschen doch die Sach erledigt sein oder nicht?

    Wir haben schon viel versucht aber wissen grade nicht wirklich weiter.

  7. #7
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo

    Hier das Pinout meiner Nunchuck-Versuche:

    rot - VDD (RP6 Pin1, XBUS 3/5)
    weis - GND (RP6 Pin2, XBUS 1/2/14)
    grün - SDA (RP6 Pin3, XBUS 12)
    gelb - SCL (RP6 Pin4, XBUS 10)
    (Angaben natürlich ohne Gewähr)

    (Aus: http://www.roboternetz.de/phpBB2/zei...=464955#464955)


    Aber das hast du vermutlich auch schon gefunden.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  8. #8
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    13.01.2008
    Ort
    Nordrhein-Westfalen
    Alter
    25
    Beiträge
    125
    Zitat Zitat von radbruch
    Hallo

    Hier das Pinout meiner Nunchuck-Versuche:

    rot - VDD (RP6 Pin1, XBUS 3/5)
    weis - GND (RP6 Pin2, XBUS 1/2/14)
    grün - SDA (RP6 Pin3, XBUS 12)
    gelb - SCL (RP6 Pin4, XBUS 10)
    (Angaben natürlich ohne Gewähr)

    (Aus: http://www.roboternetz.de/phpBB2/zei...=464955#464955)


    Aber das hast du vermutlich auch schon gefunden.

    Gruß

    mic
    Jap, in der Tat habe ich den Nunchuck so beschaltet. Hmm so langsam mach ich mir über die Funktionsfähigkeit meines Gerätes gedanken. Leider habe ich auch momentan keinen zweiten da und den an einer Wii anschließen ist auch erschwert worden Hab halt gedacht knipse mal das Kabel ab. Denn wenn ihr alle sagt, dass es soweit richtig sein muss und laufen muss dann kommt ein Defekt schon in Frage denke ich.

  9. #9

    Gehts bei dir jetzt?

    Zitat Zitat von Snaper Beitrag anzeigen
    Jap, in der Tat habe ich den Nunchuck so beschaltet. Hmm so langsam mach ich mir über die Funktionsfähigkeit meines Gerätes gedanken. Leider habe ich auch momentan keinen zweiten da und den an einer Wii anschließen ist auch erschwert worden Hab halt gedacht knipse mal das Kabel ab. Denn wenn ihr alle sagt, dass es soweit richtig sein muss und laufen muss dann kommt ein Defekt schon in Frage denke ich.
    Hallo,
    ich stehe vor dem gleichen Problem. Hast du mitlerweile eine Lösung?
    MfG Tom

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.118
    Blog-Einträge
    1
    Von vorn auf den stecker gesehen ist links oben CLK rechts oben GND, links unten VCC und rechts GND (Arduino Buch O'REILLYS Verlag) Muss mal schauen habe noch irgendwo eine genauere Beschreibung...HIER
    Geändert von oderlachs (24.02.2012 um 20:35 Uhr)
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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