Isi kandungan:
- Bekalan:
- Langkah 1: Bingkai Robot
- Langkah 2: Sensor Ir + Photoresistor
- Langkah 3: Pengawal Motor
- Langkah 4: Pemrograman Arduino
- Langkah 5: Ujian
Hello!
Saya membina robot garis pemisah yang boleh digunakan dalam pelbagai cara, dan saya merumuskan projek saya dalam beberapa langkah.
Untuk bermula, semua yang anda perlukan adalah bahagian berikut:
Senarai Bahagian
-Robot bingkai
-Two roda
-Dua motor DC
-Mini roti papan
-Two dipimpin
-Two photoresistors
-Two 56k perintang
-Two 330 perintang
- Beberapa wayar
-Diodes (jika tidak dimasukkan ke dalam pengawal motor)
-Motor controller (i digunakan L298)
-Baik papan roti
-Tiga 1.5v bateri
-Arduino UNO
Bekalan:
Langkah 1: Bingkai Robot
Senarai Bahagian:
-Robot bingkai
-Two roda
-Dua motor DC
Bagaimana untuk:
Saya menggunakan bingkai robot lama dengan dua roda yang diperintahkan oleh dua motor DC, tetapi anda boleh menggunakan penyelesaian yang setara juga.
Langkah 2: Sensor Ir + Photoresistor
Senarai Bahagian:
-Mini roti papan
-Two dipimpin
-Two photoresistors
-Two 56k perintang
-Two 330 perintang
- Beberapa wayar
Bagaimana untuk:
Hitung jarak antara dua pasang pateri dan fotoresistor yang mendasarkan pada lebar pita anda.
Posisi photoresistors dan leds seperti yang dilihat dalam gambar.
Sambungan membawa kepada dua perintang 330 ohm dan meletakkan beberapa pita tidak telus di sekelilingnya untuk mengelakkan sebarang gangguan dengan photoresistor
Letakkan papan roti mini di bahagian bawah bingkai.
Langkah 3: Pengawal Motor
Senarai Bahagian:
- Beberapa wayar
-Diodes (jika tidak dimasukkan ke dalam pengawal motor)
-Motor pengawal
-Baik papan roti
-Tiga 1.5v bateri
Sensor Assembling:
Pasangkan pin input jambatan A pada pin 11 dan 12 Arduino.
Pasangkan pin input jambatan B pada pin 6 dan 5 Arduino.
Sambungkan dengan beberapa dioda pin output setiap jambatan ke motor, jika diperlukan.
Sambungkan voltan bekalan logik (Vss) ke 5v Arduino dan sambungkan tanah pengawal motor ke gnd arduino.
Sambungkan voltan bekalan (Vs) ke 3 bateri AA.
Langkah 4: Pemrograman Arduino
Senarai Bahagian:
-Arduino UNO
- Beberapa wayar
Gunakan kod ini:
int PinSens_A = A5;
int PinSens_B = A4;
int ValSens_A = 0;
int ValSens_B = 0;
int Ris;
int PinMotorA_1 = 10;
int PinMotorA_2 = 11;
int PinMotorB_1 = 5;
int PinMotorB_2 = 6;
int SpeedMotor_A;
int SpeedMotor_B;
int perbezaan = 0;
int RoL (int A, int B)
{
jika (A> B)
kembali 1;
jika (B> A)
kembali 2;
jika (A = B)
kembali 0;
}
tidak sah Ikut (int val, speedMax int)
{
jika (val == 2)
{
SpeedMotor_A = speedMax;
SpeedMotor_B = 0;
}
jika (val == 1)
{
SpeedMotor_A = 0;
SpeedMotor_B = speedMax;
}
}
int Pindah (int dir)
{
jika (dir == 0)
{
analogWrite (PinMotorA_1, SpeedMotor_A);
analogWrite (PinMotorB_1, SpeedMotor_B);
}
jika (dir == 1)
{
analogWrite (PinMotorA_2, SpeedMotor_A);
analogWrite (PinMotorB_2, SpeedMotor_B);
}
}
int calcDiff ()
{
ValSens_A = analogRead (PinSens_A);
ValSens_B = analogRead (PinSens_B);
jika (ValSens_A> ValSens_B)
{
int diff = ValSens_A - ValSens_B;
pulangan diff;
}
jika (ValSens_A <ValSens_B)
{
int diff = ValSens_B - ValSens_A;
pulangan diff;
}
}
tidak sah Debug ()
{
Serial.print (Ris);
Serial.print ("");
Serial.print (ValSens_A);
Serial.print ("");
Serial.print (ValSens_B);
Serial.println ("");
}
batal persediaan ()
{
Serial.begin (9600);
pinMode (PinMotorA_1, OUTPUT);
pinMode (PinMotorA_2, OUTPUT);
pinMode (PinMotorB_1, OUTPUT);
pinMode (PinMotorB_2, OUTPUT);
pinMode (PinSens_A, INPUT);
pinMode (PinSens_B, INPUT);
}
kekosongan gelung ()
{
jika (perbezaan == 0)
{
perbezaan = 1;
}
ValSens_A = analogRead (PinSens_A);
ValSens_B = analogRead (PinSens_B) +150; // gunakan nombor ubah untuk mengimbangi sensor
Ris = RoL (ValSens_A, ValSens_B);
Ikut (Ris, 100);
Pindah (0);
Debug ();
};