Inhaltsverzeichnis:

TA-ZON-BOT (Linienfolger) - Gunook
TA-ZON-BOT (Linienfolger) - Gunook

Video: TA-ZON-BOT (Linienfolger) - Gunook

Video: TA-ZON-BOT (Linienfolger) - Gunook
Video: Kingmaker - The Change of Destiny Episode 10 | Arabic, English, Turkish, Spanish Subtitles 2024, November
Anonim
TA-ZON-BOT (Linienfolger)
TA-ZON-BOT (Linienfolger)
TA-ZON-BOT (Linienfolger)
TA-ZON-BOT (Linienfolger)

TA-ZON-BOT

El tazón siguelineas

Hemos realizado este robot siguelineas con la ayuda de los nuestros alumnos, (gracias minimakers).

Haben Sie ein Express-Programm für die Teilnahme an der OSHWDEN de A Coruña.

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

traktor google

TA-ZON-BOT

Die Schüssel folgt der Linie

Wir haben diesen Roboter mit Hilfe unserer Studenten dazu gebracht, Ihnen zu folgen (danke Minimaker).

Es war ein ausdrückliches Projekt, an der OSHWDEN von A Coruña teilzunehmen.

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

Google Übersetzer

Schritt 1: Schritt 1: Komponenten

Schritt 1: Komponenten
Schritt 1: Komponenten
Schritt 1: Komponenten
Schritt 1: Komponenten
Schritt 1: Komponenten
Schritt 1: Komponenten

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 motores con las siguientes especificaciones:

Besonderheiten (Para 6V):

Abmessungen: 26 x 10 x 12 mm

Reduktorverhältnis: 30:1

Durchmesser des Ejes: 3mm (con ranura de bloqueo)

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

Velocidad de giro sin carga: 1000 U/min

Verbrauch ohne Fracht: 120mA (1600mA mit Fracht)

Drehmoment: 0,6 kg/cm (max.)

Peso: 10 Gramm

Enlace de tienda online:

1 Platz Arduino UNO (Reciclada de un proyecto antiguo)

1 Schild für Motoren Adafruit v2.3:

1 Un porta pilas de 8 pilas AAA (keine utilizamos 2 Fuentes de alimentación).

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

bridas für los motores, una goma elástica para sujetar el porta pilas und ein trozo de una lamina de plásticos para la base del porta pilas.

1 Array von Sensoren QTR-8RC mit den wichtigsten Merkmalen;

Spezifikationen für das QTR-8x Reflexionssensor-Array • Abmessungen: 2,95" x 0,5" • Betriebsspannung: 3,3-5,0 V • Versorgungsstrom: 100 mA • Ausgabeformat für den QTR-8A: 8 analoge Spannungen von 0 V bis zur Versorgungsspannung • Ausgabeformat für den QTR-8RC: 8 digitale I/O-kompatible Signale, die als zeitgesteuerter hoher Impuls gelesen werden können • Optimaler Schaltabstand: 0,125" (3 mm) • Maximal empfohlener Schaltabstand für den QTR-8A: 0,25" (6 mm) • Maximal empfohlener Erfassungsabstand für den QTR-8RC: 0,375" (9,5 mm) • Gewicht ohne Stiftleisten: 0,11 oz (3,1 g)

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

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

Die von uns verwendeten Komponenten waren die folgenden.

Ein rundes Stück Methacrylat. (Sie können jedes Design verwenden, unsere Basis misst gerade genug, um die Schüssel auf den Kopf zu stellen).

1 Frühstücksschüssel (wird verwendet, um den Roboter auf die Linie zu konzentrieren).

2 Räder eines recycelten Spielzeugs.

2 Motoren mit folgenden Spezifikationen:

Spezifikationen (für 6V): Abmessungen: 26 x 10 x 12 mm Übersetzung des Untersetzungsgetriebes: 30: 1 Wellendurchmesser: 3mm (mit Sicherungsnut) Nennspannung: 6Vdc (kann zwischen 3 bis 9Vdc betrieben werden) Drehzahl ohne Last: 1000U/min Verbrauch ohne Last: 120mA (1600mA mit Last) Drehmoment: 0,6kg / cm (max) Gewicht: 10 Gramm

Link zum Online-Shop:

1 Arduino UNO-Board (recycelt aus einem alten Projekt)

1 Schild für Adafruit v2.3-Motoren:

1 Ein Batteriehalter mit 8 AAA-Batterien (wir verwenden keine 2 Netzteile).

6 Schrauben und Muttern zum Verbinden der Elemente wie im Bild zu sehen

Flansche für die Motoren, ein elastisches Gummi zum Halten des Batteriehalters und ein Stück Plastikfolie für den Boden des Batteriehalters.

1 Array von QTR-8RC-Sensoren mit den folgenden Eigenschaften;

Spezifikationen für das QTR-8x Reflexionssensor-Array • Abmessungen: 2,95 "x 0,5" • Betriebsspannung: 3,3-5,0 V • Versorgungsstrom: 100 mA • Ausgabeformat für den QTR-8A: 8 analoge Spannungen von 0 V bis Versorgungsspannung • Ausgabeformat für den QTR-8RC: 8 digitale I/O-kompatible Signale, die als zeitgesteuerter High-Puls gelesen werden können • Optimaler Schaltabstand: 0,125" (3 mm) • Maximal empfohlener Schaltabstand für den QTR-8A: 0,25" (6 mm) • Maximal empfohlener Schaltabstand für den QTR-8RC: 0,375" (9,5 mm) • Gewicht ohne Stiftleisten: 0,11 oz (3,1 g) Sie finden es in:

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

Alles zusammenbauen … demnächst ein ausführlicheres Video …

Schritt 2: Schritt 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 ist ein Wiederaufnehmen von bueno de los diferentes motores que controla esta Shield.

Parakalibrar el Sensor QTR-8RC Podéis Seguir el Tutorial de

Y un ultimo enlace que os puede ayudar este anweisbar;

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

Um die Leistung der Motoren zu testen, sind wir diesem Blog-Support gefolgt www.programarfacil.com

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

Es ist eine sehr gute Zusammenfassung der verschiedenen Motoren, die dieser Schild steuert.

Um den QTR-8RC-Sensor zu kalibrieren, können Sie dem Tutorial von. folgen

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

Und ein letzter Link, der Ihnen helfen kann, ist dieses instructable;

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

Schritt 3: Schritt 3: Code

Image
Image

las conexiones entre el array de

sensores y las placas las hicimos de la siguiente manera:

El Led ON val pin digital 12

Los 8 sensores van desde el

Nummer 1 al Pin 8

Nummer 2 al Pin 9

Nummer 3 al Pin 2

Nummer 4 al Pin 3

Nummer 5 al Pin 4

Nummer 6 al Pin 5

Nummer 7 al Pin 6

Nummer 8 al Pin 7

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

#enthalten

#enthalten

#enthalten

#enthalten

// Erstellen Sie das Motorschildobjekt mit der Standard-I2C-Adresse

Adafruit_MotorShield AFMS = Adafruit_MotorShield();

// Oder erstellen Sie es mit einer anderen I2C-Adresse (z. B. zum Stapeln)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Wählen Sie aus, welcher 'Port' M1, M2, M3 oder M4 ist. In diesem Fall ist M1

Adafruit_DCMotor *motor1 = AFMS.getMotor(1);

// Sie können auch einen anderen Motor an Port M2 erstellen

Adafruit_DCMotor *motor2 = AFMS.getMotor(2);

// Ändern Sie die Werte unten, um sie an die Motoren, das Gewicht, den Radtyp usw. Ihres Roboters anzupassen.

#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 MITTEL_SENSOR 4

#define NUM_SENSORS 8 // Anzahl der verwendeten Sensoren

#define TIMEOUT 2500 // wartet 2500 us, bis die Sensorausgänge auf Low gehen

#define EMITTER_PIN 12 // Emitter wird vom digitalen Pin 2 gesteuert

#define DEBUG 0 // auf 1 setzen, wenn serielle Debug-Ausgabe benötigt wird

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

unsigned int sensorValues[NUM_SENSORS];

Void-Setup ()

{

Verzögerung (1000);

manuelle_kalibrierung();

set_motoren (0, 0);

}

int lastError = 0;

int last_proportional = 0;

int-Integral = 0;

Leere Schleife ()

{

Serial.begin (9600); // serielle Bibliothek mit 9600 bps einrichten

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

AFMS.begin(); // mit der Standardfrequenz 1.6KHz erstellen

//AFMS.begin(1000); // ODER mit einer anderen Frequenz, sagen wir 1KHz

// Stellen Sie die Geschwindigkeit zum Starten ein, von 0 (aus) bis 255 (maximale Geschwindigkeit)

motor1->setSpeed(70);

motor1->laufen (vorwärts);

// Motor einschalten

motor1->laufen (FREIGABE);

motor2->setSpeed(70);

motor2> laufen (vorwärts);

// Motor einschalten

motor2->laufen (FREIGABE);

unsigned int-Sensoren[5];

int-Position = qtrrc.readLine (Sensoren);

int error = Position - 2000;

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

lastError = Fehler;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// Motordrehzahlen mit den beiden oben genannten Motordrehzahlvariablen einstellen

set_motors (leftMotorSpeed, rightMotorSpeed);

}

void set_motors(int motor1speed, int motor2speed)

{

if (motor1speed > M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; // Höchstgeschwindigkeit begrenzen

if (motor2speed > M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // Höchstgeschwindigkeit begrenzen

if (motor1speed < 0) motor1speed = 0; // Motor über 0 halten

if (motor2speed < 0) motor2speed = 0; // Motordrehzahl über 0 halten

motor1->setSpeed (motor1speed); // Motordrehzahl einstellen

motor2-> setSpeed (motor2speed); // Motordrehzahl einstellen

motor1->laufen (vorwärts);

motor2> laufen (vorwärts);

}

void manual_calibration() {

int ich;

for (i = 0; i < 250; i++) // die Kalibrierung dauert einige Sekunden

{

qtrrc.calibrate(QTR_EMITTERS_ON);

Verzögerung (20);

}

if (DEBUG) {// wenn wahr, Sensordaten über seriellen Ausgang generieren

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.

Empfohlen: