Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
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 on poder osallistuja OSHWDEN de A Coruñassa.
oshwdem.org/2017/06/oshwdem-2017/
traductor google
TA-ZON-BOT
Kulho seuraa linjaa
Olemme tehneet tämän robotin seuraamaan sinua oppilaidemme avulla (kiitos pienvalmistajille).
Osallistuminen A Coruñan OSHWDENiin on ollut nimenomainen projekti.
oshwdem.org/2017/06/oshwdem-2017/
Google kääntäjä
Vaihe 1: Vaihe 1: Komponentit
Los komponentit 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 moottoripyörää erityislaskennassa:
Erittelyt (6V kohta):
Mitat: 26 x 10 x 12 mm
Vähennyssuhde: 30: 1
Halkaisija: 3 mm (con ranura de bloqueo)
Nimellinen jännite: 6Vcc (puede funcionar entre 3 a 9Vcc)
Velocidad de giro sin carga: 1000 rpm
Virrankulutus: 120 mA (1600 mA)
Vääntö: 0,6 kg/cm (enintään)
Peso: 10 grammaa
Liitä tienna verkossa:
1 paikka Arduino UNO (reciclada de un proyecto antiguo)
1 shield para motores Adafruit v2.3:
1 Unporta 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 joukko sensores QTR-8RC con las siguientes características;
QTR-8x-heijastustunnistinjärjestelmän tekniset tiedot • Mitat: 2,95 "x 0,5" • QTR-8RC: n esitysmuoto: 8 digitaalista I/O-yhteensopivaa signaalia, jotka voidaan lukea ajastettuna korkeana pulssina • Optimaalinen tunnistusetäisyys: 3 mm (0,125 ") • Suurin suositeltu tunnistusetäisyys QTR-8A: lle: 0,25" (6 mm) • Suurin suositeltu tunnistusetäisyys QTR-8RC: lle: 9,5 mm (0,375 tuumaa) • Paino ilman nastatappeja: 3,1 g (0,11 oz) Lo podéis encontrar en:
tienda.bricogeek.com/componentes/257-array-…
Ensamblar todo… próximamente un vídeo other detallado…
Käytetyt komponentit ovat olleet seuraavat.
Pyöreä pala metakrylaattia. (Voit käyttää mitä tahansa mallia, meidän pohja mittaa juuri sen verran, että laittaa kulhon ylösalaisin).
1 Aamiaishuone (käytetään robotin keskittämiseen siimalle).
2 pyörää kierrätettyä lelua.
2 moottoria, joilla on seuraavat tiedot:
Tekniset tiedot (6 V: lle): Mitat: 26 x 10 x 12 mm Vähennyslaitteen suhde: 30: 1 Akselin halkaisija: 3 mm (lukitusuran kanssa) Nimellisjännite: 6 V DC (voi toimia 3 - 9 V DC: n välillä) ilman kuormaa: 120 mA (1600 mA kuormitettuna) Vääntö: 0,6 kg / cm (enintään) Paino: 10 grammaa
Linkki verkkokauppaan:
1 Arduino UNO -levy (kierrätetty vanhasta projektista)
1 kilpi Adafruit v2.3 -moottoreille:
1 Paristopidike, jossa on 8 AAA -paristoa (emme käytä kahta virtalähdettä).
6 ruuvia ja mutteria elementtien liittämiseksi kuvan mukaisesti
moottorin laipat, elastinen kumi akun pidikkeen pitämiseksi ja muovilevy paristopidikkeen pohjalle.
1 sarja QTR-8RC-antureita, joilla on seuraavat ominaisuudet;
QTR-8x-heijastustunnistinjärjestelmän tekniset tiedot • Mitat: 2,95 "x 0,5" • QTR-8RC: n esitysmuoto: 8 digitaalista I / O-yhteensopivaa signaalia, jotka voidaan lukea ajastettuna korkeana pulssina • Optimaalinen tunnistusetäisyys: 3 mm (0,125 ") • Suurin suositeltu tunnistusetäisyys QTR-8A: lle: 0,25" (6 mm) • Suurin suositeltu tunnistusetäisyys QTR-8RC: lle: 9,5 mm (0,375 tuumaa) • Paino ilman nastatappeja: 3,1 g (0,11 oz) Löydät sen osoitteesta:
tienda.bricogeek.com/componentes/257-array-de-sensores-infrarojos-qtr-8rc-digital.html
Kokoa kaikki… pian yksityiskohtaisempi video…
Vaihe 2: Vaihe 2: Inspiraatio
Para probar el funcionamiento del los
motores hemos seguido esta ayuda del blogi www.programarfacil.com
programarfacil.com/blog/arduino-blog/adafr…
Es unumente muy bueno de los diferentes motores que controla esta shield.
Kalibraattorianturi QTR-8RC, jossa on opetusohjelma
Y un ultimo enlace que os puede ayudar es este instructable;
www.instructables.com/id/Arduino-based-lin…
Voit testata moottorien suorituskykyä seuraamalla tätä blogitukea www.programarfacil.com
programarfacil.com/blog/arduino-blog/adafruit-motor-shield-arduino/
Se on erittäin hyvä yhteenveto eri moottoreista, joita tämä kilpi ohjaa.
Voit kalibroida QTR-8RC-anturin noudattamalla opetusohjelmaa
www.youtube.com/watch?v=_ZeybIDd80s&list=PLlNY7ygeCIzCuq0jSjPD8_LfcAsPKUcGL&index=6
Ja viimeinen linkki, joka voi auttaa sinua, on tämä opettavainen;
www.instructables.com/id/Arduino-based-line-follower-using-Pololu-QTR-8RC-l/
Vaihe 3: Vaihe 3: Koodi
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 nasta 8
número 2 nasta 9
número 3 nasta 2
número 4 nasta 3
número 5 nasta 4
número 6 nasta 5
número 7 tai nasta 6
número 8 tai nasta 7
El código va sin repasarlo (se aceptan sugerencias)
#sisältää
#sisältää
#sisältää
#sisältää
// Luo moottorin suojaobjekti, jolla on oletus I2C -osoite
Adafruit_MotorShield AFMS = Adafruit_MotorShield ();
// Tai luo se toisella I2C -osoitteella (esimerkiksi pinoamiseen)
// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);
// Valitse portti M1, M2, M3 tai M4. Tässä tapauksessa M1
Adafruit_DCMotor *moottori1 = AFMS.getMotor (1);
// Voit myös tehdä toisen moottorin porttiin M2
Adafruit_DCMotor *moottori2 = AFMS.getMotor (2);
// Muuta alla olevia arvoja robotin moottoreiden, painon, pyörätyypin jne. Mukaan.
#määrittele KP.2
#määrittele 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 // käytettyjen antureiden määrä
#define TIMEOUT 2500 // odottaa 2500 meitä, kunnes anturilähdöt laskevat
#define EMITTER_PIN 12 // lähetintä ohjaa digitaalinen nasta 2
#define DEBUG 0 // asetetaan arvoon 1, jos tarvitaan sarjamuotoinen virheenkorjaus
QTRSensorsRC qtrrc ((unsigned char ) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, TIMEOUT, EMITTER_PIN);
unsigned int sensorValues [NUM_SENSORS];
mitätön asennus ()
{
viive (1000);
manuaalinen_kalibrointi ();
set_motors (0, 0);
}
int lastError = 0;
int viimeinen_suhde = 0;
int integraali = 0;
tyhjä silmukka ()
{
Sarja.alku (9600); // määritä sarjakirjasto nopeudella 9600 bps
Serial.println ("Adafruit Motorshield v2 - DC -moottoritesti!");
AFMS.begin (); // luo oletustaajuudella 1,6 KHz
//AFMS.begin(1000); // TAI eri taajuudella, esimerkiksi 1KHz
// Aseta käynnistysnopeus 0 (pois päältä) - 255 (maksiminopeus)
moottori1-> setSpeed (70);
moottori1-> käy (ETEENPÄIN);
// käynnistä moottori
motor1-> run (RELEASE);
moottori2-> setSpeed (70);
moottori2-> käy (ETEENPÄIN);
// käynnistä moottori
motor2-> run (RELEASE);
allekirjoittamattomat int -anturit [5];
int -asema = qtrrc.readLine (anturit);
int virhe = sijainti - 2000;
int motorSpeed = KP * virhe + KD * (virhe - viimeinen virhe);
lastError = virhe;
int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;
int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;
// aseta moottorin nopeudet yllä olevien kahden moottorin nopeusmuuttujan avulla
set_motors (leftMotorSpeed, rightMotorSpeed);
}
void set_motors (int motor1speed, int motor2speed)
{
if (moottorin1 nopeus> M1_MAX_SPEED) moottorin1 nopeus = M1_MAX_SPEED; // rajoittaa huippunopeutta
if (moottorin2 nopeus> M2_MAX_SPEED) moottorin2 nopeus = M2_MAX_SPEED; // rajoittaa huippunopeutta
jos (moottorin1 nopeus <0) moottorin1 nopeus = 0; // pidä moottori yli 0
jos (moottorin2 nopeus <0) moottorin2 nopeus = 0; // pitää moottorin nopeus yli 0
moottori1-> setSpeed (moottori1nopeus); // aseta moottorin nopeus
moottori2-> setSpeed (moottori2nopeus); // aseta moottorin nopeus
moottori1-> käy (ETEENPÄIN);
moottori2-> käy (ETEENPÄIN);
}
void manual_calibration () {
int i;
(i = 0; i <250; i ++) // kalibrointi kestää muutaman sekunnin
{
qtrrc.kalibroi (QTR_EMITTERS_ON);
viive (20);
}
if (DEBUG) {// jos tosi, luo anturitiedot sarjaliitännän kautta
Sarja.alku (9600);
(int i = 0; i <NUM_SENSORS; i ++)
{
Serial.print (qtrrc.calibratedMinimumOn );
Serial.print ('');
}
Sarja.println ();
(int i = 0; i <NUM_SENSORS; i ++)
{
Serial.print (qtrrc.calibratedMaximumOn );
Serial.print ('');
}
Sarja.println ();
Sarja.println ();
}
}
Bueno a ver que tal se nos da este proyecto “express” en la kilpailua OSHWDEM.