Բովանդակություն:

TA-ZON-BOT (գծի հետևորդ). 3 քայլ (նկարներով)
TA-ZON-BOT (գծի հետևորդ). 3 քայլ (նկարներով)

Video: TA-ZON-BOT (գծի հետևորդ). 3 քայլ (նկարներով)

Video: TA-ZON-BOT (գծի հետևորդ). 3 քայլ (նկարներով)
Video: The Lion Awakens! History of the Third Crusade (ALL PARTS - ALL BATTLES) ⚔️ FULL DOCUMENTARY 1h 30m 2024, Նոյեմբեր
Anonim
TA-ZON-BOT (գծերի հետևորդ)
TA-ZON-BOT (գծերի հետևորդ)
TA-ZON-BOT (գծերի հետևորդ)
TA-ZON-BOT (գծերի հետևորդ)

TA-ZON-BOT

El tazón siguelineas

Hemos realizado este robot siguelineas con la ayuda de los nuestros alumnos, (gracias minimalakers):

Ha sido un proyecto express para poder participar en la OSHWDEN de A Coruña.

oshwdem.org/2017/06/oshwdem-2017/

traductor google

TA-ZON-BOT

Գավաթը հետևում է գծին

Մենք պատրաստել ենք այս ռոբոտը, որը հետևում է ձեզ մեր ուսանողների օգնությամբ (շնորհակալություն նվազեցնողներին):

Դա Էքսպրես ծրագիր էր ՝ մասնակցելու Կորունայի OSHWDEN- ին:

oshwdem.org/2017/06/oshwdem-2017/

Գուգլ Թարգմանիչ

Քայլ 1: Քայլ 1: Բաղադրիչներ

Քայլ 1: Բաղադրիչներ
Քայլ 1: Բաղադրիչներ
Քայլ 1: Բաղադրիչներ
Քայլ 1: Բաղադրիչներ
Քայլ 1: Բաղադրիչներ
Քայլ 1: Բաղադրիչներ

Los componentes que hemos utilizados

han sido los siguientes.

Una pieza redonda de metacrilato. (Podéis utilizar cualquier diseño, nuestra base mide lo justo para colocar el tazón bocabajo):

1 Tazón de desayuno (que sirve para concentrar al robot en la linea):

2 ruedas de un juguete reciclado.

2 motores con las siguientes especificaciones:

Especificaciones (Para 6V):

Չափերը ՝ 26 x 10 x 12 մմ

Կրճատման հարաբերակցությունը `30: 1

Տրամագիծը ՝ 3 մմ (con ranura de bloqueo)

Voltaje անվանական: 6Vcc (puede funcionar entre 3 և 9Vcc)

Velocidad de giro sin carga: 1000rpm

Սպառող բեռ ՝ 120 մԱ (1600 մԱ բեռ)

Մեծ ոլորող մոմենտ ՝ 0.6 կգ/սմ (առավելագույն)

Պեսո `10 գրամ

Enlace de tienda առցանց ՝

1 placa Arduino UNO (reciclada de un proyecto antiguo)

1 վահանակ շարժիչների համար Adafruit v2.3.

1 Un porta pilas de 8 pilas AAA (no utilizamos 2 fuentes de alimentación):

6 tornillos y tuercas para unir los elementos como se ve en la la imagen

bridas para los motores, una goma elástica para sujetar el porta pilas y un trozo de una lamina de plásticos para la base del porta pilas.

1 զանգված sensores QTR-8RC con las siguientes características;

QTR-8x արտացոլման սենսորային զանգվածի բնութագրերը • Չափերը ՝ 2.95 «x 0.5» • Գործող լարումը ՝ 3.3-5.0 Վ • Մատակարարման հոսանքը ՝ 100 մԱ • QTR-8A- ի ելքային ձևաչափ ՝ 8 անալոգային լարման ՝ 0 Վ-ից մինչև մատակարարվող լարման • Ելքային ձևաչափ QTR-8RC- ի համար. 8 թվային I/O- համատեղելի ազդանշաններ, որոնք կարող են կարդալ որպես ժամանակաչափ բարձր զարկերակ: Օպտիմալ զգայուն հեռավորություն `0.125" (3 մմ) (6 մմ) • QTR-8RC- ի համար զգայունության առավելագույն առաջարկվող հեռավորությունը `0.375" (9.5 մմ) • Քաշը առանց վերնագրի կապում. 0.11 ունց (3.1 գ) Lo podéis encontrar en:

tienda.bricogeek.com/componentes/257-array-…

Ensamblar todo… próximamente un vídeo más detallado…

Այն բաղադրիչները, որոնք մենք օգտագործել ենք, եղել են հետևյալը.

Մետակրիլատի կլոր կտոր: (Դուք կարող եք օգտագործել ցանկացած ձևավորում, մեր հիմքը չափում է այնքան, որ ամանը գլխիվայր տեղադրի):

1 Նախաճաշի գավաթ (օգտագործվում է ռոբոտին գծի վրա կենտրոնացնելու համար):

2 անիվ վերամշակված խաղալիք:

2 շարժիչ ՝ հետևյալ բնութագրերով.

Տեխնիկական պայմաններ (6 Վ -ի համար). Չափերը ՝ 26 x 10 x 12 մմ Կրճատիչի հարաբերակցությունը ՝ 30: 1 Լիսեռի տրամագիծը ՝ 3 մմ (կողպեքի ակոսով) Անվանական լարումը ՝ 6Vdc (կարող է աշխատել 3 -ից 9Vdc- ի միջև) Շրջման արագություն ՝ առանց բեռի ՝ 1000rpm Սպառում առանց բեռի ՝ 120 մԱ (1600 մԱ ՝ բեռնվածությամբ) Մոմենտը ՝ 0.6 կգ / սմ (առավելագույնը) Քաշը ՝ 10 գրամ

Առցանց խանութի հղում ՝

1 Arduino UNO տախտակ (վերամշակված հին նախագծից)

1 վահանակ Adafruit v2.3 շարժիչների համար ՝

1 8 AAA մարտկոցի մարտկոցի սեփականատեր (մենք չենք օգտագործում 2 էներգիայի աղբյուր):

6 պտուտակ և ընկույզ ՝ տարրերին միանալու համար, ինչպես երևում է նկարում

շարժիչներ `շարժիչների համար, առաձգական կաուչուկ` մարտկոցը պահելու համար և պլաստմասե մի կտոր `մարտկոցի կրիչի հիմքի համար:

QTR-8RC տվիչների 1 զանգված հետևյալ բնութագրերով.

QTR-8x արտացոլման սենսորային զանգվածի բնութագրերը • Չափերը ՝ 2.95 «x 0.5» • Գործող լարումը ՝ 3.3-5.0 Վ • Մատակարարման հոսանքը ՝ 100 մԱ • QTR-8A– ի ելքային ձևաչափ ՝ 8 անալոգային լարման ՝ 0 Վ-ից մինչև մատակարարվող լարման • Ելքային ձևաչափ QTR-8RC- ի համար. 8 թվային I / O- համատեղելի ազդանշաններ, որոնք կարող են կարդալ որպես ժամանակաչափ բարձր զարկերակ: Օպտիմալ զգայուն հեռավորություն `0.125" (3 մմ) (6 մմ) • QTR-8RC- ի համար զգայունության առավելագույն առաջարկվող հեռավորությունը `0.375" (9.5 մմ) • Քաշը առանց վերնագրի կապում. 0.11 ունց (3.1 գ) Դուք կարող եք գտնել այն ՝

tienda.bricogeek.com/componentes/257-array-de-sensores-infrarojos-qtr-8rc-digital.html

Հավաքեք ամեն ինչ … շուտով ավելի մանրամասն տեսանյութ…

Քայլ 2: Քայլ 2. Ոգեշնչում

Para probar el funcionamiento del los

motores hemos seguido esta ayuda del blog www.programarfacil.com

programarfacil.com/blog/arduino-blog/adafr…

Es un resumen muy bueno de los diferentes motores que controla esta shield.

Para calibrar el sensor QTR-8RC- ը պետք է ընտրի դասընթացը

Y un ultimo enlace que os puede ayudar es este სწავելի;

www.instructables.com/id/Arduino-based-lin…

Շարժիչների աշխատանքը ստուգելու համար մենք հետևել ենք այս բլոգի աջակցությանը ՝ www.programarfacil.com

programarfacil.com/blog/arduino-blog/adafruit-motor-shield-arduino/

Դա շատ լավ ամփոփում է տարբեր շարժիչների, որոնք վերահսկում է այս վահանը:

QTR-8RC սենսորը ճշգրտելու համար կարող եք հետևել ձեռնարկի ձեռնարկին

www.youtube.com/watch?v=_ZeybIDd80s&list=PLlNY7ygeCIzCuq0jSjPD8_LfcAsPKUcGL&index=6

Եվ վերջին հղումը, որը կարող է օգնել ձեզ, սա ուսանելի է.

www.instructables.com/id/Arduino-based-line-follower-using-Pololu-QTR-8RC-l/

Քայլ 3: Քայլ 3: Կոդ

Image
Image

las conexiones entre el array de

sensores y las placas las hicimos de la siguiente manera:

El Led ON va al pin digital 12

Los 8 sensores van desde el

número 1 փին 8

número 2 փին 9

número 3 փին 2

número 4 փին 3

número 5 al pin 4

número 6 al pin 5

número 7 և pin 6

número 8 և pin 7

El código va sin repasarlo (se aceptan sugerencias)

#ներառում

#ներառում

#ներառում

#ներառում

// Ստեղծեք շարժիչի վահանի օբյեկտ ՝ կանխադրված I2C հասցեով

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Կամ, ստեղծեք այն այլ I2C հասցեով (ասենք ՝ կուտակման համար)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Ընտրեք M1, M2, M3 կամ M4 «նավահանգիստը»: Այս դեպքում M1

Adafruit_DCMotor *motor1 = AFMS.getMotor (1);

// Դուք կարող եք նաև պատրաստել մեկ այլ շարժիչ M2 նավահանգստում

Adafruit_DCMotor *motor2 = AFMS.getMotor (2);

// Փոփոխեք ստորև նշված արժեքները `ձեր ռոբոտի շարժիչներին, քաշին, անիվի տեսակին և այլն համապատասխան:

#սահմանել ՔՊ.2

#սահմանել KD 5

#սահմանի M1_DEFAULT_SPEED 50

#սահմանի M2_DEFAULT_SPEED 50

#սահմանի M1_MAX_SPEED 70

#սահմանի M2_MAX_SPEED 70

#սահմանել Միջին_Սենսորը 4

#սահմանել NUM_SENSORS 8 // օգտագործված տվիչների քանակը

#սահմանել IMEԱՄԱՆԱԿԸ 2500 // սպասում է մեզ 2500 -ին, մինչև սենսորների ելքերը ցածր լինեն

#սահմանել EMITTER_PIN 12 // թողարկիչը կառավարվում է թվային 2 -րդ կապով

#define DEBUG 0 // սահմանել 1, եթե անհրաժեշտ է սերիական վրիպազերծման ելք

QTRSensorsRC qtrrc ((անստորագիր նշան ) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, TIMEOUT, EMITTER_PIN);

անստորագիր int sensorValues [NUM_SENSORS];

դատարկ կարգավորում ()

{

ուշացում (1000);

manual_calibration ();

set_motors (0, 0);

}

int lastError = 0;

int last_proportional = 0;

int ինտեգրալ = 0;

դատարկ շրջան ()

{

Serial.begin (9600); // կարգավորել Սերիական գրադարանը 9600 զ/ վ արագությամբ

Serial.println ("Adafruit Motorshield v2 - DC Motor test!");

AFMS.begin (); // ստեղծել կանխադրված 1.6 ԿՀց հաճախականությամբ

//AFMS.begin(1000); // Կամ այլ հաճախականությամբ, ասենք 1 ԿՀց

// Սահմանեք մեկնարկի արագությունը ՝ 0 -ից (անջատված) մինչև 255 (առավելագույն արագություն)

motor1-> setSpeed (70);

motor1-> վազում (ԱՌԱ);

// միացրեք շարժիչը

motor1-> վազում (ԹՈLEԱՐԿՈՄ);

motor2-> setSpeed (70);

motor2-> վազում (ԱՌԱARD);

// միացրեք շարժիչը

motor2-> վազում (ԹՈLEԱՐԿՈՄ);

անստորագիր ներքին տվիչներ [5];

int դիրք = qtrrc.readLine (տվիչներ);

int սխալ = դիրք - 2000;

int motorSpeed = KP * սխալ + KD * (սխալ - lastError);

lastError = սխալ;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// սահմանել շարժիչի արագությունը ՝ օգտագործելով վերը նշված շարժիչի արագության երկու փոփոխականը

set_motors (leftMotorSpeed, rightMotorSpeed);

}

void set_motors (int motor1speed, int motor2speed)

{

եթե (motor1speed> M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; // սահմանափակել առավելագույն արագությունը

եթե (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // սահմանափակել առավելագույն արագությունը

եթե (motor1speed <0) motor1speed = 0; // շարժիչը պահել 0 -ից բարձր

եթե (motor2speed <0) motor2speed = 0; // պահել շարժիչի արագությունը 0 -ից բարձր

motor1-> setSpeed (motor1speed); // սահմանել շարժիչի արագությունը

motor2-> setSpeed (motor2speed); // սահմանել շարժիչի արագությունը

motor1-> վազում (ԱՌԱ);

motor2-> վազում (ԱՌԱARD);

}

անվավեր manual_calibration () {

int i;

for (i = 0; i <250; i ++) // տրամաչափումը կտևի մի քանի վայրկյան

{

qtrrc. calibrate (QTR_EMITTERS_ON);

ուշացում (20);

}

if (DEBUG) {// եթե ճշմարիտ է, հաջորդական ելքի միջոցով ստեղծեք տվիչների տվյալներ

Serial.begin (9600);

համար (int i = 0; i <NUM_SENSORS; i ++)

{

Serial.print (qtrrc.calibratedMinimumOn );

Serial.print ('');

}

Serial.println ();

համար (int i = 0; i <NUM_SENSORS; i ++)

{

Serial.print (qtrrc.calibratedMaximumOn );

Serial.print ('');

}

Serial.println ();

Serial.println ();

}

}

Bueno a ver que tal se nos da este proyecto «express» en la competición del OSHWDEM.

Խորհուրդ ենք տալիս: