Vendredi, janvier 24 2014

Mes projets faits main pour 2014

Je profite de ce début d'année pour faire un point sur l'avancement de certain de mes projets personnels liés au DIY et qui devraient être mis à jour ou terminés dans le courant de cette l'année...

LedPong

Il s'agit d'une version réduite du Led Pong Wall du Tetalab.

Le montage est terminé (un simple avr d'Atmel pilotant une matrice de led hautes luminosités) et fonctionne correctement mais le rendu n'est pas tout à fait celui que je souhaite, la lumière n'étant pas assez forte. J'envisage de remplacer toutes les leds par des modèles RGB adressables (WS2812) et pilotées par un RaspberryPi.

2011-06-09_16.55.39.jpg

À faire :

  1. Faire des tests avec des WS2812 pour s'assurer que l'adressage de 64 leds est suffisamment rapide
  2. Enlever l'ancienne matrice de led
  3. Poser les WS2812
  4. Interface et intégration avec le RaspberryPi

Ballon à air chaud

C'est un aérostat constitué de 8 fuseaux de 9m² réalisé à partir de sacs poubelle bas de gamme (faible épaisseur, environ 17 micron d'épaisseur), le ballon est fini et traine depuis plus d'un an dans un coin, il faut dire que malgré le temps que j'ai passé à le faire (quelques dizaines d'heures), l'arrivée de mon Ultimaker m'a totalement fait changer de priorité.

C'est une belle bête capable de lever théoriquement 2kg de charge utile, je compte profiter d'une journée fraiche pour le gonfler et faire un premier test.

La moitié du ballon déployé à côté du chat !

À faire :

  1. Fabriquer une nacelle pour tenir les suspentes et les relier à un fil maitre
  2. Trouver une journée froide et sans vent pour faire un test (certainement un matin très tôt

Bleuette

Encore beaucoup de boulot pour le robot hexapode Bleuette mais le projet avance...

2013-03-03_19.39.11.jpg

À faire :

  1. Ajouter une caméra sur une tourelle mobile
  2. Revoir tout le système d'alimentation en énergie pour une autonomie plus grande
  3. Améliorer le contrôle des pattes avec une meilleure gestion de la vitesse des servos
  4. Encore beaucoup de choses...

CappuccinoMaker

Amateur de cappuccino à la mousse de lait bien dense et ne trouvant pas d'appareil suffisamment puissant et fiable pour en faire (oui, c'est tout un art), je vous dévoilerai ma version fait main que j'utilise depuis quelques années ainsi que sa nouvelle toute petite version dont le boitier est réalisé à l'impression 3D...

2013-09-13_09.50.36.jpg

À faire :

  1. Tests d'autonomie avec la nouvelle batterie (quelques 120mA)
  2. Finir le nouveau boitier

Automatiser la Blossoming Lamp

Découverte sur le stand RepRap au 3DPrintShow de Paris, cette plante (Blossoming Lamp) à la particularité d'être imprimée en une seule fois (et @f4grx à dû s'y prendre à plusieurs fois pour que j'arrive à y croire ;)), je me devais d'imprimer cette curiosité :

L'idée serait de lui implanter une lumière et de la motoriser afin qu'elle s'ouvre et se ferme toute seule.

À faire :

  1. Trouver comment motoriser la mécanique d'ouverture
  2. Réalisation de l'électronique pour piloter la méca et la lumière

OpenAlarm : Un système d'alarme libre

Suite à l'annonce de création du projet, pas mal de personnes se sont rejointes au projet, apportant leurs idées, conseils ou développements réalisés de leur côté étayant avec des bases très intéressantes le projet à peine commencé...

Pour le moment, j'ai commandé différents composants (module radio, gsm) qui me permettront de réaliser un prototype, dont toutes les informations utiles seront mises à disposition sur la page du projet GitHub / OpenAlarm et sur le forum hébergé sur MadeInFr.

À faire :

  1. Réaliser un premier prototype de capteur
  2. Communication entre le RaspberryPi et un capteur
  3. Envoi de SMS via SIM900 depuis le RaspberryPi
  4. Beaucoup d'autres choses...

RaspiO'Mix

La carte fille RaspiO'Mix que j'ai présenté sur ce blog récemment dont vous allez entendre parler de nouveau d'ici peu de temps...

raspiomix.jpg

À faire :

  1. Écriture d'exemple / enrichissement de la documentation

LeMurmureDuSon

LeMurmureDuSon est un dispositif jouant le rôle de post'it vocal que je n'ai jamais présenté sur ce blog et qui est encore en cours de développement.

Il a été pensé au cours d'un workshop du Museolab d'Érasme oû des équipes pluridisciplinaires ont été réunies autour d’un thème particulier : comment le handicap peut-il être source d’innovation pour tous ?

Ce workshop à donné naissance à 3 projets dont LeMurmureDuSon fait parti, dans la vidéo ci-dessous, vous découvrirez ces 3 projets (la présentation du projet LeMurmureDuSon commence à 3min22) :

Museolab : Le handicap source d'innovation from Erasme on Vimeo.

À faire :

  1. Nouveau design
  2. Nouvelle carte électronique
  3. Plein d'idées à mettre en oeuvre...

Intervalomètre photo

L'Intervalomètre diy est un vieux projet mis en standby pour le moment, n'ayant plus trop le temps pour pratiquer la photo, le besoin de ce dispositif est moindre qu'à l'époque, cependant, la carte électronique est faite et est fonctionnelle à quelques détails prêt...

Je reviendrai dessus le temps voulu mais ce n'est plus une priorité.

À faire :

  1. Déboguer !

Lundi, mars 25 2013

Des nouvelles de Bleuette

Point presse

Tout d'abord, un point people, l'information du développement de Bleuette à plutôt bien circulée et Bleuette s'est retrouvée sur plusieurs sites importants :

La vidéo sur Vimeo à été vue plus de 6000 fois.

Plutôt plaisant de voir que ça intéresse du monde mais j'attends avec grande impatience le moment ou un autre Bleuette pointera le bout de son nez en PLA... ;)

Évolutions

Nouvelle carte fille

La shield Bleuette permet le pilotage des servos et le contrôle de la tension / courant consommé par les servos, pour pouvoir ajouter des capteurs multiples, il est tout à fait possible d'utiliser les broches libres des ports de l'Arduino mais il n'y en a pas assez pour tous les capteurs voulus sur Bleuette, du coup, le besoin d'une nouvelle carte d'extension s'est fait sentir et voici ce qu'elle permet :

  • 8 entrées supplémentaires multiplexées utilisant que 4 entrées / sorties (3 d'adressage et une sortie)
  • Connection pour une carte GY-27 contenant un accéléromètre et un compas
  • Un module Bluetooth JY-MCU
  • Une connection pour une guirlande de led RGB à base de LPD8806
  • Un mosfet pour pouvoir piloter un élément de puissance (je ne sais pas vraiment quoi pour le moment...)

Voici le schéma de principe et le PCB associé (cliquez dessus pour agrandir) :
Schéma de principe de la carte d'extension de Bleuette PCB de la carte d'extension de Bleuette

Le schéma de principe au format est Eagle se trouve par ici : sensor.sch et le PCB : sensor.brd

Comme vous pouvez le voir, le PCB n'est pas dense du tout, du coup, il est simple à réaliser avec des moyens modestes.

Mécanique

Pas de grande nouveauté pour la partie mécanique sauf pour les pieds, ces derniers ont été imprimés en PLA Flex permettant d'avoir un peu de souplesse et trempé dans du PlastiDip afin d'avoir un meilleur grip en plus d'un super rendu !

Avant trempage dans le PlastiDip et après :
Les pieds de Bleuette

Tous les éléments d'un pied de Bleuette, on aperçoit l'interrupteur poussoir, le piston et le cylindre et le pied recouvert de PlastiDip :
L'ensemble des pièces constituant un pied de Bleuette

Le tout assemblé :
Vue d'un pied

Le fichier source au format OpenSCAD des pieds de Bleuette est disponible, comme tout le reste de Bleuette sur GitHub / Bleuette.

Le cerveau

J'ai subi beaucoup de soucis avec la carte Arduino, notamment des problèmes de programmation, m'obligeant à recommencer la phase 3-4 fois de suite des fois...
Tous ces ennuis m'ont conduit à radicalement changer ma manière de développer avec Arduino, notamment en utilisant Ino, un outils en ligne de commande pour compiler, programmer, etc, bref, un remplaçant du mal aimé environnement par défaut d'Arduino.

Les problèmes de liaison avec la carte Leonardo m'ont également conduit à une solution radicale, j'ai embarqué un Raspberry Pi dans Bleuette auquel est relié la carte Leonardo, ainsi, c'est le Raspberry Pi qui programme la carte Arduino, ça complique un peu mais au moins, je suis moins gêné...

À force d'utiliser ce système, ce qui devait arriver arriva et j'ai donc décidé de créer une carte fille pour le Raspberry Pi qui permettra de piloter Bleuette directement avec cette dernière.
Bien entendu, je ne laisse pas tomber pour autant le dèveloppement sur Arduino, disons que celui ci sera la version simplifiée.

Bleuette embarquant un Raspberry Pi :
Bleuette embarquant un Raspberry Pi

D'ici peu, je publierai un article expliquant toutes les caractéristiques de la carte d'extension pour Raspberry Pi.

Lundi, février 11 2013

Nouvelles avancées de Bleuette !

Bleuette marche

Pour commencer, voici une vidéo de Bleuette effectuant ses premiers mouvements :

Bleuette first step from hugo on Vimeo.

L'électronique

Le contrôle des servos de Bleuette (12 pour les pattes + 2 optionnels) se fait au travers d'une carte fille (shield) pour Arduino conçue pour ne pas être totalement dépendante de Bleuette, ainsi, vous pouvez parfaitement l'utiliser pour un tout autre projet.

Ses caractéristiques sont les suivantes :

  • Gestion parfaitement synchrones (voir en dessous) de 14 servos
  • Contrôle de la tension des servos
  • Contrôle du courant consommé par les servos
  • Port d'extension intégré (avec disponibilité de l'alimentation +5V et 4 entrées / sorties RA2 à RA5)

Parfaitement synchrone signifie que les impulsions à destination des servos commencent toutes au même moment avec un décalage très très faible, vous pouvez lire la documentation originale sur la carte.

Le pilotage des servos se fait en envoyant des trames de 17 octets contenant une entête, une commande et la position des servos + un checksum.

J'ai fait faire les PCB par Seeedstudio, qui fait de la très bonne qualité pour un prix très intéressant. La carte est simple à réaliser, la soudure du PIC18F452 nécessite tout de même un peu de doigté et un minium de matériel mais ça reste jouable avec du matériel amateur.

Voici une vue de la carte :
La carte électronique de Bleuette

Si vous souhaitez faire vous même la carte, rendez-vous sur cette page pour avoir la dernière version des fichiers Eagle : Pcb de Bleuette

Pour ceux qui souhaiteraient se procurer une carte (version 1.0.2), frais de port inclu pour la France métropolitaine :

  • La carte seul (sans composant) pour 6€, livraison en France
  • Le PIC18F452 programmé : 10€
  • Pour le kit complet, carte + composants soudé ou non, me contacter

Notez également que j'ai effectué des modifications récentes sur le schéma de principe et le PCB, elle est dorénavant en 1.2.1 (ajout d'un condensateur de découplage C9, des diodes zener D2 et D3 de protection sur les entrées analogiques, modification de l'interrupteur, ajout d'un pont SJ1 pour le reset).

Logiciel

La méca et l'électronique étant finies, j'ai pu attaquer le logiciel embarqué qui est de 2 sortes :

L'assembleur PIC

Rien de spécial à dire, il se trouve ici et comporte tout ce dont on a besoin pour piloter Bleuette et donc ne devrait plus vraiment évoluer...

Le code pour Arduino

Voici la structure :

Et nous avons 4 librairies :

  • Bleuette : C'est par ici que tout passe
  • Sequencer : C'est lui qui gère les sequences définies dans le fichiers sequences
  • ServoController : Pilote de la carte de contrôle de servos
  • SerialCommand : Librairie externe très pratique pour la gestion de commande via la liaison série.

Déplacer Bleuette

Pour faire bouger les pattes de Bleuette, c'est assez simple, commençons par un exemple :

bleuette.servo.set(0, 128);

Cela aura pour effet de positionner le servo 0 à sa position intermédiaire 128.

Si maintenant, on souhaite faire faire des pompes à Bleuette, on ne va pas répéter 24 fois la commande précédente pour positionner chaque patte, sinon, on ne va jamais s'en sortir ! Utilisons plutôt, une séquence :

Tout d'abord, déclarons une structure de type motion_t nommée motion_pushup :

// Push up
motion_t motion_pushup[] = {
    {
        DELAY_MIN, // Durée du déplacement courant
        {
            __, __, __, __, __, __, // Position des pattes horizontales
            UP, UP, UP, UP, UP, UP // Position des pattes verticales
        },
        NULL // Une callback qui sera appelée à chaque fin d'exéction de la position
    },
    {
        DELAY_MIN,
        {
            __, __, __, __, __, __,
            DOWN, DOWN, DOWN, DOWN, DOWN, DOWN
        },
        NULL
    }
};

Puis créons la séquence en elle même :

sequence_t seq_pushup = {
    "Push up",  // Le nom de la séquence
    2, // Le nombre de mouvement dans la séquence
    motion_pushup // La structure de déplacement que nous avons créé plus haut
};

Maintenant, nous n'avons plus qu'à appelé la séquence ainsi :

// Pour la jouer en avant
bleuette.sequencer.forward(sequences[seq]);

// Pour la jouer à l'envers
bleuette.sequencer.backward(sequences[seq]);

Voilà pour cette introduction rapide, je vous invite à regarder le code, il est vraiment simple...

Évolution en cours

La prochaine évolution de Bleuette lui donnera de vrais pieds qui lui permettront de moins glisser mais surtout, lui donnera le toucher au travers d'un petit interrupteur, ainsi, en posant une patte, il pourra s'assurer que le sol est bien en dessous...

Voici une vue de ses bouts de pattes :
Le bout de patte faisant office de capteur

La partie inférieure (la demi sphere et le cylindre extérieur) est mobile et glisse dans le cylindre plus petit dans lequel se trouve un interrupteur poussoir, c'est ce dernier qui fait office de rappel mécanique.

La partie en contact avec le sol (la demi-sphere sur l'image) sera en PLA Flex afin d'obtenir un maximum d'adhérence.

Ses 6 pattes devraient en être équipées, pour cela, un circuit intégré (4512) branché sur le port OPTION permettra de sélectionner la patte à lire via une adresse sur 3 bits, on occupera ainsi seulement 3 bits de sorties pour l'adressage + 1 bit de sortie pour connaitre l'état (patte posée ou non).

Évolutions futures

Bleuette devrait être équipé d'une liaison Bluetooth, d'un capteur magnétique afin de garder un cap lorsqu'il marche et enfin, d'une tourelle mobile avec un capteur ultrason pour détecter les obstacles devant lui et tout cela intégré dans une seconde carte fille.
Bleuette se sentant un peu à l'étroit avec Arduino, il n'est pas totalement exclu que je porte le code pour tourner sur un Raspberry Pi...

Et bien entendu, Bleuette attend impatiemment des frères et soeurs : toute contribution est la bienvenue !

Lundi, novembre 5 2012

Projet de robot Wifi – Torture d’un routeur TPLink MR3020

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.

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.

Le hub USB

 

La prise d’alimentation doit être retirée ainsi que les connecteurs USB afin de gagner de la place et du poids.

Hub usb / Alimentation

 

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.

µSD reader

 

Le lecteur peut alors être directement soudé sur le hub USB toujours dans l’idée de gagner de la place.

Le hub usb

 

Ensuite, on peut ré-assembler le lecteur et le coller sur le hub.

Le hub et le lecteur de µSD

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).

 

Antenne externe en J4

 

C’est tout petit et en zoomant ont voit bien mes gros pâtés !

 

Connexion de l’antenne externe

 

voilà le résultat avec le routeur dans son coffret d’origine.

Antenne externe et console série

 

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.

Le MR3020, son hub usb et la webcam

 

Voilà c’est tout pour les modifications matérielles. La suite concernera la recherche de GPIOs libres et la partie soft.

 

GPIO sur l’interrupteur de sélection du mode

 

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

 

Mercredi, octobre 10 2012

La carte électronique de Bleuette : Shield Bleuette

Pour ceux qui aurait raté les épisodes précédents, Bleuette est un robot hexapode (3 paires de pattes) entièrement libre (logiciel, plan, etc...) réalisable avec une imprimante 3D ou dans une moindre mesure et de la patience en découpant les pièces dans du Plexiglas. Concernant la carte fille, je viens d'arriver au bout de son routage et je vais... Lire La carte électronique de Bleuette : Shield Bleuette

Mardi, septembre 11 2012

Avancée de l'hexapode Bleuette

Voici un billet pour vous tenir informé des évolutions de Bleuette.

Les supports de pattes

Liste des modifications :

  1. Simplification du design des support de pattes, ils sont maintenant symétriques permettant d'avoir les même supports à gauche ou à droite du robot, cela à impliqué de devoir faire une seconde fente pour laisser passer le bras permettant de bouger la patte via un servo et de faire en sorte de pouvoir changer le guignol qui permet à la patte de tourner.
  2. L'avantage est que cela permettra aussi de changer le guignol si il casse ou encore de pouvoir faire des essais de longueur beaucoup plus facilement.
  3. Pour finir, les supports de servos ont été légèrement modifiés.

Vue de l'ancienne et de la nouvelle version :
Vue de comparaison entre l'ancienne version à gauche et la nouvelle à droite, voir texte pour les différences

Comparaison vue du dessous :
Comparaison vue de dessous

Vue d'un guignol, on aperçoit à droite la queue d'aronde qui permet de le glisser sous le support de servo afin de le bloquer :
Le guignol qui vient s'emboiter sous le support de servo

Le support de pattes monté avec le support de servo et le guignol :
Support de servo entièrement monté.

Le corps J'ai commencé à imprimer le corps un peu rapidement, comme expliqué dans un précédent article, le corps est trop grand pour la surface d'impression de l'imprimante 3D, il faut alors le découper en plusieurs parties et les réassembler, pour cela, j'ai réalisé une librairie de découpe en queue d'aronde afin d'avoir une liaison la plus... Lire Avancée de l'hexapode Bleuette

Lundi, août 6 2012

Le retour de l'hexapode Bleuette

...et cette fois ci, il n'est pas content !

Ce projet à pour but de fabriquer une bestiole à 6 pattes et de la faire marcher sans l'aide de quiconque. Pour certain d'entres vous, le nom “Bleuette” vous est peut être familier, en fait, c'est une féminisation de Bleuet, le robot de la série FX, Effet spéciaux, nous n'avons aucun rapport avec cette série mais on s'est dit que le pauvre Bleuet devait se sentir seul et qu'il faudrait lui fabriquer un congénère et puis tant qu'à faire femelle… :) extrait de la page du wiki sur Bleuette

Le projet s'est arrêté il y a quelques années faute d'avoir trouvé une solution robuste pour le pivot de chaque patte, sur notre prototype, il était réalisé en bois mais nous voulions une autre matière plus robuste. Le projet est bien sûr OpenSource / OpenHardware.

Une des première version de Bleuette

Plus d'informations sur la première version :

Le logiciel

De grosses modifications vont être faite sur la partie logiciel par rapport au plan initial, sur la première version de Bleuette, c'est une carte à base de PIC qui devait être développé from scratch et exécuter le noyau temps réel PICOS18 mais afin de simplifier la prise en main, une carte Arduino sera le cerveau de l'engin et une carte fille développée par mes soins en 2006 pour Bleuette sera utilisée pour piloter les 12 servos de manière parfaitement synchrone.

La nouvelle structure

Dans ses premières versions, Bleuette était réalisé en Plexiglas, découpé à la scie sauteuse et à la scie à chantourner, un vrai boulot, long et pénible avant de nous rendre compte des limites de cette matière : elle est cassante et se raye facilement.

Puis, nous avons pu faire découper gracieusement toutes les pièces (patte et corp) en Lexan par http://jegrave.fr/, merci Jean-Louis pour le boulot, cette matière est beaucoup plus solide, ne se casse pas et résiste incroyablement bien à la torsion mais nous n'avions toujours pas de réelle solution pour les supports de pattes autre que le bois...

Et depuis, plus rien, quelques années se sont écoulées et, depuis, l'impression 3D s'est considérablement développée, au point d'être devenue attractive pour les particuliers et intéressante pour un projet comme Bleuette, l'achat d'une l'Ultimaker à été guidé par l'arrière pensée de pouvoir enfin finir ce projet et là, plus aucun souci concernant le pivot : il sera comme toute le reste : en PLA.

Tous les plans de Bleuette ont été refait à l'aide de OpenSCAD, un dépôt GitHub à été créé à l'occasion pour partager tous les documents inérant à la fabrication du robot.

Le corps de Bleuette modélisé avec OpenSCAD
Le corps de Bleuette

Son corps étant trop grand pour être imprimé en une seule fois sur la surface de mon imprimante 3D, j'ai développé une librairie OpenSCAD qui permet de découper des pièces avec un motif en queue d'arronde (dovetail), ainsi, le corps sera réalisé en 3 tronçons qui seront emboités les uns aux autres et enfin définitivement bloqués à l'aide de tiges filetées.

Découpe en queue d'arronde du corps de Bleuette

La suite

Pour le moment, la dernière section (partie haute et basse) est imprimé, ça à pris environ 13h d'impression, j'imprime à 50mm/s pour avoir la meilleure qualité possible, 1 patte est fonctionnelle pour le moment, le design n'est pas figé encore, j'y apporte quelques corrections...

Avancement du moment avec le test de la cinématique du mouvement de la patte :
Test de la cinématique de la patte

Todo liste mécanique :

  • Correction des entretoises des pattes
  • Ajout d'un support pour une tête
  • Bout des pattes avec capteurs d'appuis

Restez connecté à Bleuette !

Il est possible de suivre l'avancée de Bleuette via différent moyen :

Samedi, avril 7 2012

[Arduino] BrossoGlisseur, le robot qui se déplace sur des brosses

Bonjour tout le monde !

Aujourd’hui je vous ai préparé un article qui, je l’espère, va en faire sourire plus d’un ;)
Un bon article avec de gros morceaux de « What the f*ck ! » dedans, et oui c’est samedi !

J’ai le plaisir de vous présenter : le brossoGlisseur !

Ceci est une révolution !

Bon concrètement qu’est ce que le brossoGlisseur ?
C’est un robot contrôlable à distance, jusque là rien de bien nouveau, mais qui utilise des balayettes comme moyen de propulsion.

Vous êtes sûrement en train de vous demander s’il s’agit d’un concept révolutionnaire ou d’un truc complètement dingue.
Ne cherchez pas c’est de la haute technologie moderne, même Apple n’aurait jamais imaginé un truc pareil :)

Le hardware est très simple :
- 2 balayettes (0.90€ pièces),
- 2 moteur à courant continu,
- une carte interface de puissance,
- une carte arduino,
- un module 433MHz.

Le principe :
En gros les moteurs font faire vibrer le bout des balayettes, ce qui a pour effet de générer une légère impulsion vers l’avant lorsque le poids accroché à l’axe du moteur descend puis remonte.
En faisant cela à une vitesse relativement élevée et en gérant indépendamment le moteur droite et le moteur gauche il est possible d’avancer ou de tourner.

Au niveau de l’interface de puissance j’ai ré-utilisé mon circuit à base de mosfet que j’avais réalisé pour un projet précédant.
Le schéma est disponible ici.

Les moteurs en eux même sont fixés avec de la colle chaude en mode « grosse brute ».
Tant qu’ils sont centrés tout va bien, après qu’il soit fixé avec des vis ou de la colle chaude … c’est juste une question de durabilité.

Pour contrôler tout ce petit monde j’utilise une seconde carte arduino avec un duo émetteur / récepteur 433MHz et la librairie VirtualWire.
Le contrôle des moteurs se fait avec l’axe X et Y du joystick.

Voici le code arduino pour les deux cartes :

Télécommande :

#include <VirtualWire.h>

#define MAX_SPEED 127 // Vitesse maximum (0 ~ 255)
#define MIDDLE_LIMIT 50 // Marge par rapport au centre du joystick

uint8_t buf[2];
int cal, balance, speed;
float bal1, bal2;

void setup() {
  pinMode(5, OUTPUT);
  pinMode(7, OUTPUT);
  digitalWrite(5, HIGH);
  digitalWrite(7, LOW); // Astuce pour utiliser le joystick sans câblage

  pinMode(A0, OUTPUT);
  pinMode(A4, OUTPUT);
  digitalWrite(A0, LOW);
  digitalWrite(A4, HIGH); // Astuce pour utiliser le module 433MHz sans câblage

  cal = analogRead(A2);

  vw_set_tx_pin(6);
  vw_setup(2000);
}

void loop() {
  balance = analogRead(A2);
  speed = analogRead(A3);

  balance -= cal;
  bal1 = (balance < -MIDDLE_LIMIT) ? -balance / cal : 1;
  bal2 = (balance > MIDDLE_LIMIT) ? balance / cal : 1;

  speed = map(speed, 0, 1023, MAX_SPEED, 0);

  buf[0] = speed * bal1;
  buf[1] = speed * bal2;

  vw_send(buf, 2);
  vw_wait_tx();
  delay(100);
}

Robot :

#include <VirtualWire.h>

uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;

void setup() {
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH); // Astuce pour utiliser le module 433MHz sans câblage

  vw_set_rx_pin(7);
  vw_setup(2000);
  vw_rx_start();
}

void loop() {
  if (vw_wait_rx_max(200))
    if (vw_get_message(buf, &buflen)) {
      analogWrite(3, buf[0]);
      analogWrite(11, buf[1]);
    }
}

Au niveau de l’alimentation je voulais utiliser une batterie de modélisme, mais j’ai malencontreusement perdu mon chargeur.
Du coup je n’ai pas pu l’utiliser.

A la place j’utilise mon alimentation d’atelier avec un fils de 5m de long, c’est pas du tout pratique, mais bon on fait avec ce qu’on a.

Et comme promis voici une vidéo de démonstration du robot en action.
Pour une fois j’ai fait cette vidéo en mode relâche. Il doit y avoir une bonne dizaine de « et m*rde … », c’est du grand n’importe quoi.
Je vous ai gardé que le meilleur :)

Héhé maintenant vous ne regarderez plus les balayettes de la même manière :)
Qui sait, si ça se trouve les voitures de demain seront propulsés par ce système … ou pas ^^

Enjoy :)


Classé dans:arduino, programmation, projet Tagged: arduino, madeinfr, robot, wtf

- page 1 de 2