Innehållsförteckning:

TA-ZON-BOT (radföljare): 3 steg (med bilder)
TA-ZON-BOT (radföljare): 3 steg (med bilder)

Video: TA-ZON-BOT (radföljare): 3 steg (med bilder)

Video: TA-ZON-BOT (radföljare): 3 steg (med bilder)
Video: Lär ut nissefrisyr för tjejer, steg för steg, internationell akademisk förklaring 2024, Juli
Anonim
TA-ZON-BOT (linjeföljare)
TA-ZON-BOT (linjeföljare)
TA-ZON-BOT (linjeföljare)
TA-ZON-BOT (linjeföljare)

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

Skålen följer raden

Vi har gjort att denna robot följer dig med hjälp av våra elever, (tack minimakers).

Det har varit ett uttryckligt projekt att delta i OSHWDEN i A Coruña.

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

Google översättare

Steg 1: Steg 1: Komponenter

Steg 1: Komponenter
Steg 1: Komponenter
Steg 1: Komponenter
Steg 1: Komponenter
Steg 1: Komponenter
Steg 1: Komponenter

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

2 ruedas de un juguete reciclado.

2 motorer med speciella specifikationer:

Especificaciones (punkt 6V):

Mått: 26 x 10 x 12 mm

Ratio de la reductora: 30: 1

Mått: 3 mm (con ranura de bloqueo)

Voltaje nominellt: 6Vcc (puede funcionar entre 3 a 9Vcc)

Velocidad de giro sin carga: 1000 rpm

Consumo sin carga: 120mA (1600mA con carga)

Vridmoment: 0,6 kg/cm (max)

Peso: 10 gram

Enlace de tienda online:

1 placa Arduino UNO (reciclada de un proyecto antiguo)

1 sköld för motorer 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 array de sensores QTR-8RC con las siguientes características;

Specifikationer för QTR-8x Reflektanssensor Array • Mått: 2,95 "x 0,5" • Driftspänning: 3,3-5,0 V • Matningsström: 100 mA • Utmatningsformat för QTR-8A: 8 analoga spänningar från 0 V till levererad spänning • Utmatningsformat för QTR-8RC: 8 digitala I/O-kompatibla signaler som kan läsas som en tidsinställd hög puls • Optimalt avkänningsavstånd: 0,125 tum (3 mm) • Maximalt rekommenderat avkänningsavstånd för QTR-8A: 0,25 tum (6 mm) • Maximalt rekommenderat avkänningsavstånd för QTR-8RC: 0,375 tum (9,5 mm) • Vikt utan huvudstiften: 0,11 oz (3,1 g) Lo podéis encontrar en:

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

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

Komponenterna som vi har använt har varit följande.

En rund bit metakrylat. (Du kan använda vilken design som helst, vår bas mäter tillräckligt för att placera skålen upp och ner).

1 Frukostskål (används för att koncentrera roboten på linan).

2 hjul på en återvunnen leksak.

2 motorer med följande specifikationer:

Specifikationer (för 6V): Mått: 26 x 10 x 12 mm Reduktionsförhållande: 30: 1 Axeldiameter: 3 mm (med låsspår) Nominell spänning: 6Vdc (kan fungera mellan 3 till 9Vdc) Varvtal utan belastning: 1000rpm Förbrukning utan belastning: 120mA (1600mA med belastning) Vridmoment: 0,6kg / cm (max) Vikt: 10 gram

Länk till onlinebutik:

1 Arduino UNO -bräda (återvunnet från ett gammalt projekt)

1 sköld för Adafruit v2.3 -motorer:

1 En batterihållare med 8 AAA -batterier (vi använder inte 2 nätaggregat).

6 skruvar och muttrar för att ansluta elementen enligt bilden

flänsar för motorerna, ett elastiskt gummi för att hålla batterihållaren och en bit plastplåt för basen av batterihållaren.

1 uppsättning QTR-8RC-sensorer med följande egenskaper;

Specifikationer för QTR-8x Reflektanssensor Array • Mått: 2,95 "x 0,5" • Driftspänning: 3,3-5,0 V • Matningsström: 100 mA • Utmatningsformat för QTR-8A: 8 analoga spänningar från 0 V till levererad spänning • Utmatningsformat för QTR-8RC: 8 digitala I / O-kompatibla signaler som kan läsas som en tidsinställd hög puls • Optimalt avkänningsavstånd: 0,125 tum (3 mm) • Maximalt rekommenderat avkänningsavstånd för QTR-8A: 0,25 tum (6 mm) • Maximalt rekommenderat avkänningsavstånd för QTR-8RC: 0,375 tum (9,5 mm) • Vikt utan huvudstiften: 0,11 oz (3,1 g) Du hittar den i:

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

Montera allt … snart en mer detaljerad video …

Steg 2: Steg 2: Inspiration

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.

Para calibrar el sensor 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…

För att testa motorernas prestanda har vi följt denna bloggsupport www.programarfacil.com

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

Det är en mycket bra sammanfattning av de olika motorerna som denna sköld styr.

För att kalibrera QTR-8RC-sensorn kan du följa handledningen för

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

Och en sista länk som kan hjälpa dig är den här instruerbara;

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

Steg 3: Steg 3: Kod

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

nummer 1 al pin 8

nummer 2 al pin 9

nr 3 och pin 2

nr 4 och pin 3

nr 5 och pin 4

nummer 6 al pin 5

nr 7 och pin 6

nummer 8 al pin 7

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

#omfatta

#omfatta

#omfatta

#omfatta

// Skapa motorskyddsobjektet med standard I2C -adressen

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Eller skapa den med en annan I2C -adress (säg för stapling)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Välj vilken 'port' M1, M2, M3 eller M4. I detta fall, M1

Adafruit_DCMotor *motor1 = AFMS.getMotor (1);

// Du kan också göra en annan motor på port M2

Adafruit_DCMotor *motor2 = AFMS.getMotor (2);

// Ändra värdena nedan för att passa din robots motorer, vikt, hjultyp, 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 // antal sensorer som används

#define TIMEOUT 2500 // väntar på 2500 oss för att sensorutgångarna ska bli låga

#define EMITTER_PIN 12 // emitter styrs av digital pin 2

#define DEBUG 0 // inställd på 1 om seriell felsökningsutmatning behövs

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

osignerad int sensorValues [NUM_SENSORS];

void setup ()

{

fördröjning (1000);

manuell_kalibrering ();

set_motors (0, 0);

}

int lastError = 0;

int last_proportional = 0;

int integral = 0;

void loop ()

{

Serial.begin (9600); // konfigurera seriellt bibliotek med 9600 bps

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

AFMS.begin (); // skapa med standardfrekvensen 1,6KHz

//AFMS.begin(1000); // ELLER med en annan frekvens, säg 1KHz

// Ställ in starthastigheten, från 0 (av) till 255 (maxhastighet)

motor1-> setSpeed (70);

motor1-> kör (FRAMÅT);

// slå på motorn

motor1-> kör (RELEASE);

motor2-> setSpeed (70);

motor2-> kör (FRAMÅT);

// slå på motorn

motor2-> kör (RELEASE);

osignerade int -sensorer [5];

int position = qtrrc.readLine (sensorer);

int fel = position - 2000;

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

lastError = fel;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// ställ in motorvarvtal med de två motorvarvtalsvariablerna ovan

set_motors (leftMotorSpeed, rightMotorSpeed);

}

void set_motors (int motor1speed, int motor2speed)

{

if (motor1speed> M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; // begränsa toppfarten

if (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // begränsa toppfarten

om (motor1hastighet <0) motor1hastighet = 0; // håll motorn över 0

om (motor2speed <0) motor2speed = 0; // håll motorvarvtalet över 0

motor1-> setSpeed (motor1speed); // ställ in motorvarvtal

motor2-> setSpeed (motor2speed); // ställ in motorvarvtal

motor1-> kör (FRAMÅT);

motor2-> kör (FRAMÅT);

}

void manual_calibration () {

int i;

för (i = 0; i <250; i ++) // tar kalibreringen några sekunder

{

qtrrc.kalibrera (QTR_EMITTERS_ON);

fördröjning (20);

}

if (DEBUG) {// om det är sant, generera sensordata via seriell utgång

Serial.begin (9600);

för (int i = 0; i <NUM_SENSORS; i ++)

{

Serial.print (qtrrc.calibratedMinimumOn );

Serial.print ('');

}

Serial.println ();

för (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.

Rekommenderad: