Un deuxième étage pour Mecbot !

Posted in construction on juillet 20th, 2009 by Cyril

Bonjour !

Aujourd’hui, je vous présente la mise en place du 2ème étage du robot. Cet étage supportera la carte mère au format Mini-ITX ainsi qu’une partie de l’électronique. Il se compose d’un rond de plexiglas de dimensions identiques à la base, soutenu à bonne hauteur par des sections de tige filetée de diamètre 6mm. Pour faire joli, et éviter par la même occasion une multiplication d’écrous de réglage, les-dites tiges dont glissées dans des morceaux de tubes en aluminium de diamètre identique, précisément ajustés en hauteur, qui servent de – grandes – entretoises.

 

Voici en images, le montage de ce deuxième étage:

01 - Mesure et perçage
L’emplacement des 4 tiges filetées a été mesuré à l’aide d’un compas. J’ai ensuite maintenu les 2 plaques de plexi ensemble pour effectuer le perçage en 1 seule fois et assurer un bon centrage des trous.

 

02 - Decoupe des tiges et tubes
Après une découpe la plus précise possible et un ajustement à la lime, voisi les 4 ensembles tiges/tubes prêts à ête montés.

 

03 - Mise en place des tiges
Installation des tiges filetées maintenues par un écrou sous la plaque principale.

 

04 - Mise en place des tubes
Une rondelle est glissée sur la tige, puis un tube en aluminium, et enfin une 2ème rondelle.

 

05 - Installation deuxième etage
Il ne reste plus qu’à venir positionner l’étage supérieur qui se positionne parfaitement grâce au perçage simultané des deux plaques, et à venir fixer le tout avec 4 écrous.

 

Et voilà, une petite heure de travail à peine et un robot qui commence à ressembler à quelque chose !
Cette plate-forme va m’être très utile dans les jours et les semaines à venir, pour venir y poser/fixer plein de bidouilles électroniques, etc…, les tiges d’alu pouvant aussi servir à fixer des capteurs latéraux par exemple…

Stabilisation du robot

Posted in construction on juillet 14th, 2009 by Cyril

Pour assurer la stabilité d’un robot à deux roues motrices différentielles, une solution courante est d’utiliser une roue folle, ou une bille folle (ball-caster). Cependant, il y a quelques mois, j’ai vu passer un sujet sur le forum de planète-science ou certains avis penchaient plutôt pour une solution à base de patins en « Teflon » (PTFE). Cette solution a l’avantage dans mon cas de ne nécessiter qu’une très faible garde au sol pour pouvoir être installée, là ou les roulettes les plus fines nécessitent au moins 20 ou 25mm.

J’ai trouvé des patins de 4cm de diamètre chez casto-merlin pour quelques euros le lot de 4 et j’ai donc décidé de tester cette solution. Leur hauteur de 6mm n’étant pas suffisante pour stabiliser le robot à l’horizontale, j’ai prévu de placer une cale en plexiglas de 2mm en arc de cercle sur tout l’arrière du robot, sous le support de batterie. Les patins sont simplement collés sur ce support avec leur mousse autocollante double face d’origine, on verra bien le temps que ca tiendra comme ca!

Voici quelques photos du montage !

01_support_patins
Cette pièce de plexi sert de support aux patins en Teflon. Elle permet d’ajuster la hauteur des patins pour stabiliser le robot à l’horizontale

 

02_support_patins_fixe
Une fois fixé sous le robot, juste sous la batterie, la forme épouse parfaitement la courbe circulaire de la base. Sur cette photo, il reste un peu de ponçage à effectuer pour ajuster les deux bords.

 

03_patins_teflon
Voici les patins en que j’ai achetés: 40mm de diamètre, 6mm d’épaisseur, et une base en caoutchouc noire sur laquelle est fixée la surface de glissement en teflon

 

04_fixation_avec_support_batterie
Une fois le tout fixé, voici le résultat. Les patins sont positionnés au mieux pour supporter le poids de la batterie.

 

05_vue_profil
Vue de profil, on voit que le robot est bien horizontal. La garde au sol de 8mm du robot est très faible et je pense que ça finira par me poser problème pour passer des seuils de porte ou autres obstacles même très fins… Je me pencherais sur le problème si il se présente !!

 

Fabrication du support batterie

Posted in construction, mecanique on juillet 9th, 2009 by Cyril

Un des boulots urgents qui m’attendaient pour tester les déplacements du robot en conditions réelles était de fixer la batterie sur le robot à son emplacement prévu, derrière les blocs roue/moteur.

Pour rappel (et pour faire marrer certains), cette monstrueuse batterie au plomb de 12V/12Ah pèse 4kg et des poussières. Achetée précipitamment au début du projet, j’ai longuement hésité à réinvestir plus récemment dans quelque chose de plus léger et plus performant avant de ma raviser : cette grosse saleté est là, son recyclage coûtera cher à la planète sans compter le lithium ou autre métal rare que je serais susceptible de consommer, donc elle fera son boulot au moins dans un premier temps !

Je suis bien conscient que ce poids va fortement ralentir et modérer les accélérations du robot en comparaison à la vitesse que l’ont découvre sur ma première vidéo. En contrepartie d’une vitesse limitée, j’espère qu’avec ce poids les roues seront bien plaquées au sol et que le patinage sera ainsi réduit.

Un autre point très peu évoqué pour l’instant concerne la sécurité des personnes (et animaux) dans l’entourage du robot.
Je ne sais pas quel effet ca fait de se prendre un robot de 6-7kg lancé à pleine vitesse dans le gros orteil, mais à mon avis la couleur de celui-ci passerait rapidement du rose à quelque chose de beaucoup plus foncé !
En attendant d’avoir un système de sécurité active efficace (détection d’obstacles, etc…), et pour essayer de coller au mieux à la 1ère loi d’Asimov qui dit « Un robot ne peut porter atteinte à un être humain…etc », une vitesse réduite constituera une bonne solution pour éviter les accidents.

Le mieux étant encore de tester toutes ces hypothèses, j’ai profité de ce besoin de fixation de batterie pour expérimenter la découpe et le pliage de profilés d’aluminium ! J’aurais surement du faire un premier essai de fixation avec un truc temporaire à base de gros scotch ou de colliers de serrage mais non …comme à mon habitude, j’ai préféré consacrer presque 2 heures à pondre un truc compliqué à fabriquer.

 

La preuve en images avec les étapes de la fabrication:

01_mesure-profile-alu
Le support de batterie est donc constitué de profilé en aluminium en forme de L de section 15×15mm et de 1,5mm d’épaisseur. J’ai prévu d’y effectuer 2 pliages pour venir maintenir la batterie sur 3 côtés. La longueur découpée correspond donc à la somme des 3 cotés de la batterie (1 grand et 2 petits), à laquelle j’ai rajouté 2 x 3mm pour la courbure extérieure du rayon du pliage. (pi x 2 x 1,5 / 4 arrondi au mm supérieur)

 

02_tracage-angles-fausse-equerre
Pour réaliser un pliage à 90° dans un profilé en L, il est nécessaire de découper une encoche à angle droit dans une des faces. Une fausse équerre démontée est parfaite pour tracer 2 marques à 45° du bord

 

03_decoupe-angles
Une fois les angles tracés je les ai découpés, d’abord à la scie à métaux, puis fignolés à la mini-perceuse. Je me suis rendu compte par la suite que le rayon interne du pliage ne pouvant pas être nul, il fallait évider un peu plus de matière dans la pointe de l’angle pour pouvoir atteindre les 90° requis. En fait, par des ajustements successifs à la lime, je me suis rendu compte qu’il fallait même espacer les deux découpes à 45° pour « reculer » la pointe de l’angle à 90 dans la matière pliée.
OK ….cette explication est foireuse mais je la laisse quand même et si quelqu’un me le demande, je ferais un schéma.

 

04_pliage-angle-etau-1
Pour effectuer le pliage à la main le plus précisément et centré au mieux sur la découpe, j’ai utilisé mon petit étau pour bien fixer un des deux côtés, et l’angle à plier affleure juste de la prise de l’étau.
Sur ce deuxième pliage, j’ai anticipé les problèmes rencontrés lors de la première tentative, et j’ai tout de suite enlevé la petite section de métal évoquée ci-dessus.
Résultat: un pliage qui va jusqu’à 90° du premier coup, ce qui prouve bien que c’est en forgeant qu’on devient forgeron, même si c’est pas encore exactement ça …

 

05_pliage-angle-etau-2
A cause de l’élasticité de l’aluminium, il est impossible de faire tenir le pliage à 90° sans le maintenir en place. Pour faire ca, il faudrait évider non pas 90° mais au moins 100° dans le métal, pour pouvoir plier à 80° et compter sur le retour élastique pour avoir un beau 90° au final. MAIS (!!!), cette solution ne me plait pas car on verrait une fente de 10° une fois la pièce terminée. (encore un schéma si vous insistez)

 

06_support-termine
Voilà le support terminé avec la batterie posée dessus, comme elle le sera une fois sur le robot.
Le pliage se force sans problème à la main jusqu’à 90° des deux côtés de la batterie et sera donc maintenu en place par les vis de fixation sur le robot.

 

Cette activité (absolument indispensable !!) m’aura appris pas mal de choses dans le travail de l’alu et je me suis rendu compte que le pliage à la main est quelque chose de pas facile du tout… L’angle une fois terminé, on ne peut pas espérer mieux qu’un truc grossier de 3-4mm de rayon et il faut donc en tenir compte dans les mesures, les tracés, la position de la prise dans l’étau, etc…
Le résultat sur cette pièce me satisfait quand même malgré les imperfections, surtout que ce n’est pas une pièce qui nécessite une grande précision dans sa fabrication.

Parallèlement à cette fabrication j’ai commencé un support pour des patins de glissement sous le robot car les fixations à la base de plexiglas sont en partie communes. Il ne me reste qu’à préparer un post pour montrer ça.

A bientôt !

Retour de vacances !

Posted in divers on juillet 3rd, 2009 by Cyril

Après 2 semaines de vacances bien méritées me voici de retour, frais et dispo, pour la suite de la fabrication du robot.

Voici le programme pour les semaines à venir.
Certains point sont déja en cours mais n’ont pas été publiés, d’autres sont sur les starting-blocks:

  • Support de batterie : fixation de la batterie sur la base du robot à son emplacement « définitf ».
  • Patin de glissement : En association et sous le support de batterie, 2 patins en PTFE (Teflon) pour assurer la stabilité du robot.
  • Deuxième plateau : La deuxième galette de plexy va pouvoir prendre place au dessus de la première, pour supporter une partie de l’électrnique.
  • Chargeur de batterie : Intégration dans un vieu boitier d’alim ATX du charger réalisé il y a un petit moment.
  • Encodeurs rotatifs : Fixation – temporaire – des encodeurs directement sur les axes des roues pour faie les premiers esais d’asservissement

A très bientôt pour la suite !!

Tutoriel – Compilation du driver pour la carte U2C-12 Diolan

Posted in 3D, I2C, informatique, prix, tutoriel on mai 28th, 2009 by Cyril

Bonjour !

La carte d’interface I²C Diolan U2C-12 est fournie avec des pilotes pour Linux et windows. C’est à la compilation des premiers que nous allons nous intéresser aujourd’hui et des exemples d’utilisation suivront un peu plus tard.

La procédure qui suit décrit les différentes étapes de la compilation et de l’installation du driver. Les pré-requis sont d’avoir à sa disposition une distribution Linux fonctionnelle et récente (kernel 2.6 pour ma part) ainsi que tout les packages nécessaires à la compilation en C (gcc, binutils, libtool, autotools, etc…).Si ce n’est pas le cas, ou que vous ne vous êtes pas déja familiarisé avec ces concepts, je vous conseille de vous orienter vers des sites spécialisés comme par exemple les excellents tutoriaux de Léa-Linux ou du site Ubuntu-fr

La dernière version du driver, livrée avec quelques exemples de codes en C et C++, est téléchargeable à cette adresse : Driver U2C-12

Une fois l’archive .tar.gz téléchargée (dans /home/username par exemple), tapez les commandes suivantes dans votre console:

$ cd /usr/local/src
J’ai pris pour habitude de placer mes sources à compiler à cet endroit de mon système. Si ce n’est pas votre cas, vous avez surement de bonnes raisons et je vous laisse le soin de convertir les quelques références futures que je pourrais y faire.

$ tar zxvf /home/username/i2c_bridge-0.2.2.tar.gz

Principales options de tar :
- x (eXtract) extrait les fichiers d’une archive
- t (lisT) affiche la liste des fichiers d’une archive
- v (Verbose) active le mode verbeux (affichage des résultats)
- f (Force) forcer le remplacement de fichiers lors de l’extraction
- z (gZip) traite les fichiers avec gzip

$ cd i2c_bridge-0.2.2/
Pour entrer dans le répertoire d’installation

$ ./configure
Cette commande lance le script de configuration de pré-compilation. A ce stade, vous devrez lire et analyser les éventuelles erreurs retournées par ce script et les corriger, l’erreur la plus courante étant qu’une librairie nécéssaire est introuvable.
Si tout se passe bien et que la derrière ligne de log ressemble à ça: config.status: executing depfiles commands, alors vous pouvez lancer la compilation à proprement parler.

$ make
Make va lancer la compilation du driver et des autres fichiers nécéssaires ( programmes d’exemple dans notre cas).

$ sudo make install
Cette commande va installer la librairie partagée libi2cbrdg.so dans le répertoire par défaut /usr/local/lib/. Seul l’utilisateur root pour installer une librairie à cet endroit de vote système, c’est pourquoi nous devons utiliser sudo

Voilà, le driver est installé et une fois la carte Diolan connectée vous pouvez la tester très facilement en exécutant le programme de test /usr/local/src/i2c_bridge-0.2.2/u2c/tests/func_test.

Bon courage à tout ceux qui voudraient se lancer comme moi dans l’utilisation de cette carte; n’hésitez pas dans ce cas à me demander des conseils concernant l’utilisation du driver.

A bientôt pour des exemples de code !

Commande des moteurs

Posted in I2C, PIC, electronique, informatique on mai 27th, 2009 by Cyril

Hello !

Cela fait maintenant quelques semaines que j’ai repris la fabrication du robot, et après une grosse partie de mécanique enfin achevée, l’électronique avait besoin de progresser pour pouvoir faire rouler le robot et poursuivre son développement.

Bon, la commande de la vitesse et du sens de rotation des moteurs du robot est plus complexe qu’elle peut y paraitre au premier abord et il ne s’agit pas seulement de brancher les moteurs sur un gros potentiomètre avec un joli système d’inversion de polarité pour changer la direction!

Imaginé et conçu en détail depuis belle lurette,il ne manquait plus que la phase de réalisation et d’assemblage pour chacun des éléments suivants (du moteur vers la commande):
1 – Carte de puissance (Pont en H – L298)
2 – Carte de contrôle (Microcontroleur – PIC 18F2431)
3 – Contrôle informatique de la carte de contrôle (haha …)

1 – Carte de puissance
Le courant de puissance des moteurs passe par un pont en H, circuit classique pour commander de manière simple et efficace un moteur à courant continu. Cette carte reçoit en entrée les signaux logiques (5V) de gestion du sens de rotation, et le signal PWM pour varier la puissance.

puissance moteur
Carte de puissance en cours de test, connectée à la carte de contrôle des moteurs (en haut, fils blancs et jaunes) et à la partie puissance (vers le bas, alimentation a droite, moteur de test à gauche).

 

2 – Carte de contrôle

J’avais déjà pas mal travaillé sur la carte de contrôle moteur, celle ci ayant même eu le privilège d’être assemblée sur une plaque de pvc avec le programmateur de PIC, la carte d’interface USB/I²C Diolan, et un petit régulateur 5 volts. Cette implantation étant très pratique pour travailler et tester le code envoyé au PIC, tout est resté comme ça pour les phases de test.

La carte dans sa version actuelle sert simplement de « passerelle » pour les ordres venant du PC en direction de la carte de puissance, et ceux qui pensaient y trouver un contrôleur PID seront – pour l’instant – déçus. Le PIC est programmé en C (MCC18) dans l’IDE MaLab de Microchip.
Pour la partie du code qui s’occupe de la gestion des moteurs, la carte réagis à 6 commandes en provenance du bus I2C. Ces identifiants de commandes sont déclarés dans un ficher d’entête sous forme de constantes, communes au projet MCC18 pour le PIC et à l’interface développée en C++ côté informatique.

Voici les déclarations de commandes avec le code en hexadécimal qui leur est attribué:

#define I2C_SET_PWM1 0x10 //Valeur de la sortie PWM pour le moteur 1 (0-1023)
#define I2C_SET_SENS1 0x11 //Direction de rotation pour le moteur 1 (0-1)
#define I2C_SET_PWM2 0x18 //Valeur de la sortie PWM pour le moteur 2 (0-1023)
#define I2C_SET_SENS2 0x12 //Direction de rotation pour le moteur 2 (0-1)
#define I2C_SET_PWMS 0x20 //Valeur de la sortie PWM pour les deux moteurs (0-1023 / 0-1023)
#define I2C_SET_SENSS 0x21 //Direction de rotation pour pour les deux moteurs (0-1 / 0-1)

3 – Contrôle informatique

Le programme qui commande la carte moteur est développée en C++ sous CodeBlocks à l’aide des librairies graphiques wxWidget, associés au driver de la carte U2C de Diolan compilé sous forme de librairie partagée. Cette interface permet de communiquer avec les différentes cartes à base de PIC via le bus I²C (contrôle moteur, alimentation principale et carte d’interface générale), d’y envoyer des commandes et de lire des valeurs. Les fonctions développées dans cette interface seront par la suite regroupées au sein du driver Player (cf ce post décrivant le système : Contrôle informatique : Player, Stage et compagnie)

interface controle moteur
Interface de contrôle sous Linux

 

Une vidéo est en cours de préparation ou je présenterais une démo d’un moteur, piloté grâce à toutes cette chaine de commande.

A très bientôt pour la suite !

Tourelle webcam, précisions !

Posted in construction, mecanique on mai 27th, 2009 by Cyril

Voici quelques informations complémentaires concernant les dimensions de la tourelle pan/tilt décrite dans un post précédent (ici).

La tourelle mesure environ 9cm à son plus haut niveau, entre la base et le haut du bras d’orientation verticale en position haute. Sa longueur, avec le bras au maximum vers l’avant, est d’environ 8,5cm.

dimensions_tourelle
Vue de coté la tourelle. Devinez lequel des deux réglets a été photo-monté !! (je n’en ai qu’un en stock …)

Premiers tours de roue !

Posted in mecanique, videos on mai 15th, 2009 by Cyril

Comme une bonne nouvelle n’arrive jamais seule, je profite du déménagement du blog pour poster une première vidéo du robot (enfin de la base roulante toute simple) qui fait un petit trajet en ligne droite !

Voici la merveille ! ;-)

Changement d’url

Posted in divers on mai 4th, 2009 by Cyril

Le Blog a déménagé !

Convaincu par quelques lectures qu’il vallait mieux se débarasser des editeurs de blogs gratuits, j’ai décidé d’installer le renommé et puissant WordPress.

Une vraie merveille !

Pensez à mettre à jour vos signet et agrégateurs de news avec la nouvelle adresse !

http://mecbot.mecton.info

Fabrication de la carte d’alimentation

Posted in I2C, PIC, electronique on avril 21st, 2009 by Cyril

Hi, encore des news !

Il y a quelques semaines (mois…?), j’ai passé un peu de temps sur la fabrication de la carte d’alimentation du robot.

Cette carte ayant été conçue et décrite il y a déjà un bon moment, je met les 2 liens vers les articles correspondants mais je ne vais pas me ré-étendre sur les fonctionnalités de la carte :
Ici : Carte d’alimentation
et là : Carte d’alimentation – Suite

Le PBC avait été gravé en même temps que toutes les autres cartes, il y a plus d’un an, et attendait sagement de recevoir ses composants depuis tout ce temps.

Voici en photos, les étapes de la réalisation !!

Mise en place des straps

La première étape est la mise en place des – trop nombreux – straps de la carte.

Composants fins

On soude ensuite les composants sur la carte, généralement du plus petit au plus gros, ou du plus fin au plus épais comme vous préférez ;-)

Suite de la mise en place des composants…

La carte terminée

Voici la carte terminée. Le connecteur marqué « INT » est celui de l’interrupteur général du robot.

Autre vue de la carte

Sur cette dernière vue, vous pouvez voir de gauche à droite :

- le connecteurs I2C (communication avec la carte mère)
- le connecteur pour la programmation in-situ du microcontrôleur (ICSP)
- la masse générale ( – )
- l’alimentation externe pour l’alimentation en station (EXT)
- l’entrée du chargeur de batterie (BATT)
- les 2 bornes de la batterie (BATT + et -)

J’ai effectué quelques tests sur cette carte et écrit une ébauche de programme pour le PIC 16F819. Ma première impressions concernant la programmation est que je me suis planté en choisissant un pic de cette famille car du coup, je suis obligé de jongle entre 2 compilateurs (le reste de mes micro-contrôleurs sont des 18F).
Pour ce qui est des fonctionnalités principales, la conversion analogique/numérique des 3 tensions à l’air de se passer pas trop mal malgré quelques valeurs bizares et la communication 1²C fonctionne aussi à peu près.

Je ne détaillerais pas le code aujourd’hui mais comme tout le reste, vous pouvez le trouver sur le repository SVN de mon projet Sourceforge

Dans les jours qui viennent, j’espère trouver le temps pour terminer le couplage entre les moteurs et les roues de la base roulante du robot. Une fois que cette première partie mécanique sera terminée, je m’attaquerais à la carte de puissance des moteurs.

A bientôt !