Étape 5: Le dispositifs iPod
L’iPod est un lecteur de mp3 peu versatile et peut être utilisé avec de nombreux accessoires différents. Ces connecteurs à 30 broches tenir broches pour Docking stations, FireWire, USB et plus encore. Dans ce cas, nous utilisons les broches de la série Rx et Tx.
Ce câble d’extension du quai est utilisé parce qu’il a des connexions pour ces broches au lieu de la connexion usb normal qui n’a que + USB - USB données VCC et GND.
Le connecteur est un connecteur JAE DD1 30.
Ce projet utilisera les 5 broches suivants :
- + 5V - broche 23
- GND - Broche 16
- RX - Pin 13
- TX - axe 12
- ACC - Pin 21
La broche d’Acc est tirée faible à travers une résistance, et selon la résistance, l’iPod saura quel type d’accessoire qu'il est attaché et comment communiquer en conséquence.
On trouvera une liste de toutes les quilles et ce qu’ils font à :
http://pinouts.ru/PortableDevices/ipod_pinout.SHT...
Le protocole accessoire Apple est utilisé pour communiquer avec l’Ipod. La configuration de série de 8N1 standard est utilisée. 8N1 spécifie qu’il y a 8 bits de données et No bit de parité, 1 bit d’arrêt. Cette configuration est ce que l’Arduino suppose que lorsque vous établissez le débit de transmission (c’est à dire. Serial.Begin(9600);). Cela peut être modifié en ajoutant un argument de configuration à cet appel (c’est à dire. Serial.Begin (9600, SERIAL_5N1);).
Dans ce projet nous allons juste utiliser la configuration standard 8N1.
Ce projet pourra communiquer à une vitesse de transmission 9600.
L’iPod peut être mis en 3 modes différents :
- Un mode d’enregistrement de voix. C’est pas utilisé dans ce projet
- Un mode simple. Il s’agit des commandes de base. (Play/Pause, Skip, Volume, Select, etc.)
- L’iPod Advanced mode (Mode AiR) à distance, cela permet pour les données à envoyer à et prélevés dans l’iPod. (Pas de contrôle de Volume)
En mode AiR, l’écran vous donnera le statut "OK pour déconnecter" sur l’iPod de génération plus âgé. IPhone 3, iPod touch et iPad n’afficher cet écran et vous permettent de le contrôler à la fois l’application et l’iPod lui-même.
Mode aérien est généralement utilisé lors de la connexion à un accessoire qui traite les données d’un signal audio et le contrôle de volume est toute fait par cet accessoire.
Étant donné que MuseHack utilise la prise casque en Mode 4 (Mode aérien), réglage du volume devient un peu délicat. Ceci est accompli en changeant momentanément au mode 2 pour régler le volume avant de retourner au mode 4.
Cela sera couvert plus en détail dans la section de code.
Adriangame fournit une description bien aménagée du protocole utilisé pour parler de l’iPod :
http://www.adriangame.co.uk/iPod-ACC-Pro.
Chaque commande envoyée à l’iPod contient au moins 5 points sous forme d’octets.
- L’en-tête (0xFF, 0 x 55)-chaque commande démarre avec cet en-tête exact.
- La taille de la commande - cet octet représente le nombre d’octets suivants à l’exception de la somme de contrôle.
- Le Mode de la commande - ce projet utilise principalement le mode 4 avec quelques commandes du mode 2 là-dedans.
- La commande - deux octets spécifiques à l’instruction envoyés/reçus. En mode 4, le premier octet de commande est généralement de 0 x 00.
- Les paramètres - jusqu'à 9 paramètres peuvent être envoyés contenant les détails de la commande
- La somme de contrôle - cet octet est utilisé pour la vérification des erreurs.
L’octet de total de contrôle résume la valeur de l’octet de Mode à la fin des paramètres.
Cette somme est ensuite soustraite de 0 x 100 (256). Étant donné que la somme peut être supérieure à 0xFF (255) et nous seulement veulent l’octet inférieur, l’opérateur & est utilisé avec 0xFF pour jeter les bits supérieurs.
(ie. checksum = (0 x 100 - somme) & 0xFF)
C’est la méthode utilisée par l’iPod, mais qu’une seule façon de calculer une somme de contrôle.