Obsah:

TA-ZON-BOT (Line Follower): 3 kroky (s obrázky)
TA-ZON-BOT (Line Follower): 3 kroky (s obrázky)

Video: TA-ZON-BOT (Line Follower): 3 kroky (s obrázky)

Video: TA-ZON-BOT (Line Follower): 3 kroky (s obrázky)
Video: don't move!!!!!! #squidgame 2024, Červenec
Anonim
TA-ZON-BOT (Line Follower)
TA-ZON-BOT (Line Follower)
TA-ZON-BOT (Line Follower)
TA-ZON-BOT (Line Follower)

TA-ZON-BOT

El tazón siguelineas

Všichni si uvědomili, že robot je považován za nejlepšího absolventa (minimální zrnitosti).

Nejčastěji se vyjadřujete k účasti na OSHWDEN de A Coruña.

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

traductor google

TA-ZON-BOT

Miska sleduje linii

Udělali jsme tohoto robota, aby vás sledoval s pomocí našich studentů (díky minimakerům).

Byl to expresní projekt k účasti na OSHWDEN v A Coruña.

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

Google Překladač

Krok 1: Krok 1: Součásti

Krok 1: Součásti
Krok 1: Součásti
Krok 1: Komponenty
Krok 1: Komponenty
Krok 1: Komponenty
Krok 1: Komponenty

Ztráta komponentů z použití

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 koncentracerar al robot en la linea).

2 zpětná vazba.

2 motory, jejichž význam je specifický:

Specifikace (odstavec 6V):

Rozměry: 26 x 10 x 12 mm

Poměr de la reductora: 30: 1

Průměr: 3 mm (s ranura de bloqueo)

Jmenovité napětí: 6 Vcc (funkce 3 a 9 Vcc)

Velocidad de giro sin carga: 1000 ot./min

Spotřeba energie: 120mA (1600mA con carga)

Točivý moment: 0,6 kg/cm (max.)

Peso: 10 gramů

Enlace de tienda online:

1 placka Arduino UNO (reciclada de un proyecto antiguo)

1 štít pro motor Adafruit v2.3:

1 porta pilas de 8 pilas AAA (no use 2 fentes de alimentación).

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

největší počet motorů, které mají mít větší počet pilas y un trozo de una lamina de plásticos para la base del porta pilas.

1 pole snímačů QTR-8RC s významnými charakteristikami;

Specifikace pro pole snímačů odrazivosti QTR-8x • Rozměry: 2,95 "x 0,5" • Provozní napětí: 3,3-5,0 V • Napájecí proud: 100 mA • Výstupní formát pro QTR-8A: 8 analogových napětí v rozsahu od 0 V do dodávaného napětí • Výstupní formát pro QTR-8RC: 8 digitálních signálů kompatibilních s I/O, které lze číst jako časovaný vysoký impuls • Optimální snímací vzdálenost: 3 mm (0,125 ") • Maximální doporučená snímací vzdálenost pro QTR-8A: 0,25" (6 mm) • Maximální doporučená snímací vzdálenost pro QTR-8RC: 0,375 "(9,5 mm) • Hmotnost bez kolíků záhlaví: 3,11 g 0,11 oz

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

Ensamblar todo… více než jedno více detailů…

Komponenty, které jsme použili, byly následující.

Kulatý kus metakrylátu. (Můžete použít jakýkoli design, naše základna měří přesně tolik, aby byla mísa postavena dnem vzhůru).

1 Snídaňová mísa (slouží ke koncentraci robota na lince).

2 kolečka recyklované hračky.

2 motory s následujícími specifikacemi:

Specifikace (pro 6 V): Rozměry: 26 x 10 x 12 mm Poměr reduktoru: 30: 1 Průměr hřídele: 3 mm (s uzamykací drážkou) Jmenovité napětí: 6 V DC (lze provozovat mezi 3 až 9 V DC) Rychlost otáčení bez zatížení: 1 000 ot / min Spotřeba bez zátěže: 120mA (1600mA se zátěží) Točivý moment: 0,6kg / cm (max.) Hmotnost: 10 gramů

Odkaz na internetový obchod:

1 deska Arduino UNO (recyklovaná ze starého projektu)

1 štít pro motory Adafruit v2.3:

1 A držák baterie 8 baterií AAA (nepoužíváme 2 napájecí zdroje).

6 šroubů a matic pro spojení prvků, jak je vidět na obrázku

příruby pro motory, elastická guma pro držení držáku baterie a kus plastového listu pro základnu držáku baterie.

1 řada senzorů QTR-8RC s následujícími charakteristikami;

Specifikace pro pole snímačů odrazivosti QTR-8x • Rozměry: 2,95 "x 0,5" • Provozní napětí: 3,3-5,0 V • Napájecí proud: 100 mA • Výstupní formát pro QTR-8A: 8 analogových napětí v rozsahu od 0 V do dodávaného napětí • Výstupní formát pro QTR-8RC: 8 digitálních signálů kompatibilních s I / O, které lze číst jako časovaný vysoký impuls • Optimální snímací vzdálenost: 3 mm (0,125 ") • Maximální doporučená snímací vzdálenost pro QTR-8A: 0,25" (6 mm) • Maximální doporučená snímací vzdálenost pro QTR-8RC: 0,375 "(9,5 mm) • Hmotnost bez kolíků záhlaví: 3,11 g (0,11 oz) Najdete ji v:

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

Sestavte vše … brzy podrobnější video …

Krok 2: Krok 2: Inspiración

Možné problémy s losováním

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

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

Obnoví se více motorů, které mohou ovládat štít.

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…

Při testování výkonu motorů jsme sledovali podporu tohoto blogu www.programarfacil.com

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

Je to velmi dobrý souhrn různých motorů, které tento štít ovládá.

Chcete-li kalibrovat snímač QTR-8RC, můžete postupovat podle pokynů

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

A poslední odkaz, který vám může pomoci, je tento návod;

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

Krok 3: Krok 3: Kód

Image
Image

las conexiones entre el array de

Senzory y las placas las hicimos de la siguiente manera:

El LED svítí na digitální pin 12

Ztráta 8 senzorů dodávaných z 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 código va sin repasarlo (se aceptan sugerencias)

#zahrnout

#zahrnout

#zahrnout

#zahrnout

// Vytvořte objekt stínění motoru s výchozí adresou I2C

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Nebo jej vytvořte s jinou I2C adresou (řekněme pro stohování)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Vyberte, který 'port' M1, M2, M3 nebo M4. V tomto případě M1

Adafruit_DCMotor *motor1 = AFMS.getMotor (1);

// Na portu M2 můžete také vytvořit další motor

Adafruit_DCMotor *motor2 = AFMS.getMotor (2);

// Změňte níže uvedené hodnoty tak, aby vyhovovaly motorům vašeho robota, hmotnosti, typu kola atd.

#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 // počet použitých senzorů

#define TIMEOUT 2500 // čeká na 2500 us, aby se výstupy senzorů snížily

#define EMITTER_PIN 12 // emitor je řízen digitálním pinem 2

#define DEBUG 0 // nastaveno na 1, pokud je potřeba výstup sériového ladění

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

nepodepsaný int senzorValues [NUM_SENSORS];

neplatné nastavení ()

{

zpoždění (1000);

manual_calibration ();

set_motors (0, 0);

}

int lastError = 0;

int last_proportional = 0;

int integrál = 0;

prázdná smyčka ()

{

Serial.begin (9600); // nastavení sériové knihovny na 9600 bps

Serial.println („Adafruit Motorshield v2 - test DC motoru!“);

AFMS.begin (); // vytvořit s výchozí frekvencí 1,6KHz

//AFMS.begin(1000); // NEBO s jinou frekvencí, řekněme 1KHz

// Nastavte rychlost na start, od 0 (vypnuto) do 255 (maximální rychlost)

motor1-> setSpeed (70);

motor1-> běh (VPŘED);

// zapni motor

motor1-> běh (UVOLNĚNÍ);

motor2-> setSpeed (70);

motor2-> běh (VPŘED);

// zapni motor

motor2-> běh (UVOLNĚNÍ);

nepodepsané int senzory [5];

int pozice = qtrrc.readLine (senzory);

int chyba = pozice - 2000;

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

lastError = chyba;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// nastavení otáček motoru pomocí výše uvedených dvou proměnných otáček motoru

set_motors (leftMotorSpeed, rightMotorSpeed);

}

neplatné set_motors (int motor1speed, int motor2speed)

{

if (motor1speed> M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; // omezení maximální rychlosti

if (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // omezení maximální rychlosti

if (motor1speed <0) motor1speed = 0; // udržujte motor nad 0

if (motor2speed <0) motor2speed = 0; // udržujte otáčky motoru nad 0

motor1-> setSpeed (motor1speed); // nastavení otáček motoru

motor2-> setSpeed (motor2speed); // nastavení otáček motoru

motor1-> běh (VPŘED);

motor2-> běh (VPŘED);

}

zrušit manual_calibration () {

int i;

pro (i = 0; i <250; i ++) // kalibrace bude trvat několik sekund

{

qtrrc.calibrate (QTR_EMITTERS_ON);

zpoždění (20);

}

if (DEBUG) {// pokud true, generujte data senzorů prostřednictvím sériového výstupu

Serial.begin (9600);

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

{

Serial.print (qtrrc.calibratedMinimumOn );

Serial.print ('');

}

Serial.println ();

pro (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.

Doporučuje: