Truk / Mobil Arduino Assisted RC: 4 Langkah

Truk / Mobil Arduino Assisted RC: 4 Langkah

Daftar Isi:

Anonim

Baru-baru ini saya membersihkan Stampede 2wd saya yang berusia 7 tahun, dirancang pada tahun 1996. Saya mendapatkannya untuk ulang tahun ke-8 saya. Truk itu hebat, tetapi memiliki beberapa peringatan. Misalnya, jika truk kehabisan jangkauan, baterai lemah, atau baterai pemancar mati pada Anda, truk akan menjaga throttle pada posisi terakhir. Berkat kendali pelayaran yang tidak disengaja (di luar) (Lihat apa yang saya lakukan di sana? 0_o), saya tidak sengaja mengendarai truk saya ke danau di halaman belakang saya!

Truk yang lebih baru memiliki beberapa fitur keselamatan bawaan, atau Anda bisa mendapatkan bagian aftermarket tambahan untuk truk Anda. Namun, saya memutuskan untuk menggunakan arduino, untuk membuat truk yang dibantu komputer, yang memiliki banyak fitur truk yang lebih baru. Misalnya, lampu Berkedip atau stabil, Cutoff tegangan rendah, mode Pelatihan (kecepatan terbatas), Perlindungan kehilangan sinyal (Memotong motor ketika sinyal hilang.) Daftar ini terus berlanjut!

Setelah membaca tentang cara kerja truk, itu cukup sederhana, dan itu sangat mengundang untuk Arduino! Setiap saluran mengontrol servo, yang beroperasi pada 5 volt, Tegangan favorit Arduino! Servo kabur dari PWM, Mudah ditafsirkan dan dikendalikan oleh seorang Arduino!

Sejauh ini, inilah satu-satunya video yang saya miliki tentang kendaraan: Anti Locking Brakes, Dan LCD telemetry!

Persediaan:

Langkah 1: Bahan!

Minimum untuk bangunan ini cukup sederhana!

Anda akan perlu:

Truk / Mobil Anda

Arduino, saya memilih duemilinove.

Konektor servo betina 3 pin (Seperti yang ada pada servo biasa)

Papan tempat memotong roti opsional atau Protoshield.

Langkah 2: Pengaturan!

Menghubungkan Arduino ke truk cukup sederhana. Penerima RC menghasilkan 5 volt, dan sinyal servo PWM. Menggunakan kawat servo 3 pin, Anda dapat menghubungkan ujung kabel kosong ke Arduino, Ground menuju ke ground, 5 volt ke 5 volt di Arduino, Sinyal masuk ke semua pin digital pada Arduino. Tadaa! Sekarang, sambungkan kabel ESC dengan cara yang sama, dan pastikan untuk menggunakan pin digital.

Sejauh memasang arduino ke truk, saya sarankan menggunakan semacam kandang plastik untuk menutup air, debu, dan kotoran. Untuk membuat prototipe, saya menggunakan beberapa perangkat keras open source, RUBBER BANDS!

Langkah 3: Membaca Servo! Dengan Cutoff Sinyal!

Membaca sinyal servo yang keluar dari penerima RC Anda sederhana.. ish …

Dengan menggunakan pulseIn (), Anda dapat menentukan berapa lama pulsa keluar dari receiver Anda. Menggunakan output dari sinyal Servo Arduino, saya dapat mengkalibrasi bacaan.

di sini adalah kode untuk membaca sinyal. perhatikan, 520 dan 2370 adalah nilai mikrodetik yang digunakan untuk mengkalibrasi bacaan. Saya menggunakan output dari Perpustakaan Servo Arduino untuk mengkalibrasi, dan bekerja dengan baik. PWMpin adalah input dari penerima RC. 20000 adalah nilai mikrodetik yang digunakan sebagai fitur batas waktu. Jika batas waktu habis tercapai, kita tahu bahwa kita tidak mendapatkan sinyal dari Transmitter, dan nanti kita bisa menggunakannya untuk memotong motor.

RCinput = pulseIn (PWMpin, HIGH, 20000);

ServoVal = peta (RCinput, 520, 2370, 0, 180);

setelah itu, kami melakukan beberapa analisis data! Catatan, ThrottleServo adalah output di mana input ESC terhubung ke pin Arduino. Pin 13 adalah output yang digunakan untuk menunjukkan kesalahan.

if (RCinput == 0) {// Sinyal habis waktu!

digitalWrite (13, HIGH); // PERINGATAN!

ThrottleServo.write (97); // Pergilah ke posisi throttle netral

}

}

lain{

digitalWrite (13, LOW);

ThrottleServo.write (ServoVal); // Ulangi data ke ESC truk

Serial.print ("PulseMicros"); // Bagian ini digunakan untuk men-debug nilai untuk kalibrasi

Serial.print (RCinput);

Serial.print ("ServoRead");

Serial.println (ServoVal);

}

Langkah 4: Kode Final untuk Cutoff Sinyal

#termasuk

Servo ThrottleServo;

int PWMpin = 2; // sambungkan penerima RC di sini.

int ServoVal;

int RCinput;

pengaturan batal ()

{

Serial.begin (9600);

ThrottleServo.attach (9); // pasang servo pada pin 9 ke objek servo

ThrottleServo.write (97); // pergi ke nuetral

pinMode (13, OUTPUT);

}

membatalkan loop ()

{

RCinput = pulseIn (PWMpin, HIGH, 20000);

ServoVal = peta (RCinput, 520, 2370, 0, 180);

if (RCinput == 0) {// Sinyal habis waktu!

digitalWrite (13, HIGH); // PERINGATAN!

ThrottleServo.write (97); // Pergilah ke posisi throttle netral

}

lain{

digitalWrite (13, LOW); // Semuanya baik.

ThrottleServo.write (ServoVal); // Ulangi data ke ESC truk

Serial.print ("PulseMicros"); // Bagian ini digunakan untuk men-debug nilai untuk kalibrasi

Serial.print (RCinput);

Serial.print ("ServoRead");

Serial.println (ServoVal);

}

}