Indholdsfortegnelse:

TA-ZON-BOT (Line Follower): 3 trin (med billeder)
TA-ZON-BOT (Line Follower): 3 trin (med billeder)

Video: TA-ZON-BOT (Line Follower): 3 trin (med billeder)

Video: TA-ZON-BOT (Line Follower): 3 trin (med billeder)
Video: GREENLINE 40 Solar Electric Hybrid Silent Eco Yacht Tour, Tech Talk & a Sea Trial 2024, November
Anonim
TA-ZON-BOT (Line Follower)
TA-ZON-BOT (Line Follower)
TA-ZON-BOT (Line Follower)
TA-ZON-BOT (Line Follower)

TA-ZON-BOT

El tazón siguelineas

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

Jeg kan ikke bruge ekspres til at deltage i poder i OSHWDEN de A Coruña.

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

traductor google

TA-ZON-BOT

Skålen følger linje

Vi har fået denne robot til at følge dig ved hjælp af vores studerende, (tak minimakers).

Det har været et ekspresprojekt at deltage i OSHWDEN i A Coruña.

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

Google oversætter

Trin 1: Trin 1: Komponenter

Trin 1: Komponenter
Trin 1: Komponenter
Trin 1: Komponenter
Trin 1: Komponenter
Trin 1: Komponenter
Trin 1: Komponenter

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 motorer med følgende egenskaber:

Specificaciones (punkt 6V):

Dimensioner: 26 x 10 x 12 mm

Ratio de la reductora: 30: 1

Dimension: 3 mm (con ranura de bloqueo)

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

Velocidad de giro sin carga: 1000 omdr./min

Consumo sin carga: 120mA (1600mA con carga)

Moment: 0,6 kg/cm (maks.)

Peso: 10 gram

Læg de tienda online:

1 placa Arduino UNO (reciclada de un proyecto antiguo)

1 skjold til motorer 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 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 características;

Specifikationer for QTR-8x refleksionssensormatrix • Dimensioner: 2,95 "x 0,5" • Driftsspænding: 3,3-5,0 V • Forsyningsstrøm: 100 mA • Outputformat for QTR-8A: 8 analoge spændinger, der spænder fra 0 V til leveret spænding • Outputformat til QTR-8RC: 8 digitale I/O-kompatible signaler, der kan læses som en timet høj puls • Optimal registreringsafstand: 0,125 "(3 mm) • Maksimal anbefalet registreringsafstand for QTR-8A: 0,25" (6 mm) • Maksimal anbefalet registreringsafstand for QTR-8RC: 0,375 "(9,5 mm) • Vægt uden hovedstifter: 3,11 g (0,11 oz) Lo podéis encontrar en:

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

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

De komponenter, vi har brugt, har været følgende.

Et rundt stykke methacrylat. (Du kan bruge ethvert design, vores base måler lige nok til at placere skålen på hovedet).

1 Morgenmadskål (bruges til at koncentrere robotten om linjen).

2 hjul af genbrugslegetøj.

2 motorer med følgende specifikationer:

Specifikationer (til 6V): Dimensioner: 26 x 10 x 12 mm Reduktionsforhold: 30: 1 Akseldiameter: 3 mm (med låsespor) Nominel spænding: 6Vdc (kan fungere mellem 3 til 9Vdc) Drejehastighed uden belastning: 1000rpm Forbrug uden belastning: 120mA (1600mA med belastning) Moment: 0,6kg / cm (maks.) Vægt: 10 gram

Link til online butik:

1 Arduino UNO board (genanvendt fra et gammelt projekt)

1 skjold til Adafruit v2.3 -motorer:

1 En batteriholder med 8 AAA batterier (vi bruger ikke 2 strømforsyninger).

6 skruer og møtrikker til at forbinde elementerne som vist på billedet

flanger til motorerne, en elastisk gummi til at rumme batteriholderen og et stykke plastik til bunden af batteriholderen.

1 array af QTR-8RC sensorer med følgende egenskaber;

