samedi 22 juin 2013

Le Rabbity-Pi a trop de tension !


L'alimentation du Nabaztag fournit du 9V (plus proche de 8,2V), mais le Raspberry-Pi fonctionne avec du 5V. Si l'on veut pouvoir alimenter l'ensemble de notre lapinou à l'aide de l'alimentation originelle, il nous faut abaisser la tension. De plus d'autres composants à l'intérieur du Nabaztag ne fonctionnent pas à une tension de 9V, une tension de 5V sera donc nécessaire pour ces autres composants (les LED RGB et le pont infrarouge notamment).

Après de courtes recherche, la solution la plus simple que j'ai pu trouver est d'utiliser un régulateur linéaire de tension. Ce genre de régulateur existe en circuit intégré (mon choix s'est porté sur un LM7805), il est alors très simple de les mettre en œuvre et quasiment aucun autre composant n'est nécessaire.
Dans la pratique il est conseillé d'utiliser quelques condensateurs en entrée et en sortie afin d'avoir, si j'ai bien compris un peu de réserve d'énergie et de filtrer les perturbations éventuelles.

Le principe de fonctionnement d'un tel régulateur est assez simple, la différence de tension entre l'entrée et la sortie est évacuée sous forme de chaleur. Cela a plusieurs conséquences qu'il convient de prendre en considération :
  • Le composant va chauffer, la puissance dissipée peut se calculer facilement : P = (Vin-Vout) x I. Dans notre cas Vin = 9V et Vout = 5V, ce qui fait une chute de tension de 4V. Il faudra donc surveiller I afin de voir si on ne dépasse pas la puissance maximale dissipée par le composant (qui est, d'après la datasheet, environ 1,2W). Dans le cas où l'on risque de dépasser cette puissance, il suffira de visser le bon dissipateur thermique (compatible avec le boitier qui est de type TO220) sur le composant.
  • Une autre conséquence est le mauvais rendement, de cette méthode. Ici nous allons quasiment dépenser autant d'énergie à chauffer l'intérieur du lapin qu'à le faire fonctionner. Cela ne pose pas vraiment un problème écologique car nous parlons de quelques Watt, mais cela peut poser problème si nous atteignons les limites de notre alimentation.
Une alternative possible est d'utiliser un régulateur à découplage, mais ils sont plus cher et ont quelques autres inconvénients.

Voici le schéma que j'ai mis en place sur ma platine d'essai afin d'obtenir une tension régulée de 5V.

La valeur des composants:
C1 = 1 mF (électrochimique)
C2 = 220 nF (céramique)
C3 = 10 μF (électrochimique)
C4 = 100 nF (céramique)
D1 = diode électroluminescente rouge
R1 = 270 Ω

La diode me sert simplement de moyen visuel de m'assurer rapidement si le circuit est sous tension, elle est totalement facultative et ne sera certainement pas sur le montage final.
Les condensateurs devront être placés, sur le circuit final, à divers endroit. Le condensateur C1 devra être proche de l'alimentation, C2 et C4 proche du composant LM7805 et C3 au plus proche de la charge. Ceci permet d'assurer un courant de bonne qualité qui ne fluctue pas trop.

Je n'ai pour l'instant pas utilisé ce montage pour alimenter le Raspberry-Pi, car pour l'instant il est plus simple de dissocier le Raspberry-Pi du montage en cours afin de ne pas avoir à le redémarrer à chaque fois que l'on bidouille sur le montage, mais la solution serait de simplement relier notre montage aux bornes 0V et +5V du port GPIO.
Attention cependant, en passant par le port GPIO plutôt que par la prise microUSB du Raspberry-Pi, on ne passe plus par le fusible sensé protéger le Raspberry-Pi des surtensions éventuelles. Il faudra donc que je me documente sur les éventuelles protections à ajouter.

En quelques composants nous avons maintenant une alimentation stable de 5V disponible sur notre platine d'essai.

La prochaine étape à laquelle je me suis attelé est la gestion des 5 LED RGB, cela fera certainement l'objet du prochain message.

lundi 6 mai 2013

Rabbity-Pi un lapin dopé à la framboise

J'ai actuellement pour projet de modifier les entrailles de mon Nabaztag par un Raspberry-Pi afin d'en faire quelque chose de plus intéressant. Pour l'instant le lapin ne sert pas à grand chose vu qu'il est très dépendant du serveur sur lequel il se connecte.

Actuellement il se contente de clignoter différentes couleurs, de bouger les oreilles de temps en temps, de dire l'heure toute les heures (avec un son mauvais et accompagné d'une blague, toujours la même à chaque heure de la journée).

Enfin, ça c'était avant, avant que je ne l'éventre et afin de commencer à comprendre comment il fonctionne.

Le lapin écorché



Ouvrons le lapinou

Première bonne surprise la plupart des éléments actifs sont reliés à la carte principale par des connecteurs "clipsables" cela permet de désolidariser la carte des composants sans avoir à dessouder.
Le fabriquant a eu la mauvaise idée de mettre de la colle partout pour éviter que ces connecteurs clipsables ne se détachent, mais avec un peu de persévérance et une petite lame, on arrive à tous les détacher.

Il y a donc :
  • 2 fils reliés au bouton poussoir situé en haut de la tête du lapin
  • 2 fils reliés au petit haut parleur
  • 2x3 fils reliés à la carte d'alimentation
  • 2x8 fils reliés à chacune des oreilles

LED RGB

Les seuls éléments actif qui ne sont pas externalisés sont les LED RGB. Elles sont situées, comme vous pouvez le voir sur la photo, au creux de petits cônes de plastique noir, qui permet de concentrer la lumière en petit cercles lumineux :
  • une LED RGB pour le nez
  • 3 LED RGB situés au niveau du ventre
  • 1 LED RGB en bas pour illuminer la base du lapin
Il faudra donc utiliser de nouvelles LED RGB, et trouver un moyen simple de concentrer la lumière aux bons endroits afin de rendre un effet similaire. J'ai l'intention de laisser la carte originale en état de fonctionnement et je n'envisage donc pas de récupérer les divers cônes noirs, qui m'ont l'air de toute façon très bien collés.

Les oreilles

Les oreilles sont un des organes les plus complexe du lapin.
Avant d'ouvrir le lapin, je pensais que les oreilles étaient contrôlées par deux moteurs pas à pas, mais en fait deux petits moteurs à courant continu assurent le mouvement.
Afin de contrôler la position des oreilles, et comme le lapin semble savoir la position exacte de ses oreilles et non pas une position relative (si on tourne manuellement une oreille, il va la repositionner au prochain cycle), j'ai d'abord pensé à un codeur optique absolu, mais en fait c'est bien plus simple, c'est un codeur incrémental constitué d'un pont infrarouge devant lequel passe une roue dentée ayant 20 dents.

Afin de savoir la position absolue, 3 de ces dents sont manquantes. Lors du démarrage le lapin fait faire un tour complet à ses oreilles et détecte la présence du "trou". Il sait alors comment sont positionné ses oreilles.

L'alimentation

Le Nabaztag est alimenté par un transformateur 9V. Une petite carte électronique permet de renvoyer cette alimentation à la carte principale de deux façons :

  • Un renvoi quasi direct, on se retrouve avec à peu près à 8V
  • Un renvoi piloté par le petit potentiomètre qui sert à régler le volume sonore du lapin, la tension varie en fonction de la position du potentiomètre.
Je vais certainement réutiliser cette alimentation pour les éléments du lapin mais aussi le Raspberry-Pi (qui a besoin de 5V et environ 1A). Il faudra tout de même faire attention à ce que la consommation de l'ensemble ne tire pas trop sur le transfo.

La connexion wifi

Le seul élément que je ne vais pas réutiliser est la connexion wifi installée sur le lapin. D'une part car il serait vraiment complexe (voire impossible) de connecter le Raspberry-Pi à travers la carte interne du Nabaztag, mais aussi d'autre part car la carte ne supporte que le vieux protocole de chiffrage WEP.
L'anecdote sur le wifi est qu'on se rends compte que cette fonction est assurée par une véritable carte PCMCIA connectée à la carte mère (que l'on peut voir dépasser en haut de la carte sur la photo). Ce choix a certainement été fait pour le coté économique mais ça me semble vraiment compliqué de ré-implémenter le contrôleur de carte PCMCIA pour un simple lapinou connecté.


Voilà pour un premier tour d'horizon des entrailles de ce Nabaztag. Chaque élément devra être analysé plus en profondeur afin d'en extraire les caractéristiques techniques. Puis il faudra imaginer les différents circuits afin de connecter tout cela au Raspberry-Pi. Viendra également la partie logiciel afin de contrôler tout ça.
Et finalement on aura peut-être un jour un Lapin fonctionnel !