Sisällysluettelo:

TA-ZON-BOT (linjan seuraaja): 3 vaihetta (kuvilla)
TA-ZON-BOT (linjan seuraaja): 3 vaihetta (kuvilla)

Video: TA-ZON-BOT (linjan seuraaja): 3 vaihetta (kuvilla)

Video: TA-ZON-BOT (linjan seuraaja): 3 vaihetta (kuvilla)
Video: Кубический кооператив с анализом матрицы ► 1 Прохождение Left 4 dead 2 2024, Marraskuu
Anonim
TA-ZON-BOT (linjan seuraaja)
TA-ZON-BOT (linjan seuraaja)
TA-ZON-BOT (linjan seuraaja)
TA-ZON-BOT (linjan seuraaja)

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 on poder osallistuja OSHWDEN de A Coruñassa.

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

traductor google

TA-ZON-BOT

Kulho seuraa linjaa

Olemme tehneet tämän robotin seuraamaan sinua oppilaidemme avulla (kiitos pienvalmistajille).

Osallistuminen A Coruñan OSHWDENiin on ollut nimenomainen projekti.

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

Google kääntäjä

Vaihe 1: Vaihe 1: Komponentit

Vaihe 1: Komponentit
Vaihe 1: Komponentit
Vaihe 1: Komponentit
Vaihe 1: Komponentit
Vaihe 1: Komponentit
Vaihe 1: Komponentit

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

2 ruedas de un juguete reciclado.

2 moottoripyörää erityislaskennassa:

Erittelyt (6V kohta):

Mitat: 26 x 10 x 12 mm

Vähennyssuhde: 30: 1

Halkaisija: 3 mm (con ranura de bloqueo)

Nimellinen jännite: 6Vcc (puede funcionar entre 3 a 9Vcc)

Velocidad de giro sin carga: 1000 rpm

Virrankulutus: 120 mA (1600 mA)

Vääntö: 0,6 kg/cm (enintään)

Peso: 10 grammaa

Liitä tienna verkossa:

1 paikka Arduino UNO (reciclada de un proyecto antiguo)

1 shield para motores Adafruit v2.3:

1 Unporta 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 joukko sensores QTR-8RC con las siguientes características;

QTR-8x-heijastustunnistinjärjestelmän tekniset tiedot • Mitat: 2,95 "x 0,5" • QTR-8RC: n esitysmuoto: 8 digitaalista I/O-yhteensopivaa signaalia, jotka voidaan lukea ajastettuna korkeana pulssina • Optimaalinen tunnistusetäisyys: 3 mm (0,125 ") • Suurin suositeltu tunnistusetäisyys QTR-8A: lle: 0,25" (6 mm) • Suurin suositeltu tunnistusetäisyys QTR-8RC: lle: 9,5 mm (0,375 tuumaa) • Paino ilman nastatappeja: 3,1 g (0,11 oz) Lo podéis encontrar en:

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

Ensamblar todo… próximamente un vídeo other detallado…

Käytetyt komponentit ovat olleet seuraavat.

Pyöreä pala metakrylaattia. (Voit käyttää mitä tahansa mallia, meidän pohja mittaa juuri sen verran, että laittaa kulhon ylösalaisin).

1 Aamiaishuone (käytetään robotin keskittämiseen siimalle).

2 pyörää kierrätettyä lelua.

2 moottoria, joilla on seuraavat tiedot:

Tekniset tiedot (6 V: lle): Mitat: 26 x 10 x 12 mm Vähennyslaitteen suhde: 30: 1 Akselin halkaisija: 3 mm (lukitusuran kanssa) Nimellisjännite: 6 V DC (voi toimia 3 - 9 V DC: n välillä) ilman kuormaa: 120 mA (1600 mA kuormitettuna) Vääntö: 0,6 kg / cm (enintään) Paino: 10 grammaa

Linkki verkkokauppaan:

1 Arduino UNO -levy (kierrätetty vanhasta projektista)

1 kilpi Adafruit v2.3 -moottoreille:

1 Paristopidike, jossa on 8 AAA -paristoa (emme käytä kahta virtalähdettä).

6 ruuvia ja mutteria elementtien liittämiseksi kuvan mukaisesti

moottorin laipat, elastinen kumi akun pidikkeen pitämiseksi ja muovilevy paristopidikkeen pohjalle.

1 sarja QTR-8RC-antureita, joilla on seuraavat ominaisuudet;

QTR-8x-heijastustunnistinjärjestelmän tekniset tiedot • Mitat: 2,95 "x 0,5" • QTR-8RC: n esitysmuoto: 8 digitaalista I / O-yhteensopivaa signaalia, jotka voidaan lukea ajastettuna korkeana pulssina • Optimaalinen tunnistusetäisyys: 3 mm (0,125 ") • Suurin suositeltu tunnistusetäisyys QTR-8A: lle: 0,25" (6 mm) • Suurin suositeltu tunnistusetäisyys QTR-8RC: lle: 9,5 mm (0,375 tuumaa) • Paino ilman nastatappeja: 3,1 g (0,11 oz) Löydät sen osoitteesta:

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

Kokoa kaikki… pian yksityiskohtaisempi video…

Vaihe 2: Vaihe 2: Inspiraatio

Para probar el funcionamiento del los

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

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

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

Kalibraattorianturi QTR-8RC, jossa on opetusohjelma

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

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

Voit testata moottorien suorituskykyä seuraamalla tätä blogitukea www.programarfacil.com

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

Se on erittäin hyvä yhteenveto eri moottoreista, joita tämä kilpi ohjaa.

Voit kalibroida QTR-8RC-anturin noudattamalla opetusohjelmaa

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

Ja viimeinen linkki, joka voi auttaa sinua, on tämä opettavainen;

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

Vaihe 3: Vaihe 3: Koodi

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 nasta 8

número 2 nasta 9

número 3 nasta 2

número 4 nasta 3

número 5 nasta 4

número 6 nasta 5

número 7 tai nasta 6

número 8 tai nasta 7

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

#sisältää

#sisältää

#sisältää

#sisältää

// Luo moottorin suojaobjekti, jolla on oletus I2C -osoite

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Tai luo se toisella I2C -osoitteella (esimerkiksi pinoamiseen)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Valitse portti M1, M2, M3 tai M4. Tässä tapauksessa M1

Adafruit_DCMotor *moottori1 = AFMS.getMotor (1);

// Voit myös tehdä toisen moottorin porttiin M2

Adafruit_DCMotor *moottori2 = AFMS.getMotor (2);

// Muuta alla olevia arvoja robotin moottoreiden, painon, pyörätyypin jne. Mukaan.

#määrittele KP.2

#määrittele 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 // käytettyjen antureiden määrä

#define TIMEOUT 2500 // odottaa 2500 meitä, kunnes anturilähdöt laskevat

#define EMITTER_PIN 12 // lähetintä ohjaa digitaalinen nasta 2

#define DEBUG 0 // asetetaan arvoon 1, jos tarvitaan sarjamuotoinen virheenkorjaus

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

unsigned int sensorValues [NUM_SENSORS];

mitätön asennus ()

{

viive (1000);

manuaalinen_kalibrointi ();

set_motors (0, 0);

}

int lastError = 0;

int viimeinen_suhde = 0;

int integraali = 0;

tyhjä silmukka ()

{

Sarja.alku (9600); // määritä sarjakirjasto nopeudella 9600 bps

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

AFMS.begin (); // luo oletustaajuudella 1,6 KHz

//AFMS.begin(1000); // TAI eri taajuudella, esimerkiksi 1KHz

// Aseta käynnistysnopeus 0 (pois päältä) - 255 (maksiminopeus)

moottori1-> setSpeed (70);

moottori1-> käy (ETEENPÄIN);

// käynnistä moottori

motor1-> run (RELEASE);

moottori2-> setSpeed (70);

moottori2-> käy (ETEENPÄIN);

// käynnistä moottori

motor2-> run (RELEASE);

allekirjoittamattomat int -anturit [5];

int -asema = qtrrc.readLine (anturit);

int virhe = sijainti - 2000;

int motorSpeed = KP * virhe + KD * (virhe - viimeinen virhe);

lastError = virhe;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// aseta moottorin nopeudet yllä olevien kahden moottorin nopeusmuuttujan avulla

set_motors (leftMotorSpeed, rightMotorSpeed);

}

void set_motors (int motor1speed, int motor2speed)

{

if (moottorin1 nopeus> M1_MAX_SPEED) moottorin1 nopeus = M1_MAX_SPEED; // rajoittaa huippunopeutta

if (moottorin2 nopeus> M2_MAX_SPEED) moottorin2 nopeus = M2_MAX_SPEED; // rajoittaa huippunopeutta

jos (moottorin1 nopeus <0) moottorin1 nopeus = 0; // pidä moottori yli 0

jos (moottorin2 nopeus <0) moottorin2 nopeus = 0; // pitää moottorin nopeus yli 0

moottori1-> setSpeed (moottori1nopeus); // aseta moottorin nopeus

moottori2-> setSpeed (moottori2nopeus); // aseta moottorin nopeus

moottori1-> käy (ETEENPÄIN);

moottori2-> käy (ETEENPÄIN);

}

void manual_calibration () {

int i;

(i = 0; i <250; i ++) // kalibrointi kestää muutaman sekunnin

{

qtrrc.kalibroi (QTR_EMITTERS_ON);

viive (20);

}

if (DEBUG) {// jos tosi, luo anturitiedot sarjaliitännän kautta

Sarja.alku (9600);

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

{

Serial.print (qtrrc.calibratedMinimumOn );

Serial.print ('');

}

Sarja.println ();

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

{

Serial.print (qtrrc.calibratedMaximumOn );

Serial.print ('');

}

Sarja.println ();

Sarja.println ();

}

}

Bueno a ver que tal se nos da este proyecto “express” en la kilpailua OSHWDEM.

Suositeltava: