- 3D-Druck Einstieg und Tipps         
Seite 7 von 9 ErsteErste ... 56789 LetzteLetzte
Ergebnis 61 bis 70 von 83

Thema: Nunchuk + Bascom + Atmega8 . Brauche hilfe :-)

  1. #61
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    Anzeige

    E-Bike
    Guten Morgen Richard,
    schau mal hier, wie ich das gemacht habe:
    https://www.roboternetz.de/phpBB2/ze...390&highlight=
    Ich benutze mit Absicht die serielle Schnittstelle, damit die Wii bzw. der Nunchuk nicht fest mit dem Controller verbunden ist und somit eine gewisse Freiheit gegeben ist. Mittlerweile fliege ich mein Modell mit Nunchuk.

    Gruß Peter
    _________________________________________________
    [-X Quis custodiet ipsos custodes
    Ground-Effect-Stability-Robot www.peter-holzknecht.de

  2. #62
    Benutzer Stammmitglied
    Registriert seit
    07.01.2008
    Beiträge
    39
    Frage zum Nunchup I2C Interface:

    Habe einen RN-Mini (mega16 und den Nunchuk zusammengeschaltet. Der Nunchuk bekommt genau 3,66 V (2 Dioden in Plus geschaltet - zur Spannungsabsenkung + Elko).
    Als Konverter der I2C Spannungen habe ich obigen Schaltplan (mit den 2 FETs BSN10A nachgebaut). Die Software ist der letzte Stand aus diesem Thread.

    Auf der RN-Mini Seite sind ja schon 2x10K Pullups vorhanden. Auf der Nunchuck seite sind wahrscheinlich im Nunchuk auch schon Pullups.

    D.h. Die Philips schaltung besteht nur aus den beiden FETs.

    Alles läuft wunderbar, aber nach einiger Zeit (1-3 minuten) läuft gar nichts mehr - keine Auslesung der Werte mehr.

    Hatte vorher schon mal die Pullups auf den Nunchuk Seite eingelötet (2x 4,7k) aber damit lief nichts - alle Werte nur konstant 255.

    Nebenbei ist sonst nichts am I2C Bus. Das kommt später noch...

    Jetzt weiß ich auch nicht mehr weiter - löte ich die Nunchuck Pullups ein, dann geht nichts. lasse ich sie weg, dann geht nach einiger Zeit nichts.

    Woran kann das liegen?

    Anm: habe schon mal einen 4700müF an die 3,66 V gehängt - war auch nicht besser.
    habe verschiedene Delay eingebaut - auch nicht besser.

  3. #63
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.07.2009
    Alter
    30
    Beiträge
    133
    Was ich noch fragen(/sagen) wollte:
    Kann man nicht einfach die Pullups vom Nunchuk auslöten, den Nunchuck mit 3,3V versorgen und als Pegel für Clk und DAT auf 5V lassen? Es ist doch alles Opendrain und müsste deswegen etwas mehr Spannung vertragen.

  4. #64
    Benutzer Stammmitglied
    Registriert seit
    07.01.2008
    Beiträge
    39
    Ich verstehe es auch nicht ganz. Eigendlich ist alles opencollector und sollte nur auf 0 gezogen werden um keine 1 zu sein. das sollte auch bei den unterschiedlichen Spannungen funktionieren.

    Mittlerweile habe ich noch die Spannung auf 3,4 Volt stabilisiert - also nicht einfach 2 Dioden - sondern geregelt. Klappt aber auch nicht.

    Komischerweise habe ich die gleiche Schaltung ein zweites mal (mit den FETs und den stabilen 3,4V) auch an meinem RN-Control MEGA32 gebaut - und dort laufen die Daten vom Nunchuk ohne Ende.
    Den Unterschied verstehe ich nicht. Scheint Hardware zu sein. Beim Mega168 ist nach spätestens 1 min Schluss mit den Daten vom Nunchuk und alles steht still bis RESET.

    Cooler wäre aber der Mega168 - ist halt kleiner als der 32.

  5. #65
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    @radbruch das weiße kabel ist an analog pin 5 oder? und das grüne an 4

  6. #66
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ähm, da muss ich jetzt echt passen. Das war vor über einem Jahr und ich hatte den Nunchuk ungeöffnet mit Stecker verwendet:
    Bild hier  
    (Bild aus: https://www.roboternetz.de/phpBB2/vi...=389157#389157)

    Ich vermute, du meinst die TWI/I2C-Pins auf dem RP6-Board. Dort ist Pin 5 der Interrupteingang der beim Nunchuk-Anschluss nicht verwendet wird. Benötigt werden, neben VDD und GND, noch SDA (Pin3) und SCL(Pin4). Die Belegung des Nunchukkabels findet man z.B. hier:
    http://todbot.com/blog/2007/10/25/bo...nunchuck-servo

    Allerdings muss man hier etwas um die Ecke denken:
    Das Arduino-Board läuft mit einem Mega8 (glaube ich) und bei diesem sind die SDA/SCL-Pins die Eingänge PC4/5 oder eben ADC4 und 5. Es würde sich dann diese Anschlussbelegung ergeben:

    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)

    Viel Erfolg

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

  7. #67
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    deine angaben stimmen ich hatte mich irgendwie verguckt und weiß und gelb verwechselt da ging natürlich nichts und zum glück auch nichts kaput es geht jetzt jedenfals auch bei mir. ich hab den arduino mit nem atmega 328 und usb

  8. #68
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.400
    Hallo,

    ich habe mir gerade einen nunchuk demontiert und an meinem bot angeschlossen. ich möchte den joystick und die buttons für die spätere menüführung nutzen und den beschleunigungssensor um die lage bestimmen zu können. das ganze erstmal alles experimentel habe noch nie mit beschleunigungssensoren gearbeitet.

    nun habe ich das program ein wenig meinen bedürfnissen angepasst (lcd anzeige) der kern ist der selbe. die werte vom nunchuk lasse ich mir dezimal anzeigen.

    beim joystick passt alle von einem anschlag zum anderen reichen die werte von 5 - 255 - alles okay

    bei den beschleunigungssensor allerdingt bekomme ich schon bei einem winkel von 45° den vollausschlag - wert: 255 - und das in alle drei achsen. wird da evtl ein word oder 10bit ausgegeben?

    zudem wenn ich C und Z gleichzeitig drücke stürzt der bus ab.

    habe den nunchuck über 5volt mit spannungsteile an 3,4volt angeschlossen und an den I2C leitungen habe ich nicht gemacht. muss ich umbedingt so ein levelshifter einbauen?

    über den spannungteiler habe ich es auch nur gemacht da ich keinen festspannungsregler für 3,3volt da habe das soll aber sowieso noch auf meinen bot mit rauf.

    freundlicher gruß, Bammel

  9. #69
    Benutzer Stammmitglied
    Registriert seit
    31.03.2008
    Ort
    Gorxheimertal
    Alter
    37
    Beiträge
    59
    Ich versuche jetzt schon seit gestern Mittag das Nunchuck auszulesen, aber ich bekomme immer nur die 255 ausgegeben. Habe jetzt schon viel ausprobiert, aber immer das gleiche ergebnis. Was ich halt nicht verstehe, ist das es bei anderen mit diesem beispielscode ja zu funktionieren scheint.

    Hoffe mir kann hier jemand weiter helfen

    Code:
    $regfile = "m168def.dat"                                    
    $crystal = 20000000                                         
    $baud = 9600                                               
    
    $lib "i2c_twi.lbx"                                          ' Für Hardware TWI
    
    Config Scl = Portc.5                                        ' Ports fuer IIC-Bus
    Config Sda = Portc.4
    
    
    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 = &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
    
    
            Tmp = Buffer(b) Xor &H17
            Tmp = Tmp + &H17
    
            Print B ; ": " ; Tmp ; "  ";
    
            Buffer(b) = 0                                       ' löschen
    
        Next B
    
        Gosub Send_zero
    
        Print
    
        Waitms 500
    Loop
    
    End
    
    Nunchuck_init:
        I2cstart
        I2cwbyte Nunchuck_write
        I2cwbyte &H40                                           ' sends memory address
        I2cwbyte &H00                                           ' sends sent a zero.
        I2cstop
    
    Return
    
    Send_zero:
    
        I2cstart
        I2cwbyte Nunchuck_write
        I2cwbyte &H00                                           ' sends one byte
        I2cstop
    
    Return

  10. #70
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Deins:
    Code:
    $lib "i2c_twi.lbx"                                          ' Für Hardware TWI
    
    Config Scl = Portc.5                                        ' Ports fuer IIC-Bus
    Config Sda = Portc.4
    
    
    Config Twi = 400000                                         ' Init TWBR und TWSR
    
    ' TWI gleich einschalten, das macht Bascom ansonsten erst beim I2CStart !
    Twcr = &B00000100                                           ' nur TWEN setzen
    Meins:
    Code:
    $lib "i2c_twi.lbx"                                          ' Für Hardware TWI
    Config Scl = Portc.0                                        ' Ports fuer IIC-Bus
    Config Sda = Portc.1
    Config Twi = 400000                                         ' Init TWBR und TWSR
    I2cinit
    ' TWI gleich einschalten, das macht Bascom ansonsten erst beim I2CStart !
    Twcr = &B00000100                                           ' nur TWEN setzen
    Wo ist dein I2cinit?

    Die Pause zwischen dem Initialisieren und dem Auslesen der I2C-Daten ist wichtig:
    Code:
    Gosub Nunchuck_init
    Waitms 1000
    Gosub Nunchuk_read
    Das war die letzte und funktionierende Version:
    https://www.roboternetz.de/phpBB2/vi...=389966#389966

    Gruß

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

Seite 7 von 9 ErsteErste ... 56789 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests