J’ai en projet un robot piloté en wifi depuis un smartphone ou un PC. La base de ce robot est un routeur très économique le TP-Link MR3020.
Seulement voilà, j’ai à brancher sur ce routeur:
- Un arduino sur lequel seront connectés moteurs ( des servos modifiés ) et capteurs.
- Une webcam basique ( Logitech CZ110 ).
Au départ j’avais en tête d’ajouter une connectique USB surement présente sur le microprocesseur du routeur, comme j’avais fait il y a quelque temps sur un routeur Netgear. Seulement voilà, le datasheet du microprocesseur n’est pas public et son « form factor » le rend très difficile à bidouiller.
Vous me direz, un usb, ça suffit pour la webcam. Sauf que le routeur n’a que 4Mo de mémoire flash ce qui rend impossible l’ajout de logiciels comme python et mjpeg-streamer. Il faut donc ajouter de la mémoire supplémentaire. Pour cet ajout 2 possibilités: 1 MMC utilisée avec des lignes GPIO ou 1 SD / clef en USB. Les lignes GPIO étant peu nombreuses ( sauf à retirer interrupteurs et LED ) j’ai opté pour l’USB ainsi qu’un lecteur de µSD. Je vais aussi utiliser 2 lignes GPIO en I2C pour communiquer avec l’arduino.
Je me suis procuré un hub USB STOREX à 3€ pour le démonter et récupérer son PCB. Malheureusement le hub n’est pas autoalimenté mais la consommation de la caméra + SD étant très limitée on va y remédier en branchant l’alimentation du hub sur l’USB.
Allez, hop on démonte la boîte qui est collée. Seule la carte nous intéresse. L’alimentation est inutile dans ce projet, on va la mettre de côté pour plus tard.
La prise d’alimentation doit être retirée ainsi que les connecteurs USB afin de gagner de la place et du poids.
Le lecteur de µSD à 3 € est aussi démonté afin d’accéder facilement aux pistes USB. Il est démonté « proprement » pour être ensuite ré-assemblé, la carcasse de la prise USB étant indispensable au maintient de la carte µSD.
Le lecteur peut alors être directement soudé sur le hub USB toujours dans l’idée de gagner de la place.
Ensuite, on peut ré-assembler le lecteur et le coller sur le hub.
J’ai abîmé quelques pistes en dessoudant le connecteurs USB. Il faut dire qu’à 3€, le PCB ne vaut pas grand chose… mais bon c’est quand même de l’epoxy et non de la bakélite.
Retournons maintenant sur le routeur. Afin d’augmenter sa portée assez réduite, nous allons lui ajouter une antenne externe. Il suffit pour cela de supprimer le shunt en J4 et de venir souder l’âme du câble d’antenne sur la piste à côté de l’inscription J4 (1) et la masse sur le pad à côté (2).
C’est tout petit et en zoomant ont voit bien mes gros pâtés !
voilà le résultat avec le routeur dans son coffret d’origine.
Pour ne pas abîmer le routeur, je n’ai pas dessoudé son port USB. J’ai juste soudé directement des fils sous le PCB pour les relier au hub. Un coup de fer et l’on peut rendre au routeur sa fonction d’origine. De plus, à cet endroit, la place occupée par le connecteur ne me gène pas.
La caméra est installée avec une nouvelle connectique à base de barette sécable en 2.54.
Voilà c’est tout pour les modifications matérielles. La suite concernera la recherche de GPIOs libres et la partie soft.
Voilà par exemple une piste. Plutôt que de retirer les LEDS qui ont leur utilité, on peut retirer l’interrupteur de sélection du mode qui ne nous sert pas. Ça nous donnera nos 2 GPIO (1: GND, 2: GPIO 18 & 20) pour l’i2c. Mais avant de faire ça, je vais voir s’il n’y a pas d’autres GPIO peu utiles voire inutiles comme sur son cousin le WR703N












12 commentaires
Passer au formulaire de commentaire ↓
BugsByte
6 novembre 2012 à 10:20 (UTC 2) Lier vers ce commentaire
Salut EquinoxeFR !
Serait-il possible de nous rajouter une petite image pour voir comment tu as reliés le routeur et le hub ?
Sur le hub, il y a 4 USB exploitable à la base.
Tu en as utilisé 1 pour la webcam, 1 pour le lecteur de µSD et j’imagine 1 pour le routeur.
Il y en reste donc qu’un de libre, c’est bien ça ?
Pourtant tu en indique 2 sur l’avant dernière image !
Beau boulot en tout cas !
J’attends la suite avec impatience.
Et bravo pour ton site.
–
BugsByte
EquinoxeFR
12 novembre 2012 à 11:01 (UTC 2) Lier vers ce commentaire
@BugsByte, non pas tout à fait. Sur le hub, il y a 4 usb host et un port usb slave. C’est sur le slave que vient se brancher le routeur. Du coup, sur le hub il en reste 2.
AstHrO
12 novembre 2012 à 12:06 (UTC 2) Lier vers ce commentaire
Salut,
Pourquoi passer en I2C et pas simplement par le port série ? Il est dispo est paramétrable à 115200, j’ai claqué un arduino dessus pour faire une PirateBox ‘intelligente’.
Pour la uSD, aujourd’hui on trouve des clés USB dites ‘nano’, aui prennent la même place.
En tout cas, je suis impatient de voir la suite ….
EquinoxeFR
12 novembre 2012 à 12:30 (UTC 2) Lier vers ce commentaire
@Asthro, je préfère conserver la console série pour la gestion / maj du routeur. Et puis si j’arrête mon projet de robot, je pourrais toujours utiliser le routeur avec des capteurs en i2c.
Pour la µSD, c’est pour qu’elle soit petite et amovible, c’est pour ça que je n’ai pas utilisé de petite clef usb…
Pierre
AstHrO
12 novembre 2012 à 12:33 (UTC 2) Lier vers ce commentaire
logique ! En plus entre temps j’ai lu de la doc sur I2C et son intégration avec Arduino. Du coup, je comprends mieux l’utilisation I2C ! Je vais orienter mon projet de domotique publique avec I2C.
Thibo
3 décembre 2012 à 2:28 (UTC 2) Lier vers ce commentaire
Question: l’openWRT embarqué, c’est une image standard ou tu t’en es compilé une perso ?
Sinon great job , ca va beaucoup beaucoup m’aider
EquinoxeFR
3 décembre 2012 à 2:36 (UTC 2) Lier vers ce commentaire
Une compilation perso mis une std doit marcher aussi…
Tu veux mon .config ?
Thibo
3 décembre 2012 à 2:49 (UTC 2) Lier vers ce commentaire
Je suis absolument preneur merci !
EquinoxeFR
3 décembre 2012 à 2:55 (UTC 2) Lier vers ce commentaire
@Thibo
Voilà: http://pastebin.com/TAmBpPe5
Thibo
3 décembre 2012 à 3:46 (UTC 2) Lier vers ce commentaire
Merci beaucoup !
Matthieu
21 avril 2013 à 6:46 (UTC 2) Lier vers ce commentaire
Salut,
Ton sujet m’intéresse beaucoup; j’y ai découvert les ports I2C et je suis en train de me pencher dessus.
Mais je voulais savoir si tu avais encore avancer, et si tu avais un résultat à nous montrer?
EquinoxeFR
21 avril 2013 à 8:12 (UTC 2) Lier vers ce commentaire
Bonjour,
Il y a aussi ce post http://www.equinoxefr.org/post/2012/11/12/mr3020-et-i2c-avec-les-gpio/ et celui-ci http://www.equinoxefr.org/post/2012/11/26/conversion-de-signaux-i2c-3-3v-5v/
Depuis je n’ai pas beaucoup avancé si ce n’est un test de communication I2C entre un arduino et le routeur. ça marche nickel.
J’ai un autre projet qui va probablement passer devant le robot et qui va utiliser ce matériel: un arrosage automatique des plantes sur la terrasse avec une pompe de lave glace.