Tartalomjegyzék:

TA-ZON-BOT (vonalkövető): 3 lépés (képekkel)
TA-ZON-BOT (vonalkövető): 3 lépés (képekkel)

Videó: TA-ZON-BOT (vonalkövető): 3 lépés (képekkel)

Videó: TA-ZON-BOT (vonalkövető): 3 lépés (képekkel)
Videó: Pruebas siguelineas TA ZON BOT 2024, Július
Anonim
TA-ZON-BOT (vonalkövető)
TA-ZON-BOT (vonalkövető)
TA-ZON-BOT (vonalkövető)
TA-ZON-BOT (vonalkövető)

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 expressz, hogy részt vegyen az OSHWDEN de A Coruña -ban.

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

traductor google

TA-ZON-BOT

A tál követi a vonalat

Ezt a robotot követtük tanítványaink segítségével (köszönet a minimakészítőknek).

Expressz projekt volt az A Coruña OSHWDEN -en való részvétel.

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

Google Fordító

1. lépés: 1. lépés: Komponensek

1. lépés: Összetevők
1. lépés: Összetevők
1. lépés: Összetevők
1. lépés: Összetevők
1. lépés: Összetevők
1. lépés: Összetevők

Los komponentes 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 motoros a las siguientes especificaciones -ben:

Specifikáció (6V. Bekezdés):

Méretek: 26 x 10 x 12 mm

A reduktor aránya: 30: 1

Átmérő: 3 mm (con ranura de bloqueo)

Névleges feszültség: 6Vcc (puede funcionar entre 3 a 9Vcc)

Gyors sebesség: 1000 fordulat / perc

Áramfogyasztás: 120 mA (1600 mA)

Nyomaték: 0,6 kg/cm (max.)

Peso: 10 gramm

Enlee de tienda online:

1 tér Arduino UNO (reciclada de un proyecto antiguo)

1 shield para motores 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 tömb QTR-8RC, amely a karakterisztikákat tartalmazza;

A QTR-8x reflexiós érzékelő tömb műszaki adatai • Méretek: 2,95 "x 0,5" • A QTR-8RC kimeneti formátuma: 8 digitális I/O-kompatibilis jel, amelyek időzített magas impulzusként olvashatók. • Optimális érzékelési távolság: 3 mm (0,125 ") • A QTR-8A maximális ajánlott érzékelési távolsága: 0,25" (6 mm) • A QTR-8RC maximális ajánlott érzékelési távolsága: 9,5 mm (0,375 hüvelyk) • Súly fejléc nélkül: 3,1 g

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

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

Az általunk használt összetevők a következők voltak.

Kerek metakrilátdarab. (Bármilyen kialakítást használhat, alapunk éppen annyi, hogy a tálat fejjel lefelé helyezzük).

1 Reggeli tál (a robotnak a vonalra való koncentrálására szolgál).

2 kerék újrahasznosított játék.

2 motor az alábbi specifikációkkal:

Műszaki adatok (6 V esetén): Méretek: 26 x 10 x 12 mm A reduktor aránya: 30: 1 Tengelyátmérő: 3 mm (reteszelő horonnyal) Névleges feszültség: 6 V DC (3 és 9 V DC között működhet) Fordulatszám terhelés nélkül: 1000 rpm terhelés nélkül: 120mA (1600mA terheléssel) Nyomaték: 0,6kg / cm (max) Súly: 10 gramm

Az online áruház linkje:

1 Arduino UNO tábla (régi projektből újrahasznosítva)

1 pajzs az Adafruit v2.3 motorokhoz:

1 Egy elemtartó 8 AAA elemmel (nem használunk 2 tápegységet).

6 csavar és anya a képen látható elemek összekapcsolásához

karimák a motorokhoz, rugalmas gumi az elemtartó tartásához, és egy darab műanyag lap az elemtartó aljához.

1 tömb QTR-8RC érzékelő a következő jellemzőkkel;

A QTR-8x reflexiós érzékelő tömb specifikációi • Méretek: 2,95 "x 0,5" • A QTR-8RC kimeneti formátuma: 8 digitális I / O-kompatibilis jel, amelyek időzített magas impulzusként olvashatók. • Optimális érzékelési távolság: 3 mm (0,125 ") • A QTR-8A maximális ajánlott érzékelési távolsága: 0,25" (6 mm) • A QTR-8RC maximális ajánlott érzékelési távolsága: 9,5 mm (0,375 hüvelyk) • Súly fejléc nélkül: 3,1 g

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

Gyűjts össze mindent… hamarosan részletesebb videó…

2. lépés: 2. lépés: Inspiráció

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.

A QTR-8RC kalibráló szenzor és az oktatóanyag keveréke

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

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

A motorok teljesítményének teszteléséhez követtük ezt a blogtámogatást: www.programarfacil.com

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

Nagyon jó összefoglaló a különböző motorokról, amelyeket ez a pajzs irányít.

A QTR-8RC érzékelő kalibrálásához kövesse az oktatóanyagot

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

És egy utolsó link, amely segíthet, ez az oktatható;

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

3. lépés: 3. lépés: Kód

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

número 2 al 9

número 3 al 2

número 4 al pin 3

número 5 al 4

número 6 al 5

número 7 al 6

número 8 al 7

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

#befoglalni

#befoglalni

#befoglalni

#befoglalni

// Hozza létre a motorpajzs objektumot az alapértelmezett I2C címmel

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Vagy hozza létre egy másik I2C -címmel (mondjuk halmozáshoz)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Válassza ki az M1, M2, M3 vagy M4 portot. Ebben az esetben az M1

Adafruit_DCMotor *motor1 = AFMS.getMotor (1);

// Más motort is készíthet az M2 porton

Adafruit_DCMotor *motor2 = AFMS.getMotor (2);

// Módosítsa az alábbi értékeket, hogy megfeleljen a robot motorjainak, súlyának, keréktípusának stb.

#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 // a felhasznált érzékelők száma

#define TIMEOUT 2500 // 2500 -ra vár, amíg az érzékelő kimenete alacsony lesz

#define EMITTER_PIN 12 // az adót a 2. digitális érintkező vezérli

#define DEBUG 0 // 1 -re állítva, ha soros hibakeresési kimenetre van szükség

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

unsigned int sensorValues [NUM_SENSORS];

üres beállítás ()

{

késleltetés (1000);

manuális_kalibrálás ();

set_motors (0, 0);

}

int lastError = 0;

int utolsó_arányos = 0;

int integrál = 0;

üres hurok ()

{

Sorozat.kezdet (9600); // a soros könyvtár beállítása 9600 bps sebességgel

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

AFMS.begin (); // létrehozás az 1.6KHz alapértelmezett frekvenciával

//AFMS.begin(1000); // VAGY más frekvenciával, mondjuk 1KHz

// Állítsa be az indítási sebességet 0 -tól (kikapcsolt) 255 -ig (maximális sebesség)

motor1-> setSpeed (70);

motor1-> fut (ELŐRE);

// kapcsolja be a motort

motor1-> fut (RELEASE);

motor2-> setSpeed (70);

motor2-> futás (ELŐRE);

// kapcsolja be a motort

motor2-> fut (RELEASE);

előjel nélküli int érzékelők [5];

int pozíció = qtrrc.readLine (érzékelők);

int hiba = pozíció - 2000;

int motorSpeed = KP * hiba + KD * (hiba - utolsóError);

lastError = hiba;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// állítsa be a motor fordulatszámát a fenti két motorfordulatszám -változó használatával

set_motors (leftMotorSpeed, rightMotorSpeed);

}

void set_motors (int motor1speed, int motor2speed)

{

if (motor1speed> M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; // korlátozza a végsebességet

if (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // korlátozza a végsebességet

if (motor1sebesség <0) motor1sebesség = 0; // tartsa a motort 0 felett

if (motor2sebesség <0) motor2sebesség = 0; // tartsa a motor fordulatszámát 0 felett

motor1-> setSpeed (motor1sebesség); // a motor fordulatszámának beállítása

motor2-> setSpeed (motor2speed); // a motor fordulatszámának beállítása

motor1-> futás (ELŐRE);

motor2-> futás (ELŐRE);

}

void manual_calibration () {

int i;

(i = 0; i <250; i ++) // esetén a kalibrálás néhány másodpercet vesz igénybe

{

qtrrc.calibrate (QTR_EMITTERS_ON);

késleltetés (20);

}

if (DEBUG) {// ha igaz, generáljon érzékelőadatokat soros kimeneten keresztül

Sorozat.kezdet (9600);

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

{

Serial.print (qtrrc.kalibráltMinimumOn );

Serial.print ('');

}

Sorozat.println ();

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

{

Serial.print (qtrrc.calibratedMaximumOn );

Serial.print ('');

}

Sorozat.println ();

Sorozat.println ();

}

}

Bueno a ver que tal se nos da este proyecto „express” en la Competición del OSHWDEM.

Ajánlott: