!! Demenagement du site !! => http://smartrobotics.org/blog

A la suite de la coupe de France de robotique 2012, j’ai décidé de faire peau neuve au site internet et de changer d’adresse.

.

.

.

Voici donc la nouvelle adresse :  http://smartrobotics.org/blog

.

.

.

.

Tutorial : Ajouter un ascenseur à son robot.

Je vais vous présenter une petite astuce si jamais vous avez besoin de créer un “ascenseur” pour votre robot pour par exemple soulever un objet ou autre. ^^
Ceci est plutôt réservé à des robots de taille moyenne ou grosse (plus de 30/40cm de haut).

Une première solution pour soulever un object est de faire un bras articulé, mais c’est assez compliqué à mettre en oeuvre. Ici la méthode proposée est beaucoup plus simple et peu chère (et les composants sont simple à trouver).

La solution consiste à utiliser une glissière à roulement à billes de tirroir trouvable pour pas cher dans le magasin ou il y a tout ce qu’il faut (on va pas faire de pub :P) pour seulement 6 – 10 euros la paire suivant la longueur.
Il vous faudra ensuite un moteur a courant continu et du fil (ou une courroie et une poulie pour une version plus évoluée).

Voici donc l’objet en question :

Il faut donc fixer une glissière de chaque coté de votre robot, bien en face l’une de l’autre.
Sur cette photo il y a bien les deux glissières :

Ensuite il vous faudra fixer votre “portique” avec la pince ou ce que vous voulez pour attraper vos objets (pince, aspiration, scotch double face :P…). Un autre avantage de ces glissieres est qu’elles possedent pas mal de petits trous pour fixer facilement le portique.

Une fois le tout attaché ensemble, il ne reste plus qu’a monter le moteur au dessus des glissiere, de fixer le cable au moteur et au portique, et le tour est joué, lorsque le moteur tournera il fera monter le portique. Normalement avec le poids du portique, lorsque le moteur tournera dans l’autre sens, le portique retombera par gravité.

Une solution un peu plus complexe est de mettre une courroie et une poulie pour soulever et descendre le portique.

Voila, vous savez maintenant comment simplement faire un petit ascenseur sur votre robot pour soulever des objets, et tout ceci sans un budget trop élevé et avec une mécanique et une commande simple.

Une petite vidéo pour finir (utilisation des glissieres avec une courroie)

Tutorial : Transformer un servomoteur en capteur de position

Étant donné qu’un servomoteur contient un asservissement de position à l’intérieur de lui, il était donc logique que l’on puisse lire cette position même depuis l’extérieur.

Voici comment récupérer la position de votre servomoteur en ne soudant uniquement qu’un fil.

– Tout d’abord, ouvrez votre servomoteur (En général il y a 4 vis a enlever au dos du servo)
– Ensuite, soudez le fil comme mentionné sur cette image :
(Il faut souder sur le point du milieu)

C’est un peu diffèrent sur les servo HITEC, par exemple sur un HS-422 il faut enlever la petite carte a l’intérieur du servomoteur et souder sur l’autre face :

Vous pouvez ensuite proprement remettre la petite carte en place :

Une fois la soudure faite, il ne vous reste plus qu’a connecter le fil sur votre entrée analogique préférée 😉
La tension de sortie sera proportionnelle à la position du servo-moteur.

Par exemple dans un de mes projets, j’ai connecté la sortie du servomoteur à l’entrée analogique de la carte SSC-32.

Vous pouvez voir sur l’image ci-dessous les 4 ports ADC de la carte SSC-32 entourés en rouge. (A,B,C,D)

Après il suffit d’envoyer au SSC-32 les commandes du type : “VA ” ce qui renvoi la valeur lue sur l’entrée analogique.
Etant donné qu’il y a 4 entrées analogiques, vous pouvez utiliser les commandes “VA VB VC VD” au choix.

Voici un exemple de lecture en JAVA, mais qui pourrait être utilisé dans n’importe quel langage :

Code : Java
/* Read VA */
serialcom.writeByte((byte)'V');
serialcom.writeByte((byte)'A');
serialcom.writeByte((byte)13);

va = serialcom.readByte();
System.out.println("VA = " + va);

Vous pouvez maintenant utiliser vos servomoteurs à la fois comme moteurs, mais aussi comme capteur de position.

Tutorial : HC-SR04

Bonjour

Quitte à utiliser un capteur et faire des tests pour voir comment l’utiliser, autant publier ces tests afin qu’ils puissent servir à d’autres.

Nous allons donc voir comment brancher, utiliser ce capteur, mais avant tout, nous devons savoir que je HC-SR04 est un capteur ultrason facilement utilisable avec les cartes Arduino.

En fait pour çetre franc, c’est la copie Tawanaise du SRF04 de Devantech. Il est donné par son constructeur pour travailler entre 3 Cm et 3m.

Mais (en tout cas la copie que je test) n’est reelement precis que de 3 Cm à 2 m.

Son cone est assez large ce qui fait qu’il est facilement perturbé par des objets ou des murs qui ne sont normalement pas dans son champs de travail. Il est donc préférable de l’utiliser pour des applications de détections assez proches.

Vous trouverez ICI un comparatif des différents Sonars Devantech

Coté agréable de ce clone, il fonctionne tres bien avec la biblioteque du Sonar SRF04. Il est donc très simple à mettre en ouvre.

Le câblage

http://imageshack.us/photo/my-images/254/shema2l.jpg

Pour ce montage, j’utilise une Arduino Nano pour le rendre portable. Mais in est bien sur tres simple de transposer ce Shéma pour une Ono ou un Mega.

Seule difference notoire, le Bus I2C

Analogique A4 SDA et A5 SCL sont les Pins à utiliser pour la Nano et la Uno

Les Pins pour la Mega sont  20 SDA et 21 SCL

Pour rendre cet exemple portable je fais l’affichage sur un écran LCD I2C Mais vous pouvez bien sur utiliser l’affichage sur le serial monitor de votre PC ou un autre modèle d’afficheur. Vous devrez bien sur adapter ce code en fonction de votre choix.

Les bibliothèques utilisées sur cet exemples sont :

Wire.h Pour l’I2C

CLCD.h pour le LCD I2C (Cette Lib a été ecrite par Julien (Luj) de Pobot)  Voir l’article qu’il a fait a ce sujet

Ultrasonic.h pour le capteur

Le code

#include "Ultrasonic.h"
#include <Wire.h>
#include "CLCD.h"
RTC_Millis RTC;
CLCD lcd(0x00,16,2);
int pingPin = 13;
int inPin = 12;

void setup() {
lcd.clear();             // Effacer le LCD
lcd.backlight();             // Allumer le backlight du LCD
Serial.begin(57600);
Serial.println("testing...");
}

void loop() {
long duration, inches, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
pinMode(inPin, INPUT);
duration = pulseIn(inPin, HIGH);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
lcd.setCursor(0,0);
lcd.print("Inch: ");
lcd.print(inches);
lcd.print("            ");
lcd.setCursor(0,0);
lcd.setCursor(1,0);
lcd.print("Cm: ");
lcd.print(cm);
lcd.print("            ");
delay(100);
}
long microsecondsToInches(long microseconds)
{
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}

Quelques photos du montage
https://i0.wp.com/img843.imageshack.us/img843/6168/photo221111161338.jpg

http://img408.imageshack.us/img408/2617/photo221111161344.th.jpg

http://img638.imageshack.us/img638/9035/photo221111161355.th.jpg

http://img12.imageshack.us/img12/8092/photo221111161404.th.jpg

http://img5.imageshack.us/img5/8228/photo221111161413.th.jpg

http://img411.imageshack.us/img411/5893/photo221111161518.th.jpg

Voila

J’espère que ça vous a intéressé.

A bientôt pour un autre Tuto 😉

Yves