Daftar Isi:

Mobil Nirkabel Terkendali Gerakan: 7 Langkah
Mobil Nirkabel Terkendali Gerakan: 7 Langkah

Video: Mobil Nirkabel Terkendali Gerakan: 7 Langkah

Video: Mobil Nirkabel Terkendali Gerakan: 7 Langkah
Video: Proses pasang Ring Jantung atau Cincin Jantung #cardio #cardiology #ringjantung 2024, November
Anonim
Mobil Nirkabel Terkendali Gerakan
Mobil Nirkabel Terkendali Gerakan

Dalam tutorial ini kita akan belajar, cara membuat mobil yang dikendalikan gerakan atau robot apa pun. Proyek ini memiliki dua bagian, satu bagian adalah unit pemancar dan bagian lainnya adalah unit penerima. Unit pemancar sebenarnya dipasang pada sarung tangan dan unit penerima ditempatkan di dalam mobil atau robot apa pun. Sekarang saatnya membuat mobil yang bagus. Ayo pergi!

Langkah 1: Peralatan

Unit Pemancar

1. Arduino Nano.

2. Modul Sensor MPU6050.

3. Pemancar RF 433 MHz.

4. Semua jenis sel 3, Baterai 11,1 volt (Disini saya menggunakan sel koin).

5. Papan Vero.

6. Sarung Tangan.

Unit Penerima

1. Arduino Nano atau Arduino Uno.

2. Modul Driver Motor L298N.

3. Rangka robot 4 roda termasuk motor.

4. Penerima RF 433 RF.

5. Baterai Li-po 3 sel, 11,1 volt.

6. Papan Vero.

Yang lain

1. Lem Tongkat dan pistol.

2. Kabel jumper.

3. Driver Sekrup

4. Perangkat Solder.

dll.

Langkah 2: File Gambar Diagram Sirkuit

File Gambar Diagram Sirkuit
File Gambar Diagram Sirkuit

Langkah 3: File Fritzing Diagram Sirkuit

Langkah 4: Kode Pemancar

#termasuk

#termasuk

#termasuk

MPU6050 mpu6050(Kawat);

pengatur waktu lama = 0;

char *pengontrol;

batalkan pengaturan()

{ Serial.begin(9600); Kawat.mulai(); mpu6050.begin(); mpu6050.calcGyroOffsets(benar); vw_set_ptt_inverted(benar); // vw_set_tx_pin(10); vw_setup(4000);// kecepatan transfer data Kbps

}

lingkaran kosong()

{ ////////////////////////////////////////////////////////////////////////////////////////////////

mpu6050.update();

if(milis() - pengatur waktu > 1000)

{ Serial.println("============================================ ==========="); Serial.print("temp: ");Serial.println(mpu6050.getTemp()); Serial.print("accX: ");Serial.print(mpu6050.getAccX()); Serial.print("\taccY: ");Serial.print(mpu6050.getAccY()); Serial.print("\taccZ: ");Serial.println(mpu6050.getAccZ()); Serial.print("gyroX: ");Serial.print(mpu6050.getGyroX()); Serial.print("\tgyroY: ");Serial.print(mpu6050.getGyroY()); Serial.print("\tgyroZ: ");Serial.println(mpu6050.getGyroZ()); Serial.print("accAngleX: ");Serial.print(mpu6050.getAccAngleX()); Serial.print("\taccAngleY : ");Serial.println(mpu6050.getAccAngleY()); Serial.print("gyroAngleX: ");Serial.print(mpu6050.getGyroAngleX()); Serial.print("\tgyroAngleY : ");Serial.print(mpu6050.getGyroAngleY()); Serial.print("\tgyroAngleZ: ");Serial.println(mpu6050.getGyroAngleZ()); Serial.print("angleX: ");Serial.print(mpu6050.getAngleX()); Serial.print("\tangleY : ");Serial.print(mpu6050.getAngleY()); Serial.print("\tangleZ: ");Serial.println(mpu6050.getAngleZ()); Serial.println("============================================ ==========\n"); pengatur waktu = milis(); }

/////////////////////////////////////////////////////////////////////////////////////

if (mpu6050.getAccAngleX()30) { controller="X2"; vw_send((uint8_t *)pengontrol, strlen(pengontrol)); vw_wait_tx(); // Tunggu sampai seluruh pesan hilang Serial.println("FORWARD"); } else if (mpu6050.getAccAngleY()>40) { controller="Y1"; vw_send((uint8_t *)pengontrol, strlen(pengontrol)); vw_wait_tx(); // Tunggu sampai seluruh pesan hilang Serial.println("LEFT"); } else if (mpu6050.getAccAngleY()<-40) { controller="Y2"; vw_send((uint8_t *)pengontrol, strlen(pengontrol)); vw_wait_tx(); // Tunggu sampai seluruh pesan hilang Serial.println("RIGHT"); } else if (mpu6050.getAccAngleX()-10 && mpu6050.getAccAngleY()-10) { controller="A1"; vw_send((uint8_t *)pengontrol, strlen(pengontrol)); vw_wait_tx(); // Tunggu sampai seluruh pesan hilang Serial.println("STOP"); } }

Langkah 5: Kode Penerima

#termasuk

int LA = 3;

int LB = 11; int RA = 5; int RB = 6; void setup() { Serial.begin(9600); vw_set_ptt_inverted(benar); // Diperlukan untuk DR3100 vw_set_rx_pin(12); vw_setup(4000); // Bit per detik pinMode(13, OUTPUT); pinMode(LA, OUTPUT); pinMode(LB, OUTPUT); pinMode(RA, OUTPUT); pinMode(RB, OUTPUT); vw_rx_start(); // Jalankan PLL penerima dengan menjalankan Serial.println("Semua OK");

}

void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;

if (vw_get_message(buf, &buflen)) // Non-blocking

{ if((buf[0]=='X')&&(buf[1]=='1')) { Serial.println("BACKWARD"); ke belakang(); penundaan(100); //mati(); } else if((buf[0]=='X')&&(buf[1]=='2')) { Serial.println("FOWARD"); maju(); penundaan(100); //mati(); }

else if((buf[0]=='Y')&&(buf[1]=='1'))

{ Serial.println("KIRI"); kiri(); penundaan(100); //mati(); }

else if((buf[0]=='Y')&&(buf[1]=='2'))

{ Serial.println("KANAN"); Baik(); penundaan(100); //mati(); } else if((buf[0]=='A')&&(buf[1]=='1')) { Serial.println("STOP"); mati(); penundaan(100); } } else { Serial.println("Tidak Ada Sinyal yang Diterima"); } }

batal maju()

{ analogWrite(LA, 70); analogWrite(LB, 0); analogWrite(RA, 70); analogWrite(RB, 0); }

batal mundur()

{ analogWrite(LA, 0); analogWrite(LB, 70); analogWrite(RA, 0); analogWrite(RB, 70); }

kosong kiri()

{ analogWrite(LA, 0); analogWrite(LB, 70); analogWrite(RA, 70); analogWrite(RB, 0); }

batal kanan()

{ analogWrite(LA, 70); analogWrite(LB, 0); analogWrite(RA, 0); analogWrite(RB, 70); }

batalkan ()

{ analogWrite(LA, 0); analogWrite(LB, 0); analogWrite(RA, 0); analogWrite(RB, 0); }

Langkah 6: File INO

Langkah 7: Tautan Perpustakaan

Perpustakaan Kawat Virtual:

MPU6050_tockn Libraby:

Perpustakaan Kawat:

Direkomendasikan: