Оглавление:

TA-ZON-BOT (Следование по линии): 3 шага (с изображениями)
TA-ZON-BOT (Следование по линии): 3 шага (с изображениями)

Видео: TA-ZON-BOT (Следование по линии): 3 шага (с изображениями)

Видео: TA-ZON-BOT (Следование по линии): 3 шага (с изображениями)
Видео: Свидание в 16 vs 26 лет 😨😳 2024, Ноябрь
Anonim
TA-ZON-BOT (последователь линии)
TA-ZON-BOT (последователь линии)
TA-ZON-BOT (последователь линии)
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

ТА-ЗОН-БОТ

Чаша следует за линией

Мы сделали этого робота, следующего за вами, с помощью наших студентов (спасибо минимакерам).

Это был экспресс-проект для участия в OSHWDEN в Ла-Корунья.

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

переводчик гугл

Шаг 1: Шаг 1: Компоненты

Шаг 1. Компоненты
Шаг 1. Компоненты
Шаг 1. Компоненты
Шаг 1. Компоненты
Шаг 1. Компоненты
Шаг 1. Компоненты

Los components que hemos utilizados

han sido los siguientes.

Una pieza redonda de metacrilato. (Podéis utilizar cualquier disño, nuestra base mide lo justo para colocar el tazón bocabajo).

1 Tazón de desayuno (que sirve para contrar al robot en la linea).

2 ruedas de un juguete reciclado.

2 мотора с особенными знаками опасности:

Especificaciones (пункт 6V):

Размеры: 26 х 10 х 12 мм

Соотношение редуктора: 30: 1

Диаметр отверстия: 3 мм (con ranura de bloqueo)

Номинальное напряжение: 6 В постоянного тока (между 3 и 9 В постоянного тока)

Скорость движения: 1000 об / мин.

Потребляемая мощность: 120 мА (1600 мА вместе)

Крутящий момент: 0,6 кг / см (макс.)

Песо: 10 граммов

Enlace de tienda онлайн:

1 плата Arduino UNO (reciclada de un proyecto antiguo)

1 щит для моторов Adafruit v2.3:

1 Un porta pilas de 8 pilas AAA (без использования 2 fuentes de alimentación).

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

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 матрица сенсоров QTR-8RC с характерными сигнатурами;

Технические характеристики матрицы датчиков отражения QTR-8x • Размеры: 2,95 дюйма x 0,5 дюйма • Рабочее напряжение: 3,3-5,0 В • Ток питания: 100 мА • Формат вывода для QTR-8A: 8 аналоговых напряжений в диапазоне от 0 В до подаваемого напряжения • Формат вывода для QTR-8RC: 8 сигналов, совместимых с цифровым вводом / выводом, которые могут считываться как синхронизированный высокий импульс • Оптимальное расстояние срабатывания: 0,125 дюйма (3 мм) • Максимальное рекомендуемое расстояние срабатывания для QTR-8A: 0,25 дюйма (6 мм) • Максимальное рекомендуемое расстояние срабатывания для QTR-8RC: 0,375 дюйма (9,5 мм) • Вес без соединительных штифтов: 0,11 унции (3,1 г) Lo podéis encontrar en:

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

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

Мы использовали следующие компоненты.

Круглый кусок метакрилата. (Вы можете использовать любой дизайн, размер нашего основания ровно столько, чтобы перевернуть чашу вверх дном).

1 миска для завтрака (используется для концентрации робота на линии).

2 колеса переработанной игрушки.

2 двигателя со следующими характеристиками:

Технические характеристики (для 6 В): Размеры: 26 x 10 x 12 мм Передаточное отношение редуктора: 30: 1 Диаметр вала: 3 мм (с фиксирующей канавкой) Номинальное напряжение: 6 В постоянного тока (может работать от 3 до 9 В постоянного тока) Скорость вращения без нагрузки: 1000 об / мин Потребление без нагрузки: 120 мА (1600 мА с нагрузкой) Крутящий момент: 0,6 кг / см (макс.) Вес: 10 грамм

Ссылка на интернет-магазин:

1 плата Arduino UNO (переработанная из старого проекта)

1 щит для двигателей Adafruit v2.3:

1 батарейный отсек на 8 батареек AAA (2 блока питания мы не используем).

6 винтов и гаек для соединения элементов, как показано на изображении

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

1 массив датчиков QTR-8RC со следующими характеристиками;

Технические характеристики матрицы датчиков отражения QTR-8x • Размеры: 2,95 дюйма x 0,5 дюйма • Рабочее напряжение: 3,3-5,0 В • Ток питания: 100 мА • Формат вывода для QTR-8A: 8 аналоговых напряжений в диапазоне от 0 В до подаваемого напряжения • Формат вывода для QTR-8RC: 8 сигналов, совместимых с цифровым вводом / выводом, которые могут считываться как синхронизированный высокий импульс • Оптимальное расстояние срабатывания: 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: Вдохновение

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 differentes motores que controla esta shield.

Калибровка датчика QTR-8RC под руководством пользователя

Y un ultimo enlace que os puede ayudar este enleteable;

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

sensores y las placas las hicimos de la siguiente manera:

El Led ON va al pin цифровой 12

Los 8 Sensores Ван Десде Эль

número 1 al pin 8

número 2 al pin 9

номер 3 al pin 2

número 4 al pin 3

номер 5 al pin 4

номер 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)

#включают

#включают

#включают

#включают

// Создаем объект моторного щита с адресом I2C по умолчанию

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Или создайте его с другим адресом I2C (скажем, для стекирования)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// Выберите, какой «порт» M1, M2, M3 или M4. В этом случае M1

Adafruit_DCMotor * motor1 = AFMS.getMotor (1);

// Вы также можете сделать другой мотор на порту M2

Adafruit_DCMotor * motor2 = AFMS.getMotor (2);

// Измените значения ниже, чтобы они соответствовали двигателям, весу, типу колес вашего робота и т. Д.

#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 // количество используемых датчиков

#define TIMEOUT 2500 // ждет 2500 мкс, пока на выходе датчика не упадет низкий уровень

#define EMITTER_PIN 12 // эмиттер управляется цифровым выводом 2

#define DEBUG 0 // установить в 1, если требуется последовательный вывод отладки

QTRSensorsRC qtrrc ((символ без знака ) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, TIMEOUT, EMITTER_PIN);

unsigned int sensorValues [NUM_SENSORS];

установка void ()

{

задержка (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 - тест двигателя постоянного тока!»);

AFMS.begin (); // создаем с частотой по умолчанию 1,6 кГц

//AFMS.begin(1000); // ИЛИ с другой частотой, скажем 1 кГц

// Устанавливаем начальную скорость от 0 (выкл.) До 255 (максимальная скорость)

motor1-> setSpeed (70);

мотор1-> бег (ВПЕРЕД);

// включаем мотор

motor1-> run (РЕЛИЗ);

мотор2-> setSpeed (70);

мотор2-> бег (ВПЕРЕД);

// включаем мотор

motor2-> run (РЕЛИЗ);

беззнаковые датчики int [5];

int position = qtrrc.readLine (датчики);

int error = position - 2000;

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

lastError = ошибка;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - скорость двигателя;

// установить скорость двигателя, используя две переменные скорости двигателя, указанные выше

set_motors (leftMotorSpeed, rightMotorSpeed);

}

void set_motors (int motor1speed, int motor2speed)

{

если (motor1speed> M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; // ограничиваем максимальную скорость

если (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // ограничиваем максимальную скорость

если (motor1speed <0) motor1speed = 0; // держать двигатель выше 0

если (motor2speed <0) motor2speed = 0; // поддерживаем скорость двигателя выше 0

motor1-> setSpeed (motor1speed); // устанавливаем скорость двигателя

мотор2-> setSpeed (мотор2speed); // устанавливаем скорость двигателя

мотор1-> бег (ВПЕРЕД);

мотор2-> бег (ВПЕРЕД);

}

void manual_calibration () {

int i;

for (i = 0; i <250; i ++) // калибровка займет несколько секунд

{

qtrrc.calibrate (QTR_EMITTERS_ON);

задержка (20);

}

if (DEBUG) {// если true, генерировать данные датчиков через последовательный вывод

Serial.begin (9600);

для (int i = 0; i <ЧИСЛО_ДАТЧИКОВ; i ++)

{

Serial.print (qtrrc.calibratedMinimumOn );

Серийный.принт ('');

}

Serial.println ();

для (int i = 0; i <ЧИСЛО_ДАТЧИКОВ; i ++)

{

Serial.print (qtrrc.calibratedMaximumOn );

Серийный принт ('');

}

Serial.println ();

Serial.println ();

}

}

Bueno a ver que tal se nos da este proyecto «express» en la Competición del OSHWDEM.

Рекомендуемые: