Სარჩევი:

TA-ZON-BOT (ხაზის მიმდევარი): 3 ნაბიჯი (სურათებით)
TA-ZON-BOT (ხაზის მიმდევარი): 3 ნაბიჯი (სურათებით)

ვიდეო: TA-ZON-BOT (ხაზის მიმდევარი): 3 ნაბიჯი (სურათებით)

ვიდეო: TA-ZON-BOT (ხაზის მიმდევარი): 3 ნაბიჯი (სურათებით)
ვიდეო: ეკჰარტ ტოლე - "აწმყოს ძალა" - აუდიო წიგნი - Audible Read Along 2024, ნოემბერი
Anonim
TA-ZON-BOT (ხაზის მიმდევარი)
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 participant en la OSHWDEN de A Coruña.

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

traductor google

TA-ZON-BOT

თასის შემდგომი ხაზი

ჩვენ გავაკეთეთ ეს რობოტი, რომელიც მოგყვებათ ჩვენი სტუდენტების დახმარებით, (მადლობა მინიმაკეტებს).

ეს იყო ექსპრესი პროექტი Coruña– ს OSHWDEN– ში მონაწილეობის მისაღებად.

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

გუგლის თარჯიმანი

ნაბიჯი 1: ნაბიჯი 1: კომპონენტები

ნაბიჯი 1: კომპონენტები
ნაბიჯი 1: კომპონენტები
ნაბიჯი 1: კომპონენტები
ნაბიჯი 1: კომპონენტები
ნაბიჯი 1: კომპონენტები
ნაბიჯი 1: კომპონენტები

Los componentes que hemos utilizados

han sido los siguientes.

Una pieza redonda de metacrilato. (Podéis utilisar 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:

Especificaciones (პარაგრაფი 6V):

ზომები: 26 x 10 x 12 მმ

შემცირების თანაფარდობა: 30: 1

დიამეტრი: 3 მმ (con ranura de bloqueo)

ვოლტაჟი ნომინალური: 6Vcc (puede funcionar entre 3 a 9Vcc)

მოძრაობის სიჩქარე: 1000rpm

მოხმარების ტვირთი: 120mA (1600mA con carga)

ბრუნვის მომენტი: 0.6 კგ/სმ (მაქსიმალური)

პეზო: 10 გრამი

ჩართეთ კავშირი ინტერნეტით:

1 placa Arduino UNO (reciclada de un proyecto antiguo)

1 ფარი motores Adafruit v2.3:

1 Un porta 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 მასივი de sensores QTR-8RC con las siguientes características;

სპეციფიკაციები QTR-8x ამრეკლავი სენსორული მასივისთვის • ზომები: 2.95 "x 0.5" • საოპერაციო ძაბვა: 3.3-5.0 V • მიწოდების დენი: 100 mA • გამომავალი ფორმატი QTR-8A– სთვის: 8 ანალოგური ძაბვა 0 V– დან მიწოდებულ ძაბვამდე • გამომავალი ფორმატი QTR-8RC: 8 ციფრული I/O თავსებადი სიგნალისთვის, რომლის წაკითხვა შესაძლებელია როგორც დროული მაღალი პულსი. (6 მმ) • მაქსიმალური რეკომენდებული მანძილი QTR-8RC– სთვის: 0.375”(9.5 მმ) • წონა სათაურის გარეშე: 0.11 უნცია (3.1 გ) Lo podéis encontrar en:

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

უფრო მეტიც, თქვენ უნდა შეაფასოთ…

კომპონენტები, რომლებიც ჩვენ გამოვიყენეთ, იყო შემდეგი.

მეტაკრილატის მრგვალი ნაჭერი. (თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი დიზაინი, ჩვენი ბაზის ზომები საკმარისია იმისათვის, რომ თასი თავდაყირა დააყენოს).

1 საუზმე (გამოიყენება რობოტის ხაზზე კონცენტრირებისთვის).

2 ბორბალი გადამუშავებული სათამაშო.

2 ძრავა შემდეგი მახასიათებლებით:

სპეციფიკაციები (6 ვ -ისთვის): ზომები: 26 x 10 x 12 მმ შემცირების თანაფარდობა: 30: 1 ლილვის დიამეტრი: 3 მმ (საკეტით) ნომინალური ძაბვა: 6Vdc (შეუძლია იმუშაოს 3 -დან 9Vdc- მდე) ბრუნვის სიჩქარე დატვირთვის გარეშე: 1000rpm მოხმარება დატვირთვის გარეშე: 120mA (1600mA დატვირთვით) ბრუნვის მომენტი: 0.6 კგ / სმ (მაქსიმალური) წონა: 10 გრამი

ონლაინ მაღაზიის ბმული:

Arduino UNO დაფა (გადამუშავებულია ძველი პროექტიდან)

1 ფარი Adafruit v2.3 ძრავებისთვის:

1 8 AAA ბატარეის ბატარეის მფლობელი (ჩვენ არ ვიყენებთ 2 კვების ბლოკს).

6 ხრახნი და თხილი ელემენტებთან შესაერთებლად, როგორც ჩანს სურათზე

ფლანგები ძრავებისთვის, ელასტიური რეზინი ბატარეის დამჭერის შესანახად და პლასტმასის ფურცელი ბატარეის დასაყრდენისთვის.

QTR-8RC სენსორების 1 მასივი შემდეგი მახასიათებლებით;

სპეციფიკაციები QTR-8x ამრეკლავი სენსორული მასივისათვის • ზომები: 2.95 "x 0.5" • საოპერაციო ძაბვა: 3.3-5.0 ვ • მიწოდების დენი: 100 mA • გამომავალი ფორმატი QTR-8A– სთვის: 8 ანალოგური ძაბვა 0 ვ-დან მიწოდებულ ძაბვამდე • გამომავალი ფორმატი QTR-8RC: 8 ციფრული I / O თავსებადი სიგნალისთვის, რომლის წაკითხვა შესაძლებელია როგორც დროული მაღალი პულსი. (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 resenen muy bueno de los diferentes motores que controla esta shield.

სენსორი QTR-8RC კალიბრირებისთვის საჭიროა მისი სასწავლო პროგრამის გამოყენება

Y un ultimo enlace que os puede ayudar es este instructable;

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 digital 12

Los 8 sensores van desde el

ნომერი 1 პინი 8

número 2 pin 9

número 3 პინ 2

número 4 და pin 3

número 5 პინ 4

número 6 პინი 5

número 7 პინ 6

número 8 პინ 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);

// შეცვალეთ ქვემოთ მოცემული მნიშვნელობები თქვენი რობოტის ძრავების, წონის, ბორბლის ტიპის და ა.

#განსაზღვრეთ KP.2

#განსაზღვრეთ KD 5

#განსაზღვრეთ M1_DEFAULT_SPEED 50

#განსაზღვრეთ M2_DEFAULT_SPEED 50

#განსაზღვრეთ M1_MAX_SPEED 70

#განსაზღვრეთ M2_MAX_SPEED 70

#განსაზღვრეთ MIDDLE_SENSOR 4

#განსაზღვრეთ NUM_SENSORS 8 // გამოყენებული სენსორების რაოდენობა

#განსაზღვრეთ TIMEOUT 2500 // ელოდება 2500 აშშ დოლარს, სანამ სენსორის შედეგები დაბალი იქნება

#განსაზღვრეთ EMITTER_PIN 12 // გამცემი კონტროლდება ციფრული პინით 2

#define DEBUG 0 // დააყენეთ 1 -ზე, თუ საჭიროა სერიული გამართვის გამომავალი

QTRSensorsRC qtrrc ((ხელმოუწერელი char ) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, TIMEOUT, EMITTER_PIN);

ხელმოუწერელი int sensorValues [NUM_SENSORS];

ბათილად დაყენება ()

{

დაგვიანება (1000);

სახელმძღვანელო_კალიბრაცია ();

set_motors (0, 0);

}

int lastError = 0;

int last_proportional = 0;

int ინტეგრალი = 0;

ბათილი მარყუჟი ()

{

სერიული.დაწყება (9600); // სერიული ბიბლიოთეკის დაყენება 9600 bps

Serial.println ("Adafruit Motorshield v2 - DC საავტომობილო ტესტი!");

AFMS. დასაწყისი (); // შექმნა ნაგულისხმევი სიხშირით 1.6KHz

//AFMS. დასაწყისი (1000); // ან განსხვავებული სიხშირით, ვთქვათ 1KHz

// დააყენეთ დაწყების სიჩქარე, 0 -დან (გამორთული) 255 -მდე (მაქსიმალური სიჩქარე)

motor1-> setSpeed (70);

motor1-> გაშვება (წინ);

// ჩართეთ ძრავა

motor1-> გაშვება (გათავისუფლება);

motor2-> setSpeed (70);

motor2-> გაშვება (წინ);

// ჩართეთ ძრავა

motor2-> გაშვება (გათავისუფლება);

ხელმოუწერელი int სენსორები [5];

int პოზიცია = qtrrc.readLine (სენსორები);

int შეცდომა = პოზიცია - 2000;

int motorSpeed = KP * შეცდომა + KD * (შეცდომა - lastError);

lastError = შეცდომა;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// დააყენეთ ძრავის სიჩქარე ზემოთ მოყვანილი ძრავის სიჩქარის ორი ცვლადის გამოყენებით

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); // დააყენეთ ძრავის სიჩქარე

motor2-> setSpeed (motor2speed); // დააყენეთ ძრავის სიჩქარე

motor1-> გაშვება (წინ);

motor2-> გაშვება (წინ);

}

void manual_calibration () {

int i;

for (i = 0; i <250; i ++) // კალიბრაციას რამდენიმე წამი დასჭირდება

{

qtrrc. დაკალიბრება (QTR_EMITTERS_ON);

დაგვიანება (20);

}

if (DEBUG) {// თუ მართალია, შექმენით სენსორული მონაცემები სერიული გამომავალი საშუალებით

სერიული.დაწყება (9600);

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

{

Serial.print (qtrrc.calibratedMinimumOn );

Serial.print ('');

}

Serial.println ();

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

{

Serial.print (qtrrc. CalibratedMaximumOn );

Serial.print ('');

}

Serial.println ();

Serial.println ();

}

}

Bueno ver ver tal se nos da este proyecto "express" en la competición del OSHWDEM.

გირჩევთ: