Un robot simple à construire





Besoin de vous familiariser avec la robotique?
Heres un tutoriel étape par étape sur la façon de faire de votre
premier robot en utilisant Arduino, une plateforme de développement open
source. PS:
La méthode utilisée pour la construction du châssis est juste un
exemple et un moyen rapide pour faire un robot.You peut utiliser
n'importe quelle conception pour le robot et aussi des matériaux pour le
montage de l'imagination de parts.Your est la limite.
Maintenant passons à commencer
Matériel nécessaire

1 x Arduino Uno / duemilanove.

L'Arduino Uno est une carte microcontrôleur basé sur le ATmega328.You peut lire plus de détails ici .

1 x servo standard


Servos sont essentiellement des moteurs à courant continu avec retour
de position qui signifie que vous pouvez dire le microcontrôleur grâce à
votre code pour déplacer le servo à la position.In Arduino souhaité un
servo standard peut être déplacé entre 0 à 180 degré et 90 est le centre
servo (logique) . plupart des servomoteurs courent joyeusement entre
4.8V à 6V.Supplying plus de 6V peut endommager votre servo.
Servo a trois fils ieBrown, rouge, jaune ou la couleur peut-être noir, rouge, blanc.
Brown ou d'un fil noir doit être relié à la masse du microcontrôleur.
Le fil rouge doit être connecté à Vcc (4,8 V à 6V).
Fil jaune ou blanche doit être connecté à la sortie numérique du microcontrôleur et qui est appelé fil de signal.

1 x Planche à pain

Demi maquette grandeur est suffisant pour ce robot

fils de calibre ou masculins aux fils des cavaliers masculins


Pour effectuer les raccordements sur la planche à pain vous aurez
besoin soit de fils de calibre ou masculin aux fils des cavaliers
masculins.

Votre meilleure affaire serait fil de calibre car il est disponible
dans l'électronique locale / Fermette shop.Male à fils volants mâles
sont parfois difficiles à trouver.

1 x pilote de moteur L293D


L293D est une puce 16 de la broche et est un pilote de moteur populaire
qui peut être utilisée pour de petits moteurs qui n'ont courant de
sortie faible.

2 X Plastic motoréducteurs


Motoréducteurs en plastique sont très légers, de petite taille et
facile à moteurs mount.The sont disponibles dans de nombreux RPM (tours
par minute). Vous pouvez acheter le moteur entre 60 à 100 RPM pour cette
robot.The plus le RPM, la plus grande volonté le couple (n'a pas
beaucoup d'importance pour ce robot).

2 x Roues compatibles avec les moteurs à engrenages en plastique


Vous obtiendrez deux vis avec ces deux wheels.Those vis sont utilisées
pour fixer les roues aux moteurs à engrenages en plastique.

1 Roulette x


1 X Forte GP2D12 capteur de distance analogique.


Le capteur se compose de deux yeux de eyes.One envoie la lumière
infrarouge et l'autre œil voit le reflet de cette lumière infrarouge et
mesure la distance qui est ensuite envoyé au microcontrôleur via
l'entrée analogique pour effectuer d'autres opérations sur la base de la
distance (les opérations doivent être défini dans le code).
Il est possible que vous ne pouvez pas obtenir GP2D12 possibilité model.Another est GP2Y0A02YK pointu.
La seule différence entre les deux modèles est la gamme de mesure de distance.
GP2D12 mesure la distance de 10cm à 80 cm.
GP2Y0A02YK mesure la distance de 20cm à 150cm.
Il ya aussi GP2D120 (je crois qu'il est interrompue) qui mesurent la distance de 4 cm à 30 cm
Assurez-vous que vous obtenez un connecteur à 3 broches JST avec ces capteurs pour un interfaçage aisé.
Il ya trois fils venant du sensor.ieRed, Noir adn blanc ou il peut être rouge, brun et jaune.
Rouge est connecté à 5V Arduino.
Noir ou brun au sol de Arduino.
Blanc ou jaune à la broche d'entrée analogique du Arduino en l'occurrence à la broche analogique 0.

Batteries

Arduino lui-même doit 9V (recommandé). Donc, il est préférable d'utiliser deux batteries différentes.
1 x 9V PP3 pour Arduino et 4 piles AA soit 6V pour les moteurs et servo.
Assurez-vous que vous achetez des piles de bonne qualité comme Duracell ou plus.

1 x 4 AA Battery Holder


2 Connecteur de la batterie x


Un connecteur de la batterie devrait avoir une fiche DC à la fin de
sorte qu'il peut être directement branché à la prise DC de arduino.The
prise CC peut être acheté dans n'importe quel magasin d'électronique
local facilement.

1 feuille acrylique x


Cette feuille acrylique sera utilisé comme base.It robot n'est pas
nécessaire que vous devez utiliser un sheet.You acrylique peut utiliser
du contreplaqué, aluminium, etc.mais essayer d'utiliser l'acrylique
comme il est facile de cut.Use un hack - scie pour couper la plaque
acrylique.

J'ai utilisé une feuille grand acrylique pour la base du robot à cause
de la planche à pain soit pour la facilité de placer des pièces.

1 x câble USB

Le croquis (code) va être téléchargé à l'Arduino avec ce cordon USB du PC.

1 x ruban adhésif double face


Nous ne serons pas en utilisant n'importe quel vis et les écrous de
montage du components.We sera juste coller les composants sur la plaque
acrylique avec un ruban double face.

Fer à souder

Fer à souder norme

Donc obtenu tous les documents? Maintenant passons à commencer par le robot

Première souder les fils sur le moteur leads.In mon cas, j'ai coupé le
mâle cavaliers masculins dans la moitié et les souder au moteur leads.It
contribue à faciliter les connexions sur la planche à pain.

Or le montage des roues de l'arbre du moteur à l'aide de vis que vous avez obtenu avec les roues.


Après cela, monter la roue avant sur le front de fond et du centre
(environ) du robot en utilisant double face roulette de tape.The vient
généralement avec des trous pour un montage facile à l'aide de petits
écrous et des boulons, mais si vous ne voulez pas percer des trous sur
le feuille acrylique (robot base), alors vous pouvez simplement coller
avec un adhésif double face comme je l'ai fait.


Maintenant, placez les deux moteurs sur la feuille d'acrylique à l'aide
de ruban adhésif double face, comme indiqué ci-dessous dans le image.It
serait mieux si vous ajoutez un peu superglue ou hotglue comme le ruban
adhésif double face peuvent parfois ne pas être en mesure de supporter
le poids du robot. Une autre option serait d'utiliser des pinces qui
sont disponibles sur boutiques en ligne de bricolage mais encore une
fois, vous aurez à percer des trous pour that.I appliqué la colle chaude
pour le montage des moteurs
La distance entre la roue pivotante avant et les roues arrière doivent être le moins possible.


Placez un servo à l'avant en utilisant le double asservissement de
tape.The face devraient venir ci-dessus (à peu près) la roue avant.
La face avant du robot sera le lieu où servo.

Lieu Arduino et maquette sur la base comme indiqué ci-dessous l'image (utiliser un adhésif double face).


Ok, donc maintenant placer une pile 9V avec le connecteur (avec DC
Plug) et 4 piles AA avec le connecteur (sans la prise CC) sur la base du
robot.

Le capteur sera sur le servo mais n'avez pas encore monter le capteur. Parce que avant de monter le capteur sur le servo, le servo doit être dans sa position centrale soit. 90
Maintenant vient la partie la plus importante de la construction de robots.
Soigneusement
visualiser le circuit et faire des liens accordingly.After effectuer
les branchements vérifiez deux fois ou peut-être trois fois avant
d'allumer le robot sinon vous risquez d'endommager tout composant s'il
ya une erreur dans la connexion.

PS: Utilisez la prise DC de puissance Arduino avec 9V battery.The fiche CC n'est pas inclus dans l'image ci-dessous parce que
logiciel ne dispose pas d'un connecteur DC.

Image haute résolution du circuit peut être trouvé ici

La répartition de puissance dans ce circuit est le suivant:

La sonde et les deux broches de validation de pilote de moteur L293D
sont alimentés à travers 5V régulée d'alimentation de la arduino
board.The arduino utilise la puissance de 9 V et la régule à 5 V à
l'aide d'un régulateur de tension intégré.
Les moteurs servo et sont alimentés par 6V (4 piles AA).
Du circuit:

Le fil de signal (blanc ou jaune) de la sonde marquée est connectée à
la broche analogique 0 de l'Arduino, Vcc (rouge) à 5V et la masse (noir
ou marron) à la masse de arduino.Color des fils peuvent varier.

Le fil de signal (blanc ou jaune) du servo est relié à la broche
numérique 8 Arduino, Vcc (rouge) à 6V et la terre (noir ou marron) à la
masse de Arduino. (Le sol du pack batterie 6V et Arduino devrait être
combiné ). Couleur des fils peut varier.
Les moteurs sont entraînés par des broches numériques 4,5,6 et 7 et sont alimentés par 6V.

Programmation

La première chose que vous devez faire est d'installer Arduino IDE et configurer votre Arduino.
L'Arduino IDE peut être téléchargé ici et les instructions étape par étape sur la façon de connecter votre carte Arduino à l'ordinateur peut être trouvé ici
Ok, donc vous avez obtenu votre carte Arduino prêt? Maintenant passons à commencer par la programmation.
N'oubliez pas que nous n'avons pas monter le capteur sur le yet.First servo ce que nous ferons.
Assurez-vous que vous avez connecté à la fois l'alimentation électrique selon le schéma de circuit.

Ouvrez votre IDE Arduino et copier coller le code ci-dessous et cliquez
ensuite sur le bouton de téléchargement et vous devriez obtenir un
message "upload Done".



Code:Sélectionner le contenuSélectionner le contenu
 #include <Servo.h>    // includes the servo library

Servo myservo;                                // creates a servo object

void setup()
{
  myservo.attach(8);                      // attaches the servo to digital pin 8
}
void loop()
{
  myservo.write(90);                    // moves the servo to 90 degree.
  delay(700);                              // wait for the servo to finish its rotation
}

 


Le code ci-dessus va déplacer le servo à la position centrale soit 90.Now monter le capteur en face avant sur le palonnier avec le collier ou ruban adhésif double face.

Après le capteur est monté, vous pouvez maintenant jouer avec votre servomoteur en déplaçant vers la gauche ou la droite en utilisant des valeurs entre 0 et 180 au lieu de 90.

Maintenant taper ou copier coller ce code.

Code:Sélectionner le contenuSélectionner le contenu
 int sensorpin = 0;                // analog pin used to connect the sharp sensor
int val = 0;                // variable to store the values from sensor(initially zero)

void setup()
{
  Serial.begin(9600);              // starts the serial monitor
}

void loop()
{
  val = analogRead(sensorpin);      // reads the value of the sharp sensor
  Serial.println(val);              // prints the value of the sensor to the serial monitor
}


Ce code est pour le sensor.After analogique forte téléchargement avec succès ce code ouvrir le moniteur série Arduino IDE et vous verrez certaines valeurs changeant rapidly.Yes ce sont les lectures (peut dire à distance) provenant du capteur.

Gardez votre main ou en face du capteur n'importe quoi et vous verrez le changement dans les lectures sur les valeurs analogiques série un moniteur d'situent dans la fourchette de 0 à 1023.

IMPORTANT: diminuer la valeur analogique du capteur plus grande est la distance et vice versa.

Maintenant, faire la pâte rotate.Copy moteurs ou tapez le code ci-dessous dans l'IDE Arduino

Code:Sélectionner le contenuSélectionner le contenu
int motor_pin1 = 4;                //define the pins to which motor wires are connected
int motor_pin2 = 5;

void setup ()
{
  pinMode(motor_pin1,OUTPUT);            // set the motor pins as output
  pinMode(motor_pin2,OUTPUT);
}

void loop()
{
  digitalWrite(motor_pin1,HIGH);
  digitalWrite(motor_pin2,LOW);
}


Cela fera un de vos tourner le moteur dans un sens direction.The peut être avant ou en arrière.

S'il s'avère arrière puis utilisez ce code et votre moteur tournera vers l'avant.

Code:Sélectionner le contenuSélectionner le contenu
int motor_pin1 = 4;            //define the pins to which motor wires are connected
int motor_pin2 = 5;

void setup ()
{
  pinMode(motor_pin1,OUTPUT);          // set the motor pins as output
  pinMode(motor_pin2,OUTPUT);
}

void loop()
{
  digitalWrite(motor_pin1,LOW);
  digitalWrite(motor_pin2,HIGH);
}


Remarque dans ce code que nous avons utilisé pour motor_pin1 LOW et HIGH pour motor_pin2 soit opposé au code précédent.

D'où le moteur se déplace en sens inverse.

Pour le deuxième moteur, le type ou copier coller ce code dans l'Arduino IDE

Code:Sélectionner le contenuSélectionner le contenu
int motor_pin3 = 6;                  //define the pins to which motor wires are connected
int motor_pin4 = 7;

void setup ()
{
  pinMode(motor_pin3,OUTPUT);                  // set the motor pins as output
  pinMode(motor_pin4,OUTPUT);
}

void loop()
{
  digitalWrite(motor_pin3,HIGH);
  digitalWrite(motor_pin4,LOW);
}


Cela va tourner le moteur dans un second direction.It peut être avant ou en arrière.

Si elle se déplace vers l'arrière puis utiliser la même logique que pour le moteur précédent pour déplacer le deuxième moteur avant.

Pour arrêter tous les moteurs faire toutes les broches moteur de faible.

Assurez-vous que vous écrivez les combinaisons pour l'avant et l'arrière de chaque moteur quelque part car il sera nécessaire dans le code final.

Vous pourriez avoir un doute dans votre esprit que comment le robot tourner à gauche ou à droite.

Heres la réponse: Nous allons utiliser la méthode de la direction à glissement pour faire tourner le robot.In cette méthode, les patins du robot tout en tournant et où le nom de dérapage direction.

Il va comme ceci

Pour tourner le robot à gauche: Le moteur droit tourne vers l'avant et le moteur gauche tourne à l'envers.

Pour tourner le robot à droite: Le moteur gauche tourne vers l'avant et le moteur droit tourne à l'envers.

Pour aller de l'avant: deux moteurs tourne vers l'avant.

Pour le déplacement vers l'arrière: deux moteurs tourne vers l'arrière.

Robot terminé



Et voici un code simple pour éviter copie obtacles.Just et collez ce code dans l'IDE Arduino et cliquez sur téléchargement et votre robot est VIVANT!

Code:Sélectionner le contenuSélectionner le contenu
#include <Servo.h>                                  //includes the servo library

int motor_pin1 = 4;
int motor_pin2 = 5;
int motor_pin3 = 6;
int motor_pin4 = 7;
int servopin = 8;
int sensorpin = 0;
int dist = 0;
int leftdist = 0;
int rightdist = 0;
int object = 500;            //distance at which the robot should look for another route                         

Servo myservo;

void setup ()
{
  pinMode(motor_pin1,OUTPUT);
  pinMode(motor_pin2,OUTPUT);
  pinMode(motor_pin3,OUTPUT);
  pinMode(motor_pin4,OUTPUT);
  myservo.attach(servopin);
  myservo.write(90);
  delay(700);
}
void loop()
{
  dist = analogRead(sensorpin);              //reads the sensor

  if(dist < object) {                        //if distance is less than 550
  forward();                                  //then move forward
  }
  if(dist >= object) {              //if distance is greater than or equal to 550
    findroute();
  }
}

void forward() {                            // use combination which works for you
  digitalWrite(motor_pin1,HIGH);
  digitalWrite(motor_pin2,LOW);
  digitalWrite(motor_pin3,HIGH);
  digitalWrite(motor_pin4,LOW);
  return;
 }

void findroute() {
  halt();                                            // stop
  backward();                                      //go backwards
  lookleft();                                      //go to subroutine lookleft
  lookright();                                  //go to subroutine lookright
                                     
  if ( leftdist < rightdist )
  {
    turnleft();
  }
 else
 {
  turnright ();
 }
}

void backward() {
  digitalWrite(motor_pin1,LOW);
  digitalWrite(motor_pin2,HIGH);
  digitalWrite(motor_pin3,LOW);
  digitalWrite(motor_pin4,HIGH);
  delay(500);
  halt();
  return;
}

void halt () {
  digitalWrite(motor_pin1,LOW);
  digitalWrite(motor_pin2,LOW);
  digitalWrite(motor_pin3,LOW);
  digitalWrite(motor_pin4,LOW);
  delay(500);                          //wait after stopping
  return;
}

void lookleft() {
  myservo.write(150);
  delay(700);                                //wait for the servo to get there
  leftdist = analogRead(sensorpin);
  myservo.write(90);
  delay(700);                                //wait for the servo to get there
  return;
}

void lookright () {
  myservo.write(30);
  delay(700);                          //wait for the servo to get there
  rightdist = analogRead(sensorpin);
  myservo.write(90);                                 
  delay(700);                        //wait for the servo to get there
  return;
}

void turnleft () {
  digitalWrite(motor_pin1,HIGH);      //use the combination which works for you
  digitalWrite(motor_pin2,LOW);      //right motor rotates forward and left motor backward
  digitalWrite(motor_pin3,LOW);
  digitalWrite(motor_pin4,HIGH);
  delay(1000);                    // wait for the robot to make the turn
  halt();
  return;
}

void turnright () {
  digitalWrite(motor_pin1,LOW);      //use the combination which works for you
  digitalWrite(motor_pin2,HIGH);    //left motor rotates forward and right motor backward
  digitalWrite(motor_pin3,HIGH);
  digitalWrite(motor_pin4,LOW);
  delay(1000);                              // wait for the robot to make the turn
  halt();
  return;
}


Voici ce que ce code va faire.

Le robot se déplace vers l'avant si le capteur a la lecture de moins de 500.It signifie que le robot va considérer qu'il n'a pas d'objet devant elle si la lecture du capteur est inférieure à 500.You pouvez définir ce en fonction de vos besoins.

Si le capteur se lire supérieur ou égal à 500, alors il va chercher une autre façon dans les étapes suivantes.

D'abord le robot s'arrête totalement, déplacer peu vers l'arrière, à nouveau le robot s'arrête, le servo se déplace à gauche et le capteur aura lecture et après que le servo se déplacer vers la droite et le capteur sera de nouveau prendre des lectures reading.The gauche et droit sont comparées. Le robot se tourne vers la direction où la lecture est plus ou moins (moins la lecture analogique plus grande est la distance) et stops.Now à nouveau le même code ou cycle se répète jusqu'à ce que vous éteignez l'alimentation.

Bravo vous avez construit votre premier robot.

Appréciez!

Plus de photos du robot







Les points importants à retenir:

Si vous trouvez que le microcontrôleur est reseting lorsque les moteurs commencent à tourner, connectez un 10uF condensateur à travers la puissance 6v longue plomb supply.the du condensateur est + ve et la laisse courte est-ve.
Le retard utilisé dans le turnleft, tournedroite, sous-programmes halte dans le code devrait être fonction de la taille de votre robot.Smaller la taille, plus petite devrait être le retard et plus la taille, plus grande devrait être le retard.
Dans ce code, la gauche du servo est le degré supérieur à 90 et à droite sur le degré inférieur 90.For vous, il peut être opposé que cela dépend de comment vous avez placé les servo.Adjust degrés le servo en conséquence
Toujours combiner le motif d'Arduino, servo et la batterie externe.
La distance entre la roue de roulette avant et les roues arrière doit être aussi moins comme possible.Reduce la distance si vous trouvez que votre robot ne tourne pas correctement.
N'oubliez pas de broches de connecteur mâle à souder ou des fils de jauge à la fin des câbles composants afin qu'ils puissent être facilement empilés sur la planche à pain.
S'il vous plaît vérifier les connexions à fond avant de mettre le robot.
Ne pas fournir plus de 6V pour les moteurs à engrenages en plastique et servo.
Le capteur doit être alimenté avec pas plus de 5 V

Aucun commentaire:

Enregistrer un commentaire