Robot amusant: le MouseBot

Voici un petit gadget pour amuser les enfants: une souris d’ordinateur transformée en souris… mécanique…

C’est aussi pour moi l’occasion de tester un nouveau média, la diffusion de vidéo. Si ça se passe bien, je compte faire de temps en temps des vidéos sur le démontage ou la modification d’objets courants, un peu comme les modifs faites sur le routeur WL500GP.

Pour réaliser ce petit robot, j’ai farfouillé dans mon sac de récupération. Il faut:

  • 1 µC ATEMGA8 ou équivalent
  • 1 télémètre à IR sharp
  • 2 condensateurs
  • 1 régulateur LM78L05
  • 1 H-bridge L298
  • 1 pile 9V
  • 2 moteurs DC
  • Une vieille souris à martyriser.
  • 2 LED + 1 résistance de 150 ohms

Voilà, un bon fer à souder, une dremel et un peu de patience… et vous voilà partis. C’est amusant à construire et ça plait beaucoup aux enfants 😉

J’ai du modifier la configuration du compilateur Arduino pour qu’il supporte mon ATMEGA8 cadencé à 8MHz au lieu de 16 et dont la programmation se fait en SPI et non en série.

Jouons avec le courant

Voilà un tout petit article pour vous montrer l’intérêt des condensateurs de filtrages sur les alimentations de vos montages.

Nous allons utiliser une alimentation d’un vieux scanner qui nous donne 5V. A première vue, le signal issu de l’oscilloscope nous parait correct.

Seulement voilà, en changeant d’échelle, on se rend vite compte que le courant n’est pas si « propre » que ça. De nombreux parasites sont présents. Ils peuvent introduire des « bugs » dans vos circuits électroniques, qui n’a pas cherché pendant des heures pourquoi son µC plantait ou avait un fonctionnement erratique…

Et bien voilà, la solution, connue de tous les amateurs d’électronique mais parfois oubliée, consiste à ajouter un condensateur de filtrage sur la ligne d’alimentation. Le résultat (ici un condo plastique 33nF de récup) est très parlant, le signal est bien plus stable (il n’est pas parfait, le condensateur n’est pas forcément le mieux choisi).

Un truc tout bête mais qu’il est bon de rappeler de temps en temps 😉

Arduino Tux prend soin de vos plantes ;-)

Voilà un gadget plutôt marrant. J’ai récupéré un jouet cassé qui partait à la poubelle. Un jouet en forme de tux, ça ne se jette pas ! Pourquoi ne pas le transformer en une sentinelle qui veille sur vos plantes pour voir si elles sont bien arrosées…

Dans mes cartons, j’ai quelques arduinos qui trainent, une matrice de led, et quelques autres composants. Aller, en avant, au fer à souder 😉

Hop, on vide le jouet à coups de Dremel pour faire de la place. Le clavier est découpé pour laisser place à la matrice de led.

Le système se compose d’un contrôleur arduino qui pilote une matrice de 64 leds au travers d’un MAX7219. Le capteur, lui est basé sur deux tiges métalliques, la résistivité de la terre variant avec l’eau, elle est amplifiée par un transistor 2N2222 avant de se connecter à une entrée analogique de l’arduino.

[youtube:http://fr.youtube.com/watch?v=9DGADNzL1Pw]

La plante est heureuse lorsqu’on l’arrose. Pour vous remercier de cette eau providentielle, la sentinelle tux affiche des petits coeurs pendant quelques secondes avant de sourire. Dès que l’humidité baisse (simulé en enlevant la sonde) tux fait la tête, il est temps d’arroser 😉

Le tout est relié au PC pour l’alimentation en 5V et la programmation de l’arduino (et le débug dans minicom). On pourrait très bien imaginer mettre un relais avec une pompe sur le µC pour arroser automatiquement vos plantes. Ce n’est pas le but ici mais c’est simple à faire, une résistance, un relais, un transistor et une diode suffisent à rajouter cette fonctionnalité. On peut aussi mettre plusieurs capteurs dans les pots de fleurs.

Je n’ai pas mis de schéma, mon circuit est largement inspiré de ce qui se fait chez botanicalls. Si quelqu’un veut le détail exact, je peux vous le faire avec un coup de Kicad 🙂

Pour ceux qui se posent la question, oui c’est totalement inutile… donc parfaitement indispensable 🙂

EDIT (18/10/2008)

Voilà le code vite fait qui pilote la matrice de led.

[code]

#include <Binary.h>
#include <Sprite.h>
#include <Matrix.h>

Matrix myMatrix = Matrix(2, 4, 3);
int analogPin = 5;
int val = 0;
int oldval = 1000;
Sprite smile = Sprite(
8, 8,
B00000000,
B00000000,
B00100100,
B00000000,
B01000010,
B00100100,
B00011000,
B00000000
);

Sprite bad = Sprite(
8, 8,
B00000000,
B00000000,
B00100100,
B00000000,
B00011000,
B00100100,
B01000010,
B00000000
);

Sprite nosmile = Sprite(
8, 8,
B00000000,
B00000000,
B01000010,
B00000000,
B00000000,
B00000000,
B00111100,
B00000000
);

Sprite love = Sprite(
8, 8,
B00000000,
B01100110,
B01011010,
B01000010,
B01000010,
B00100100,
B00011000,
B00000000
);

void setup()
{
Serial.begin(9600);          //  setup serial
myMatrix.clear(); // clear display
}

void loop()
{
val = analogRead(analogPin);    // read the input pin
Serial.print(« Sensor level: « );
Serial.println(val);             // debug value

if (val  > (oldval + 40))
{
for (int i=0;i<10;i++)
{
myMatrix.clear(); // clear display
delay(1000);
myMatrix.write(0, 0, love);
delay(1000);
}
}

if (val  > 700)
{
myMatrix.clear(); // clear display
myMatrix.write(0, 0, smile);
delay(10000);
}
else
{
if (val > 400 && val <=700)
{
myMatrix.clear(); // clear display
myMatrix.write(0, 0, nosmile);
delay(10000);
}
else
{
if (val <= 400)
{
myMatrix.clear(); // clear display
myMatrix.write(0, 0, bad);
delay(10000);
}
}
}
oldval = val;
}

[/code]

Bricolage autour d’un routeur Asus WL500Gp – Partie 1

Il y a quelques temps, j’avais posté un article dans lequel je décrivais comment réparer un routeur Asus WL500Gp « bricked ».

asusWL500Gp.jpg

Le voilà ressorti du placard pour de nouvelles aventures. Je vais le doter d’une clef USB audio interne pour diffuser de la musique en streaming sur ma chaine HI-FI. Pour ce qui est du soft, je vais lui coller une openwrt.

Première étape: installer un port USB à l’intérieur du boitier de l’asus afin de ne pas utiliser les deux ports USB externes que l’on réservera pour une clef USB de stockage ou autre accessoire.

Le datasheet du composant VIA VT6212, disponible ici, nous indique la présence de 4 ports usb alors que seulement deux sont cablés en facade (en vert). On a donc deux ports libres pour s’amuser (en rouge).

VIA VT6212

Impatients s’abstenir, les soudures sur ce genre de composants CMS sont assez pénibles à réaliser. De plus, il faut disposer d’un fer à souder avec une panne très fine.

J’ai collé un connecteur USB femele avec de la colle à chaud sur le blindage de l’unité CPU du routeur.

Asus Wl500gP hack

Asus Wl500gP hack

L’alimentation 5V est prise directement sur la carte, proche de la prise du transfo.

Asus Wl500gP hack

J’ai testé avec une clef USB, ca marche impec 🙂

Bientôt la suite …