Мазмуну:

TA-ZON-BOT (Line Follower): 3 Кадам (Сүрөттөр менен)
TA-ZON-BOT (Line Follower): 3 Кадам (Сүрөттөр менен)

Video: TA-ZON-BOT (Line Follower): 3 Кадам (Сүрөттөр менен)

Video: TA-ZON-BOT (Line Follower): 3 Кадам (Сүрөттөр менен)
Video: ПОЧЕМУ Я ЖДУ L4D3 2024, Ноябрь
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

Бул роботтун бүтүрүүчүлөрү, (минимакерлер үчүн).

Жөнөкөй сөз менен айтканда, OSHWDEN де A Coruña үчүн билдирүү жөнөтүү.

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

traductor google

TA-ZON-BOT

Табак төмөнкү сапта

Биз бул роботту студенттерибиздин жардамы менен сиздин артыңыздан жасадык (минимейкерлерге рахмат).

Бул A Coruña OSHWDENге катышуу үчүн экспресс долбоор болду.

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

Google котормочу

1 -кадам: 1 -кадам: Компоненттер

1 -кадам: Компоненттер
1 -кадам: Компоненттер
1 -кадам: Компоненттер
1 -кадам: Компоненттер
1 -кадам: Компоненттер
1 -кадам: Компоненттер

Los komponentes que hemos utilizados

han sido los siguientes.

Метакрилато дагы бир жолу. (Podéis utilizar cualquier оорулары, эң негизгиси, бул жөн гана акча табуу үчүн).

1 Тазалоо (роботту иштетүү үчүн).

2 ruedas de un juguete reciclado.

2 мотор con las siguientes especificaciones:

Өзгөчө шарттар (6V -пункт):

Өлчөмдөрү: 26 x 10 x 12 мм

Редуктордун деъгээли: 30: 1

Диаметри: 3мм (блокнот)

Күчтүү номинал: 6Vcc (3 жана 9Vcc)

Каражаттын ылдамдыгы: 1000rpm

Керектөө: 120mA (1600mA con carga)

Тор: 0.6кг/см (максимум)

Песо: 10 грамм

Интернетке туташуу:

1 орун Arduino UNO (reciglada de un proyecto antiguo)

Adafruit v2.3 мотору үчүн 1 калкан:

1 AAA пилатынын 8 пиласы жок (2 колдонуучу жок).

6 торнилло y tuercas para unir los elementos como se en en la imagen

bridas para los motores, una goma elástica para porta pilas y un trozo de una lamina de plásticos para la base del porta pilas.

QTR-8RC сенсорлорунун 1 массиви;

QTR-8x чагылтуу сенсорунун массивинин спецификациясы • Өлчөмдөрү: 2,95 "х 0,5" • Иштөө чыңалуусу: 3,3-5,0 В • Жеткирүү тогу: 100 мА • QTR-8A үчүн чыгаруу форматы: 0 аналогдук чыңалууга чейин 8 аналогдук чыңалуу • QTR-8RC үчүн чыгаруу форматы: 8 санариптик I/O-шайкеш сигналдар, аларды убакыттын өтүшү менен жогорку импульс катары окууга болот • Оптималдуу сезүү аралыгы: 0.125 "(3 мм) • QTR-8A үчүн максималдуу сунушталган сезүү расстояниеси: 0.25" (6 мм) • QTR-8RC үчүн максималдуу сунушталган сезүү расстояниеси: 0,375 дюйм (9,5 мм) • Баштыктарсыз салмагы: 0,11 унция (3,1 г)

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

Ансамблдык тудо… próximamente un vídeo más detallado…

Биз колдонгон компоненттер төмөнкүдөй болгон.

Метакрилаттын тегерек бөлүгү. (Сиз каалаган дизайнды колдонсоңуз болот, биздин база чараларды идишти тескери жайгаштыруу үчүн жетиштүү).

1 Эртең мененки идиш (роботту линияга топтоо үчүн колдонулат).

Кайра иштетилген оюнчуктун 2 дөңгөлөгү.

Төмөнкү өзгөчөлүктөрү бар 2 кыймылдаткыч:

Техникалык мүнөздөмөлөр (6V үчүн): Өлчөмдөрү: 26 x 10 x 12 мм Редуктордун катышы: 30: 1 Буттун диаметри: 3мм (бекитүүчү оюк менен) Номиналдуу чыңалуу: 6Vdc (3төн 9Vdcка чейин иштей алат) Жүксүз айлануу ылдамдыгы: 1000rpm Керектөө жүксүз: 120мА (жүктөмө менен 1600мА) Момент: 0,6кг / см (максималдуу) Салмагы: 10 грамм

Интернет-дүкөндүн шилтемеси:

1 Arduino UNO тактасы (эски долбоордон кайра иштетилген)

Adafruit v2.3 кыймылдаткычтары үчүн 1 калкан:

1 8 AAA батарейканын батарейка кармагычы (биз 2 кубат булагын колдонбойбуз).

6 бурамалар жана гайкалар сүрөттө көрүнүп тургандай элементтерди бириктирүү үчүн

моторлор үчүн фланецтер, батарея кармагычты кармоо үчүн ийкемдүү резина жана батарейка кармагычтын түбү үчүн пластик баракчасы.

Төмөнкү мүнөздөмөлөргө ээ QTR-8RC сенсорлорунун 1 массиви;

QTR-8x чагылтуу сенсорунун массивинин спецификациясы • Өлчөмдөрү: 2.95 "x 0.5" • Иштөө чыңалуусу: 3.3-5.0 V • Жеткирүү тогу: 100 мА • QTR-8A үчүн чыгаруу форматы: 0 аналогдук чыңалууга чейин 8 аналогдук чыңалуу • QTR-8RC үчүн чыгаруу форматы: 8 санариптик I / O-шайкеш сигналдар, аларды убакыттын өтүшү менен жогорку импульс катары окууга болот • Оптималдуу сезүү аралыгы: 0.125 "(3 мм) • QTR-8A үчүн максималдуу сунушталган сезүү расстояниеси: 0.25" (6 мм) • QTR-8RC үчүн максималдуу сунушталган сезүү расстояниеси: 0,375 дюйм (9,5 мм) • Башы төөнөгүчсүз салмагы: 0,11 унция (3,1 г) Сиз муну таба аласыз:

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

Баарын чогултабыз … жакында кененирээк видео…

2 -кадам: 2 -кадам: Inspiración

Проблемаларды чечүү функциясы

www.programarfacil.com блогунун блогу

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

Es un resumen muy bueno de los diferentes motores que controla esta shield.

Калибрдык сенсор QTR-8RC үчүн окуу куралын колдонууга болот

Y un ultimo enlace que os puede ayudar es este көрсөтмө берүүчү;

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

Кыймылдаткычтардын иштешин текшерүү үчүн, биз бул блогду колдодук www.programarfacil.com

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

Бул калкан башкарган ар кандай моторлордун абдан жакшы корутундусу.

QTR-8RC сенсорун калибрлөө үчүн сиз үйрөткүчтү колдонсоңуз болот

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

Жана сизге жардам бере турган акыркы бир шилтеме бул көрсөтмө;

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

3 -кадам: 3 -кадам: Код

Image
Image

las conexiones entre el array de

las placas las hicimos de la siguiente manera:

El Led ON жана al pin digital 12

Лос 8 сенсор

número 1 al pin 8

número 2 al pin 9

número 3 al pin 2

número 4 al pin 3

5 пин 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 (seceptan sugerencias)

#кошуу

#кошуу

#кошуу

#кошуу

// Демейки I2C дареги менен мотор калканынын объектисин түзүңүз

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Же болбосо, аны башка I2C дареги менен түзүңүз (чөмөлө үчүн айт)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Кайсы портту тандаңыз M1, M2, M3 же M4. Бул учурда, M1

Adafruit_DCMotor *мотор1 = AFMS.getMotor (1);

// Сиз дагы M2 портунда башка мотор жасай аласыз

Adafruit_DCMotor *мотор2 = AFMS.getMotor (2);

// Роботтун кыймылдаткычтарына, салмагына, дөңгөлөктүн түрүнө ж.

#depine KP.2

#аныктоо KD 5

50

50

70

70

#define MIDDLE_SENSOR 4

#define NUM_SENSORS 8 // колдонулган сенсорлордун саны

#define TIMEOUT 2500 // сенсордун чыгышы төмөн болушун 2500 бизди күтөт

#define EMITTER_PIN 12 // эмиттер санарип пин 2 тарабынан башкарылат

#define DEBUG 0 // сериялык мүчүлүштүктөрдү чыгаруу керек болсо, 1ге коюңуз

QTRSensorsRC qtrrc ((белгисиз char ) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, TIMEOUT, EMITTER_PIN);

unsigned int sensorValues [NUM_SENSORS];

жараксыз орнотуу ()

{

кечигүү (1000);

manual_calibration ();

set_motors (0, 0);

}

int lastError = 0;

int last_proportional = 0;

int интеграл = 0;

боштук цикл ()

{

Serial.begin (9600); // Сериялык китепкананы 9600 бит/ с ылдамдыкта орнотуу

Serial.println ("Adafruit Motorshield v2 - DC Motor тест!");

AFMS.begin (); // демейки 1.6KHz жыштыгы менен түзүү

//AFMS.begin(1000); // ЖЕ башка жыштыкта, 1КГц деп айт

// Ылдамдыкты баштоого коюңуз, 0дон (өчүрүлгөндөн) 255ке чейин (эң жогорку ылдамдык)

motor1-> setSpeed (70);

мотор1-> чуркоо (АЛГА);

// моторду күйгүзүү

motor1-> иштетүү (ЧЫГАРУУ);

motor2-> setSpeed (70);

motor2-> чуркоо (АЛГА);

// моторду күйгүзүү

motor2-> иштетүү (ЧЫГАРУУ);

белгисиз инт сенсорлор [5];

int абалы = qtrrc.readLine (сенсорлор);

int error = позиция - 2000;

int motorSpeed = KP * катасы + KD * (ката - lastError);

lastError = ката;

int leftMotorSpeed = M1_DEFAULT_SPEED + мотор ылдамдыгы;

int rightMotorSpeed = M2_DEFAULT_SPEED - мотор ылдамдыгы;

// жогоруда көрсөтүлгөн эки кыймылдаткыч ылдамдыгын колдонуп, мотор ылдамдыгын коюңуз

set_motors (leftMotorSpeed, rightMotorSpeed);

}

боштук set_motors (int motor1speed, int motor2speed)

{

эгер (motor1speed> M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; // жогорку ылдамдыкты чектөө

if (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // жогорку ылдамдыкты чектөө

if (motor1speed <0) motor1speed = 0; // моторду 0дон жогору кармаңыз

if (motor2speed <0) motor2speed = 0; // мотор ылдамдыгын 0дөн жогору кармаңыз

motor1-> setSpeed (motor1speed); // мотор ылдамдыгын коюу

motor2-> setSpeed (motor2speed); // мотор ылдамдыгын орнотуу

мотор1-> чуркоо (АЛГА);

motor2-> чуркоо (АЛГА);

}

жараксыз manual_calibration () {

int i;

үчүн (i = 0; i <250; i ++) // калибрлөө бир нече секундга созулат

{

qtrrc.calibrate (QTR_EMITTERS_ON);

кечигүү (20);

}

if (DEBUG) {// эгер чын болсо, сериялык чыгаруу аркылуу сенсор маалыматтарын түзүңүз

Serial.begin (9600);

үчүн (int i = 0; i <NUM_SENSORS; i ++)

{

Serial.print (qtrrc.calibratedMinimumOn );

Serial.print ('');

}

Serial.println ();

үчүн (int i = 0; i <NUM_SENSORS; i ++)

{

Serial.print (qtrrc.calibratedMaximumOn );

Serial.print ('');

}

Serial.println ();

Serial.println ();

}

}

OSHWDEM үчүн "экспресстен" баш тартуу керек.

Сунушталууда: