Përmbajtje:

TA-ZON-BOT (Ndjekësi i linjës): 3 hapa (me fotografi)
TA-ZON-BOT (Ndjekësi i linjës): 3 hapa (me fotografi)

Video: TA-ZON-BOT (Ndjekësi i linjës): 3 hapa (me fotografi)

Video: TA-ZON-BOT (Ndjekësi i linjës): 3 hapa (me fotografi)
Video: الارك الاول من حكايه شاب بينتقل للعبه حرب وهدفه يكون اقوى لاعب فى اللعبه هل هينجح؟ ملخص منهوا 2024, Nëntor
Anonim
TA-ZON-BOT (Ndjekësi i linjës)
TA-ZON-BOT (Ndjekësi i linjës)
TA-ZON-BOT (Ndjekësi i linjës)
TA-ZON-BOT (Ndjekësi i linjës)

TA-ZON-BOT

El tazón siguelineas

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

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

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

traductor google

TA-ZON-BOT

Linja vijuese e tasit

Ne e kemi bërë këtë robot duke ju ndjekur me ndihmën e studentëve tanë, (faleminderit prodhuesit minimal).

Ka qenë një projekt i shpejtë për të marrë pjesë në OSHWDEN të A Coruña.

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

perkthyesi i Google

Hapi 1: Hapi 1: Komponentët

Hapi 1: Komponentët
Hapi 1: Komponentët
Hapi 1: Komponentët
Hapi 1: Komponentët
Hapi 1: Komponentët
Hapi 1: Komponentët

Los componentes que hemos utilizados

han sido los siguientes.

Una pieza redonda de metacrilato..

1 Tazón de desayuno (që është para koncentratorit të robotit në linjë).

2 ruedas de un juguete reciclado.

2 motore con las siguientes especificaciones:

Especificaciones (Para 6V):

Përmasat: 26 x 10 x 12 mm

Raporti i reduktimit: 30: 1

Diámetro del eje: 3mm (con ranura de bloqueo)

Voltaje nominale: 6Vcc (puede funcionar entre 3 a 9Vcc)

Shpejtësia e ngarkesës së ngarkesës: 1000rpm

Ngarkesa e konsumit të mëkatit: 120mA (1600mA e ngarkuar)

Çift rrotullues: 0.6kg/cm (max)

Peso: 10 gram

Enlace de tienda online:

1 placa Arduino UNO (reciclada de un proyecto antiguo)

1 mburojë për motorët Adafruit v2.3:

1 Un porta pilas nga 8 pila AAA (pa përdorim 2 ushqime të ushqimit).

6 tornillos y tuercas para unir los elementos como se ve en 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 array de sensores QTR-8RC con las siguientes Karakteristikat;

Specifikimet për grupin e sensorit të reflektimit QTR-8x • Përmasat: 2.95 "x 0.5" • Tensioni i funksionimit: 3.3-5.0 V • Rryma e furnizimit: 100 mA • Formati i daljes për QTR-8A: 8 tensione analoge që variojnë nga 0 V në tensionin e furnizuar • Formati i daljes për QTR-8RC: 8 sinjale dixhitale të pajtueshme me I/O që mund të lexohen si një impuls i lartë i caktuar me kohë • Distanca optimale e ndijimit: 0.125 "(3 mm) • Distanca maksimale e rekomanduar e ndijimit për QTR-8A: 0.25" (6 mm) • Distanca maksimale e rekomanduar e ndijimit për QTR-8RC: 0.375 "(9.5 mm) • Pesha pa kunjat e kokës: 0.11 oz (3.1 g) Lo podéis encontrar en:

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

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

Komponentët që kemi përdorur kanë qenë më poshtë.

Një pjesë e rrumbullakët e metakrilatit. (Ju mund të përdorni çdo dizajn, masat tona bazë mjaftojnë për ta vendosur tasin me kokë poshtë).

1 tas për mëngjes (përdoret për të përqendruar robotin në linjë).

2 rrota të një lodre të ricikluar.

2 motorë me specifikimet e mëposhtme:

Specifikimet (Për 6V): Përmasat: 26 x 10 x 12 mm Raporti i zvogëluesit: 30: 1 Diametri i boshtit: 3mm (me brazdë mbyllëse) Tensioni nominal: 6Vdc (mund të funksionojë midis 3 deri në 9Vdc) Shpejtësia e kthesës pa ngarkesë: 1000rpm Konsumi pa ngarkesë: 120mA (1600mA me ngarkesë) Çift rrotullues: 0.6kg / cm (max) Pesha: 10 gram

Lidhja e dyqanit online:

1 bord Arduino UNO (i ricikluar nga një projekt i vjetër)

1 mburojë për motorët Adafruit v2.3:

1 Një mbajtës i baterisë me 8 bateri AAA (ne nuk përdorim 2 furnizime me energji elektrike).

6 vida dhe arra për t'u bashkuar me elementët siç shihet në imazh

fllanxha për motorët, një gome elastike për të mbajtur mbajtësen e baterisë dhe një copë një fletë plastike për bazën e mbajtësit të baterisë.

1 grup sensorë QTR-8RC me karakteristikat e mëposhtme;

Specifikimet për grupin e sensorit të reflektimit QTR-8x • Përmasat: 2.95 "x 0.5" • Tensioni i funksionimit: 3.3-5.0 V • Rryma e furnizimit: 100 mA • Formati i daljes për QTR-8A: 8 tensione analoge që variojnë nga 0 V në tensionin e furnizuar • Formati i daljes për QTR-8RC: 8 sinjale dixhitale të pajtueshme me I / O që mund të lexohen si një impuls i lartë i caktuar me kohë • Distanca optimale e ndijimit: 0.125 "(3 mm) • Distanca maksimale e rekomanduar e ndijimit për QTR-8A: 0.25" (6 mm) • Distanca maksimale e rekomanduar e ndijimit për QTR-8RC: 0.375 "(9.5 mm) • Pesha pa kunjat e kokës: 0.11 oz (3.1 g) Mund ta gjeni në:

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

Mblidhni gjithçka … së shpejti një video më të detajuar …

Hapi 2: Hapi 2: Frymëzimi

Para probar el funcionamiento del los

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

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

Ju mund të rifilloni një lëvizje të ndryshme të motorëve që mbrojnë mburojën.

Për kalibrin e sensorit QTR-8RC ju mund të përdorni një tutorial

Y un ultimo enlace que os puede ayudar es este udhëzues;

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

Për të testuar performancën e motorëve ne kemi ndjekur këtë mbështetje në blog www.programarfacil.com

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

Shtë një përmbledhje shumë e mirë e motorëve të ndryshëm që kontrollon kjo mburojë.

Për të kalibruar sensorin QTR-8RC mund të ndiqni mësimin e

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

Dhe një lidhje e fundit që mund t'ju ndihmojë është kjo e udhëzueshme;

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

Hapi 3: Hapi 3: Kodi

Image
Image

las conexiones entre el array de

sensores y las placas las hicimos de la siguiente manera:

El Led ON va al pin dixhitale 12

Los 8 sensores van desde el

número 1 al pin 8

numër 2 në pin 9

numër 3 në pin 2

numër 4 në pin 3

numër 5 në pin 4

numër 6 në pin 5

número 7 në pin 6

número 8 në pin 7

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

#përfshi

#përfshi

#përfshi

#përfshi

// Krijoni objektin e mburojës motorike me adresën e paracaktuar I2C

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Ose, krijojeni atë me një adresë të ndryshme I2C (thoni për grumbullimin)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Zgjidhni cilin 'port' M1, M2, M3 ose M4. Në këtë rast, M1

Adafruit_DCMotor *motor1 = AFMS.getMotor (1);

// Ju gjithashtu mund të bëni një motor tjetër në portin M2

Adafruit_DCMotor *motor2 = AFMS.getMotor (2);

// Ndryshoni vlerat e mëposhtme për t'iu përshtatur motorëve të robotit tuaj, peshës, llojit të rrotës, etj.

#përcakto PK.2

#përcakto KD 5

#përcakto M1_DEFAULT_SPEED 50

#përcakto M2_DEFAULT_SPEED 50

#përcakto M1_MAX_SPEED 70

#përcakto M2_MAX_SPEED 70

#përcaktoSIDENSIN_MES MIDDLE 4

#përcakto NUM_SENSORS 8 // numri i sensorëve të përdorur

#define TIMEOUT 2500 // na pret 2500 që daljet e sensorit të ulen

#define EMITTER_PIN 12 // emetuesi kontrollohet nga kunja dixhitale 2

#define DEBUG 0 // vendoseni në 1 nëse nevojitet dalje serike e korrigjimit

QTRSensorsRC qtrrc ((shenja pa shenjë ) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, KOHA, EMITTER_PIN);

sensori int i pa firmosur Vlerat [NUM_SENSORS];

void setup ()

{

vonesa (1000);

manual_kalibrimi ();

set_motors (0, 0);

}

int lastError = 0;

int last_proportional = 0;

int integral = 0;

lak void ()

{

Serial.filloj (9600); // vendosni bibliotekën serike në 9600 bps

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

AFMS.filloj (); // krijoni me frekuencën e paracaktuar 1.6KHz

//AFMS.filloj (1000); // OSE me një frekuencë të ndryshme, të themi 1KHz

// Vendosni shpejtësinë për të filluar, nga 0 (fikur) në 255 (shpejtësia maksimale)

motor1-> setSpeed (70);

motor1-> vrapim (PARA);

// ndizni motorin

motor1-> vrapim (LIRIM);

motor2-> setSpeed (70);

motor2-> vrapim (PARA);

// ndizni motorin

motor2-> vrapim (LIRIM);

sensorë int të panënshkruar [5];

int pozicion = qtrrc.readLine (sensorë);

gabimi int = pozicioni - 2000;

int motorSpeed = KP * gabim + KD * (gabim - lastError);

lastError = gabim;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// vendosni shpejtësitë e motorit duke përdorur dy ndryshoret e shpejtësisë së motorit më lart

set_motors (leftMotorSpeed, rightMotorSpeed);

}

void set_motors (int motor1speed, int motor2speed)

{

nëse (motor1speed> M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; // kufizoni shpejtësinë maksimale

nëse (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // kufizoni shpejtësinë maksimale

nëse (motor1speed <0) motor1speed = 0; // mbajeni motorin mbi 0

nëse (motor2speed <0) motor2speed = 0; // mbani shpejtësinë e motorit mbi 0

motor1-> setSpeed (motor1speed); // vendosni shpejtësinë e motorit

motor2-> setSpeed (motor2speed); // vendosni shpejtësinë e motorit

motor1-> vrapim (PARA);

motor2-> vrapim (PARA);

}

void manual_calibration () {

int i;

për (i = 0; i <250; i ++) // kalibrimi do të marrë disa sekonda

{

qtrrc.kalibroni (QTR_EMITTERS_ON);

vonesa (20);

}

nëse (DEBUG) {// nëse është e vërtetë, gjeneroni të dhëna të sensorit përmes daljes serike

Serial.filloj (9600);

për (int i = 0; i <NUM_SENSORS; i ++)

{

Serial.print (qtrrc.kalibruarMinimumOn );

Serial.print ('');

}

Serial.println ();

për (int i = 0; i <NUM_SENSORS; i ++)

{

Serial.print (qtrrc.kalibruarMaksimumOn );

Serial.print ('');

}

Serial.println ();

Serial.println ();

}

}

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

Recommended: