Kazalo:

TA-ZON-BOT (Line Follower): 3 koraki (s slikami)
TA-ZON-BOT (Line Follower): 3 koraki (s slikami)

Video: TA-ZON-BOT (Line Follower): 3 koraki (s slikami)

Video: TA-ZON-BOT (Line Follower): 3 koraki (s slikami)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
TA-ZON-BOT (sledilnik črte)
TA-ZON-BOT (sledilnik črte)
TA-ZON-BOT (sledilnik črte)
TA-ZON-BOT (sledilnik črte)

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

Posoda sledi vrstici

Ta robot vam je sledil s pomočjo naših študentov (hvala minimakerjem).

To je bil ekspresni projekt za sodelovanje v OSHWDEN A Coruña.

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

Google prevajalnik

1. korak: 1. korak: Komponente

1. korak: Komponente
1. korak: Komponente
1. korak: Komponente
1. korak: Komponente
1. korak: Komponente
1. korak: Komponente

Vse komponente, ki jih uporabljate

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:

Specifikacije (odstavek 6V):

Dimenzije: 26 x 10 x 12 mm

Razmerje de la reductora: 30: 1

Premer delca: 3 mm (con ranura de bloqueo)

Nazivna napetost: 6Vcc (puede funcionar entre 3 a 9Vcc)

Hitrost prenosa energije: 1000rpm

Poraba energije: 120 mA (1600 mA s kargo)

Navor: 0,6 kg/cm (max)

Peso: 10 gramov

Enlace de tienda na spletu:

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

1 ščit za motor 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 matrika senzorjev QTR-8RC con las siguientes características;

Specifikacije matrike senzorja odsevnosti QTR-8x • Mere: 2,95 "x 0,5" • Delovna napetost: 3,3-5,0 V • Napajalni tok: 100 mA • Izhodni format za QTR-8A: 8 analognih napetosti v razponu od 0 V do napajane napetosti • Izhodni format za QTR-8RC: 8 digitalnih V/I-kompatibilnih signalov, ki jih je mogoče prebrati kot časovno omejen visok impulz • Optimalna razdalja zaznavanja: 0,125 "(3 mm) • Največja priporočena razdalja zaznavanja za QTR-8A: 0,25" (6 mm) • Največja priporočena razdalja zaznavanja za QTR-8RC: 9,5 mm (0,375 palca) • Teža brez zatičev glave: 3,1 g (0,11 oz)

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

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

Komponente, ki smo jih uporabili, so naslednje.

Okrogel kos metakrilata. (Uporabite lahko katero koli zasnovo, naša osnova meri ravno toliko, da skledo postavite na glavo).

1 Posoda za zajtrk (uporablja se za koncentriranje robota na linijo).

2 kolesi reciklirane igrače.

2 motorja z naslednjimi specifikacijami:

Tehnični podatki (za 6V): Mere: 26 x 10 x 12 mm Razmerje reduktorja: 30: 1 Premer gredi: 3 mm (z zapornim utorom) Nazivna napetost: 6Vdc (lahko deluje med 3 do 9Vdc) Hitrost obračanja brez obremenitve: 1000 vrt / min Poraba brez obremenitve: 120mA (1600mA z obremenitvijo) Navor: 0,6 kg / cm (max) Teža: 10 gramov

Povezava do spletne trgovine:

1 Arduino UNO plošča (reciklirano iz starega projekta)

1 ščit za motorje Adafruit v2.3:

1 Držalo za baterije 8 AAA baterij (ne uporabljamo 2 napajalnikov).

6 vijakov in matic za povezovanje elementov, kot je prikazano na sliki

prirobnice za motorje, elastična guma za držanje akumulatorja in kos pločevine za podlago nosilca akumulatorja.

1 niz senzorjev QTR-8RC z naslednjimi značilnostmi;

Specifikacije matrike senzorja odsevnosti QTR-8x • Mere: 2,95 "x 0,5" • Delovna napetost: 3,3-5,0 V • Napajalni tok: 100 mA • Izhodni format za QTR-8A: 8 analognih napetosti v razponu od 0 V do napajane napetosti • Izhodni format za QTR-8RC: 8 digitalnih V / I-kompatibilnih signalov, ki jih je mogoče prebrati kot časovno omejen visok impulz • Optimalna razdalja zaznavanja: 0,125 "(3 mm) • Največja priporočena razdalja zaznavanja za QTR-8A: 0,25" (6 mm) • Največja priporočena razdalja zaznavanja za QTR-8RC: 0,375 "(9,5 mm) • Teža brez zatičev glave: 3,1 g

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

Vse sestavite … kmalu podrobnejši video …

2. korak: 2. korak: Navdih

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 kalibracijo senzorja QTR-8RC si oglejte navodila za uporabo

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

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

Za preizkus delovanja motorjev smo sledili podpori za spletni dnevnik www.programarfacil.com

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

To je zelo dober povzetek različnih motorjev, ki jih nadzoruje ta ščit.

Če želite umeriti senzor QTR-8RC, sledite navodilom

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

In zadnja povezava, ki vam lahko pomaga, je ta navodila;

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

3. korak: 3. korak: Koda

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 senzorjev van desde el

številka 1 ali 8 pin

numero 2 ali pin 9

numero 3 ali pin 2

numero 4 ali pin 3

numero 5 ali pin 4

numero 6 ali pin 5

numero 7 ali pin 6

numero 8 ali pin 7

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

#vključi

#vključi

#vključi

#vključi

// Ustvarite objekt motornega ščita s privzetim naslovom I2C

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Ali pa ga ustvarite z drugim naslovom I2C (recimo za zlaganje)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Izberite, katera 'vrata' M1, M2, M3 ali M4. V tem primeru M1

Adafruit_DCMotor *motor1 = AFMS.getMotor (1);

// Na vratih M2 lahko naredite tudi drug motor

Adafruit_DCMotor *motor2 = AFMS.getMotor (2);

// Spodnje vrednosti spremenite tako, da ustrezajo motorjem, masi, vrsti koles itd.

#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 // število uporabljenih senzorjev

#define TIMEOUT 2500 // čaka na 2500 us, da se izhodi senzorjev znižajo

#define EMITTER_PIN 12 // oddajnik krmili digitalni pin 2

#define DEBUG 0 // nastavljeno na 1, če je potreben izhod za serijsko odpravljanje napak

QTRSensorsRC qtrrc ((brez podpisanega znaka ) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, TIMEOUT, EMITTER_PIN);

nepodpisani int sensorValues [NUM_SENSORS];

void setup ()

{

zamuda (1000);

manual_calibration ();

set_motors (0, 0);

}

int lastError = 0;

int last_proportional = 0;

int integral = 0;

void loop ()

{

Serial.begin (9600); // nastavitev serijske knjižnice pri 9600 bps

Serial.println ("Adafruit Motorshield v2 - preizkus enosmernega motorja!");

AFMS.begin (); // ustvarjanje s privzeto frekvenco 1,6KHz

//AFMS.begin(1000); // ALI z drugo frekvenco, recimo 1KHz

// Nastavite hitrost za zagon, od 0 (izklop) do 255 (največja hitrost)

motor1-> setSpeed (70);

motor1-> tek (NAPREJ);

// vklop motorja

motor1-> teči (RELEASE);

motor2-> setSpeed (70);

motor2-> tek (NAPREJ);

// vklop motorja

motor2-> teči (RELEASE);

nepodpisani int senzorji [5];

int position = qtrrc.readLine (senzorji);

int napaka = položaj - 2000;

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

lastError = napaka;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// nastavimo hitrosti motorja z uporabo zgornjih dveh spremenljivk hitrosti motorja

set_motors (leftMotorSpeed, rightMotorSpeed);

}

void set_motors (int motor1speed, int motor2speed)

{

če (hitrost motorja> M1_MAX_SPEED) hitrost motorja = M1_MAX_SPEED; // omeji največjo hitrost

če je (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // omeji največjo hitrost

if (hitrost motorja <0) hitrost motorja = 0; // motor naj bo nad 0

if (motor2speed <0) motor2speed = 0; // ohranite hitrost motorja nad 0

motor1-> setSpeed (hitrost motorja1); // nastavite hitrost motorja

motor2-> setSpeed (motor2speed); // nastavite hitrost motorja

motor1-> tek (NAPREJ);

motor2-> tek (NAPREJ);

}

void manual_calibration () {

int i;

for (i = 0; i <250; i ++) // kalibracija bo trajala nekaj sekund

{

qtrrc.calibrate (QTR_EMITTERS_ON);

zamuda (20);

}

if (DEBUG) {// če je res, ustvarite senzorske podatke prek serijskega izhoda

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.

Priporočena: