2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
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
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
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.