Robot-hinder att undvika.
HINDER ATT UNDVIKA ROBOT
FINANSIERAS AV, INTEL KENYA TILLSAMMANS MED SOCIETY OF ENGINEERING STUDENTER AUTOMATION CLUB JKUAT.
MEDLEMMAR:
1 ANTONIUS KARIUKI
2 ERIC KINYANJUI
3 EMMANUEL KINYANJUI
PROJEKTET INSTRUCTABLE:
KRAV:
1 INTEL GALILEO GENERATION 2 STYRELSE
2 SERVOMOTOR
Servon är i princip Dc motorer med position feedback som innebär att du kan berätta mikrokontroller genom din kod att flytta servo till önskad position. Galileo är styrelsen en standard servo kan flyttas mellan 0 till 180 grader och 90 servo center (gör senseServo har tre sladdar i.e.Brown,Red,Yellow eller färg kanske svart, röd, vit.
1 brun eller svart tråd är att anslutas till marken av mikrokontroller.
2 röda tråd är att vara ansluten till Vcc (4.8V till 6V).
3 gula eller vita kabeln vara ansluten till den digitala utgången av mikrokontroller och kallas signal tråd.
3 1BREAD STYRELSEN
Hälften storlek bakbord är nog för denna robot.
4 GAUGE TRÅDAR OCH HOPPARE LEDNINGAR
För att göra anslutningar på bakbord kommer du behöver antingen gauge tråd eller hane-hane hoppare ledningar.
5 1 L293D MOTOR DRIVER
L293D är ett 16 pin chip och är en populär motor förare som kan användas för små motorer som har låg avgiven ström.
6 1 X skarp GP2D12 analog avstånd sensor.
Sensorn består av två ögon. Ett öga skickar IR-ljuset och det andra ögat ser reflektion av den infraröda ljus och åtgärder distansera, som sedan skickas till mikrokontroller genom analog ingång utföra vidare operationer beroende på avståndet (verksamheten bör definieras i koden.
Det finns tre kablar kommer från sensor.i.e.Red,Black och vit eller det kan vara rött, brunt och gult.
1 röd är ansluten till 5V för arduino.
2 svarta eller bruna marken av arduino.
3 vit eller gul till analoga ingångsstiftet av galileo boardi.e. i detta fall till analog pin-0
7 BATTERIER
Galileo styrelsen själv måste 9V(recommended). Så är det bättre att använda två olika batterier.
1 x 9V PP3 batteri för styrelsen och 4 AA-batterier dvs 6V för motorer och servo.
8 1 x 4 AA-batterihållare
9 2 x batteri-anslutning
En batteri kontakt bör ha en DC-kontakten på slutet så att det kan vara direkt ansluten till dc-uttaget av galileo. Dc-kontakten kan köpas på någon lokal elektronik butik enkelt.
10 1 x dubbelhäftande tejp
Vi kommer inte att använda några skruvar eller muttrar för montering av komponenterna. Vi kommer bara hålla komponenterna på akryl plattan med dubbelhäftande tejp.
11 lödkolv
En vanlig lödkolv
FÖRFARANDE
1 först lödda vi kablar till motor leads. I mitt fall, har jag skurna hane-hane byglarna i halv och lödda dem motor leder. Det hjälper i enkla anslutningar på en skärbräda.
2 vi monterade sedan hjulen på motoraxeln med hjälp av skruv som du fick med hjulen.
3 efter som vi monterat castor hjulet på nedre främre och center(roughly) av roboten med dubbelhäftande tejp. Castor hjulet kommer vanligtvis med hål i den för enkel montering med små skruvar och muttrar men om du inte vill borra hål på akryl blad (robot bas) så du kan enkelt hålla det med dubbelhäftande tejp som jag gjorde.
4 då vi placerade två motorerna på akryl blad med hjälp av dubbelsidiga. Avståndet mellan främre castor hjulet och bakhjulen var så liten som möjligt.
5 vi sedan placeras ett servo i fronten med dubbelhäftande tejp
6 den intel galileo board och skärbräda placerades på basen med en dubbelhäftande tejp.
7 vi sedan placeras ett 9V batteri till kontakten (med dc-kontakten) och 4 AA-batterier till kontakten (utan dc-kontakten) på roboten basen.
8 power distribution i denna krets är följande: sensorn och båda de aktivera stiften på L293D motorn förarens drivs via 5V regleras utbudet från galileo styrelsen. Styrelsen använder 9V power och reglerar det till 5V med hjälp av inbyggda spänningsregulator. Motorer och servo drivs av 6V (4 AA batterier).
9 vi anslutna kretsen enligt nedan;
10 från kretsen:
Signal binda (vit eller gul) av skarpa sensorn är ansluten till analoga stift 0 Galileo, Vcc(red) till 5V och marken (svart eller brun) på grund av galileo. Färg på kablarna kan variera.
Signal binda (vit eller gul) av servo är ansluten till digital stift 8 Galileo, Vcc(red) 6V och marken (svart eller brun) på grund av galileo. (6V batteripack och galileo bör kombineras). Färg på kablarna kan variera.
Motorerna drivs av digital stift 4,5,6 och 7 och drivs av 6V.
KODEN
Koden som används för hinder undvika robot ingår;
#include //includes servo biblioteket
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-objekt = 500. avstånd som roboten ska leta efter en annan väg
Servo myservo;
Ogiltiga inställningar)
{
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); läser sensorn
IF(dist < Object) {//if avståndet är mindre än 550
Forward(); sedan gå framåt
}
om (dist > = objekt) {//if avståndet är större än eller lika med 550
findroute();
}
}
void forward() {/ / använda kombination som fungerar för dig
digitalWrite(motor_pin1,HIGH);
digitalWrite(motor_pin2,LOW);
digitalWrite(motor_pin3,HIGH);
digitalWrite(motor_pin4,LOW);
hemkomst.
}
void findroute() {
halt(); Stanna
Backward(); gå bakåt
lookleft(); gå till subrutin lookleft
lookright(); gå till subrutin lookright
om (leftdist < rightdist)
{
turnleft();
}
annat
{
svänghöger ();
}
}
void backward() {
digitalWrite(motor_pin1,LOW);
digitalWrite(motor_pin2,HIGH);
digitalWrite(motor_pin3,LOW);
digitalWrite(motor_pin4,HIGH);
Delay(500);
halt();
hemkomst.
}
void stoppa () {
digitalWrite(motor_pin1,LOW);
digitalWrite(motor_pin2,LOW);
digitalWrite(motor_pin3,LOW);
digitalWrite(motor_pin4,LOW);
Delay(500); vänta efter stopp
hemkomst.
}
void lookleft() {
myservo.write(150);
Delay(700); vänta på servo att komma dit
leftdist = analogRead(sensorpin);
myservo.write(90);
Delay(700); vänta på servo att komma dit
hemkomst.
}
void lookright () {
myservo.write(30);
Delay(700); vänta på servo att komma dit
rightdist = analogRead(sensorpin);
myservo.write(90);
Delay(700); vänta på servo att komma dit
hemkomst.
}
void svängvänster () {
digitalWrite(motor_pin1,HIGH); använda den kombination som fungerar för dig
digitalWrite(motor_pin2,LOW); rätt motor roterar framåt och vänster motor bakåt
digitalWrite(motor_pin3,LOW);
digitalWrite(motor_pin4,HIGH);
Delay(1000); vänta för roboten att göra turn
halt();
hemkomst.
}
void svänghöger () {
digitalWrite(motor_pin1,LOW); använda den kombination som fungerar för dig
digitalWrite(motor_pin2,HIGH); vänster motor roterar framåt och rätt motor bakåt
digitalWrite(motor_pin3,HIGH);
digitalWrite(motor_pin4,LOW);
Delay(1000); vänta för roboten att göra turn
halt();
hemkomst.
}