- LiFePO4 Speicher Test         
Ergebnis 1 bis 8 von 8

Thema: Click Wheel (von Ipod Nano 3rd Gen) am AVR

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied Avatar von KR-500
    Registriert seit
    26.12.2007
    Alter
    29
    Beiträge
    91

    Click Wheel (von Ipod Nano 3rd Gen) am AVR

    Hallo zusammen,

    hier beschreibe ich wie versprochen (hat etwas länger gedauert aber hab jetzt endlich Ferien *freu*) wie ich das Click Wheel an den AVR angeschlossen habe. Als erstes hier zwei Bilder:
    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_0617.jpg
Hits:	123
Größe:	45,6 KB
ID:	19443 Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_0618.jpg
Hits:	107
Größe:	51,7 KB
ID:	19444

    Wie auf dem ersten Bild schon zu sehen ist, ist der Connector leider in SMD, ich habe einfach an jede Kupferbahn ein Stückchen Kufperdraht angelötet (eine Faser aus einer Kupferlitze), das hat mit meinem Lötkolben mässig gut geklappt, aber nach zwei Versuchen hat es dann alles Funtkionert. Ich habe immer ein Stückkupferdraht nach vorne und eins nach hinten angelötet und dann zum schluss in eine Richtung gebogen. Eleganter wäre es wahrscheinliche einen SMD connector zu verwenden .
    Das Wheel funktioniert mit 3,3 Volt und die Pinbelgung ist wie folgt:
    Code:
    1 - VCC
    2 - Clock vom Click Wheel
    3 - muss mit VCC verbunden sein
    4 - nicht angeschlossen
    5 - nicht angeschlossen
    6 - muss mit VCC verbunden sein
    7 - Daten vom Click Wheel
    8 - GND
    Der erste Pin ist im Bild rot markiert und die Leiterbahn ist etwas dicker als alle anderen.

    So weit zur Hardware, als nächstes habe ich mir einen kleinen Logic Analyser gebaut um mir das Protokoll an zu gucken. Hier noch einmal ein Bild von dem Signal:
    Klicke auf die Grafik für eine größere Ansicht

Name:	ClickWheel.jpg
Hits:	65
Größe:	25,3 KB
ID:	19445 Im Anhang ist auch noch mal ein Zip-File mit dem C-Prog und der Excel Tabelle. Die Daten habe ich von dem AVR mit HTerm empfangen und dann als Output gespeichert.

    Kommen wir nun zum eigentlichen Programm, dass das Signal auswertet. Wie hier https://www.roboternetz.de/community...-Musik-ausgabe schon geschrieben, sendet das Click Wheel immer 4 Byte an den µc, davon sind erstes und letztes immer gleich. Im zweiten steht die Position des Fingers und im dritten ob ein Button gedrückt oder losgelassen wurde.
    Das auswerten ist eigentlich recht einfach, da man immer bei der steigenden Flanke auf der Clock Leitung die Daten Leitung einlesen kann. Man muss also lediglich einen Externen Interrupt auf steigende Flanke stellen und dann in der Interrupt Routine die Daten einlesen. Im Code sieht das in etwa so aus:
    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    
    #define F_CPU 16000000
    
    #include <util/delay.h>
    #include "USART_Util.h"
    
    volatile unsigned long data;
    volatile int counter = 0;
    
    int main (void){
    
        USART_Init(USART_BAUD_SELECT);
    
        USART_String("Hello World");    
        
        MCUCR |= (1<<ISC01) | (1<<ISC00); // steigende Flanke
        GICR |= (1<<INT0); // Ext. Interrupt aktivieren
        DDRD = 0x00; // PORTD auf Eingang
        PORTD |= 0xFF; // Pullups aktivieren
        sei(); // Globale Interrupts aktivieren
    
        while(1){
        }
    
        return 0;
    }
    
    ISR( INT0_vect ) {        
            if(PIND & 0b00001000){ 
                data |= 0x80000000; // eine Eins Speichern
            }
            data >>= 1; // weiter schieben
            counter++; // Counter addieren
            
            if(counter == 32){
                USART_Transmit((data&0xFF000000)>>24);
                USART_Transmit((data&0x00FF0000)>>16);
                USART_Transmit((data&0x0000FF00)>>8);
                USART_Transmit(data&0x000000FF);
        
                USART_Transmit('\r');
                USART_Transmit('\n');
                
                counter=0;
                data = 0;
            }
    }
    Konnte den Code jetzt Leider nicht mehr Testen und weiß nicht genau ob zu 100% klappt, weil ich den Code anfangs für den R8C/13 geschrieben hab. Wenn es Verbesserungen gibt, immer her damit .
    (http://shop.ebay.de/i.html?_from=R40...All-Categories) <- Da hab ich meins auch her.

    KR-500
    Angehängte Dateien Angehängte Dateien

Ähnliche Themen

  1. Mono Wheel Bot
    Von Murdoc_mm im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 617
    Letzter Beitrag: 05.06.2009, 07:52
  2. Ipod nano -Kensington transmitter verstärken
    Von schlebbersch im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 3
    Letzter Beitrag: 29.01.2007, 10:50
  3. Set up wheel(s) von conrad...
    Von tobimc im Forum Mechanik
    Antworten: 2
    Letzter Beitrag: 29.10.2005, 11:00
  4. Big Wheel - a two wheel (hybride) robot
    Von Drag0n im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 14
    Letzter Beitrag: 11.09.2005, 14:50

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress