İçindekiler:

TA-ZON-BOT (Çizgi Takipçisi): 3 Adım (Resimlerle)
TA-ZON-BOT (Çizgi Takipçisi): 3 Adım (Resimlerle)

Video: TA-ZON-BOT (Çizgi Takipçisi): 3 Adım (Resimlerle)

Video: TA-ZON-BOT (Çizgi Takipçisi): 3 Adım (Resimlerle)
Video: Rafadan Tayfa’nın 3. Sinema Filmi Galaktik Tayfa Sinemalarda (Kapıdaki Konuşma Teaser) 2024, Kasım
Anonim
TA-ZON-BOT (Çizgi Takipçisi)
TA-ZON-BOT (Çizgi Takipçisi)
TA-ZON-BOT (Çizgi Takipçisi)
TA-ZON-BOT (Çizgi Takipçisi)

TA-ZON-BOT

El tazon siguelineas

Hemos realizado este robot siguelineas con la ayuda de los nuestros mezunları, (lütfen mini yapımcılar).

OSHWDEN de A Coruña'nın para poder katılımcısını ifade etme hakkına sahiptir.

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

Google Çeviri

TA-ZON-BOT

kase takip ediyor

Sizleri takip eden bu robotu öğrencilerimizin yardımıyla yaptık (minimaker'lara teşekkürler).

A Coruña'nın OSHWDEN'ine katılmak açık bir proje oldu.

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

Google çevirici

Adım 1: Adım 1: Bileşenler

Adım 1: Bileşenler
Adım 1: Bileşenler
Adım 1: Bileşenler
Adım 1: Bileşenler
Adım 1: Bileşenler
Adım 1: Bileşenler

Los componentes que hemos utilizados

han sido los siguientes.

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

2 motor ile ilgili özellikler:

Özellikler (Para 6V):

Boyutlar: 26 x 10 x 12 mm

Oran de la redüktör: 30:1

Çap: 3 mm

Nominal Voltaj: 6Vcc (puede funcionar giriş 3 a 9Vcc)

Velocidad de giro sin carga: 1000rpm

Tüketim günahı: 120mA (1600mA ortak kargo)

Tork: 0,6kg/cm (maks)

Peso: 10 gram

Enlace de tienda çevrimiçi:

1 adet Arduino UNO (recclada de un proyecto antiguo)

1 kalkan para motorları Adafruit v2.3:

1 Un porta pilas de 8 pilas AAA(kullanım yok 2 fuentes de alimentación).

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

bridas para los motores, elastik para para sujetar el porta pilas ve trozo de una lamina de plásticos para la base del porta pilas.

1 sensör dizisi QTR-8RC, karakteristik özelliklere göre;

QTR-8x Yansıma Sensörü Dizisi için Özellikler • Boyutlar: 2,95" x 0,5" • Çalışma voltajı: 3,3-5,0 V • Besleme akımı: 100 mA • QTR-8A için çıkış formatı: 0 V ile sağlanan voltaj arasında değişen 8 analog voltaj • QTR-8RC için çıkış formatı: Zamanlanmış yüksek darbe olarak okunabilen 8 dijital G/Ç uyumlu sinyal • Optimum algılama mesafesi: 0,125" (3 mm) • QTR-8A için önerilen maksimum algılama mesafesi: 0,25" (6 mm) • QTR-8RC için önerilen maksimum algılama mesafesi: 0,375" (9,5 mm) • Başlık pimleri olmadan ağırlık: 0,11 oz (3,1 g)

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

Ensamblar yapılacaklar … ön ve ayrıntılı video…

Kullanmış olduğumuz bileşenler aşağıdaki gibidir.

Yuvarlak bir metakrilat parçası. (Herhangi bir tasarımı kullanabilirsiniz, taban ölçülerimiz sadece kaseyi baş aşağı yerleştirmek için yeterlidir).

1 Kahvaltı kasesi (robotu hatta konsantre etmek için kullanılır).

Geri dönüştürülmüş bir oyuncaktan 2 tekerlek.

Aşağıdaki özelliklere sahip 2 motor:

Özellikler (6V için): Boyutlar: 26 x 10 x 12 mm Redüktör oranı: 30: 1 Mil çapı: 3mm (kilitleme oluklu) Nominal voltaj: 6Vdc (3 ile 9Vdc arasında çalışabilir) Yüksüz dönüş hızı: 1000rpm Sarfiyat yüksüz: 120mA (yük ile 1600mA) Tork: 0,6kg / cm (maks) Ağırlık: 10 gram

Çevrimiçi mağaza bağlantısı:

1 Arduino UNO kartı (eski bir projeden geri dönüştürülmüş)

Adafruit v2.3 motorları için 1 kalkan:

1 8 adet AAA pilden oluşan pil tutucu (2 güç kaynağı kullanmıyoruz).

Resimde görüldüğü gibi elemanları birleştirmek için 6 adet vida ve somun

motorlar için flanşlar, pil tutucuyu tutmak için elastik bir lastik ve pil tutucunun tabanı için bir parça plastik levha.

Aşağıdaki özelliklere sahip 1 dizi QTR-8RC sensör;

QTR-8x Yansıtma Sensörü Dizisi için Özellikler • Boyutlar: 2,95 "x 0,5" • Çalışma voltajı: 3,3-5,0 V • Besleme akımı: 100 mA • QTR-8A için çıkış formatı: 0 V ile sağlanan voltaj arasında değişen 8 analog voltaj • QTR-8RC için çıkış formatı: Zamanlanmış yüksek darbe olarak okunabilen 8 dijital I / O uyumlu sinyal • Optimum algılama mesafesi: 0,125 "(3 mm) • QTR-8A için önerilen maksimum algılama mesafesi: 0,25" (6 mm) • QTR-8RC için önerilen maksimum algılama mesafesi: 0,375 "(9,5 mm) • Başlık pimleri olmadan ağırlık: 0,11 oz (3,1 g) Bunu şurada bulabilirsiniz:

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

Her şeyi bir araya getirin… yakında daha detaylı bir video…

2. Adım: 2. Adım: İlham

Para probar el funcionamiento del los

motorlar hemos seguido esta ayuda del blog www.programarfacil.com

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

Yeniden başlatılmayan motorlar, kontrol ve koruma kalkanı.

Para calibrar el sensörü QTR-8RC, bir eğitim kılavuzu olarak

Y un ultimo enlace que os puede ayudar es este öğretilebilir;

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

Motorların performansını test etmek için bu blog desteğini takip ettik www.programarfacil.com

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

Bu kalkanın kontrol ettiği farklı motorların çok iyi bir özeti.

QTR-8RC sensörünü kalibre etmek için aşağıdaki öğreticiyi takip edebilirsiniz.

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

Ve size yardımcı olabilecek son bir bağlantı bu talimattır;

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

Adım 3: Adım 3: Kodlama

Image
Image

las conexiones giriş dizisi de

Duyarlılık ve placas las hicimos de la siguente manera:

El Led ON va al pin dijital 12

Los 8 sensörler van desde el

número 1 al pin 8

número 2 al pin 9

número 3 al pin 2

número 4 al pin 3

número 5 al pin 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 (se aceptan sugerencias)

#Dahil etmek

#Dahil etmek

#Dahil etmek

#Dahil etmek

// Varsayılan I2C adresiyle motor kalkanı nesnesini oluşturun

Adafruit_MotorShield AFMS = Adafruit_MotorShield();

// Veya farklı bir I2C adresi ile oluşturun (yığın için diyelim)

// Adafruit_MotorShield AFMS = Adafruit_MotorShield(0x61);

// Hangi 'port' M1, M2, M3 veya M4'ü seçin. Bu durumda M1

Adafruit_DCMotor *motor1 = AFMS.getMotor(1);

// M2 portunda başka bir motor da yapabilirsiniz

Adafruit_DCMotor *motor2 = AFMS.getMotor(2);

// Aşağıdaki değerleri robotunuzun motorlarına, ağırlığına, tekerlek tipine vb. uyacak şekilde değiştirin.

#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 // kullanılan sensör sayısı

#define TIMEOUT 2500 // sensör çıkışlarının düşmesi için 2500 bizi bekler

#define EMITTER_PIN 12 // verici dijital pin 2 tarafından kontrol edilir

#define DEBUG 0 // seri hata ayıklama çıktısı gerekiyorsa 1 olarak ayarlayın

QTRSensorsRC qtrrc((işaretsiz karakter) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, TIMEOUT, EMITTER_PIN);

unsigned int sensorValues[NUM_SENSORS];

geçersiz kurulum()

{

gecikme(1000);

manuel_kalibrasyon();

set_motors(0, 0);

}

int sonHata = 0;

int son_oransal = 0;

int integral = 0;

boşluk döngüsü()

{

Seri.başla(9600); // Seri kitaplığı 9600 bps'de ayarla

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

AFMS.begin(); // 1.6KHz varsayılan frekansıyla oluştur

//AFMS.başla(1000); // VEYA farklı bir frekansla, diyelim ki 1KHz

// Başlatılacak hızı 0 (kapalı) ile 255 (maksimum hız) arasında ayarlayın

motor1->setSpeed(70);

motor1->çalıştır(İLERİ);

// motoru aç

motor1->çalıştır(ÇALIŞTIR);

motor2->setSpeed(70);

motor2->çalıştır(İLERİ);

// motoru aç

motor2->çalıştır(ÇALIŞTIR);

imzasız int sensörleri[5];

int pozisyon = qtrrc.readLine(sensörler);

int hata = konum - 2000;

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

lastError = hata;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;

int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

// yukarıdaki iki motor hızı değişkenini kullanarak motor hızlarını ayarlayın

set_motors(leftMotorSpeed, rightMotorSpeed);

}

void set_motors(int motor1speed, int motor2speed)

{

if (motor1hız > M1_MAX_SPEED) motor1hız = M1_MAX_SPEED; // en yüksek hızı sınırla

if (motor2hız > M2_MAX_SPEED) motor2hız = M2_MAX_SPEED; // en yüksek hızı sınırla

eğer (motor1hız < 0) motor1hız = 0; // motoru 0'ın üzerinde tut

eğer (motor2hız < 0) motor2hız = 0; // motor hızını 0'ın üzerinde tut

motor1->setSpeed(motor1speed); // motor hızını ayarla

motor2->setSpeed(motor2speed); // motor hızını ayarla

motor1->çalıştır(İLERİ);

motor2->çalıştır(İLERİ);

}

geçersiz manual_calibration() {

int i;

(i = 0; i < 250; i++) için // kalibrasyon birkaç saniye sürecektir

{

qtrrc.calibrate(QTR_EMITTERS_ON);

gecikme(20);

}

if (DEBUG) { // true ise, seri çıkış yoluyla sensör verileri oluşturun

Seri.başla(9600);

için (int i = 0; i < NUM_SENSORS; i++)

{

Serial.print(qtrrc.calibratedMinimumOn);

Seri.print(' ');

}

Seri.println();

için (int i = 0; i < NUM_SENSORS; i++)

{

Serial.print(qtrrc.calibratedMaximumOn);

Seri.print(' ');

}

Seri.println();

Seri.println();

}

}

OSHWDEM'in en la rekabeti için "ekspres" bir ver quetal se nos da este proyecto.

Önerilen: