Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Arduino RC Pesawat | 100% buatan sendiri

Dalam tutorial ini saya akan menunjukkan kepada Anda bagaimana saya membuat Pesawat RC berbasis Arduino, dan juga, saya akan menunjukkan cara mengontrolnya menggunakan pemancar Arduino yang saya buat di salah satu video saya sebelumnya.

Anda dapat menonton video berikut atau membaca tutorial tertulis di bawah ini.

Ringkasan

Jadi, pesawat ini seluruhnya terbuat dari styrofoam. Untuk membuat bentuk, saya menggunakan Mesin Pemotong Busa Arduino CNC yang sudah saya tunjukkan cara membuatnya di video sebelumnya. Meskipun saya menggunakan mesin CNC untuk membuat pesawat Arduino RC ini, saya masih dapat mengatakan ini 100% DIY karena mesin CNC juga merupakan buatan DIY.

Selain itu, kontrol pesawat juga 100% DIY, berdasarkan Arduino dan modul NRF24L01 untuk komunikasi radio.

Menggunakan joystick kanan pemancar, kita dapat mengontrol aileron dan elevator pesawat, dan menggunakan joystick kiri kita dapat mengontrol kemudi dan throttle.

Selain itu, dengan menggunakan potensiometer kanan, kita dapat menyesuaikan respons kontrol, atau mengurangi jumlah perjalanan servo, dan menggunakan joystick kiri, kita dapat memangkas kemudi atau menyesuaikan posisi netral lengan servo.

Oh, dan saya hampir lupa menyebutkan, fitur utama dari pesawat Arduino RC ini adalah terbang, jadi ya, bisa terbang.

Merancang Pesawat RC – Model 3D

Saya mulai dengan mendesain pesawat menggunakan perangkat lunak pemodelan 3D, Fusion 360 dalam hal ini. Saya membuat desain dengan melihat beberapa pesawat RC komersial dan mengikuti beberapa pedoman dasar atau aturan praktis untuk parameter model pesawat.

Titik awalnya adalah lebar sayap, dan saya memilih menjadi 80cm. Dari sana kita mendapatkan panjang badan pesawat, yang umumnya 75% dari lebar sayap. Untuk airfoil, atau penampang sayap, saya memilih CLARK Y Airfoil, yang merupakan pilihan populer untuk pesawat RC.

Saya mengunduh bentuk airfoil dari airfoiltools.com sebagai file .SVG dan kemudian saya mengimpornya ke Fusion 360. Saya menyesuaikan ukurannya dengan tepat, sehingga akord sayap, atau panjang sayap dalam arah aliran-bijaksana adalah sekitar 1/5 dari lebar sayap.

Stabilizer horizontal dan vertikal juga berukuran sesuai dengan pedoman dasar tersebut. Berikut adalah beberapa parameter desain pesawat model RC dasar:

Badan pesawat akan dibuat dari dua sisi 10mm dan inti 50mm yang akan dilubangi untuk menampung elektronik.

Anda dapat mengunduh model 3D dari tautan di atas. Ada dua versi Pesawat. Versi 1 adalah yang ditunjukkan di sini dalam gambar, dan versi dua memiliki hidung yang sedikit lebih kecil dan motor dapat ditempatkan lebih ke depan untuk meningkatkan aliran udara.

Membuat kode-G untuk Pemotong Busa CNC DIY saya

Sekarang, karena area kerja Mesin Pemotong Busa Arduino CNC saya terbatas pada 45cm, dan panjang badan pesawat 60cm, saya harus membuat badan pesawat menjadi dua bagian.

Jadi, saya memotong badan pesawat pada 34cm dari titik depan, dan membuat sketsa baru di mana saya memproyeksikan bentuk dan menambahkan titik di dekatnya. Selanjutnya, di tab manufaktur Fusion 360, saya dapat membuat kode-G untuk memotong bentuk.

Di sini, pertama saya membuat pengaturan baru di mana saya memilih sketsa sebagai model, memilih titik yang saya tambahkan sebelumnya sebagai asal untuk pengaturan, dan menyesuaikan sumbu X dan Y dengan tepat.

Kemudian saya memilih operasi kontur 2D dan memilih atau menghasilkan alat baru, dengan diameter 3mm, karena itulah perkiraan ukuran pemotongan yang dibuat kawat panas saat melewati styrofoam. Di sini kita juga dapat mengatur laju gerak makan pemotongan yang tergantung pada kawat panas itu sendiri dan kekerasan styrofoam. Saya menyetelnya ke 150 mm/m.

Kemudian pada tap geometri kita dapat memilih kontur atau bentuk yang perlu dipotong. Adapun ketinggian saya mengatur semuanya menjadi 1mm karena tidak ada gerakan sumbu Z pada mesin pemotong busa saya. Terakhir di Linking tap saya memilih posisi entri menjadi tepi yang terletak di dekat titik asal.

Dengan ini toolpath dihasilkan dan kita dapat melihatnya dengan mengklik tombol Simulation. Jalur pahat harus berupa lintasan tunggal loop tertutup, dan jika itu masalahnya, kami akhirnya dapat menghasilkan kode-G. Untuk itu kita bisa masuk ke Post Processes, pilih firmware GRBL, pilih folder output, beri nama file dan klik tombol post.

Kemudian kita dapat menyimpan file tersebut, dan kita dapat melihat G-code di editor WordPad atau yang serupa.

Jadi sekarang setelah kami memiliki file kode-G, kami dapat memuatnya ke pengirim kode-G Universal dan mengirim kode-G ke mesin CNC untuk membuat bentuknya.

Kami dapat mencatat bahwa proses yang baru saja saya tunjukkan kepada Anda mungkin bukan yang terbaik atau tidak profesional sama sekali, tetapi tetap saja ini berfungsi untuk membuat kode-G bekerja dengan Mesin Pemotong Busa CNC DIY saya. Tentu saja, untuk detail lebih lanjut tentang mesin CNC DIY ini, Anda dapat memeriksa tutorial khusus saya untuk itu, tautannya ada di deskripsi video.

Anda dapat mengunduh file kode-G di sini:

Seperti yang saya katakan tadi, untuk bagian samping saya menggunakan styrofoam centang 1cm dan untuk bagian tengah saya menggunakan styrofoam centang 5cm.

Untuk sayap, saya menggunakan styrofoam tick 10cm yang saya potong dengan lebar sekitar 30cm karena itu rentang maksimum yang bisa dipotong oleh mesin hot wire saya. Saya menempatkan dua profil sayap dalam satu file kode-G dan saya memotong beberapa di antaranya.

Untuk mendapatkan lebar sayap 80cm saya akan merekatkan 3 buah yang berukuran 27cm, dan untuk meluruskannya, saya memotong ujung-ujungnya secara manual agar tegak lurus.

Merakit Pesawat RC

Jadi ini semua potongan styrofoam yang saya potong dengan mesin CNC. Tiga potong untuk bagian depan, tiga bagian untuk bagian belakang dan tiga bagian untuk sayap. Sekarang saya bisa mulai merakitnya.

Saya akan mulai dengan bagian depan. Saya menggunakan lem untuk merekatkan potongan-potongan itu. Lem panasnya sedikit melelehkan styrofoam tapi saya masih bisa merekatkan dengan cara ini.

Cara lain yang baik untuk merekatkan styrofoam adalah dengan epoksi 5 menit. Sebelum menempelkan sisi lain, saya akan membuat dudukan untuk motor. Untuk itu, saya menggunakan profil aluminium lebar 30mm yang cukup ringan. Saya memotong profil sekitar 18cm, menandai lubang untuk memasang motor, dan mengebornya menggunakan mata bor 3mm. Kemudian saya menekuk profil pada 90 derajat. Saya mengamankan motor ke dudukannya menggunakan beberapa baut M3.

Dengan menggunakan rakitan ini, saya membuat lubang melalui bagian depan styrofoam. Kemudian, menggunakan pisau utilitas, saya memperbesar lubang hingga diameter 30mm, sama dengan diameter motor.

Selanjutnya pada sisi lain dudukan motor saya buat 4 lubang yang berfungsi untuk mengamankan dudukan pada tempatnya dan juga untuk memasang roda pendarat. Saya menandai lokasi lubang-lubang ini di badan pesawat dan menggunakan mata bor 4mm saya membuat lubang melalui styrofoam secara manual. Saya membuat potongan aluminium lain dengan panjang sekitar 7 cm dengan lubang yang sama, dan sekarang saya dapat menggunakannya untuk mengamankan dudukan motor.

Dengan menggunakan baut M4 kita dapat dengan mudah mengamankan dudukan motor pada tempatnya tanpa merusak styrofoam. Namun, saya akan melakukannya nanti, jadi saya menghapusnya dan saya melanjutkan dengan menempelkan sisi lainnya. Menggunakan metode yang sama, saya merekatkan bagian belakangnya juga.

Langkah selanjutnya adalah perkawinan, atau menghubungkan bagian depan dan belakang badan pesawat. Untuk membuat koneksi lebih kuat, saya akan menambahkan tongkat barbekyu sederhana di antara mereka.

Saya akan menyarankan bahkan menggunakan beberapa tongkat yang lebih besar karena ketika pesawat akan jatuh mungkin mudah patah di sini. Saya menambahkan sejumlah lem panas yang layak ke situs penghubung dan meremasnya bersama-sama. Jadi ini dia, badan pesawat sudah siap dan menurut saya tampilannya cukup keren.

Selanjutnya, dengan menggunakan pisau utilitas saya memotong dua potong styrofoam batang 10 mm yang akan menjadi stabilisator horizontal dan vertikal. Saya memiringkan tepinya agar terlihat lebih baik dan juga sedikit lebih aerodinamis. Stabilisator akan langsung direkatkan ke sisi belakang badan pesawat tetapi sebelum saya melakukannya, saya akan membuat permukaan pengontrolnya terlebih dahulu.

Untuk tujuan itu, saya memotong sekitar 1/3 panjangnya, dan itu akan menjadi permukaan kontrol atau elevator untuk penstabil horizontal dan kemudi untuk penstabil vertikal. Agar dapat memasang permukaan kontrol pada stabilisator, saya perlu memiringkan permukaan kontaknya. Sekali lagi, saya melakukannya menggunakan pisau utilitas, dan kami sebenarnya membutuhkan pisau yang cukup tajam untuk membersihkan luka ini.

Saya melanjutkan dengan membuat stabilisator sedikit lebih aerodinamis. Untuk tujuan itu, saya menggunakan amplas dan membuat ujung depannya membulat. Saya juga mengampelas bagian pinggirnya sedikit.

Sekarang, karena styrofoam cukup rapuh, saya akan membungkus seluruh area stabilizer dan permukaan kontrolnya dengan selotip sederhana. Ini tidak hanya akan membuat komponen lebih kuat, tetapi juga meningkatkan aerodinamis, karena pitanya jauh lebih halus daripada styrofoam itu sendiri.

Setelah membungkusnya, saya memotong bagian bawah kemudi pada 45 derajat, untuk memberi ruang bagi elevator untuk dapat bergerak dengan bebas.

Sekarang akhirnya, saya bisa membuat engselnya, dan saya melakukannya menggunakan pita pengepakan lagi. Jadi, saya hanya menghubungkan kedua bagian itu dengan selotip, dan itu membuat engselnya cukup kuat.

Saya mengulangi proses ini untuk stabilizer horizontal juga. Untuk membuat engsel lebih kuat, kita juga bisa menambahkan selotip di sisi lain. Menggunakan selotip yang sama, saya membungkus sisi-sisinya dan dengan itu kedua stabilisator selesai.

Saya melanjutkan dengan menempelkan stabilizer horizontal ke badan pesawat menggunakan lem panas. Untuk mengamankan stabilizer vertikal, pertama-tama saya memasukkan dan merekatkan 3 batang barbekyu melalui stabilizer horizontal dan badan pesawat. Kemudian saya mengoleskan lem panas pada mereka dan permukaan kontak dan mendorong stabilizer ke bawah dengan kuat.

Dengan ini kita selesai dengan stabilisator dan kita bisa melanjutkan dengan membuat sayap.

Jadi, seperti yang sudah saya katakan, sayap akan dibuat menjadi 3 bagian karena area kerja mesin pemotong busa CNC DIY saya yang terbatas. Sekali lagi, saya menggunakan tongkat barbekyu untuk memberikan kekuatan tambahan saat merekatkan potongan. Untuk menempelkannya tepat di garis, saya menggunakan potongan kayu lurus di mana saya bisa menggeser potongannya.

Setelah selesai dengan itu, sayapnya sebenarnya cukup rapuh karena panjang dan timah. Oleh karena itu, saya akan memperkuatnya dengan menambahkan tongkat kayu ke dalamnya. Saya memotong tongkat sesuai ukuran dan menandai sayap di mana saya perlu membuat saku sehingga saya bisa memasukkan tongkat ke dalamnya. Menggunakan pisau utilitas, saya perlahan dan hati-hati membuat saku. Saya menambahkan lem panas ke dalamnya dan mengencangkannya di tempatnya tanpa terlalu mengganggu bentuk airfoil.

Sekarang sayapnya jauh lebih kuat dengan tongkat kayu di tempatnya. Meskipun lebih kuat masih akan mudah pecah jika menyentuh tanah, jadi karena itu saya akan membungkus semuanya dengan pita pengepakan seperti yang saya lakukan dengan stabilisator. Saya mulai menambahkan selotip dari sisi belakang atau tepi belakang sayap, ke sisi depan atau tepi depan.

Dengan cara ini udara yang masuk dari depan tidak akan cenderung melepaskan selotip. Meskipun proses ini terlihat cukup mudah, ini bisa sedikit mengganggu jika Anda tidak memiliki tangan yang stabil dan cukup sabar. Saya pikir sayapnya keluar dengan sempurna. Sekarang jauh lebih kuat, lebih aerodinamis dan terlihat cukup bagus.

Baiklah, langkah selanjutnya adalah membuat permukaan kontrol sayap atau aileron. Saya akan membuat lebarnya 22cm dan panjangnya sekitar 1/4 dari akord sayap. Agar bisa bergerak bebas, saya memotongnya sekitar setengah sentimeter.

Dan tentu saja, saya membungkus semua tepi yang terbuka dengan pemotongan. Selanjutnya, saya memiringkan bagian bawah aileron pada 45 derajat, dan dengan cara yang sama seperti yang ditunjukkan sebelumnya, sekarang saya dapat mengayunkannya ke sayap. Agar muat di badan pesawat dan dapat dengan mudah menempelkan sayap ke badan pesawat, saya harus membuat satu lekukan lagi di tengah sayap.

Selanjutnya, saatnya memasang motor servo untuk mengendalikan aileron. Saya menggunakan servo mikro 9g. Saya menandai lokasi di mana mereka akan ditempatkan dan menggunakan pisau utilitas, saya dengan hati-hati membuat lubang di sayap sehingga servo dapat memuatnya. Sementara itu, saya melepas braket pemasangan servo agar bentuknya lebih sederhana. Saya menempelkan lem pada servo dan memasukkannya ke lubangnya.

Menggunakan pisau utilitas, saya membuat alur kecil dari servo ke tengah sayap sehingga saya dapat memasukkan kabel servo di dalamnya. Akhirnya, saya menutupi semuanya dengan selotip. Saya mengulangi proses yang sama untuk sisi lain juga.

Saya melanjutkan dengan membuat klakson kontrol. Saya akan membuatnya dari profil aluminium yang saya gunakan sebelumnya untuk membuat dudukan motor. Saya menggambar bentuknya dengan tangan agar kira-kira cocok dengan tinggi klakson motor servo dan untuk menggantung di atas titik engsel. Saya memotong bentuknya menggunakan gergaji besi.

Saya akan menggunakan kawat baja 2mm sebagai batang kendali jadi saya membuat lubang di klakson menggunakan bor 2.5mm. Saya membuat alur kecil di aileron dan menempelkan klakson di tempatnya. Kemudian saya mengukur panjang batang kendali dan membuatnya dari kawat baja 2mm dengan bantuan tang. Perlu diperhatikan bahwa saat mengukur dan memasukkan batang kendali, motor servo harus dalam posisi netral.

Kita dapat melakukannya dengan menempatkannya secara manual di tengah rentang geraknya, atau dengan menghubungkannya ke servo tester atau melakukannya dengan Arduino. Saya mengulangi proses untuk sisi lain, dan dengan itu sayap sekarang sudah selesai sepenuhnya.

Selanjutnya, saya perlu menginstal servos untuk mengendalikan kemudi dan lift. Saya juga menggunakan servos mikro 9g yang sama di sini, dan proses pemasangannya sebenarnya hampir sama seperti yang baru saja saya jelaskan. Pertama, saya menandai lokasinya, membuat bukaannya menggunakan pisau utilitas dan merekatkan kedua motor di tempatnya. Di sini, mereka bersebelahan tetapi dengan poros keluarannya di sisi yang berlawanan.

Sekali lagi, saya membuat alur kecil di badan pesawat untuk melakukan kabel servos ke kompartemen elektronik. Saya menutupi servos dengan selotip dan membuat lubang untuk tanduk servo. Dengan cara yang sama seperti yang ditunjukkan sebelumnya, saya membuat tanduk kontrol dan merekatkannya di tempatnya menggunakan pistol lem. Terakhir, saya membuat batang kendali yang sesuai dan memasangnya sesuai dengan itu.

Ok, selanjutnya saya akan memasang dua batang kayu 8mm yang akan berfungsi untuk mengamankan sayap ke badan pesawat. Saya membuat lubang secara manual menggunakan mata bor 6mm. Batang harus menggantung sekitar 1 cm di kedua sisi. Saya mengamankannya ke badan pesawat dengan lem panas juga dan begini cara kerjanya.

Kami menggunakan karet gelang untuk mengamankan sayap ke badan pesawat. Dengan cara itu sayap dapat dengan mudah dilepas dan jika karet gelang putus, akan mengurangi dampak pada sayap secara signifikan. Pada saat yang sama perakitannya sangat kuat.

Selanjutnya, saya akan membuat roda pendaratan. Untuk itu, sekali lagi saya akan menggunakan profil aluminium dan velg berbahan styrofoam. Saya membuatnya menggunakan mesin CNC seperti yang ditunjukkan sebelumnya. Saya membuat lekukan kecil pada profil aluminium sehingga saya dapat dengan mudah menekuknya. Begini tampilan roda pendaratan yang sebenarnya.

Untuk pemasangan roda ke profil, saya akan menggunakan baut M5 dan tabung aluminium dengan diameter dalam 6mm. Tabung diamankan ke braket menggunakan baut dan mur M5, dan di sampingnya, saya menambahkan ring M5 sehingga roda dapat berputar di sekitar tabung dengan bebas. Dengan metode yang sama saya membuat roda untuk sisi belakang pesawat.

Oke, jadi sekarang semua komponen sudah siap dan sebelum saya merakitnya mari kita lihat elektronik proyek ini.

Elektronik Pesawat RC Arduino – Diagram Sirkuit

Jadi, seperti yang sudah saya katakan, pesawat RC ini sepenuhnya berbasis Arduino, baik Pemancar dan Penerima dibuat khusus berdasarkan papan Arduino Pro Mini.

Saya sudah memiliki tutorial terperinci tentang cara membuat dan cara kerja pemancar dan penerima, sehingga Anda dapat memeriksanya untuk lebih jelasnya. Disini saya akan menjelaskan diagram rangkaian dan prinsip kerja dari pesawat RC Arduino ini dan bagaimana segala sesuatunya perlu dihubungkan.

Anda bisa mendapatkan komponen yang dibutuhkan untuk proyek ini dari tautan di bawah ini:

  • NRF24L01 + PA + LNA …………..…..…….
  • Arduino Pro Mini………………..……….…..
  • Motor Servo ……………………………………
  • Motor Tanpa Kuas ………………………..……
  • ESC 30A ……………………………….…………
  • Baterai Li-Po ……………………..……………

Jadi, komunikasi radio didasarkan pada modul NRF24L01. Meskipun mungkin terlihat sedikit rumit, pemancar Arduino DIY ini sebenarnya cukup sederhana. Ini memiliki beberapa pengontrol, joystick, potensiometer, dan beberapa tombol, dan terus-menerus mengirimkan datanya ke penerima. Penerima menerima data ini secara nirkabel melalui modul NRF24L01 dan mengeluarkan perintah yang sesuai ke servos dan motor brushless untuk mengendalikan pesawat.

Mengontrol servo dan motor brushless dengan Arduino juga cukup sederhana, jadi oleh karena itu seluruh konsep pesawat Arduino RC ini menurut saya tidak terlalu sulit untuk dipahami. Motor tanpa sikat yang saya gunakan dalam proyek ini memiliki peringkat 1000KV dan membutuhkan 30A ESC. ESC menggerakkan motor dan juga memberikan daya ke Arduino dan servos melalui fitur Sirkuit Penghapus Baterai yang menghasilkan 5V. Dan tenaga ke ESC dan motor brushless berasal dari baterai Li-Po 3S.

Saya menambahkan satu fitur lagi ke pesawat ini, dan itu adalah LED sederhana yang akan menunjukkan jika baterai kosong. Menggunakan pembagi tegangan sederhana, kami menjatuhkan 12V yang berasal dari baterai Li-Po menjadi sekitar 5V sehingga kami dapat membacanya dengan input analog Arduino dan mengetahui kapan baterai akan turun di bawah 11V. Receiver ini masih memiliki beberapa saluran gratis, jadi kami dapat menambahkan lebih banyak fitur ke pesawat ini jika kami mau, seperti lampu strobo, penutup, mekanisme menjatuhkan, dan sebagainya.

Menyelesaikan Perakitan

Namun demikian, mari selesaikan perakitan sekarang. Jadi, saya menghubungkan semuanya seperti yang dijelaskan dalam diagram sirkuit. Pada saluran 1 adalah kemudi, saluran 2 lift, saluran 3 dan 4 aileron, dan pada saluran 6 LED. Saya merekatkan LED di satu sisi dan sakelar daya di sisi lain.

Di sini dapat kita perhatikan bagaimana landing gear dipasang pada pesawat menggunakan dua baut pada dudukan motor. Dalam beberapa kata, saya dengan mudah memasukkan motor dengan dudukan dari bukaan atas ini, dibaut di tempatnya seperti yang ditunjukkan sebelumnya, dan juga memasang roda pendarat. Saat memasukkan dudukan, saya juga menambahkan beberapa karet gelang agar dapat menahan baterai pada tempatnya.

Jadi, setelah saya menghubungkan baterai ke ESC, saya memasukkan semuanya. Akhirnya, dengan menggunakan kabel ekstensi, saya dapat dengan mudah menghubungkan aileron sayap ke penerima dan kemudian mengencangkan sayap ke badan pesawat.

Di bagian depan, saya memasang baling-baling ke motor dan yang tersisa sekarang adalah memeriksa CG atau pusat gravitasi pesawat.

CG mungkin merupakan faktor terpenting apakah pesawat akan terbang dengan baik atau terbang sama sekali.

Pesawat awalnya berat ekor jadi saya memindahkan baterai ke depan dan menambahkan beberapa bobot (beberapa baut dan mur) dan menjadi seimbang.

Itu saja, pesawat RC berbasis Arduino kami sekarang sudah selesai dan kami dapat pergi ke luar untuk mencobanya.

Menguji Pesawat Arduino RC

Nah, percobaan pertama atau penerbangan perdananya tidak begitu keren. Apalagi setelah melihat hasil gebetannya.

Kesimpulan saya di sini adalah pesawat masih terasa berat dan motornya terasa kurang bertenaga. Karena saya tidak memiliki motor atau baling-baling lain untuk dicoba, saya memodifikasi hidung pesawat menjadi sedikit lebih kecil, menggerakkan motor lebih ke depan sehingga memiliki aliran udara yang lebih baik dan juga membulatkan tepi di bagian depan. Untuk strukturnya saya perkuat dengan beberapa batang kayu dan profil aluminium yang saya rekatkan di bagian dalam badan pesawat.

Di bagian bawah kompartemen elektronik saya membuat dua lubang, satu untuk keluarnya udara yang berasal dari bukaan depan, dan satu lagi untuk mengeluarkan antena NRF24L01 di luar agar memiliki jangkauan pemukul.

Ok jadi ini coba nomor dua. Sekali lagi, hal yang hampir sama, meskipun rasanya seperti memiliki aliran udara atau kekuatan yang lebih baik sekarang.

Badan pesawat pecah lagi, yang menunjukkan bahwa styrofoam ini cukup lemah untuk tujuan ini. Saya membuat badan pesawat baru, dan kali ini menggunakan sedikit selotip untuk memperkuatnya.

Coba nomor tiga. Kelihatannya menjanjikan tetapi medan yang saya miliki untuk lepas landas sebenarnya tidak bagus sama sekali. Pesawat mulai bergerak ke kanan, menabrak tepi jalan dan pecah lagi.

Saya memperbaikinya dan kali ini membungkus hampir seluruh badan pesawat dengan duct dan packing tape. Saya seharusnya melakukan itu lebih awal karena ini memberikan kekuatan yang tepat untuk badan pesawat dan tidak pecah setelah beberapa kali jatuh.

Masalahnya sekarang adalah setelah beberapa kali remuk, saya mematahkan semua 4 baling-baling yang saya miliki, jadi dalam percobaan ini saya menggunakan baling-baling yang direkatkan. Tentu saja, baling-balingnya robek saat lepas landas.

Saya mencoba dengan baling-baling terpaku lain yang terbuat dari dua baling-baling yang sudah rusak dan kali ini saya benar-benar beruntung dan pesawat akhirnya lepas landas dengan benar.

Nah, keberuntungan tidak bertahan lama karena baling-balingnya pecah lagi di udara.

Namun demikian, karena ini adalah pengalaman pertama saya menerbangkan pesawat RC, saya kira saya dapat menganggap proyek ini berhasil, karena saya berhasil membuktikan konsep pembuatan sistem yang sepenuhnya berbasis Arduino untuk mengendalikan pesawat RC.

Selain itu, kami dapat mencatat dari penerbangan bahwa kontrol yang berasal dari Transmitter sebenarnya terlalu keras. Itu karena joystick sama sekali tidak bagus untuk tujuan ini, rentang gerakannya kecil dan responsnya buruk.

Untuk mengatasi ini, saya menambahkan fitur ke program yang melaluinya kita dapat mengontrol responsivitas kontrol menggunakan potensiometer yang tepat pada pemancar. Juga, saya menambahkan fungsi di mana kita dapat memotong kemudi menggunakan potensiometer kiri.

Kode Pesawat RC Arduino

Jadi akhirnya, mari kita lihat kode Arduino dari pesawat RC berbasis Arduino ini dan selesaikan proyek ini. Kodenya sama persis seperti yang dijelaskan pada tutorial sebelumnya, untuk mengontrol servo dan motor brushless menggunakan modul transceiver NRF24L01.

Berikut kode lengkap untuk proyek pesawat Arduino RC ini:

/*
   Arduino RC Airplane
   == Receiver Code =
  by Dejan, www.HowToMechatronics.com
  Library: TMRh20/RF24, https://github.com/tmrh20/RF24/
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>

#define led 9

RF24 radio(3, 2);   // nRF24L01 (CE, CSN)
const byte address[6] = "00001";
unsigned long lastReceiveTime = 0;
unsigned long currentTime = 0;

Servo throttle;  // create servo object to control the ESC
Servo rudderServo;
Servo elevatorServo;
Servo aileron1Servo;
Servo aileron2Servo;


int throttleValue, rudderValue, elevatorValue, aileron1Value, aileron2Value, travelAdjust;
// Max size of this struct is 32 bytes - NRF24L01 buffer limit
struct Data_Package {
  byte j1PotX;
  byte j1PotY;
  byte j1Button;
  byte j2PotX;
  byte j2PotY;
  byte j2Button;
  byte pot1;
  byte pot2;
  byte tSwitch1;
  byte tSwitch2;
  byte button1;
  byte button2;
  byte button3;
  byte button4;
};
Data_Package data; //Create a variable with the above structure
void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_MAX);
  radio.startListening(); //  Set the module as receiver
  resetData();
  throttle.attach(10);
  rudderServo.attach(4);   // CH1
  elevatorServo.attach(5); // CH2
  aileron1Servo.attach(6); // CH3
  aileron2Servo.attach(7); // CH4
  pinMode(led, OUTPUT);    // CH6
}
void loop() {
  // Check whether we keep receving data, or we have a connection between the two modules
  currentTime = millis();
  if ( currentTime - lastReceiveTime > 1000 ) { // If current time is more then 1 second since we have recived the last data, that means we have lost connection
    resetData(); // If connection is lost, reset the data. It prevents unwanted behavior, for example if a drone jas a throttle up, if we lose connection it can keep flying away if we dont reset the function
  }
  // Check whether there is data to be received
  if (radio.available()) {
    radio.read(&data, sizeof(Data_Package)); // Read the whole data and store it into the 'data' structure
    lastReceiveTime = millis(); // At this moment we have received the data
  }

  // Controlling throttle - brushless motor with ESC
  throttleValue = constrain(data.j1PotY, 80, 255); // Joysticks stays in middle. So we only need values the upper values from 130 to 255
  throttleValue = map(throttleValue, 80, 255, 1000, 2000);
  throttle.writeMicroseconds(throttleValue);

  // Adjusting the servos responsiveness
  travelAdjust = map(data.pot2, 0, 255, 0, 25);  
  
  // Elevator control
  elevatorValue = map(data.j2PotY, 0, 255, (85 - travelAdjust), (35 + travelAdjust));
  elevatorServo.write(elevatorValue);
  
  // Ailerons control
  aileron1Value = map(data.j2PotX, 0, 255, (10 + travelAdjust), (80 - travelAdjust));
  aileron1Servo.write(aileron1Value);
  aileron2Servo.write(aileron1Value);

  // Rudder trimming function
  if (data.j1PotX > 127) {
    rudderValue = data.pot1 + (data.j1PotX - 127);
  }
  if (data.j1PotX < 127) {
    rudderValue = data.pot1 - (127 - data.j1PotX);
  }
  // Rudder control
  rudderValue = map(rudderValue, 0, 255, (10 + travelAdjust), (90 - travelAdjust));
  rudderServo.write(rudderValue);

  // Monitor the battery voltage
  int sensorValue = analogRead(A3);
  float voltage = sensorValue * (5.00 / 1023.00) * 3; // Convert the reading values from 5v to suitable 12V i
  // If voltage is below 11V turn on the LED
  if (voltage < 11) {
    digitalWrite(led, HIGH);
  }
  else {
    digitalWrite(led, LOW);
  }
}
void resetData() {
  // Reset the values when there is no radio connection - Set initial default values
  data.j1PotX = 127;
  data.j1PotY = 80; // Motors stops // the central point of the joystick is not starting point for the throttle, its at value of 80 instead of 127
  data.j2PotX = 127;
  data.j2PotY = 127;
  data.j1Button = 1;
  data.j2Button = 1;
  data.pot1 = 1;
  data.pot2 = 1;
  data.tSwitch1 = 1;
  data.tSwitch2 = 1;
  data.button1 = 1;
  data.button2 = 1;
  data.button3 = 1;
  data.button4 = 1;
}Code language: Arduino (arduino)

Deskripsi: I will just quickly explain the main functions of the code and for all other details you can check the previous tutorial. So, after receiving the data coming from the transmitter, we use the Joystick1 Y axis value for controlling the throttle of the airplane. We convert the values from 80 to 255 coming from the transmitter into values from 1000 to 2000 which are used for controlling the brushless motor.

For controlling the elevator, we use the Joystick2 Y axis value which we convert to values from 85 to 35. These values directly set the position of the servo motor in degrees. Right next to them we can note that we have the travelAdjust variables, which value depends on the position of the right potentiometer. We actually use that value to decrease the position or the movement of the servos although the joysticks will go to their maximum position.

The same principle is applied for controlling the ailerons and the rudder.  Additionally, we use the data from the left potentiometer to adjust the neutral point of the rudder.

Lastly, using the analogRead() function and some math we control the battery voltage indicator LED.

So that’s it. I would like to hear your thoughts about this project in the comments section below, especially from you who have experience with building and flying RC airplanes. For those who are beginners and thinking of getting into this, I would suggest to check the FliteTest YouTube channel because it’s an amazing resource for learning about this RC world. I will put a link to it in the description.

I hope you enjoyed this project and learned something new. Feel free to ask any question in the comments section below and don’t forget to check my Arduino Projects Collection.


Proses manufaktur

  1. DIY LUMAZOID Arduino Music Visualizer
  2. Membuat Mesin Tulis Pekerjaan Rumah DIY di Rumah
  3. Konsol Pengeditan Photoshop DIY menggunakan Arduino Nano RP 2040
  4. Voltmeter DIY Menggunakan Arduino dan Smartphone
  5. Skateboard Realitas Virtual DIY
  6. Osiloskop DIY 10Hz-50kHz pada Layar LCD 128x64
  7. DIY Arduino RADIONICS Treatment MMachine
  8. Simulator Balap Gerak 2D DIY
  9. Lengan Robot Lokal dan Jarak Jauh yang Dapat Diprogram
  10. Ide DIY dengan RFID