dimanche 1 mai 2016

Zowi .. la suite

En ce moment, j'ai pas trop de temps à moi pour bricoler :-(

J'ai quand même réussi à reprendre les pièces de zowi imprimées par une connaissance

Mais j'ai surtout galéré à trouver un moyen d'alimenter ça sans rebooter l'arduino à chaque démarrage de moteur.

Pour l'instant, je ne m'en sors qu'avec :
- une alim externe 5V (de PC, on l'aperçoit au fond de la photo);
- une connexion directe vers le + des moteurs et vers le Vin de l'arduino

Par contre, j'ai pas sous la main de batterie tirant assez pour démarrer les 4 moteurs en même temps (plus d'un ampère apparement ...)

Sinon, coté programmation, j'ai bricolé une interface depuis mBlock, ce qui permettra de l'utiliser à la souris dans le club collège

J'ai également ajouté une entrée télécommande, et là, ça commence à être rigolo:


À suivre ...

samedi 26 mars 2016

connaissez-vous Zowi ?

Zowi
Zowi, c'est un robot à vocation éducative, découvert au détour d'une balade sur internet :

Ça s'inspire de Bob, qui est open source et tout aussi mignon :
Bob

Dès que mon acolyte du club collège a fait cette trouvaille, il a forcément lancé l'idée d'en fabriquer un :-)
On a commandé quelques servo-moteurs mais il faut égaelemnt voir comment les faire manipuler sans trop de complications ...
Pour tester tout ça, j'ai commencé par m'en fabriquer un avec quelques pièces meccano, avant de décider d'un contenu final :
Mon prototype
Les premiers tests ont vite montré deux difficultés :
- le poids des servo rend l'ensemble assez instable;
- la vitesse des servo provoque des mouvements saccadés.

Pour la vitesse, j'ai bricolé quelques fonctions pour aller d'un angle à un autre par étapes, avec une temporisation entre chaque.
Par contre, il faut alors une fonction de mise à jour régulière pour ne pas rendre l'ensemble bloquant. Avec la lib MsTimer2, on arrive à gérer ce point sans polluer le programme principal.
Le résultat est un peu moins hystérique, mais toujours aussi stable qu'un soir de cuite ...

Reste à voir comment piloter tout ça depuis un truc du genre mBlock ...

À suivre



mercredi 3 février 2016

Légo ça rime avec Arduino

Il y a quelques temps, un collègue a retrouvé dans son grenier, des "lego technic" des années 80 :

C'est censé se piloter avec une sorte de tableau de bord qu'il n'a plus, mais c'est pas bien grave, puisqu'il y a désormais des Arduino !

On s'est donc lancé dans la conception d'un shield Arduino avec des sorties pour contrôler moteurs (via des circuits "pont en H") capteurs et lumières (via un transistor) à partir d'un socle "shield à connecteurs"

Voila le résultat :
En bas, 4 connecteurs "moteur", à gauche 4 connecteurs "capteur" et à droite 4 connecteurs "lumière"

Le tout se pilote via une petite lib dispo sur GitHub

Y'a plus qu'à jouer avec !

À suivre : le schéma du shield, mais il faut que je le mette à jour, car j'ai rien fait comme j'avais prévu :-)

mardi 12 janvier 2016

Ding Dong, épisode II

Comme je l'ai mis en commentaire du premier billet sur ma sonnette : elle a tenu 4 jours avant que les piles ne rendent l'âme.

Après quelques mesures, il s'avère que le composant "pont en H" consomme tout le temps. Du coup, l'idée serait de ne l'alimenter qu'à la demande, c'est à dire pendant la sonneire.

"Facile" ! y'a justement une sortie du Tiny qui allume une LED pendant la sonnerie. Suffit que cette même sortie alimente la borne "+ logique" du pont (en effet, après quelques tests, on voit que si le "+ logique" n'est pas alimenté, le "+ puissance" ne consomme plus rien (de mesurable avec mes moyens du moins)).

J'ai quand même bien ramé (et demandé de l'aide sur le forum arduino) avant d'arriver à une solution à base d'un transistor PNP placé entre le + des piles et le "+ logique". La base est raccordée au tiny et hop ... sauf qu'il faut alors mettre à 0 pour activer le transistor, donc inverser le fonctionnement de cette patte, et donc retourner la LED.

Bref :

Le transistor faisant chuter la tension d'alimentation, il a fallu changer le type de piles : au lieu une seule pile plate 4,5V, j'ai du mettre  une 1,5 en série pour arriver à 6V. le Tiny est prévu pour max 5,5V d'après la doc : on verra ce qu'il en pense à l'usage.
S'il fini par péter (mais ça m'étonnerait quand même), il faudra bidouiller le cablage pour mettre la pile 4,5V comme alim principale et l'autre pile en série sur l'entrée du transitor.

J'en ai profité pour corriger 3 bugs :
- la version que j'avais uploadée ne contenait pas le bout de code pour désactiver les timers et l'ADC quand le Tiny est en veille -> quelques mA de gagné
- il est arrivé que le Tiny sorte de veille sans que ça soit du au bouton (et donc que ça se mette à sonner pour rien), j'ai donc ajouté un tet pour vérifier que le bouton est bien appuyé au réveil
- j'avais loupé un paramètre du timer qui génère la fréquence, ce qui fait que seule une des 2 pattes du pont était activée -> ça sonne 2 fois plus fort !

Reste à vérifier que ça tient réellement longtemps cette fois.

mardi 29 décembre 2015

La suite ...

Bon ... après cette flopée d'articles de lancement, on va retourner dans le code et les composants ...

Au programme :
(oui, j'ai un tas de vieux machins dans mes cartons ...)

Ding dong ...

Jusqu'à présent, tous les articles que j'ai écrit n'étaient qu'un résumé des épisodes précédents.
J'ai zappé pas mal d'épisodes (j'y reviendrai peut être quand je les ressortirai du placard), mais ce qui m'a finalement décidé à me lancer dans ce blog, c'était la réalisation sur laquelle je planche depuis un bon moment, et qui s'est enfin terminée aujourd'hui.

Il y a quelques mois, la sonnette de ma porte d'entrée s'est mise à ne plus fonctionner. Après vérification, les piles étaient nazes alors qu'elles n'étaient là que depuis quelques semaines.

Du coup, je me suis lancé dans la réalisation de ma propre sonnette de porte, musicale, à base d'ATtiny, puisqu'il parait que ça consomme rien.

J'en ai ch... pendant je sais pas combien de soirées, pour arriver à un résultat qui semble pas mal, même si je suis frustré sur un point.

Tout l'historique est détaillé sur Google Drive, et les sources sont sur GitHub, mais en résumé :

Le premier proto qui commençait à ressembler à quelque chose, c'était ça:

Mais le volume sonore était pas suffisant.

J'ai alors essayé la librairie toneAC mais dès que je voulais réduire le volume (pour avoir des notes accentuées) le son était affreusement déformé.

J'ai finalement fait un mix entre la solution que j'avais tentée au début et celle de toneAC, avec un paquet de transistors entre le tiny et le haut parleur.
Le résultat était ce que je voulais en qualité, mais le volume était très bas, sans que je comprenne pourquoi.

Finalement, un composant "pont en H" a résolu ce dernier problème, mais je ne sais toujours pas pourquoi la version "maison" ne marchait pas.

Bref, ce montage :
avec ce code m'a permis d'arriver à cette platine :

dans cette boite :

Le tout est monté sur ma porte depuis ce matin ... y'a plus qu'à voir combien de temps tient la pile ...

l'AT Tiny

Après avoir pas mal fouiné dans les mécanismes des timers, interruptions et autre ADC, je suis tombé sur des articles qui parlait de l'ATtiny, qui est un micro controleur similaire à celui qu'on trouve dans les Arduino, mais en plus petit, et moins cher.
Ça permet aussi de faire des montages sans toute la mécanique autour pour le port série, l'alimentation ... donc de consommer beaucoup moins.

Pour s'en servir, il faut déjà de quoi le programmer, et pour ça, y'a des "how to" sur internet pour utiliser un Arduino comme programmateur de Tiny.

Mon premier proto de programmateur était sur breadboard pour vérifier si ça marche :
Sur la breadboard de droite, le Tiny est planqué au milieu des câbles ...

Ce qui est particulièrement pénible, c'est qu'il faut déplacer le Tiny après  chaque upload pour tester le résultat.
Une version soudée du programmateur permet déjà d'avoir moins de fils partout, tout en permettant de l'utiliser comme un "shield arduino" :
On place le tiny à droite pour le programmer, et à gauche pour tester : le + et le - sont cablés, le reste la seconde rangée de connecteurs permet s'y mettre des cables.

Bon ok, mais à quoi ça sert un Tiny ? c'est l'objet du prochain article ...