OBSTACLE ÉVITANT ROBOT
FINANCÉ PAR ; INTEL KENYA EN LIAISON AVEC LA SOCIÉTÉ D’INGÉNIERIE ÉTUDIANTS AUTOMATION CLUB JKUAT.
MEMBRES DU PROJET :
1 ANTONY KARIUKI
2 ERIC KINYANJUI
3 EMMANUEL KINYANJUI
PROJET INSTRUCTABLE :
EXIGENCES :
1 PLATEAU DE 2ÈME GÉNÉRATION INTEL GALILEO
MOTEUR SERVO 2
Servos sont essentiellement des moteurs à courant continu avec rétroaction de position cela signifie que vous peuvent dire le micro-contrôleur grâce à votre code pour déplacer le servo à la position désirée. Dans galileo Conseil un servo standard peut être déplacé entre 0 à 180 degrés et 90 est le centre de servo (senseServo fait a trois fils i.e.Brown,Red,Yellow ou la couleur peut-être noir, rouge, blanc.
1 brun ou noir fil doit être raccordé à la terre du microcontrôleur.
2 fil rouge doit être connecté à Vcc (4.8V à 6V).
3 jaune ou fil blanc doit être connecté à la sortie numérique du micro-contrôleur et s’appelle le fil signal.
3 1BREAD CONSEIL
La moitié de taille maquette est assez pour ce robot.
4 FILS DE JAUGE ET LES FILS DE RACCORDEMENT
Pour les connexions sur le montage d’essai vous sera besoin soit un fil de calibre ou mâle fils de cavalier.
5 1 MOTEUR L293D
L293D est une puce de 16 broches et est un pilote automobile populaire qui peut être utilisé pour les petits moteurs disposant de faible courant de sortie.
6 1 X Sharp GP2D12 capteur analogique.
Le capteur se compose de deux yeux. Un œil envoie la lumière infrarouge et de l’autre oeil voit le reflet de cette lumière infrarouge et les mesures de la distance qui est ensuite envoyé au microcontrôleur par entrée analogique pour lancer d’autres opérations basées sur la distance (les opérations devraient être définies dans le code.
Il y a trois fils provenant de la sensor.i.e.Red,Black et le blanc, ou il peut être rouge, brun et jaune.
1 rouge est relié au 5V de l’arduino.
2 noir ou marron à motif d’arduino.
3 blanc ou jaune à la broche d’entrée analogique de galileo boardi.e. dans ce cas analogiques broches 0
7 PILES
Le Conseil de Galilée lui-même a besoin de 9V(recommended). Il est donc préférable d’utiliser deux batteries différentes.
1 x 9V PP3 pile pour le Conseil d’administration et 4 piles AA c'est-à-dire 6V pour moteurs servo.
8 porte-piles AA 1 x 4
9 2 x connecteur batterie
Un connecteur de la batterie devrait avoir une fiche DC à la fin afin qu’il peut être directement branché sur la prise dc de galileo. La fiche CC peut être achetée facilement à n’importe quel magasin d’électronique local.
10 1 x ruban adhésif double face
Nous n’allons pas utiliser des vis ou écrous pour fixer les composants. Nous nous en tiendrons juste les composants sur la plaque d’acrylique à l’aide de ruban adhésif double face.
Fer à souder 11
Un fer à souder standard
PROCÉDURE
1 tout d’abord, nous avons soudé les fils aux fils du moteur. Dans mon cas, j’ai coupé les cavaliers mâle en deux et les soudé sur les fils du moteur. Elle contribue à faciliter les connexions sur le montage d’essai.
2 nous avons alors monté les roues à l’arbre du moteur à l’aide de vis que vous avez obtenu avec les roues.
3 une fois que nous avons monté la roue de la roulette sur la partie inférieure avant et center(roughly) du robot à l’aide de ruban adhésif double face. La roue de la Roulette vient habituellement avec des trous pour le support facile à l’aide de petits boulons et écrous, mais si vous ne voulez pas percer des trous sur la feuille d’acrylique (robot base) alors vous pouvez simplement coller avec ruban adhésif double face comme je le faisais.
4 puis, nous avons placé les deux moteurs sur la feuille d’acrylique à l’aide de double face. La distance entre la roue avant et les roues arrière était aussi réduite que possible.
5 nous avons ensuite placé un servo à l’avant à l’aide de ruban adhésif double face
6 le Conseil de galileo d’intel et la maquette ont été placés sur la semelle avec un ruban adhésif double face.
7 nous avons ensuite placé une pile de 9V avec le connecteur (avec fiche dc) et 4 piles AA avec le connecteur (sans la fiche CC) sur la base du robot.
8. la distribution du courant à ce circuit est le suivant : le capteur et les deux goupilles de l’activer de moteur L293D sont alimentés grâce à un approvisionnement 5V régulée de la carte de galileo. Le Conseil utilise la puissance de 9V et il régule à 5V avec l’aide du régulateur de tension à bord. Les moteurs et les servos sont alimentés par 6V (4 piles AA).
9 nous avons connecté le circuit comme indiqué ci-dessous ;
10 du circuit :
Le câble de signal du capteur sharp (blanc ou jaune) est connecté à la broche analogique 0 de la Galilée, Vcc(red) 5V et sol (noir ou marron) à la masse de galileo. Couleur des fils peut varier.
Le câble de signal de servo (blanc ou jaune) est connecté à la broche numérique 8 de galileo, Vcc(red) 6V et sol (noir ou marron) à la masse de galileo. (le sol de la batterie 6V et galileo devrait être combiné). Couleur des fils peut varier.
Les moteurs sont conduits par des broches numériques 4,5,6 et 7 et sont alimentés par 6V.
CODE
Le code utilisé pour l’obstacle en évitant le robot inclus ;
#include //includes la bibliothèque de servo
int motor_pin1 = 4 ;
int motor_pin2 = 5 ;
int motor_pin3 = 6 ;
int motor_pin4 = 7 ;
int servopin = 8 ;
int sensorpin = 0 ;
dist int = 0 ;
int leftdist = 0 ;
int rightdist = 0 ;
objet int = 500 ; distance à laquelle le robot doit chercher une autre voie
Servo myservo ;
installation Sub ()
{
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) ; lit le capteur
if(dist < Object) {//if distance est inférieure à 550
mémoire ; puis aller de l’avant
}
Si (dist > = object) {//if distance est supérieur ou égal à 550
findroute() ;
}
}
mémoire de Sub {/ / utiliser la combinaison qui vous convient
digitalWrite(motor_pin1,HIGH) ;
digitalWrite(motor_pin2,LOW) ;
digitalWrite(motor_pin3,HIGH) ;
digitalWrite(motor_pin4,LOW) ;
retour ;
}
void findroute() {}
Halt() ; arrêter
Backward() ; revenir en arrière
lookleft() ; aller à la sous-routine lookleft
lookright() ; aller à la sous-routine lookright
Si (leftdist < rightdist)
{
turnleft() ;
}
d’autre
{
tournedroite () ;
}
}
void backward() {}
digitalWrite(motor_pin1,LOW) ;
digitalWrite(motor_pin2,HIGH) ;
digitalWrite(motor_pin3,LOW) ;
digitalWrite(motor_pin4,HIGH) ;
Delay(500) ;
Halt() ;
retour ;
}
halt Sub () {}
digitalWrite(motor_pin1,LOW) ;
digitalWrite(motor_pin2,LOW) ;
digitalWrite(motor_pin3,LOW) ;
digitalWrite(motor_pin4,LOW) ;
Delay(500) ; attendre après l’arrêt
retour ;
}
void lookleft() {}
myservo.Write(150) ;
Delay(700) ; Attendez que le servo pour y arriver
leftdist = analogRead(sensorpin) ;
myservo.Write(90) ;
Delay(700) ; Attendez que le servo pour y arriver
retour ;
}
void lookright () {}
myservo.Write(30) ;
Delay(700) ; Attendez que le servo pour y arriver
rightdist = analogRead(sensorpin) ;
myservo.Write(90) ;
Delay(700) ; Attendez que le servo pour y arriver
retour ;
}
tournegauche Sub () {}
digitalWrite(motor_pin1,HIGH) ; Utilisez la combinaison qui vous convient
digitalWrite(motor_pin2,LOW) ; bon moteur tourne moteur vers l’avant et à gauche vers l’arrière
digitalWrite(motor_pin3,LOW) ;
digitalWrite(motor_pin4,HIGH) ;
Delay(1000) ; Attendez que le robot faire le tour
Halt() ;
retour ;
}
tournedroite Sub () {}
digitalWrite(motor_pin1,LOW) ; Utilisez la combinaison qui vous convient
digitalWrite(motor_pin2,HIGH) ; moteur gauche tourne moteur vers l’avant et à droite vers l’arrière
digitalWrite(motor_pin3,HIGH) ;
digitalWrite(motor_pin4,LOW) ;
Delay(1000) ; Attendez que le robot faire le tour
Halt() ;
retour ;
}