Taula de continguts:

TA-ZON-BOT (seguidor de línia): 3 passos (amb imatges)
TA-ZON-BOT (seguidor de línia): 3 passos (amb imatges)

Vídeo: TA-ZON-BOT (seguidor de línia): 3 passos (amb imatges)

Vídeo: TA-ZON-BOT (seguidor de línia): 3 passos (amb imatges)
Vídeo: Аномально вкусно‼️ ЧЕХОСЛОВАЦКИЙ СУП ИЗ ФАРША. Жена Липована в шоке. 2024, De novembre
Anonim
TA-ZON-BOT (seguidor de línia)
TA-ZON-BOT (seguidor de línia)
TA-ZON-BOT (seguidor de línia)
TA-ZON-BOT (seguidor de línia)

TA-ZON-BOT

El tazón siguelineas

Hem realitzat aquest robot siguelineas amb l'ajuda dels nostres alumnes, (gràcies gràcies).

Ha estat un projecte express per poder participar a la OSHWDEN de A Coruña.

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

traductor google

TA-ZON-BOT

El bol segueix la línia

Hem creat aquest robot seguint-vos amb l'ajuda dels nostres estudiants (gràcies minimakers).

Ha estat un projecte exprés participar a l’OSHWDEN de la Corunya.

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

Traductor de Google

Pas 1: Pas 1: Components

Pas 1: components
Pas 1: components
Pas 1: components
Pas 1: components
Pas 1: components
Pas 1: components

Els components que hem utilitzat

han estat els següents.

Una peça redonda de metacrilat. (Podéis utilitzar qualsevol disseny, 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 d'un juguete reciclado.

2 motors amb les següents especificacions:

Especificacions (Para 6V):

Dimensions: 26 x 10 x 12 mm

Relació de la reductora: 30: 1

Diàmetre del dia: 3 mm (amb ranura de bloqueig)

Voltatge nominal: 6Vcc (pot funcionar entre 3 a 9Vcc)

Velocitat de gir sense càrrega: 1000rpm

Consum sense càrrega: 120mA (1600mA amb càrrega)

Parell: 0,6 kg / cm (màxim)

Pes: 10 gramos

Enlace de tienda en línia:

1 placa Arduino UNO (reciclada d'un projecte antic)

1 escut per a motors Adafruit v2.3:

1 Un porta pilas de 8 pilas AAA (no utilitza 2 fonts d'alimentació).

6 tornillos y tuercas para unir los elementos como se ve en la imagen

bridas per als motors, una goma elàstica per subjectar la porta pilas i un trozo d’una làmina de plàstics per a la base del porta pilas.

1 array de sensors QTR-8RC amb les següents característiques;

Especificacions de la matriu del sensor de reflectància QTR-8x • Dimensions: 2,95 "x 0,5" • Voltatge de funcionament: 3,3-5,0 V • Corrent de subministrament: 100 mA • Format de sortida per al QTR-8A: 8 tensions analògiques que van des de 0 V fins a la tensió subministrada • Format de sortida per al QTR-8RC: 8 senyals digitals compatibles amb E / S que es poden llegir com a pols elevat temporitzat • Distància de detecció òptima: 0,125 "(3 mm) • Distància màxima de detecció recomanada per al QTR-8A: 0,25" (6 mm) • Distància de detecció màxima recomanada per al QTR-8RC: 9,5 mm (0,375 ") • Pes sense passadors de capçalera: 3,1 g (0,11 oz)

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

Ensamblar todo… pròximament un vídeo més detallat …

Els components que hem utilitzat han estat els següents.

Un tros rodó de metacrilat. (Podeu utilitzar qualsevol disseny, la nostra base mesura el suficient per col·locar el bol cap per avall).

1 Bol d'esmorzar (que serveix per concentrar el robot a la línia).

2 rodes d'una joguina reciclada.

2 motors amb les següents especificacions:

Especificacions (per a 6V): Dimensions: 26 x 10 x 12 mm Relació del reductor: 30: 1 Diàmetre de l’eix: 3mm (amb ranura de bloqueig) Tensió nominal: 6Vdc (pot funcionar entre 3 i 9Vdc) Velocitat de gir sense càrrega: 1000rpm Consum sense càrrega: 120mA (1600mA amb càrrega) Parell: 0,6 kg / cm (màxim) Pes: 10 grams

Enllaç de la botiga en línia:

1 placa Arduino UNO (reciclada d'un projecte antic)

1 escut per als motors Adafruit v2.3:

1 Un suport per a bateries de 8 piles AAA (no fem servir 2 fonts d'alimentació).

6 cargols i femelles per unir els elements tal com es veu a la imatge

brides per als motors, una goma elàstica per subjectar el suport de la bateria i un tros d’una làmina de plàstic per a la base del suport de la bateria.

1 matriu de sensors QTR-8RC amb les característiques següents;

Especificacions del conjunt de sensors de reflectància QTR-8x • Dimensions: 2,95 "x 0,5" • Voltatge de funcionament: 3,3-5,0 V • Corrent de subministrament: 100 mA • Format de sortida per al QTR-8A: 8 tensions analògiques que van des de 0 V fins a la tensió subministrada • Format de sortida per al QTR-8RC: 8 senyals digitals compatibles amb E / S que es poden llegir com a pols elevat temporitzat • Distància de detecció òptima: 0,125 "(3 mm) • Distància màxima de detecció recomanada per al QTR-8A: 0,25" (6 mm) • Distància màxima de detecció recomanada per al QTR-8RC: 9,5 mm (0,375 ") • Pes sense passadors de capçalera: 3,1 g (0,11 oz) El podeu trobar a:

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

Muntar-ho tot … aviat un vídeo més detallat …

Pas 2: Pas 2: Inspiració

Per provar el funcionament dels

motores hem seguit aquesta ajuda del blog www.programarfacil.com

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

Es un resumen molt bo dels diferents motors que controla aquesta shield.

Per calibrar el sensor QTR-8RC es pot seguir el tutorial de

Y un ultimo enlace que os can ajudar is this instructable;

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

Per provar el rendiment dels motors, hem seguit aquest suport del bloc www.programarfacil.com

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

És un molt bon resum dels diferents motors que controla aquest escut.

Per calibrar el sensor QTR-8RC podeu seguir el tutorial de

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

I un darrer enllaç que us pot ajudar és aquest instructiu;

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

Pas 3: Pas 3: Codi

Image
Image

les connexions entre el array de

sensors i les plaques els hicimos de la següent manera:

El Led ON va al pin digital 12

Los 8 sensores van desde el

número 1 al pin 8

número 2 al pin 9

número 3 al pin 2

número 4 al pin 3

número 5 al pin 4

número 6 al pin 5

número 7 al pin 6

número 8 al pin 7

El codi va sense repasar-se (s’accepten sugerències)

#incloure

#incloure

#incloure

#incloure

// Creeu l'objecte blindatge del motor amb l'adreça I2C per defecte

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// O bé, creeu-lo amb una adreça I2C diferent (per exemple, per apilar-la)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Seleccioneu quin "port" M1, M2, M3 o M4. En aquest cas, M1

Adafruit_DCMotor * motor1 = AFMS.getMotor (1);

// També podeu fabricar un altre motor al port M2

Adafruit_DCMotor * motor2 = AFMS.getMotor (2);

// Canvieu els valors següents per adaptar-los als motors, al pes, al tipus de roda del vostre robot, etc.

#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 // nombre de sensors utilitzats

#define TIMEOUT 2500 // ens espera a 2500 perquè les sortides del sensor baixin

#define EMITTER_PIN 12 // l’emissor està controlat pel pin 2 digital

#define DEBUG 0 // s'estableix a 1 si cal una sortida de depuració en sèrie

QTRSensorsRC qtrrc ((caràcter sense signar ) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, TIMEOUT, EMITTER_PIN);

unsigned int sensorValues [NUM_SENSORS];

configuració nul·la ()

{

retard (1000);

manual_calibration ();

set_motors (0, 0);

}

int lastError = 0;

int last_proportional = 0;

integral integral = 0;

bucle buit ()

{

Serial.begin (9600); // configureu la biblioteca sèrie a 9600 bps

Serial.println ("Adafruit Motorshield v2 - Prova del motor de CC!");

AFMS.begin (); // crear amb la freqüència per defecte 1,6 KHz

//AFMS.begin(1000); // O amb una freqüència diferent, per exemple, 1 KHz

// Estableix la velocitat d'inici, des de 0 (desactivada) fins a 255 (velocitat màxima)

motor1-> setSpeed (70);

motor1-> funcionament (AVANT);

// engegar el motor

motor1-> funcionament (LLANÇAMENT);

motor2-> setSpeed (70);

motor2-> funcionament (AVANT);

// engegar el motor

motor2-> funcionament (LLANÇAMENT);

sensors int sense signar [5];

int position = qtrrc.readLine (sensors);

int error = posició - 2000;

int motorSpeed = error KP * + KD * (error - últimError);

lastError = error;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// Estableix la velocitat del motor mitjançant les dues variables de velocitat del motor anteriors

set_motors (leftMotorSpeed, rightMotorSpeed);

}

void set_motors (int motor1speed, int motor2speed)

{

if (motor1speed> M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; // limitar la velocitat màxima

if (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // limitar la velocitat màxima

if (motor1speed <0) motor1speed = 0; // mantenir el motor per sobre de 0

if (motor2speed <0) motor2speed = 0; // mantenir la velocitat del motor per sobre de 0

motor1-> setSpeed (motor1speed); // Estableix la velocitat del motor

motor2-> setSpeed (motor2speed); // Estableix la velocitat del motor

motor1-> funcionament (AVANT);

motor2-> funcionament (AVANT);

}

void manual_calibration () {

int i;

per a (i = 0; i <250; i ++) // el calibratge trigarà uns segons

{

qtrrc.calibrate (QTR_EMITTERS_ON);

retard (20);

}

if (DEBUG) {// si és cert, genereu dades del sensor mitjançant la sortida sèrie

Serial.begin (9600);

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

{

Serial.print (qtrrc.calibratedMinimumOn );

Serial.print ('');

}

Serial.println ();

per a (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.

Recomanat: