Daftar Isi:

Mobil Robot Menghindari Rintangan: 9 Langkah
Mobil Robot Menghindari Rintangan: 9 Langkah

Video: Mobil Robot Menghindari Rintangan: 9 Langkah

Video: Mobil Robot Menghindari Rintangan: 9 Langkah
Video: How To Make A DIY Arduino Obstacle Avoiding Car At Home 2024, November
Anonim
Rintangan Menghindari Robot Mobil
Rintangan Menghindari Robot Mobil
Rintangan Menghindari Robot Mobil
Rintangan Menghindari Robot Mobil

Cara Membuat Robot Penghindar Rintangan

Langkah 1: Kotak Hitam

Kotak Hitam
Kotak Hitam

langkah pertama saya menggunakan kotak hitam sebagai dasar untuk robot saya.

Langkah 2: Arduino

Arduino
Arduino

Arduino adalah otak dari keseluruhan sistem dan mengatur motor kami

Langkah 3: Memasang Arduino ke Blackbox

Memasang Arduino ke Blackbox
Memasang Arduino ke Blackbox

Saya menempelkan arduino ke kotak hitam menggunakan lem panas

Langkah 4: Sensor Ultrasonik

Sensor ultrasonik
Sensor ultrasonik

Untuk membuat robot yang bisa bergerak sendiri kita membutuhkan semacam input, sebuah sensor yang sesuai dengan tujuan kita. Sensor ultrasonik adalah alat yang mengukur jarak suatu benda dengan menggunakan gelombang suara ultrasonik. Sensor ultrasonik menggunakan transduser untuk mengirim dan menerima pulsa ultrasonik yang menyampaikan kembali informasi tentang kedekatan objek

Langkah 5: Koneksi Breadboard Sensor ke Arduino

Koneksi Papan Tempat memotong roti dari Sensor ke Arduino
Koneksi Papan Tempat memotong roti dari Sensor ke Arduino
Koneksi Breadboard Sensor ke Arduino
Koneksi Breadboard Sensor ke Arduino

Saya menggunakan kabel untuk menghubungkan antara papan tempat memotong roti dan arduino.

Perhatikan bahwa sensor ping Anda mungkin memiliki tata letak pin yang berbeda tetapi harus memiliki pin tegangan, pin ground, pin trigonometri, dan pin gema.

Langkah 6: Pelindung Motor

Pelindung Motor
Pelindung Motor

Papan Arduino tidak dapat mengontrol motor dc sendiri, karena arus yang dihasilkan terlalu rendah. Untuk mengatasi masalah ini kami menggunakan pelindung motor. Pelindung motor memiliki 2 saluran, yang memungkinkan untuk mengontrol dua motor DC, atau 1 motor langkah. … Dengan menangani pin ini, Anda dapat memilih saluran motor untuk memulai, menentukan arah motor (polaritas), mengatur kecepatan motor (PWM), menghentikan dan menghidupkan motor, dan memantau penyerapan arus setiap saluran

Langkah 7: Menghubungkan Motor Shield ke Arduino

Menghubungkan Pelindung Motor ke Arduino
Menghubungkan Pelindung Motor ke Arduino

Cukup pasang pelindung motor ke arduino dengan kabel sensor berderak

Langkah 8: Menghubungkan 4 Motor dan Baterai ke Perisai

Menghubungkan 4 Motor dan Baterai ke Perisai
Menghubungkan 4 Motor dan Baterai ke Perisai

Setiap Pelindung Motor memiliki (setidaknya) dua saluran, satu untuk motor, dan satu untuk sumber daya, Hubungkan mereka satu sama lain

Langkah 9: Program Robot

jalankan kode ini

#sertakan #sertakan

Sonar Ping Baru(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor1(1, MOTOR12_1KHZ); AF_DCMotor motor2(2, MOTOR12_1KHZ); AF_DCMotor motor3(3, MOTOR34_1KHZ); AF_DCMotor motor4(4, MOTOR34_1KHZ); Servo myservo;

#menentukan TRIG_PIN A2 #menentukan ECHO_PIN A3 #menentukan MAX_DISTANCE 150 #menentukan MAX_SPEED 100 #menentukan MAX_SPEED_OFFSET 10

boolean maju Teruskan=false; int jarak = 80; int kecepatanSet = 0;

batalkan pengaturan() {

myservo.attach(10); myservo.write(115); penundaan(2000); jarak = readPing(); penundaan(100); jarak = readPing(); penundaan(100); jarak = readPing(); penundaan(100); jarak = readPing(); penundaan(100); }

void loop() { int jarakR = 0; int jarakL = 0; penundaan (40); if(jarak<=15) { moveStop(); penundaan(50); bergerakMundur(); penundaan(150); pindahBerhenti(); penundaan(100); jarakR = lihat Kanan(); penundaan(100); jarakL = lihatKiri(); penundaan(100);

if(jarakR>=jarakL) { belok Kanan(); pindahBerhenti(); }else { belok Kiri(); pindahBerhenti(); } }else { moveForward(); } jarak = readPing(); }

int lookRight() { myservo.write(50); penundaan (250); int jarak = readPing(); penundaan(50); myservo.write(100); jarak kembali; }

int lookLeft() { myservo.write(120); penundaan (300); int jarak = readPing(); penundaan(100); myservo.write(115); jarak kembali; penundaan(100); }

int readPing() { penundaan(70); int cm = sonar.ping_cm(); jika(cm==0) { cm = 200; } kembali cm; }

void moveStop() { motor1.run(RELEASE); motor2.run(LEPAS); motor3.run(LEPAS); motor4.run(LEPAS); } batal moveForward() {

if(!maju terus) { maju=benar; motor1.run (maju); motor2.run (maju); motor3.run (maju); motor4.run (maju); for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2) { motor1.setSpeed(speedSet); motor2.setSpeed(speedSet); motor3.setSpeed(speedSet); motor4.setSpeed(speedSet); penundaan (5); } } }

void moveBackward() { goForward=false; motor1.run(Mundur); motor2.run(Mundur); motor3.run(Mundur); motor4.run(Mundur); for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2) { motor1.setSpeed(speedSet); motor2.setSpeed(speedSet); motor3.setSpeed(speedSet); motor4.setSpeed(speedSet); penundaan (5); } void turnLeft() { motor1.run(Mundur); motor2.run(Mundur); motor3.run (maju); motor4.run (maju); penundaan (500); motor1.run (maju); motor2.run (maju); motor3.run (maju); motor4.run (maju); }

void turnLeft() { motor1.run(Mundur); motor2.run(Mundur); motor3.run (maju); motor4.run (maju); penundaan (500); motor1.run (maju); motor2.run (maju); motor3.run (maju); motor4.run (maju); }

Direkomendasikan: