OBSTAKEL TE VERMIJDEN ROBOT
GEFINANCIERD DOOR; INTEL KENIA I.S.M. SOCIETY OF ENGINEERING STUDENTEN AUTOMATISERING CLUB JKUAT.
DE LEDEN VAN HET PROJECT:
1 ANTONY KARIUKI
2 ERIC KINYANJUI
3 EMMANUEL KINYANJUI
PROJECT INSTRUCTABLE:
VEREISTEN:
1 INTEL GALILEO GENERATIE 2 BOARD
2 SERVOMOTOR
Servo's zijn in principe Dc-motoren met feedback van de positie die betekent dat u kunnen vertellen de microcontroller door uw code om de servo naar de gewenste positie. In galileo bord een standaard servo kan worden verplaatst tussen de 0 tot 180 graden en 90 is de servo-centrum (maakt senseServo heeft drie draden i.e.Brown,Red,Yellow of de kleur misschien zwart, rood, wit.
1 bruine of zwarte draad met de massa van de microcontroller worden verbonden.
2 rode draad moet worden aangesloten op Vcc (4.8V tot 6V).
3 gele of witte draad te worden aangesloten op de digitale uitgang van de microcontroller en heet signaal draad.
3 1BREAD BESTUUR
Helft formaat breadboard is genoeg voor deze robot.
4 GAUGE DRADEN EN JUMPER DRADEN
Voor het maken van verbindingen op het breadboard zal u ofwel moeten meten draad of male-male jumper draden.
5 1 L293D MOTOR DRIVER
L293D is een 16 pin chip en is een populaire motor coureur die kan worden gebruikt voor kleine motoren die lage uitgangsstroom hebben.
6 1 X Sharp GP2D12 analoge afstandssensor.
De sensor bestaat uit twee ogen. Één oog stuurt de infrarood licht en het andere oog ziet de weerspiegeling van die infrarood licht en maatregelen de afstand die vervolgens wordt verzonden naar de microcontroller via analoge ingang verdere bewerkingen op basis van de afstand (de operaties moeten worden gedefinieerd in de code.
Er zijn drie draden vanuit de sensor.i.e.Red,Black en wit of het kan rood, bruin en geel.
1 rode is aangesloten op de 5V van de arduino.
2 zwart of bruin op grond van arduino.
3 wit of geel aan analoge invoer pin van galileo boardi.e. in dit geval naar analoog pin 0
7 BATTERIJEN
Het Galileo-forum zelf moet 9V(recommended). Het is dus beter om te gebruiken van twee verschillende accu's.
1 x 9V PP3 batterij voor de Raad van bestuur en 4 AA batterijen d.w.z. 6V voor elektromotoren en servo.
8 1 x 4 AA batterijhouder
9 2 x accu aansluiting
Één batterij connector moeten een DC plug aan het einde, zodat het worden rechtstreeks op de dc-aansluiting van galileo aangesloten kan. De Dc-stekker kan eenvoudig op elke lokale elektronica winkel worden gekocht.
10 1 x dubbele dubbelzijdige tape
We won't worden met behulp van schroeven of noten voor de montage van de onderdelen. Wij zullen blijf de componenten op de acryl plaat met behulp van dubbele dubbelzijdige tape.
11 soldeerbout
Een standaard soldeerbout
PROCEDURE
1 eerst gesoldeerd we de draden naar de motor leads. In mijn geval, heb ik de male-male jumpers gesneden in de helft en ze vastgesoldeerd aan de motor leads. Het helpt bij het eenvoudig verbindingen op het breadboard.
2 wij dan de wielen op de motoras met behulp van de schroef die je met de wielen gemonteerd.
3 daarna gemonteerd we het castor wiel aan de onderkant voorkant en center(roughly) van de robot met behulp van dubbele dubbelzijdige tape. Het castor wiel komt meestal met gaatjes voor eenvoudige montage met kleine bouten en moeren, maar als u niet wilt boor gaten op de acrylplaat (robot basis) dan je het gewoon met dubbele dubbelzijdige tape vasthouden kunt zoals ik deed.
4 vervolgens geplaatst we de twee motoren op de acrylplaat met behulp van dubbelzijdig. De afstand tussen het voorste castor wiel en de achterwielen was zo klein mogelijk.
5 wij vervolgens een servo geplaatst aan de voorkant met behulp van dubbele dubbelzijdige tape
6 het intel galileo bord en breadboard werden geplaatst op het honk met behulp van een dubbele dubbelzijdige tape.
7 wij vervolgens een 9V-batterij met de connector (met dc plug) en 4 AA-batterijen met de connector (zonder de dc-stekker) geplaatst op de robot-basis.
8. de verdeling van de macht in dit circuit is als volgt: de sensor en beide de inschakelen pinnen van L293D motor stuurprogramma worden aangedreven door 5V geregeld levering van het galileo-bord. De Raad van bestuur 9V energie verbruikt en regelt het naar 5V met behulp van aan boord spanningsregelaar. De elektromotoren en servo worden aangedreven door 6V (4 AA batterijen).
9 we het circuit aangesloten zoals hieronder;
10 van het circuit:
De signaal draad (witte of gele) van de scherpe sensor is aangesloten op de analoge pin 0 van de galileo, Vcc(red) 5V en ground (zwarte of bruine) op grond van galileo. Kleur van de draden kan variëren.
De signaal draad (witte of gele) van de servo is aangesloten op de digitale pin 8 van galileo, Vcc(red) op 6V en bodem (zwarte of bruine) op grond van galileo. (de grond van de 6V accu en galileo moet worden gecombineerd). Kleur van de draden kan variëren.
De motoren worden gedreven door digitale pinnen 4,5,6 en 7 en worden aangedreven door 6V.
CODE
De code die wordt gebruikt voor het obstakel te vermijden robot begrepen;
#include //includes de servo-bibliotheek
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; afstand waartegen de robot er voor een andere route ziet
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); leest de sensor
if(dist < object) {//if afstand is minder dan 550
vooruit(); vervolgens vooruit
}
Als (dist > = object) {//if afstand is groter dan of gelijk aan 550
findroute();
}
}
VOID vooruit() {/ / gebruik van de combinatie die voor u werkt
digitalWrite(motor_pin1,HIGH);
digitalWrite(motor_pin2,LOW);
digitalWrite(motor_pin3,HIGH);
digitalWrite(motor_pin4,LOW);
terugkeer;
}
ongeldig findroute() {}
halt(); Stop
backward(); achteruit gaan
lookleft(); Ga naar de subroutine lookleft
lookright(); Ga naar de subroutine lookright
Als (leftdist < rightdist)
{
turnleft();
}
anders
{
turnright ();
}
}
ongeldig backward() {}
digitalWrite(motor_pin1,LOW);
digitalWrite(motor_pin2,HIGH);
digitalWrite(motor_pin3,LOW);
digitalWrite(motor_pin4,HIGH);
delay(500);
halt();
terugkeer;
}
VOID halt () {}
digitalWrite(motor_pin1,LOW);
digitalWrite(motor_pin2,LOW);
digitalWrite(motor_pin3,LOW);
digitalWrite(motor_pin4,LOW);
delay(500); Wacht na stoppen
terugkeer;
}
ongeldig lookleft() {}
myservo.write(150);
delay(700); wachten op de servo om er te komen
leftdist = analogRead(sensorpin);
myservo.write(90);
delay(700); wachten op de servo om er te komen
terugkeer;
}
VOID lookright () {}
myservo.write(30);
delay(700); wachten op de servo om er te komen
rightdist = analogRead(sensorpin);
myservo.write(90);
delay(700); wachten op de servo om er te komen
terugkeer;
}
VOID turnleft () {}
digitalWrite(motor_pin1,HIGH); Gebruik de combinatie die voor u werkt
digitalWrite(motor_pin2,LOW); juiste motor draait voorwaartse en linker motor achteruit
digitalWrite(motor_pin3,LOW);
digitalWrite(motor_pin4,HIGH);
delay(1000); de robot om de beurt wachten
halt();
terugkeer;
}
VOID turnright () {}
digitalWrite(motor_pin1,LOW); Gebruik de combinatie die voor u werkt
digitalWrite(motor_pin2,HIGH); linker motor draait naar voren en rechts motor achteruit
digitalWrite(motor_pin3,HIGH);
digitalWrite(motor_pin4,LOW);
delay(1000); de robot om de beurt wachten
halt();
terugkeer;
}