Isi kandungan:

Halangan Mengelakkan Kereta Robotik: 9 Langkah
Halangan Mengelakkan Kereta Robotik: 9 Langkah

Video: Halangan Mengelakkan Kereta Robotik: 9 Langkah

Video: Halangan Mengelakkan Kereta Robotik: 9 Langkah
Video: RBT Tahun 6 - Elemen Sistem Robotik 2024, Julai
Anonim
Halangan Mengelakkan Kereta Robotik
Halangan Mengelakkan Kereta Robotik
Halangan Mengelakkan Kereta Robotik
Halangan Mengelakkan Kereta Robotik

Cara Membangun Halangan Mengelakkan Robot

Langkah 1: Kotak Hitam

Kotak Hitam
Kotak Hitam

langkah pertama saya menggunakan kotak hitam sebagai asas robot saya.

Langkah 2: Arduino

Arduino
Arduino

Arduino adalah otak seluruh sistem dan mengatur motor kita

Langkah 3: Melampirkan Arduino ke Blackbox

Melampirkan Arduino ke Blackbox
Melampirkan Arduino ke Blackbox

Saya melekatkan arduino ke kotak hitam menggunakan gam panas

Langkah 4: Sensor Ultrasonik

Sensor Ultrasonik
Sensor Ultrasonik

Untuk membuat robot yang dapat bergerak sendiri, kita memerlukan semacam input, sensor yang sesuai dengan tujuan kita. Sensor ultrasonik adalah alat yang mengukur jarak ke objek menggunakan gelombang suara ultrasonik. Sensor ultrasonik menggunakan transduser untuk menghantar dan menerima denyutan ultrasonik yang menyampaikan kembali maklumat mengenai jarak objek

Langkah 5: Sambungan Papan Roti Sensor ke Arduino

Sambungan Papan Roti Sensor ke Arduino
Sambungan Papan Roti Sensor ke Arduino
Sambungan Papan Roti Sensor ke Arduino
Sambungan Papan Roti Sensor ke Arduino

Saya menggunakan kabel untuk lelaki hubungan antara papan roti dan arduino.

Perhatikan bahawa sensor ping anda mungkin mempunyai susunan pin yang berbeza tetapi harus memiliki pin voltan, pin ground, pin trig dan pin echo.

Langkah 6: Perisai Motor

Perisai Motor
Perisai Motor

Papan Arduino tidak dapat mengawal motor dc dengan sendirinya, kerana arus yang dihasilkannya terlalu rendah. Untuk menyelesaikan masalah ini, kami menggunakan pelindung motor. Perisai motor mempunyai 2 saluran, yang memungkinkan untuk mengawal dua motor DC, atau 1 motor stepper. … Dengan menangani pin ini, Anda dapat memilih saluran motor untuk memulai, menentukan arah motor (polaritas), mengatur kelajuan motor (PWM), menghentikan dan menghidupkan motor, dan memantau penyerapan arus setiap saluran

Langkah 7: Menghubungkan Motor Shield ke Arduino

Menghubungkan Motor Shield ke Arduino
Menghubungkan Motor Shield ke Arduino

Cukup pasangkan pelindung motor ke arduino dengan wayar sensor terpasang

Langkah 8: Sambungkan 4 Motor dan Bateri ke Perisai

Menyambungkan 4 Motor dan Bateri ke Perisai
Menyambungkan 4 Motor dan Bateri ke Perisai

Setiap Motor Shield mempunyai (sekurang-kurangnya) dua saluran, satu untuk motor, dan satu untuk sumber kuasa, Sambungkannya antara satu sama lain

Langkah 9: Programkan Robot

jalankan kod ini

#sertakan #sertakan

Sonar NewPing (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;

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

boolean goingForward = palsu; jarak int = 80; int speedSet = 0;

batal persediaan () {

myservo.attach (10); myservo.write (115); kelewatan (2000); jarak = bacaPing (); kelewatan (100); jarak = bacaPing (); kelewatan (100); jarak = bacaPing (); kelewatan (100); jarak = bacaPing (); kelewatan (100); }

gelung kekosongan () {int jarakR = 0; int jarakL = 0; kelewatan (40); jika (jarak <= 15) {moveStop (); kelewatan (50); bergerak ke belakang(); kelewatan (150); bergerakStop (); kelewatan (100); jarakR = lookRight (); kelewatan (100); jarakL = lookLeft (); kelewatan (100);

jika (jarakR> = jarakL) {turnRight (); bergerakStop (); } lain {turnLeft (); bergerakStop (); }} lain {moveForward (); } jarak = readPing (); }

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

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

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

batal moveStop () {motor1.run (SIARAN); motor2.run (SIARAN); motor3.run (SIARAN); motor4.run (SIARAN); } batal moveForward () {

jika (! goForward) {goingForward = true; motor1.run (KEHADIRAN); motor2.run (KEHADIRAN); motor3.run (KEHADIRAN); motor4.run (KEHADIRAN); untuk (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); kelewatan (5); }}}

batal bergerakBackward () {goingForward = false; motor1.run (LATAR BELAKANG); motor2.run (LATAR BELAKANG); motor3.run (LATAR BELAKANG); motor4.run (LATAR BELAKANG); untuk (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); kelewatan (5); } kekosongan turnLeft () {motor1.run (BACKWARD); motor2.run (LATAR BELAKANG); motor3.run (KEHADIRAN); motor4.run (KEHADIRAN); kelewatan (500); motor1.run (KEHADIRAN); motor2.run (KEHADIRAN); motor3.run (KEHADIRAN); motor4.run (KEHADIRAN); }

void turnLeft () {motor1.run (BACKWARD); motor2.run (LATAR BELAKANG); motor3.run (KEHADIRAN); motor4.run (KEHADIRAN); kelewatan (500); motor1.run (KEHADIRAN); motor2.run (KEHADIRAN); motor3.run (KEHADIRAN); motor4.run (KEHADIRAN); }

Disyorkan: