Joystick Mengendalikan Mobil RC 2.4 GHz Menggunakan Arduino

Coba Instrumen Kami Untuk Menghilangkan Masalah





Pada postingan kali ini kita akan membuat robot mobil yang dapat dikontrol menggunakan joystick pada link komunikasi nirkabel 2.4 GHz. Proyek yang diusulkan tidak hanya dibuat sebagai mobil RC, tetapi Anda dapat menambahkan proyek Anda seperti kamera pengintai dll pada mobil.



Gambaran

Proyek ini dibagi menjadi dua bagian yaitu remote dan penerima.

Mobil atau pangkalan, tempat kami menempatkan semua komponen penerima kami dapat berupa penggerak tiga roda atau penggerak empat roda.



Jika Anda ingin lebih stabil untuk base car atau jika Anda ingin mengemudikan mobil di permukaan yang tidak rata seperti di luar ruangan maka disarankan untuk menggunakan base car dengan 4 roda.

Anda juga dapat menggunakan mobil berbasis penggerak 3 roda yang memberi Anda mobilitas yang lebih besar saat berbelok, tetapi stabilitasnya kurang dari penggerak 4 roda.

Mobil dengan 4 roda tapi 2 motor penggerak juga layak.

Remote dapat ditenagai dengan baterai 9V dan penerima dapat ditenagai dengan baterai asam timbal tersegel 12V, 1,3 AH, yang memiliki footprint lebih kecil dari baterai 12V, 7AH dan juga ideal untuk aplikasi yang bergerak seperti itu.

Komunikasi 2,4 GHz antara dibuat menggunakan modul NRF24L01 yang dapat mengirimkan sinyal lebih dari 30 hingga 100 meter tergantung pada hambatan di antara dua modul NRF24L01.

Ilustrasi modul NRF24L01:

Ia bekerja pada 3.3V dan 5V dapat mematikan modul jadi, perawatan harus diambil dan bekerja pada protokol komunikasi SPI. Konfigurasi pin disediakan pada gambar di atas.

Remote:

Remote terdiri dari Arduino (disarankan Arduino nano / pro-mini), modul NRF24L01, joystick, dan catu daya baterai. Cobalah untuk memasukkannya ke dalam kotak sampah kecil, yang akan lebih mudah ditangani.

Diagram skematis untuk remote:

Sambungan pin untuk modul NRF24L01 dan joystick disediakan dalam diagram, jika Anda merasa ada kekacauan, silakan lihat tabel sambungan pin yang diberikan.

Dengan menggerakkan joystick ke depan (ATAS), mundur (Bawah), kanan dan kiri, mobil bergerak sesuai dengan itu.

joystick mobil jarak jauh

Harap dicatat bahwa semua sambungan kabel ada di sisi kiri, ini adalah titik referensi dan sekarang Anda dapat memindahkan joystick ke pindahkan mobil .

Dengan menekan joystick di sumbu Z Anda dapat mengontrol lampu LED di mobil.

Program untuk Remote:

//--------------Program Developed by R.Girish---------------//
#include
#include
#include
int X_axis = A0
int Y_axis = A1
int Z_axis = 2
int x = 0
int y = 0
int z = 0
RF24 radio(9,10)
const byte address[6] = '00001'
const char var1[32] = 'up'
const char var2[32] = 'down'
const char var3[32] = 'left'
const char var4[32] = 'right'
const char var5[32] = 'ON'
const char var6[32] = 'OFF'
boolean light = true
int thresholdUP = 460
int thresholdDOWN = 560
int thresholdLEFT = 460
int thresholdRIGHT = 560
void setup()
{
radio.begin()
Serial.begin(9600)
pinMode(X_axis, INPUT)
pinMode(Y_axis, INPUT)
pinMode(Z_axis, INPUT)
digitalWrite(Z_axis, HIGH)
radio.openWritingPipe(address)
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.stopListening()
}
void loop()
{
x = analogRead(X_axis)
y = analogRead(Y_axis)
z = digitalRead(Z_axis)
if(y <= thresholdUP)
{
radio.write(&var1, sizeof(var1))
}
if(y >= thresholdDOWN)
{
radio.write(&var2, sizeof(var2))
}
if(x <= thresholdLEFT)
{
radio.write(&var3, sizeof(var3))
}
if(x >= thresholdRIGHT)
{
radio.write(&var4, sizeof(var4))
}
if(z == LOW)
{
if(light == true)
{
radio.write(&var5, sizeof(var5))
light = false
delay(200)
}
else
{
radio.write(&var6, sizeof(var6))
light = true
delay(200)
}
}
}
//--------------Program Developed by R.Girish---------------//

Itu menyimpulkan Remote.

Sekarang mari kita lihat penerima.

Sirkuit penerima akan ditempatkan di mobil pangkalan. Jika Anda memiliki ide untuk menambahkan proyek Anda pada pangkalan bergerak ini, rencanakan geometri dengan benar untuk menempatkan penerima dan proyek Anda sehingga Anda tidak kehabisan ruang.

Penerima terdiri dari Arduino, modul driver motor DC dual H-bridge L298N, LED putih yang akan ditempatkan di depan mobil, modul NRF24L01, dan baterai 12V, 1.3AH. Motor mungkin datang dengan mobil dasar.

Diagram skema untuk penerima:

Harap dicatat bahwa koneksi antara papan Arduino dan NRF24L01 TIDAK ditunjukkan pada diagram di atas untuk menghindari kebingungan kabel. Silakan lihat skema remote.

Papan Arduino akan didukung oleh modul L298N yang memiliki regulator 5V bawaan.

LED putih dapat ditempatkan sebagai lampu kepala atau Anda dapat menyesuaikan pin ini dengan kebutuhan Anda, dengan menekan joystick, pin # 7 berubah tinggi dan menekan joystick lagi akan menurunkan pin.

Harap perhatikan motor sisi kiri dan kanan yang ditentukan dalam diagram skema penerima.

Program untuk Penerima:

//------------------Program Developed by R.Girish---------------//
#include
#include
#include
RF24 radio(9,10)
const byte address[6] = '00001'
const char var1[32] = 'up'
const char var2[32] = 'down'
const char var3[32] = 'left'
const char var4[32] = 'right'
const char var5[32] = 'ON'
const char var6[32] = 'OFF'
char input[32] = ''
const int output1 = 2
const int output2 = 3
const int output3 = 4
const int output4 = 5
const int light = 7
void setup()
{
Serial.begin(9600)
radio.begin()
radio.openReadingPipe(0, address)
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.startListening()
pinMode(output1, OUTPUT)
pinMode(output2, OUTPUT)
pinMode(output3, OUTPUT)
pinMode(output4, OUTPUT)
pinMode(light, OUTPUT)
digitalWrite(output1, LOW)
digitalWrite(output2, LOW)
digitalWrite(output3, LOW)
digitalWrite(output4, LOW)
digitalWrite(light, LOW)
}
void loop()
{
while(!radio.available())
{
digitalWrite(output1, LOW)
digitalWrite(output2, LOW)
digitalWrite(output3, LOW)
digitalWrite(output4, LOW)
}
radio.read(&input, sizeof(input))
if((strcmp(input,var1) == 0))
{
digitalWrite(output1, HIGH)
digitalWrite(output2, LOW)
digitalWrite(output3, HIGH)
digitalWrite(output4, LOW)
delay(10)
}
else if((strcmp(input,var2) == 0))
{
digitalWrite(output1, LOW)
digitalWrite(output2, HIGH)
digitalWrite(output3, LOW)
digitalWrite(output4, HIGH)
delay(10)
}
else if((strcmp(input,var3) == 0))
{
digitalWrite(output3, HIGH)
digitalWrite(output4, LOW)
delay(10)
}
else if((strcmp(input,var4) == 0))
{
digitalWrite(output1, HIGH)
digitalWrite(output2, LOW)
delay(10)
}
else if((strcmp(input,var5) == 0))
{
digitalWrite(light, HIGH)
}
else if((strcmp(input,var6) == 0))
{
digitalWrite(light, LOW)
}
}
//------------------Program Developed by R.Girish---------------//

Itu menyimpulkan penerima.

Setelah menyelesaikan proyek, jika mobil bergerak ke arah yang salah, balik saja polaritas motornya.

Jika mobil dasar Anda adalah penggerak roda 4 motor, hubungkan motor kiri secara paralel dengan polaritas yang sama, lakukan hal yang sama untuk motor sisi kanan dan hubungkan ke driver L298N.

Jika Anda memiliki pertanyaan tentang mobil RC 2,4 GHz yang dikendalikan joystick ini menggunakan Arduino, silakan ungkapkan di bagian komentar, Anda dapat menerima balasan cepat.




Sepasang: Modul Driver Motor DC L298N Dijelaskan Berikutnya: Rangkaian Pengukur Aliran Air Digital Sederhana menggunakan Arduino