Specifikationer for QTR-8x refleksionssensormatrix • Dimensioner: 2,95 "x 0,5" • Driftsspænding: 3,3-5,0 V • Forsyningsstrøm: 100 mA • Outputformat for QTR-8A: 8 analoge spændinger, der spænder fra 0 V til leveret spænding • Outputformat for QTR-8RC: 8 digitale I / O-kompatible signaler, der kan aflæses som en timet høj puls • Optimal registreringsafstand: 3 mm (0,125 ") • Maksimal anbefalet registreringsafstand for QTR-8A: 0,25" (6 mm) • Maksimal anbefalet registreringsafstand for QTR-8RC: 0,375 "(9,5 mm) • Vægt uden hovedstifter: 0,11 oz (3,1 g) Du kan finde den i:

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

Saml alt … snart en mere detaljeret video …

Trin 2: Trin 2: Inspiration

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.

Til kalibreringssensor QTR-8RC podéis seguir el tutorial de

Y un ultimo enlace que os puede ayudar es este instructable;

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

For at teste motorernes ydeevne har vi fulgt denne blogsupport www.programarfacil.com

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

Det er en meget god oversigt over de forskellige motorer, som dette skjold styrer.

For at kalibrere QTR-8RC-sensoren kan du følge vejledningen i

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

Og et sidste link, der kan hjælpe dig, er dette instruerbare;

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

Trin 3: Trin 3: Kode

Image
Image

las conexiones entre el array de

sensorer og las placas las hicimos de la siguiente manera:

El Led ON va al pin digital 12

Los 8 sensores van desde el

nr. 1 til pin 8

nummer 2 på pin 9

nr. 3 til pin 2

nummer 4 og pin 3

nummer 5 og pin 4

nummer 6 på pin 5

nr. 7 til pin 6

nr. 8 til pin 7

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

#omfatte

#omfatte

#omfatte

#omfatte

// Opret motorskjoldsobjektet med standard I2C -adressen

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Eller, opret den med en anden I2C -adresse (f.eks. For stabling)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Vælg hvilken 'port' M1, M2, M3 eller M4. I dette tilfælde er M1

Adafruit_DCMotor *motor1 = AFMS.getMotor (1);

// Du kan også lave en anden motor på port M2

Adafruit_DCMotor *motor2 = AFMS.getMotor (2);

// Rediger nedenstående værdier, så de passer til din robots motorer, vægt, hjultype osv.

#define KP.2

#define KD 5

#define M1_DEFAULT_SPEED 50

#define M2_DEFAULT_SPEED 50

#define M1_MAX_SPEED 70

#define M2_MAX_SPEED 70

#define MIDDLE_SENSOR 4

#define NUM_SENSORS 8 // antal anvendte sensorer

#define TIMEOUT 2500 // venter på 2500 os, før sensorudgangene bliver lave

#define EMITTER_PIN 12 // emitter styres af digital pin 2

#define DEBUG 0 // indstillet til 1, hvis seriel fejlfindingsoutput er nødvendig

QTRSensorsRC qtrrc ((usigneret tegn ) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, TIMEOUT, EMITTER_PIN);

usigneret int sensorValues [NUM_SENSORS];

ugyldig opsætning ()

{

forsinkelse (1000);

manuel_kalibrering ();

set_motors (0, 0);

}

int lastError = 0;

int last_proportional = 0;

int integral = 0;

hulrum ()

{

Serial.begin (9600); // konfigureret serielt bibliotek med 9600 bps

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

AFMS.begin (); // opret med standardfrekvensen 1,6KHz

//AFMS.begynder (1000); // ELLER med en anden frekvens, siger 1KHz

// Indstil hastigheden til at starte, fra 0 (fra) til 255 (maks. Hastighed)

motor1-> setSpeed (70);

motor1-> kør (FREM);

// tænde motoren

motor1-> kørsel (RELEASE);

motor2-> setSpeed (70);

motor2-> kør (FREM);

// tænde motoren

motor2-> kørsel (RELEASE);

usignerede int -sensorer [5];

int position = qtrrc.readLine (sensorer);

int fejl = position - 2000;

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

lastError = fejl;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// indstil motorhastigheder ved hjælp af de to motorhastighedsvariabler ovenfor

set_motors (leftMotorSpeed, rightMotorSpeed);

}

void set_motors (int motor1speed, int motor2speed)

{

hvis (motor1speed> M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; // begræns topfarten

hvis (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // begræns topfarten

hvis (motor1speed <0) motor1speed = 0; // hold motoren over 0

hvis (motor2speed <0) motor2speed = 0; // holde motorhastigheden over 0

motor1-> setSpeed (motor1speed); // indstil motorhastighed

motor2-> setSpeed (motor2speed); // indstil motorhastighed

motor1-> kør (FREM);

motor2-> kør (FREM);

}

void manual_calibration () {

int i;

for (i = 0; i <250; i ++) // kalibreringen vil tage et par sekunder

{

qtrrc.calibrate (QTR_EMITTERS_ON);

forsinkelse (20);

}

hvis (DEBUG) {// hvis sand, generer sensordata via seriel output

Serial.begin (9600);

for (int i = 0; i <NUM_SENSORS; i ++)

{

Serial.print (qtrrc.calibratedMinimumOn );

Serial.print ('');

}

Serial.println ();

for (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.

Anbefalede: