Fabrication de la base roulante

Posted in construction, mecanique on avril 20th, 2009 by Cyril

Bonjour à tous !

Aujourd’hui, j’ai modélisé de manière complètement virtuelle et stérile le….mais non c’est une blague !! (Haha quel clown celui-là)

Tadaaaaammm !!!!

Eh non vous ne rêvez pas: voici du concret, du solide, du palpable, du qu’est lourd, du qui roule !!

En effet, ce weekend j’ai continué et bien avancé sur la fabrication des blocs moteurs du robot et de la base roulante, bien décidé à mettre un terme à ces trop nombreux mois de bidouille avec une découpe d’alu par-ci, un trou taraudé par-là …

Voilà sans plus attendre une photo du résultat final :

Oups désolé, ça c’est la modélisation…voilà les photos :



Alors bien sur, il reste quelques éléments à fabriquer et assembler mais le plus gros du boulot est fait et vous trouverez ci-dessous quelques photos commentées des étapes de fabrication. Cette fabrication a commencé il y a plus d’un an (je sais ça fait long) et je présente donc une première partie qui date de l’année dernière avant le travail de ce weekend.

1 – Fabrication des pièces en aluminium (Avril 2008, Fontenay)

Découpe des plaques d’aluminium

Les plaques principales des blocs moteurs ont été découpées à la scie sauteuse dans une plaque d’aluminium de 3m d’épaisseur. Travail long et fatigant pour les bras…
Qui a dit petite nature ?

Protections

Attention à toujours utiliser des protections lors de l’utilisation d’outils électriques : lunettes de sécurité et protection auditives !!

Finition des pièces d’aluminium

Une fois découpées le plus précisément possible à la scie sauteuse, la taille des 4 flancs des blocs moteur n’était malheureusement pas aussi précise que prévu. Une finition à la lime – les 4 plaques assemblées pour plus d’homogénéité – a été nécessaire.

Equerre de mécanicien

Voici un bel outil que j’avais acheté pour mettre toutes les chances de mon côté dans les tracés et reports de cotes : un plaisir à utiliser !

Report des mesures sur une plaque

La plaque présentant les cotes les plus précises (de l’ordre du 1/10mm) a été utilisée pour y marquer les emplacement des trous de fixation. Les 4 plaques seront percées en même temps, ce qui évitera la multiplications et la diversité des erreurs de mesure.

Perçage de pré-trous

Pour faciliter le centrage des trous avec ma perceuse a colonne de merde (jeu de plus d’1mm à la pointe du forêt), j’ai percé avec précision des trous de diamètre 1mm dans la première plaque.

Perçage des trous en 4mm

Une fois ré-assemblées en sandwich, le perçage définitif des 4 plaques a été bien facilité par les pré-trous faits dans la plaque du haut : le foret s’y engage sans problème et n’est pas tenté de dévier sous l’effet de la contrainte verticale.

2 – Usinage des pièces et montage (19 Avril 2009, Nantes)

Mon antre (aussi appelé une cave)

Voici tout d’abord un aperçu de l’espace que je me suis approprié dans ce nouvel appartement: une cave de plus de 10m²! Rien à voir avec ma planche sur 2 tréteaux dans la cuisine de mon ancien appart :-)

Duplication de la fixation moteur

Je suis désolé, il manque les photos de la première étape de mesure et de découpe des encoches de fixation pour les moto-réducteurs. Après un report des mesures le plus précis possible, j’ai percé une dentelle au forêt de 2mm tout autour de la découpe puis j’ai évidée la zone centrale à coup de lime.
Pour la 2ème plaque, j’ai décidé d’utiliser la première comme patron : technique très efficace et important gain de temps, si ce n’est un ripage avec un foret de 8mm lors de la 2ème passe qui a occasionné une belle entaille sur le bord de la découpe(pas très grave..)

Finitions de la découpe à la lime

La finition de la découpe se fait à la lime, en suivant la première plaque qui sert de guide.

Report du tracé sur la base

Cette base en plexiglas avant été fabriquée au tout début de mon projet …souvenez vous : Découpe de la base en plexi
J’y ai reporté les emplacements des trous pour la fixation des 2 blocs moteurs.

Fixation d’un bloc moteur

Une fois la plaque de base du robot perçée, on peut y fixer les blocs moteur. Chacun des deux blocs moteurs ont nécessite un ajustement à la lime d’environ 0,5mm d’un de leurs 4 trous de fixation.

Vue des vis de fixation par le dessous

Passages de roues

Après avoir vérifié l’alignement des 2 blocs moteur, j’ai reporté le tracé des encoches pour le passage des roues sur la base…

Découpe des encoches

…puis après avoir fait 2 gros trous de 8mm aux 2 coins opposés de chaque rectangle, j’ai évidé les zones à la scie sauteuse. Un petit coup de lime pour finir et c’est partait !

Axe de roulement

Ca, c’est la partie qui n’est pas terminée : les axes de roue, associés à un adaptateur de diamètre fabriqué maison, pour passer des 10mm de l’axe des roues aux 6mm des tiges en acier récupérés sur une photocopieuse.

La suite en photo, très bientôt !!

Contrôle informatique : Player, Stage et compagnie

Posted in informatique on mars 3rd, 2009 by Cyril

Une part importante du travail que j’ai effectué jusqu’à maintenant sur ce projet concerne la partie logicielle du robot. Comme je l’avais prévu et expliqué dans mes premiers posts (ici), le contrôle du robot est en effet confié en grande majorité à l’informatique embarquée.

Le cœur du système est constituée du serveur Player, exécuté dans un environnement linux (Ubuntu 8.04). Player est un serveur TCP-IP de contrôle robotique, distribué sous lience GNU. Son principe est de répondre aux requêtes d’un un client-contrôleur et de lui fournir toutes les méthodes utiles pour le contrôle des capteurs et actuateurs du robot. Pour sa configuration, Player utilise un fichier de qui définit les interfaces disponibles pour le contrôle du robot, et instancie pour chacune de ces interface les drivers nécessaires en décrivant leurs propriétés et leurs méthodes d’accès au matériel.

Le client quant à lui se contentera de se connecter au serveur, de récupérer la liste des interfaces disponibles, et de travailler avec pour déplacer le robot, lire les capteurs, etc…

Exemple de code client en java tiré de mes premières expériences:

robot = new PlayerClient (« localhost », 6665);

posi = robot.requestInterfacePosition2D (0, PlayerConstants.PLAYER_OPEN_MODE);

if (frontSide <= MAX_WALL_THRESHOLD ) {

    posi.setSpeed (0, 0);

}

Bon, tout ceci n’est pas forcement évident comme fonctionnement au début mais ce principe de séparer l’interfaçage du matériel et le logiciel de commande est très puissant et vraiment très souple!

Concrètement, l’écriture du driver (qui se fait en C++) est commencée et j’ai utilisé Stage, l’indispensable complément de Player, pour simuler des petits bouts de code en Java (suivi de mur, déplacement aléatoire, etc…)

La suite du développement côté contrôleur se fera en Python, pour plein de bonnes raisons que je n’ai pas le temps de développer ici pour l’instant. (Player est fourni de base avec des « Python-bindings)

A bientôt pour des exemples de code !

Essais I2C et contrôle moteur

Posted in electronique, I2C, PIC on mars 3rd, 2009 by Cyril

Hop, reprise effectuée avec succès !

La carte de contrôle des moteurs qui me posait tant de problèmes est enfin domptée, il ne me reste que quelques résistances cms de pull up à souder pour qu’elle soit totalement fonctionnelle.

Comme elle n’a pas encore été décrites dans ces colonnes, voici un topo sur son cas:

Cette carte très simple est architecturée autour d’un PIC 18F2431 de Microchip. Vous trouverez la datasheet de ce composant sur sa page produit mais voici quelques unes des caractéristiques qui m’ont fait le choisir:
- Un module SSP (port de communication I²C)
- Jusqu’à 6 sorties PWM (Pulse Width Modulation), pratiques pour le contrôle des moteurs du robot (4 utilisées)
- Un module « MotionFeedback » qui peut se charger du décodage d’un encodeur en quadrature
- Pas mal d’autres IO qui compléteront les fonctionnalités de la carte en assurant par exemple le comptage du 2ème décodeur, etc….

Grâce à ce petit microcontroleur de 28 broches, la carte remplira donc les fonctions suivantes:
- Contrôle de la distance effectuée, de la vitesse et du sens de rotation des 2 moteurs de propulsion grâce aux 2 encodeurs incrémentiels
- Stockage et mise à disposition de ces informations via le bus I²C
- Asservissement en vitesse (position ..?) des moteurs en fonction des commandes de position reçue.
- Communication avec le PC maître, via la carte U2C-12 de Diolan

Voici le schéma électronique de la carte:Dans un prochain post, je montrerais la réalisation de la carte et les premiers pas de son utilisation.

A bientôt !

Reprise !

Posted in divers on février 11th, 2009 by Cyril

Bonjour à toutes et à tous !!

Allez, un petit coup de pied au cul, on dépoussière les cartes électroniques et les neurones dédiés à la robotique et on s’y remet !!

Il faut dire que la 2ème moitiée de l’année 2008 a été particulièrement chargée pour moi (déménagement sur Nantes, etc…), et que les problèmes électroniques à répétition que je rencontrais lorsque je trouvais 1 heures à consacrer au robot me décourageaient profondément.

Bien décidé à en découdre avec la gestion de l’I²C des microcontrôleurs, j’ai été demander de l’aide sur Planète Science et je suis confiant quant à la résolution des problèmes !!

A bientôt !

Hibernation estivale :-)

Posted in divers on août 5th, 2008 by Cyril

Hello !!

Juste un petit message pour vous dire que je ne suis pas mort, et que le projet non plus, même s’il est actuellement dans une phase de repos (profonde hibernation même) pour cause de vacances, flemme, chaleur, weekends qui n’en finissent plus…etc…!!
J’espère avoir le temps d’avancer et de réécrire quelques nouvelles d’ici peu.

A bientôt !

Plate-forme d’expérimentation pour carte moteurs

Posted in construction, electronique, PIC on mai 9th, 2008 by Cyril

Hello !

Hier après midi j’ai décidé que de passer ne serai-ce que 5 minutes à sortir 4 cartes différentes, tout brancher etc… pour pouvoir expérimenter et développer sur ma carte de contrôle moteurs ne pouvais plus durer !

J’ai très rapidement fabriqué une platine en PVC pour fixer tout ce bazar et n’avoir ainsi qu’à brancher mes deux prises USB et la batterie pour pouvoir faire joujou.

Voici quelques photos du bidule:

Préparation de la plaque (mesures ultra-précises des emplacements de fixation par la technique dite du crayon-dans-les-trous-des-cartes)

Voici la plate-forme terminée avec toutes les cartes fixées dessus et les différents branchements faits.
Détail de la carte en cours d’expérimentation.

Je viens de me rendre compte que je n’avais pas encore décrit cette carte ni publié les schémas et typons ailleurs que sur sourceforge… cet oubli sera réparé dans les prochains jours si je trouve un peu de temps.

A bientôt!

Quelques vues 3D

Posted in 3D, etude on mai 5th, 2008 by Cyril

Hello

Ça faisait un bon moment que je n’avais avancé sur la modélisation 3D du robot et il y a quelques jours, je voulais vérifier la faisabilité de certaines idées avant de me lancer dans la mécanique des blocs de propulsion.Voilà donc une belle mise a jour du projet et quelques images pour vous !

Voici une vue générale du robot sur laquelle ont peut voir:
- les deux blocs de propulsion
- la batterie à l’arrière (qui dépasse un peu du périmètre)
- la carte d’alimentation (au dessus des moteurs)
- la carte de contrôle moteur
- trois capteurs Proxir modélisés par mes soins (sur les 5 prévus pour l’instant)

Sur cette vue simplifiée, on distingue les détails du système de propulsion avec les deux engrenages.
La même chose en vue du dessus…

… et en vue éclatée.
On remarquera que les vis n’apparaissent pas sur ces différentes images.

Vous pouvez, comme pour tout contenu concernant Mecbot, télécharger l’ensemble des fichiers depuis le CVS de mon projet sourceforge. (cf ce post)

A bientôt, Cyril.

Tourelle pan/tilt pour webcam – EasyRobotics

Posted in construction, electronique, mecanique on avril 28th, 2008 by Cyril

Histoire de mettre un peu la charrue avant les bœufs, et avant d’avoir un robot en ordre de marche, j’ai commandé tout le nécessaire à la fabrication d’une tourelle orientable pour la(les) webcam(s) du robot.

La webcam pourra être orientée selon deux axes :
- gauche / droite
- haut / bas

La partie mécanique sera constitué de deux servo-moteurs, un par axe de rotation, montés dans des supports adaptés. Les servos utilisés sont des machins premier prix (5€) qui ont ont été achetés « en prévision » lors d’une commande chez Conrad.

En revanche, tout le système de montage des servos, la fixation des axes de rotation, et plus généralement toutes les pièces mécaniques de la tourelle, proviennent de la société EasyRobotics.
J’ai commandé jeudi dernier un ensemble de pièces pour fabriquer la tourelle et après une expédition vendredi, j’ai reçu les pièces ce matin, lundi. Entre temps, une personne m’a contacté pour me donner des indications sur le suivi de ma commande et j’ai pu lui poser des questions qui ont reçu des réponses avec beaucoup de réactivité.
Bref, beaucoup de sérieux et ça mérite d’être signalé;-)

Le système de tourelle, une fois monté, ressemblera à ça et vous trouverez un guide de montage (que je n’ai pas pris la peine de suivre… rhooo !) en bas de page:
Tourelle pan/tilt

Allez, assez parlé et place à une petite séance photos (qui n’a pas la prétention d’être un guide de montage !!)

Voici l’ensemble des pièces commandées chez EasyRobotics…
…et les deux servos
Le servo de base (rotation droite/gauche) est fixé dans sa cage
La cage du servo supérieur (rotation haut/bas) est équipée d’une plaque latérale qui supporte un palonier pour entrer en rotation avec le premier servo, ainsi que d’un axe pour la rotation de la fourche (non visible ici car derrière en face de l’axe du servo).
Notons que le servo devra être démonté pour fixer le palonier au servo de base.
Le bloc supérieur est fixé au bloc inferieur en retirant le servo pour accéder à la vis du palonier.
Il ne reste plus qu’à insérer délicatement la fourche équipée d’un palonier entre l’axe métalique et l’axe du servo, et de visser le tout des deux cotés.
Voici la tourelle une fois terminée !

L’étape suivante est le démontage de la webcam prévue pour le robot et la fixation de la partie capteur/electronique sur la fourche de la tourelle.
Dès que possible, j’écrirais un petit programme pour faire une vidéo de démonstration en fonctionnement.
Je répondrais comme d’habitude avec plaisir à vos questions ou commentaires concernant cette réalisation, n’hésitez pas à me faire part de vos remarques !

Carte Diolan U2C-12

Posted in electronique, I2C on avril 27th, 2008 by Cyril

Hello !

Je vais m’attarder un peu sur l’élément principal de l’électronique de mon robot : la carte interface USB <-> I²C.
Vous l’avez déjà aperçu rapidement sur le schéma électrique général que j’avais publié en juillet 2007 mais voici aujourd’hui une description de cette carte.

La carte est une U2C-12 fabriquée par Diolan.


Elle dispose des caractéristiques suivantes:
- Connectée et auto-alimentée sur un port USB 2 (compatible 1.1 et 1).
- Compatible Win, Linux et MacOs
- Drivers écrits en C et code source accessible et modifiable
- Interface I²C maitre en mode rapide ( 400kBit/s ) ou personnalisable de 2kBit/s à 100kBit/s
- Gestion des transactions I²C (paquet de trames)
- Commandes I²C intégrées sur 3 niveaux ( niveau paquet, niveau commande (Read/Write, Start/Stop/Ack) ou niveau ligne (SDA et SCL))

En plus du port I²C, la carte propose quelques petits trucs sympas en complément:
- Interface SPI Full duplex
- 23 lignes d’I/O compatibles 3,3V et 5v

Il ne manque que des entrées analogiques et des triggers sur les IO pour en faire le produit parfait :-)

Un exemple d’utilisation avec les IO sera mis en ligne bientôt (récupération des données de 2 capteurs infra-rouges PROXIR)

Fabrication de câblages

Posted in construction, electronique on avril 14th, 2008 by Cyril

Bonjour !!

Le weekend dernier, j’ai passé un peu de temps à câbler quelques éléments du robot:

- Installation de connecteurs de modelisme TAMIYA sur les deux moteurs ainsi qu’aux bornes de la batterie.
- Fabrication d’un câble pour l’alimentation générale (carte d’alim)
- Sertissage de 3 cables RJ12 pour le bus I²C
- Soudage des cartes Hub I²C, Interface Diolan et Interface Proxir

Voici quelques photos de ces réalisation :

Câblage des connecteurs TAMIYA sur les moteurs
Les deux moteurs terminés
La batterie reçoit également un connecteur
Fabrication du câble d’alimentation principal
Une fois terminé, tout de vert vêtu !!

Fabrication de la carte d’interface pour les capteurs de proximité IR « PROXIR »