Sadržaj:

TA-ZON-BOT (sljedbenik linije): 3 koraka (sa slikama)
TA-ZON-BOT (sljedbenik linije): 3 koraka (sa slikama)

Video: TA-ZON-BOT (sljedbenik linije): 3 koraka (sa slikama)

Video: TA-ZON-BOT (sljedbenik linije): 3 koraka (sa slikama)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Studeni
Anonim
TA-ZON-BOT (sljedbenik linije)
TA-ZON-BOT (sljedbenik linije)
TA-ZON-BOT (sljedbenik linije)
TA-ZON-BOT (sljedbenik linije)

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 participar en la OSHWDEN de A Coruña.

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

traductor google

TA-ZON-BOT

Zdjela slijedi red

Napravili smo ovog robota koji vas prati uz pomoć naših učenika (hvala minimakerima).

Bio je to ekspresni projekt za sudjelovanje u OSHWDEN -u A Coruñe.

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

Google prevoditelj

Korak 1: Korak 1: Komponente

Korak 1: Komponente
Korak 1: Komponente
Korak 1: Komponente
Korak 1: Komponente
Korak 1: Komponente
Korak 1: Komponente

Lose komponente koje koriste hemos

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 koncentrar al robot en la linea).

2 ruedas de un juguete reciclado.

2 motores con las siguientes especificaciones:

Especificaciones (stavak 6V):

Dimenzije: 26 x 10 x 12 mm

Omjer de la reductora: 30: 1

Prečnik duljine: 3 mm (con ranura de bloqueo)

Nazivni napon: 6Vcc (puede funcionar entre 3 a 9Vcc)

Velocidad de giro sin carga: 1000 o / min

Potrošnja: 120mA (1600mA sa Carga)

Okretni moment: 0,6 kg/cm (max)

Pezo: 10 grama

Enlace de tienda online:

1 ploča Arduino UNO (reciclada de un proyecto antiguo)

1 štit za motore 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 imen

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;

Specifikacije za niz senzora refleksije QTR-8x • Mjere: 2,95 "x 0,5" • Radni napon: 3,3-5,0 V • Opskrbna struja: 100 mA • Izlazni format za QTR-8A: 8 analognih napona u rasponu od 0 V do napajanog napona • Izlazni format za QTR-8RC: 8 digitalnih I/O-kompatibilnih signala koji se mogu čitati kao tempirani visoki impuls • Optimalna udaljenost sensinga: 0,125 "(3 mm) • Maksimalna preporučena udaljenost sensinga za QTR-8A: 0,25" (6 mm) • Maksimalna preporučena udaljenost senzora za QTR-8RC: 975 mm (0,375 ")

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

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

Komponente koje smo koristili bile su sljedeće.

Okrugli komad metakrilata. (Možete koristiti bilo koji dizajn, naša baza mjeri tek toliko da zdjelu postavite naopako).

1 Zdjela za doručak (koristi se za koncentriranje robota na liniju).

2 kotača reciklirane igračke.

2 motora sa sljedećim specifikacijama:

Tehnički podaci (Za 6V): Mjere: 26 x 10 x 12 mm Omjer reduktora: 30: 1 Promjer osovine: 3 mm (sa bravom za zaključavanje) Nominalni napon: 6Vdc (može raditi između 3 do 9Vdc) Brzina okretanja bez opterećenja: 1000 o / min Potrošnja bez opterećenja: 120mA (1600mA s opterećenjem) Okretni moment: 0,6 kg / cm (max) Težina: 10 grama

Veza na internetsku trgovinu:

1 Arduino UNO ploča (reciklirano iz starog projekta)

1 štit za motore Adafruit v2.3:

1 Držač baterija od 8 AAA baterija (ne koristimo 2 izvora napajanja).

6 vijaka i matica za spajanje elemenata kao što je prikazano na slici

prirubnice za motore, elastična guma za držanje držača baterije i komad lista plastike za podnožje držača baterije.

1 niz QTR-8RC senzora sa sljedećim karakteristikama;

Specifikacije za niz senzora refleksije QTR-8x • Mjere: 2,95 "x 0,5" • Radni napon: 3,3-5,0 V • Opskrbna struja: 100 mA • Izlazni format za QTR-8A: 8 analognih napona u rasponu od 0 V do napajanog napona • Izlazni format za QTR-8RC: 8 digitalnih I / O-kompatibilnih signala koji se mogu čitati kao tempirani visoki impuls • Optimalna udaljenost sensinga: 0,125 "(3 mm) • Maksimalna preporučena udaljenost sensinga za QTR-8A: 0,25" (6 mm) • Maksimalna preporučena udaljenost senzora za QTR-8RC: 9,5 mm (0,375 ") • Težina bez igle zaglavlja: 3,1 g

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

Skupite sve … uskoro detaljniji video …

Korak 2: Korak 2: Inspiracija

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.

Za kalibracijski senzor 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…

Kako bismo testirali performanse motora, pratili smo ovu blog podršku www.programarfacil.com

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

To je vrlo dobar sažetak različitih motora kojima upravlja ovaj štit.

Za kalibriranje QTR-8RC senzora možete slijediti vodič

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

I posljednja poveznica koja vam može pomoći je ova instrukcija;

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

Korak 3: Korak 3: Kodirajte

Image
Image

las conexiones entre el array de

sensores y las placas las hicimos de la siguiente manera:

El Led ON digitalni va al pin 12

Los 8 senzora van desde el

número 1 al pin 8

número 2 ili pin 9

numero 3 ili pin 2

numero 4 ili pin 3

numero 5 ili pin 4

numero 6 ili pin 5

broj 7 ili pin 6

numero 8 ili pin 7

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

#uključi

#uključi

#uključi

#uključi

// Stvorimo objekt štita motora sa zadanim I2C adresom

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Ili ga stvorite s drugom I2C adresom (recimo za slaganje)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Odaberite "port" M1, M2, M3 ili M4. U ovom slučaju, M1

Adafruit_DCMotor *motor1 = AFMS.getMotor (1);

// Također možete napraviti drugi motor na priključku M2

Adafruit_DCMotor *motor2 = AFMS.getMotor (2);

// Promijenite donje vrijednosti tako da odgovaraju motorima vašeg robota, težini, vrsti kotača itd.

#definirajte KP.2

#definiraj KD 5

#define M1_DEFAULT_SPEED 50

#define M2_DEFAULT_SPEED 50

#define M1_MAX_SPEED 70

#definirajte M2_MAX_SPEED 70

#define MIDDLE_SENSOR 4

#define NUM_SENSORS 8 // broj upotrijebljenih senzora

#define TIMEOUT 2500 // čeka 2500 us da se izlazi senzora smanje

#define EMITTER_PIN 12 // emiterom upravlja digitalni pin 2

#define DEBUG 0 // postavljeno na 1 ako je potreban serijski izlaz za ispravljanje pogrešaka

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

nepotpisani int sensorValues [NUM_SENSORS];

void setup ()

{

kašnjenje (1000);

manual_calibration ();

set_motors (0, 0);

}

int lastError = 0;

int last_proportional = 0;

int integral = 0;

void loop ()

{

Serial.begin (9600); // postavljanje serijske knjižnice na 9600 bps

Serial.println ("Adafruit Motorshield v2 - test istosmjernog motora!");

AFMS.begin (); // kreiranje sa zadanom frekvencijom 1,6KHz

//AFMS.početak (1000); // ILI s drugom frekvencijom, recimo 1KHz

// Podesite početnu brzinu, od 0 (isključeno) do 255 (maksimalna brzina)

motor1-> setSpeed (70);

motor1-> trčanje (NAPRIJED);

// uključiti motor

motor1-> trčanje (OTPUŠTANJE);

motor2-> setSpeed (70);

motor2-> trčanje (NAPRIJED);

// uključiti motor

motor2-> trčanje (OTPUŠTANJE);

int senzori bez potpisa [5];

int position = qtrrc.readLine (senzori);

int pogreška = položaj - 2000;

int motorSpeed = KP * pogreška + KD * (pogreška - lastError);

lastError = pogreška;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// podešavamo brzine motora pomoću dviju gornjih varijabli brzine motora

set_motors (leftMotorSpeed, rightMotorSpeed);

}

void set_motors (int motor1speed, int motor2speed)

{

if (brzina motora1> M1_MAX_SPEED) brzina motora1 = M1_MAX_SPEED; // ograničenje najveće brzine

if (brzina motora2> M2_MAX_SPEED) brzina motora2 = M2_MAX_SPEED; // ograničenje najveće brzine

if (motor1speed <0) motor1speed = 0; // držite motor iznad 0

if (motor2speed <0) motor2speed = 0; // održava brzinu motora iznad 0

motor1-> setSpeed (brzina motora1); // podešavanje brzine motora

motor2-> setSpeed (motor2speed); // podešavanje brzine motora

motor1-> trčanje (NAPRIJED);

motor2-> trčanje (NAPRIJED);

}

void manual_calibration () {

int i;

for (i = 0; i <250; i ++) // kalibracija će trajati nekoliko sekundi

{

qtrrc.calibrate (QTR_EMITTERS_ON);

kašnjenje (20);

}

if (DEBUG) {// ako je istina, generirajte senzorske podatke putem serijskog izlaza

Serial.begin (9600);

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

{

Serial.print (qtrrc.calibratedMinimumOn );

Serial.print ('');

}

Serial.println ();

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

Preporučeni: