Posts | Comments

Planet Arduino

Archive for the ‘Bot’ Category

It’s common knowledge that tapping a wine glass produces a pitch which can be altered by adjusting the level of the tipple of choice inside. By filling twelve glasses with different amounts of liquid and tuning them to the twelve notes of the scale, it’s possible to make a one-octave instrument – though the speed and polyphony are bottle-necked by the human operator. If you think it sounds like a ripe project for automation, you’re correct: [Bitluni’s lab] has done what needed to be done, and created a MIDI instrument which plays the glasses using mallets.

Electronically it’s a simple build – some 12 V solenoids driven by MOSFETs, with an Arduino in charge. For the mechanical build, a 3D printer proved very useful, as each mallet could be made identical, ensuring a consistent tone across all glasses. Rubber covers printed in flexible filament were fitted to reduce the overtones and produce a clearer sound. [Bitluni] also utilised different types of glasses for the low and high pitches, which also helped to improve the clarity of the tone.

MIDI is of course the perfect protocol for this application; simple, lightweight and incredibly widely used, it’s the hacker’s delight for projects like this. The instrument can perform pre-programmed sequences, or be played live with a MIDI controller. Both of these are shown in the video after the break – stick around for a unique rendition of Flight Of The Bumblebee. For a more compact wine glass based music creation solution, we recommend this nifty project, which alters pitch using a water balloon raised and lowered into the glass by a servo. 

Instructables user [Team_Panic] — inspired by the resurgence of robot battle arena shows — wanted to dive in to his local ‘bot building club. Being that they fight at the UK ant weight scale with a cap of 150 grams, [Team_Panic] built a spunky little Arduino Mini-controlled bot on the cheap.

The Instructable is aimed at beginners, and so is peppered with sound advice. For instance, [Team_Panic] advises building from “the weapon out” as that dictates how the rest of the robot will come together around it. There are also some simple design considerations on wiring and circuit boards considering the robot in question will take a few hits, as well as instructions to bring the robot together. To assist any beginners in the audience, [Team_Panic] has provided his design for a simple, “slightly crude,” wedge-bot, as well as his code. Just don’t forget to change the radio pipe so you aren’t interfering with other bots!

Arduino Wedge Bot OpenArduino Wedge Bot Controller[Team_Panic] concludes by urging any prospective roboteers to pay attention to the rules and regulations of their local robo battle clubs and have fun! He really pump up the robot battle community — and we’re hard-pressed to argue with such helpful enthusiasm. Meanwhile, the world is still waiting for the epic, giant robo-showdown of the century.


Filed under: 3d Printer hacks, Arduino Hacks, robots hacks

[Sergey Mironov] sent in his SelfieBot project. His company, Endurance Robots, sells a commercial version of the bot, which leads us to believe that in a strange and maybe brilliant move he decided to just sell the prototype stage of the product development as a kit. Since he also gave away the firmware, STLs, BOM, and made a guide so anyone can build it, we’re not complaining.

The bot is simple enough. Nicely housed hobby servos in a 3D printed case take care of the pan and tilt of the camera. The base of the bot encloses the electronics, which are an Arduino nano, a Bluetooth module, and the support electronics for power and motor driving.

To perform the face tracking, the build assumes you have a second phone. This is silly, but isn’t so unreasonable. Most people who’ve had a smart phone for a few years have a spare one living in a drawer as back-up. One phone runs the face tracking software and points the bot, via Bluetooth, towards the user. The other phone records the video.

The bot is pretty jumpy in the example video, but this can be taken care of with better motors. For a proof-of-concept, it works. A video of it in action after the break.

The HackadayPrize2016 is Sponsored by:

Filed under: Arduino Hacks, Cellphone Hacks, robots hacks, The Hackaday Prize
Feb
11

Nouvelles avancées de Bleuette !

arduino, Bleuette, Bot, diy, hexapod, hexapode, planet, RaspberryPi, Robot, Robotique, Ultimaker Commenti disabilitati su 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 !

Ago
06

Le retour de l’hexapode Bleuette

3d, arduino, Bleuette, Bot, diy, hexapode, openscad, planet, Robot, Robotique, Ultimaker Commenti disabilitati su 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 :

Apr
24

Making the Mood Lamp Chat.

arduino, Bot, Chat, Electronics, ikea, inter process communication, ipc, Jabber, lamp, mood, PERL, PHP, Programming, socket, unix, XMPP Commenti disabilitati su Making the Mood Lamp Chat. 

I’ve been busy since I last spoke about my lamp.  I’ve added code to put the lamp into various modes – so far I’ve implemented modes for ‘white’ (needs some calibration), randomly changing colours, randomly fading in and out with random colours, and of course just off. Modes are changed by sending characters to the …


  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook