Par défaut, un appareil android est un "device". A partir d’android 3.1, la possibilité existe qu’il soit un "host". Comment faire ?
Dans la logique d’un bus informatique, une des connections peut être un "maître" et les autres des "esclaves" [1].
Avec le bus USB, le PC est le "host" et les autres appareils des "devices".
Mais si on ne veut pas utiliser de PC ?
L’ arduino Mega ADK a un prise USB qui joue le "host" et qui permet par exemple de connecter un appareil android comme un device.
Mais, si je veux utiliser monarduinio uno avec le tinkerkit, shield et néanmoins le connecter à un "android" !?!!
Comment faire ? Plusieurs solutions existent. Je vais explorer ici la solution de l "’USB otg".
Comme la lecture de l’article de wikipedia sur le sujet vous l’apprendra, l’idée est d’utiliser un câble usb modifié pour que l’appareil connecté à une des deux extrémités se comporte comme un "host" alors qu’à priori il decrait se comporter comme un "device".
Une modification dans le câblage est possible à priori. On trouve des vidéos sur youtube expliquant comment faire.
Comme expliqué par ailleurs, il faut connecter le "pin" numéro 4 (sense) du micro-usb au numéro 5 (la masse) sur la prise micro-USB.
La prise mâle du côté "connecteur de type A doit aussi être transformée en prise A femelle. Un adaptateur femelle-femelle n’est pas difficile à trouver : le moindre magasin d’électro-ménager en possède.
Il est aussi possible de commander sur le net de telles prises toutes faites.
Ou plutôt non ! Le host fourni le bus USB en énergie électrique. Le voltage est de 5 volts. Certains des câbles OTG du commerce possèdent une alimentation. sinon il peut être utile de brancher le câble sur un "hub" alimenté de l’extérieur. Autrement il faut courir le risque de voir la batterie de l’appareil android se vider très vite.
Bon, après celui-ci, j’arrête les titres idiots pour au moins cinq minutes. Promis.
Ce n’est pas tout. Il faut encore que le kernel de l’appareil android soit capable de charger les modules qui vont permettre à l’appareil d’être "host".
Certains appareils hauts de gamme récents font cela nativement.
Sinon, ceci requiert que votre appareil ait été "rooté". Si les modules sont présents, ils faut les charger "à la main".
insmod drivers/usb/core/usbcore.ko
et
insmod drivers/usb/host/ehci-hcd.ko
Si ces modules ne sont pas installé sur votre appareil, il est probable que votre kernel soit incapable de les charger. Une alternative est alors d’installer une "custom rom" comme cyanogenmod.
Bref, ce n’est pas gagné.
Plein d’infos ici
[1] D’autres possibilités existent. Je ne les envisage pas ici
2004-2024 © @YvesDelhaye.Be : "Nous ne sommes pas faits pour vivre comme des imbéciles, mais pour suivre les chemins de la vertu et de la connaissance." (Dante : l’Enfer) - Tous droits réservés
Ce site est géré sous SPIP 2.1.28 [22259] et utilise le squelette EVA-Web 4.1
Dernière mise à jour : mercredi 1er février 2023