Mündəricat:

TA-ZON-BOT (Line Follower): 3 Addım (Şəkillərlə)
TA-ZON-BOT (Line Follower): 3 Addım (Şəkillərlə)

Video: TA-ZON-BOT (Line Follower): 3 Addım (Şəkillərlə)

Video: TA-ZON-BOT (Line Follower): 3 Addım (Şəkillərlə)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Iyul
Anonim
TA-ZON-BOT (Xətt İzləyicisi)
TA-ZON-BOT (Xətt İzləyicisi)
TA-ZON-BOT (Xətt İzləyicisi)
TA-ZON-BOT (Xətt İzləyicisi)

TA-ZON-BOT

Əlavə məlumat

Robotların hər biri bir -birindən fərqlənən robotları hazırlayır, (minimakerlər üçün).

Bu, OSHWDEN -in A Coruna oyununda iştirak etmək üçün heç bir proyektdə deyil.

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

tacir google

TA-ZON-BOT

Çanaq ardıcıllıqla gəlir

Tələbələrimizin köməyi ilə sizi izləyən bu robotu etdik (minimakerlərə təşəkkürlər).

A Coruña OSHWDEN -də iştirak etmək üçün sürətli bir layihə oldu.

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

Google tərcüməçi

Addım 1: Adım 1: Komponentlər

Addım 1: Komponentlər
Addım 1: Komponentlər
Addım 1: Komponentlər
Addım 1: Komponentlər
Addım 1: Komponentlər
Addım 1: Komponentlər

Bu komponentlərin hamısı istifadə edilə bilər

han sido los siguientes.

Metacrilato üçün ən yaxşı seçim. (Podéis utilizar cualquier xəstəliyi, nuestra əsas mide loco colocar el tazón bocabajo).

1 Tapşırıqlar (robotun ən böyük konsentrasiyası).

Jurnalın 2 versiyası.

2 maşın con las siguientes especificaciones:

Xüsusi xüsusiyyətlər (6V paraqrafı):

Ölçülər: 26 x 10 x 12 mm

Redaktorların nisbəti: 30: 1

Ölçü diametri: 3 mm

Güc nominal: 6Vcc (3 və 9Vcc funksiyaları)

Sürət həddi: 1000 rpm

İstehlakçı yükü: 120mA (1600mA yükləmə)

Tork: 0.6 kq/sm (maksimum)

Peso: 10 qram

İnternetdən istifadə edin:

1 yer Arduino UNO (reciclada de un proyecto antiguo)

Adafruit v2.3 motorlu 1 qalxan:

1 ədəd AAA -dan 8 -ə qədər pilotsuz (heç bir fayda yoxdur).

6 tornillos y tuercas üçün ən çox tələb olunan elementlər

motorlar, maşınlar və avtomobillər üçün ən yaxşı seçimdir.

1 sensorlar QTR-8RC con las siguientes características;

QTR-8x Reflectance Sensor Array üçün spesifikasiyalar • Ölçülər: 2.95 "x 0.5" • İşləmə gərginliyi: 3.3-5.0 V • Təchizat cərəyanı: 100 mA • QTR-8A üçün çıxış formatı: 0 V-dan verilən gərginliyə qədər 8 analog gərginlik • QTR-8RC üçün çıxış formatı: Zamanlanmış yüksək nəbz kimi oxuna bilən 8 rəqəmsal I/O-uyğun siqnal • Optimal algılama məsafəsi: 0.125 "(3 mm) • QTR-8A üçün tövsiyə olunan maksimum algılama məsafəsi: 0.25" (6 mm) • QTR-8RC üçün tövsiyə olunan maksimum algılama məsafəsi: 0.375 "(9.5 mm) • Başlıq sancaqları olmayan çəki: 0.11 oz (3.1 g)

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

Əlaqələndirici tapşırıqlar… əvvəlcədən öyrənildi…

İstifadə etdiyimiz komponentlər aşağıdakılardır.

Dairəvi bir metakrilat parçası. (İstənilən dizayndan istifadə edə bilərsiniz, əsas ölçülərimiz qabı alt -üst etmək üçün kifayətdir).

1 səhər yeməyi qabı (robotu xətdə cəmləşdirmək üçün istifadə olunur).

Yenidən işlənmiş oyuncağın 2 təkəri.

Aşağıdakı xüsusiyyətlərə malik 2 mühərrik:

Xüsusiyyətlər (6V üçün): Ölçülər: 26 x 10 x 12 mm Redüktörün nisbəti: 30: 1 Milin diametri: 3 mm (kilidləmə yivli) Nominal gərginlik: 6 Vdc (3 ilə 9 Vdc arasında işləyə bilər) Yük olmadan dönmə sürəti: 1000 rpm İstehlak yük olmadan: 120mA (yüklə 1600mA) Tork: 0.6 kq / sm (maksimum) Çəkisi: 10 qram

İnternet mağaza linki:

1 Arduino UNO lövhəsi (köhnə bir layihədən geri çevrildi)

Adafruit v2.3 mühərrikləri üçün 1 qalxan:

1 8 AAA batareyadan ibarət batareya tutucusu (2 enerji təchizatı istifadə etmirik).

Şəkildə göründüyü kimi elementləri birləşdirmək üçün 6 vida və qoz -fındıq

mühərriklər üçün flanşlar, batareya tutucusunu tutmaq üçün elastik bir rezin və batareya tutucusunun əsası üçün bir plastik təbəqə parçası.

Aşağıdakı xüsusiyyətlərə malik 1 sıra QTR-8RC sensorlar;

QTR-8x Reflectance Sensor Array üçün spesifikasiyalar • Ölçülər: 2.95 "x 0.5" • İşləmə gərginliyi: 3.3-5.0 V • Təchizat cərəyanı: 100 mA • QTR-8A üçün çıxış formatı: 0 V-dan verilən gərginliyə qədər 8 analog gərginlik • QTR-8RC üçün çıxış formatı: Zamanlanmış yüksək nəbz kimi oxuna bilən 8 rəqəmsal G / Ç-uyğun siqnal • Optimal algılama məsafəsi: 0.125 "(3 mm) • QTR-8A üçün tövsiyə olunan maksimum algılama məsafəsi: 0.25" (6 mm) • QTR-8RC üçün maksimum tövsiyə edilən algılama məsafəsi: 0.375 "(9.5 mm) • Başlıq sancaqları olmayan çəki: 0.11 oz (3.1 g) Bunu tapa bilərsiniz:

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

Hər şeyi yığın … tezliklə daha ətraflı bir video …

Adım 2: Adım 2: Inspiración

Araşdırma funksiyasını yerinə yetirin

www.programarfacil.com blogunu oxuya bilərsiniz

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

Qalxanların mühərrikləri çox çətin deyil.

Dərslik QTR-8RC-dən istifadə etməklə sensorun ölçüsünü öyrənin

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

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

Mühərriklərin performansını yoxlamaq üçün bu blogu www.programarfacil.com izlədik

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

Bu qalxanın idarə etdiyi fərqli mühərriklərin çox yaxşı bir xülasəsidir.

QTR-8RC sensorunu kalibr etmək üçün təlimatı izləyə bilərsiniz

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

Və sizə kömək edə biləcək son bir link bu təlimatlandırıcıdır;

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

Addım 3: Adım 3: Kod

Image
Image

las conexiones entre el array de

sensasiyalar y las placas las hicimos de la siguiente manera:

El Led ON və al pin digital 12

Los 8 sensorlar

numero 1 pin 8

2 nömrəli pin 9

düymə 3 pin 2

numero 4 pin 3

düymə 5 pin 4

numero 6 pin 5

numero 7 pin 6

numero 8 pin 7

El código va sin repasarlo (aceptan sugerencias)

#daxil edin

#daxil edin

#daxil edin

#daxil edin

// Varsayılan I2C ünvanı ilə motor qalxan obyekti yaradın

Adafruit_MotorShield AFMS = Adafruit_MotorShield ();

// Və ya fərqli bir I2C ünvanı ilə yaradın (yığmaq üçün deyin)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);

// M1, M2, M3 və ya M4 'limanı' seçin. Bu vəziyyətdə M1

Adafruit_DCMotor *motor1 = AFMS.getMotor (1);

// M2 portunda başqa bir motor da edə bilərsiniz

Adafruit_DCMotor *motor2 = AFMS.getMotor (2);

// Aşağıdakı dəyərləri robotunuzun motorlarına, çəkisinə, təkər tipinə və s.

#KP təyin edin.2

#KD 5 təyin edin

#müəyyən M1_DEFAULT_SPEED 50

#M2_DEFAULT_SPEED 50 təyin edin

70. M1_MAX_SPEED 70

70. M2_MAX_SPEED 70 -i təyin edin

#MIDDLE_SENSOR təyin edin 4

#define NUM_SENSORS 8 // istifadə olunan sensorların sayı

#define TIMEOUT 2500 // sensor çıxışlarının aşağı düşməsini 2500 bizi gözləyir

#define EMITTER_PIN 12 // emitter rəqəmsal pin 2 ilə idarə olunur

#define DEBUG 0 // serial debug çıxışı lazımdırsa 1 olaraq təyin edin

QTRSensorsRC qtrrc ((işarəsiz simvol ) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, TIMEOUT, EMITTER_PIN);

imzasız int sensorValues [NUM_SENSORS];

boş quraşdırma ()

{

gecikmə (1000);

manual_calibration ();

set_motors (0, 0);

}

int lastError = 0;

int last_proportional = 0;

int inteqral = 0;

boşluq döngəsi ()

{

Serial.begin (9600); // 9600 bps -də Serial kitabxana qurun

Serial.println ("Adafruit Motorshield v2 - DC Motor testi!");

AFMS.begin (); // 1.6KHz standart tezliyi ilə yaradın

//AFMS.begin(1000); // YA fərqli bir tezliklə, 1KHz deyin

// Sürəti 0 (off) -dan 255 -ə (maksimum sürət) başlayacaq şəkildə təyin edin.

motor1-> setSpeed (70);

motor1-> qaç (İLƏ);

// motoru işə salın

motor1-> qaç (Çıxar);

motor2-> setSpeed (70);

motor2-> qaç (İLERİ);

// motoru işə salın

motor2-> qaç (Çıxar);

işarəsiz int sensorlar [5];

int mövqeyi = qtrrc.readLine (sensorlar);

int xətası = mövqe - 2000;

int motorSpeed = KP * xətası + KD * (səhv - lastError);

lastError = səhv;

int leftMotorSpeed = M1_DEFAULT_SPEED + motor Sürəti;

int rightMotorSpeed = M2_DEFAULT_SPEED - motor Sürəti;

// yuxarıdakı iki motor sürəti dəyişənindən istifadə edərək motor sürətlərini təyin edin

set_motors (solMotorSpeed, sağMotorSpeed);

}

boş_təmin_motors (int motor1speed, int motor2speed)

{

əgər (motor1 sürətli> M1_MAX_SPEED) motor1sürəti = M1_MAX_SPEED; // maksimum sürəti məhdudlaşdırın

əgər (motor2 sürət> M2_MAX_SPEED) motor2 sürət = M2_MAX_SPEED; // maksimum sürəti məhdudlaşdırın

əgər (motor1 sürətli <0) motor1sürəti = 0; // motoru 0 -dan yuxarı saxlayın

əgər (motor2 sürət <0) motor2 sürət = 0; // motor sürətini 0 -dan yuxarı saxlayın

motor1-> setSpeed (motor1 sürətli); // motor sürətini təyin edin

motor2-> setSpeed (motor2speed); // motor sürətini təyin edin

motor1-> qaç (İLƏ);

motor2-> qaç (İLERİ);

}

void manual_calibration () {

int i;

(i = 0; i <250; i ++) // üçün kalibrləmə bir neçə saniyə çəkəcək

{

qtrrc.calibrate (QTR_EMITTERS_ON);

gecikmə (20);

}

if (DEBUG) {// doğru olarsa, serial çıxışı vasitəsilə sensor datası yaradın

Serial.begin (9600);

üçün (int i = 0; i <NUM_SENSORS; i ++)

{

Serial.print (qtrrc.calibratedMinimumOn );

Serial.print ('');

}

Serial.println ();

üçün (int i = 0; i <NUM_SENSORS; i ++)

{

Serial.print (qtrrc.calibratedMaximumOn );

Serial.print ('');

}

Serial.println ();

Serial.println ();

}

}

Bu, OSHWDEM -in rəqabət qabiliyyətini "ifadə etmək" baxımından çox vacibdir.

Tövsiyə: