Daftar Isi:

UChip - Sketsa Sederhana untuk Motor dan/atau Servo Remote Control Melalui Radio 2.4GHz Tx-Rx!: 3 Langkah
UChip - Sketsa Sederhana untuk Motor dan/atau Servo Remote Control Melalui Radio 2.4GHz Tx-Rx!: 3 Langkah

Video: UChip - Sketsa Sederhana untuk Motor dan/atau Servo Remote Control Melalui Radio 2.4GHz Tx-Rx!: 3 Langkah

Video: UChip - Sketsa Sederhana untuk Motor dan/atau Servo Remote Control Melalui Radio 2.4GHz Tx-Rx!: 3 Langkah
Video: Построение графиков преобразованиями (1/3) - Математика Т СТПМ 1 семестр 2024, Juli
Anonim
Image
Image
UChip - Sketsa Sederhana untuk Motor dan/atau Servo Remote Control Melalui Radio 2.4GHz Tx-Rx!
UChip - Sketsa Sederhana untuk Motor dan/atau Servo Remote Control Melalui Radio 2.4GHz Tx-Rx!
UChip - Sketsa Sederhana untuk Motor dan/atau Servo Remote Control Melalui Radio 2.4GHz Tx-Rx!
UChip - Sketsa Sederhana untuk Motor dan/atau Servo Remote Control Melalui Radio 2.4GHz Tx-Rx!

Saya sangat menyukai dunia RC. Menggunakan mainan RC memberi Anda perasaan bahwa Anda mengendalikan sesuatu yang luar biasa, meskipun itu perahu kecil, mobil, atau drone!

Namun, tidak mudah untuk menyesuaikan mainan Anda dan membuatnya melakukan apa pun yang Anda inginkan. Biasanya, Anda dibatasi untuk menggunakan pengaturan pemancar default atau kombinasi sakelar dan kenop yang dirancang khusus.

Mendapatkan untuk mengontrol segala sesuatu seperti yang Anda inginkan cukup sulit, terutama karena dunia RC membutuhkan pengetahuan yang cukup mendalam tentang pemrograman tingkat perangkat keras untuk mendapatkan yang terbaik darinya.

Saya mencoba banyak platform dan pengaturan, tetapi selalu membutuhkan banyak usaha untuk mendapatkan cukup nyaman dengan kode sebelum melakukan beberapa penyesuaian nyata untuk mainan RC saya.

Apa yang saya lewatkan adalah sketsa sederhana yang dapat saya muat menggunakan Arduino IDE dan itu akan dengan mudah memungkinkan saya untuk menerjemahkan nilai yang keluar dari Radio RX (penerima) ke dalam kontrol Motor/Servo yang diinginkan.

Oleh karena itu, inilah yang saya buat setelah bermain sedikit dengan uChip dan Arduino IDE: Sebuah sketsa sederhana untuk remote control Motor dan/atau Servo melalui Radio 2.4GHz Tx-Rx!

Bill of material

1 x uChip: papan yang kompatibel dengan Arduino IDE

1 sistem Radio xTx-Rx: sistem radio apa pun dengan penerima cPPM bagus (kombo saya adalah Spectrum DX7 Tx + Orange R614XN cPPM Rx lama), pastikan Anda mengikuti prosedur pengikatan yang benar untuk mengikat Tx dan Rx.

1 x Baterai: baterai arus debit tinggi diperlukan saat menangani motor dan servo.

Motor/Servo: sesuai dengan kebutuhan Anda

Komponen elektronik untuk menggerakkan Motor/Servo: resistor sederhana, MOSFET, dan Dioda memungkinkan Anda mencapai tujuan mengemudi.

Langkah 1: Pengkabelan

Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan

Hubungkan komponen bersama-sama seperti yang dijelaskan dalam skema.

Rx terhubung langsung ke uChipand tidak memerlukan komponen eksternal. Jika Anda menggunakan penerima yang berbeda, verifikasi apakah Anda memerlukan pemindah level atau tidak. Pastikan untuk menghubungkan sinyal cPPM ke uChip PIN_9 (yaitu PORTA19 jika Anda ingin mengadaptasi kode ke papan SAMD21 lain).

Kabel yang tersisa diperlukan untuk menggerakkan motor dan/atau servo. Skema terlampir mewakili rangkaian dasar untuk melindungi uChip dari lonjakan/overshoot yang biasanya terjadi saat menggerakkan beban induktif. Komponen kunci untuk menjaga keamanan uChip adalah dioda Zener daya 5.1V (D1 dalam skema) yang perlu Anda pasang secara paralel dengan VEXT (uChip pin 16) dan GND (uChip pin 8). Sebagai alternatif, daripada menggunakan dioda Zener, Anda dapat memilih sirkuit opsional yang diwakili oleh D2, C1 dan C2, yang mencegah lonjakan terbalik untuk merusak komponen uChip.

Anda dapat menggerakkan motor/servo sebanyak yang Anda butuhkan hanya dengan mereplikasi skema dan mengubah pin kontrol (Anda dapat menggunakan pin apa pun kecuali pin daya (PIN_8 dan PIN_16) dan pin cPPM (PIN_9)). Ingatlah bahwa, sementara Anda hanya memerlukan satu sirkuit proteksi yang diwakili oleh dioda Zener (atau komponen untuk sirkuit opsional), komponen listrik yang terkait dengan penggerak motor/servo harus direplikasi sebanyak jumlah motor/ servo yang ingin Anda kendarai.

Karena saya ingin mengendarai setidaknya 2 motor dan 2 servos, saya membuat PCB kecil yang menerapkan sirkuit yang dijelaskan dan yang dapat Anda lihat pada gambar. Namun, prototipe pertama dibuat di papan proto menggunakan kabel terbang.

Dengan demikian, Anda tidak memerlukan keahlian desain solder/PCB untuk mengimplementasikan proyek sederhana ini:)

Langkah 2: Pemrograman

Pemrograman
Pemrograman

Inilah keajaibannya! Di sinilah hal-hal menjadi menarik.

Jika Anda membangun sirkuit yang dijelaskan dalam skema sebelumnya, Anda cukup memuat sketsa " DriveMotorAndServo.ino " dan semuanya akan berfungsi.

Lihatlah kodenya dan periksa cara kerjanya.

Pada awalnya ada beberapa #define yang digunakan untuk mendefinisikan:

- saluran nomor Rx (6Ch dengan Oranye 614XN)

- pin tempat motor/servo dipasang

- Maks dan min digunakan untuk servo dan motor

- Maks dan min digunakan untuk jangkauan saluran Radio

Kemudian, ada bagian deklarasi variabel dimana variabel motor/servos dideklarasikan.

Jika Anda mengemudikan lebih dari satu motor dan satu servo terpasang seperti yang dijelaskan dalam skema sebelumnya, Anda perlu memodifikasi sketsa dan menambahkan kode yang menangani motor/servo tambahan yang Anda pasang. Anda perlu menambahkan Servo, servo_value, dan motor_value sebanyak mungkin servo/motor yang Anda gunakan.

Di dalam bagian deklarasi variabel ada juga beberapa variabel volatil yang digunakan untuk Capture Compare dari sinyal cPPM. JANGAN MENGUBAH VARIABEL INI!

Apa yang perlu Anda lakukan selanjutnya adalah dalam fungsi loop(). Di sini, Anda dapat memutuskan apa gunanya membuat nilai saluran masuk.

Dalam kasus saya, saya menghubungkan nilai yang masuk langsung ke motor dan servo, tetapi Anda dipersilakan untuk mengubahnya sesuai dengan kebutuhan Anda! Dalam video dan gambar yang ditautkan dalam tutorial ini, saya menghubungkan 2 motor dan 2 servo, tetapi mungkin ada 3, 4, 5, … hingga pin gratis maksimum yang tersedia (13 untuk uChip).

Anda dapat menemukan nilai saluran yang ditangkap dalam larik ch[index], yang “indeks”-nya berubah dari 0 hingga NUM_CH - 1. Setiap saluran sesuai dengan tongkat/switch/kenop di radio Anda. Terserah Anda untuk memahami apa-apa-apa:)

Akhirnya, saya menerapkan beberapa fungsi debug untuk memudahkan memahami apa yang terjadi. Beri komentar/batalkan komentar pada #define DEBUG untuk mencetak nilai saluran pada SerialUSB asli.

TIP: Ada lebih banyak kode di bawah fungsi loop(). Bagian kode ini diperlukan untuk mengatur pin daya uChip, menangani interupsi yang dihasilkan oleh fitur perbandingan tangkapan, mengatur penghitung waktu dan tujuan debugging. Jika Anda merasa cukup berani untuk bermain-main dengan register, jangan ragu untuk memodifikasinya!

Sunting: Sketsa yang diperbarui, memperbaiki bug dalam fungsi pemetaan.

Langkah 3: Mainkan, Berkendara, Berlomba, Terbang

Image
Image

Pastikan Anda mengikat dengan benar sistem Tx dan Rx. Nyalakan dengan menghubungkan baterai. Verifikasi bahwa semuanya berfungsi. Anda dapat memperluas fungsi atau mengubah fungsi setiap saluran sesuka Anda, karena sekarang Anda memiliki kendali penuh atas model RC masa depan Anda.

Sekarang, buat model RC khusus Anda!

P. S.: karena mengikat bisa sangat membosankan untuk dilakukan, saya berencana untuk segera merilis sketsa yang memungkinkan mengikat sistem Tx-Rx Anda tanpa harus melakukannya secara manual. Tetap disini untuk pembaruan!

Direkomendasikan: