Daftar Isi:

Arduino Drone Dengan GPS: 16 Langkah
Arduino Drone Dengan GPS: 16 Langkah

Video: Arduino Drone Dengan GPS: 16 Langkah

Video: Arduino Drone Dengan GPS: 16 Langkah
Video: Tutorial - Menggerakan Walkera G-2D di Bayangtoys X16 GPS dengan Arduino Nano 3 CH340 2024, Juli
Anonim
Arduino Drone Dengan GPS
Arduino Drone Dengan GPS

Kami mulai membangun drone quadcopter first-person-view (FPV) yang dikontrol dan distabilkan oleh Arduino dengan fungsi kembali ke rumah, pergi ke koordinat, dan GPS hold. Kami secara naif berasumsi bahwa menggabungkan program Arduino yang ada dan pengkabelan untuk quadcopter tanpa GPS dengan sistem transmisi GPS akan relatif mudah dan kami dapat dengan cepat beralih ke tugas pemrograman yang lebih kompleks. Namun, jumlah yang mengejutkan harus diubah untuk menyatukan kedua proyek ini, dan dengan demikian kami akhirnya membuat quadcopter FPV berkemampuan GPS, tanpa fungsionalitas tambahan apa pun.

Kami telah menyertakan petunjuk tentang cara mereplikasi produk kami jika Anda senang dengan quadcopter yang lebih terbatas.

Kami juga telah menyertakan semua langkah yang kami ambil dalam perjalanan menuju quadcopter yang lebih otonom. Jika Anda merasa nyaman menggali lebih dalam ke Arduino atau sudah memiliki banyak pengalaman Arduino dan ingin menjadikan titik perhentian kami sebagai titik awal untuk eksplorasi Anda sendiri, maka Instruksi ini juga untuk Anda.

Ini adalah proyek yang bagus untuk mempelajari sesuatu tentang membangun dan membuat kode untuk Arduino tidak peduli berapa banyak pengalaman yang Anda miliki. Juga, Anda diharapkan akan pergi dengan drone.

Pengaturannya adalah sebagai berikut:

Dalam daftar bahan, bagian tanpa tanda bintang diperlukan untuk kedua tujuan.

Bagian dengan satu tanda bintang hanya diperlukan untuk proyek yang belum selesai dari quadcopter yang lebih otonom.

Bagian dengan dua tanda bintang diperlukan hanya untuk quadcopter yang lebih terbatas.

Langkah-langkah umum untuk kedua proyek tidak memiliki penanda setelah judul

Langkah-langkah yang hanya diperlukan untuk quadcopter non-otonom yang lebih terbatas memiliki "(Uno)" setelah judul.

Langkah-langkah yang hanya diperlukan untuk quadcopter otonom yang sedang dalam proses memiliki "(Mega)" setelah judul.

Untuk membangun quad berbasis Uno, ikuti langkah-langkah secara berurutan, lewati setiap langkah dengan "(Mega)" setelah judul.

Untuk mengerjakan quad berbasis Mega, ikuti langkah-langkah secara berurutan, lewati setiap langkah dengan "(Uno)" setelah judul.

Langkah 1: Kumpulkan Bahan

Komponen:

1) Satu bingkai quadcopter (bingkai yang tepat mungkin tidak masalah) ($15)

2) Empat motor brushless 2830, 900kV (atau yang serupa), dan empat paket aksesori pemasangan (4x$6 + 4x$4 = total $40)

3) Empat ESC UBEC 20A (total 4x$10 = $40)

4) Satu papan distribusi daya (dengan koneksi XT-60) ($20)

5) Satu 3s, baterai LiPo 3000-5000mAh dengan koneksi XT-60 (3000mAh sesuai dengan sekitar 20 menit waktu penerbangan) ($25)

6) Banyak baling-baling (ini sangat rusak) ($10)

7) Satu Arduino Mega 2560* ($40)

8) Satu Arduino Uno R3 ($20)

9) Arduino Uno R3** kedua ($20)

10) Satu Arduino Ultimate GPS Shield (Anda tidak memerlukan pelindung, tetapi menggunakan GPS yang berbeda akan membutuhkan kabel yang berbeda) ($45)

11) Dua transceiver nirkabel HC-12 (2x$5 = $10)

12) Satu MPU-6050, 6DOF (derajat kebebasan) gyro/akselerometer ($5)

13) Satu Turnigy 9x 2.4GHz, pasangan pemancar/penerima 9 saluran ($70)

14) Arduino female (stackable) header ($20)

15) Pengisi daya LiPo Battery Balance (dan adaptor 12V DC, tidak termasuk) ($20)

17) USB A ke B kabel adaptor pria ke pria ($5)

17) Lakban

18) Kecilkan tabung

Peralatan:

1) Besi solder

2) Solder

3) Epoxy Plastik

4) Lebih ringan

5) penari telanjang kawat

6) Satu set kunci pas Allen

Komponen opsional untuk transmisi video FPV (tampilan orang pertama) waktu nyata:

1) Kamera FPV kecil (ini menautkan ke kamera yang cukup murah dan berkualitas buruk yang kami gunakan, Anda dapat mengganti yang lebih baik) ($20)

2) Pasangan pemancar/penerima video 5.6GHz (832 model digunakan) ($30)

3) Baterai LiPo 500mAh, 3s (11.1V) ($7) (kami menggunakan dengan banana plug, tetapi kami menyarankan Anda untuk menggunakan baterai yang terhubung, karena memiliki konektor yang kompatibel dengan pemancar TS832, dan dengan demikian tidak t memerlukan solder).

4) 2 1000mAh 2s (7.4V) baterai LiPo, atau serupa ($5). Jumlah mAh tidak penting selama lebih dari 1000mAh atau lebih. Pernyataan yang sama seperti di atas berlaku untuk jenis steker untuk salah satu dari dua baterai. Yang lain akan digunakan untuk menyalakan monitor, jadi Anda harus menyolder apa pun yang terjadi. Mungkin yang terbaik untuk mendapatkannya dengan steker XT-60 untuk ini (itulah yang kami lakukan). Tautan untuk jenis itu ada di sini: LiPo 1000mAh 2s (7.4V) dengan colokan XT-60

5) Monitor LCD (opsional) ($15). Anda juga dapat menggunakan adaptor AV-USB dan perangkat lunak penyalinan DVD untuk melihat langsung di laptop. Ini juga memberikan pilihan untuk merekam video dan foto, daripada hanya melihatnya secara realtime.

6) Jika Anda membeli baterai dengan colokan yang berbeda dari yang terhubung, Anda mungkin memerlukan adaptor yang sesuai. Apapun, dapatkan adaptor yang sesuai dengan steker untuk baterai yang memberi daya pada monitor. Di sinilah untuk mendapatkan adaptor XT-60

* = hanya untuk proyek yang lebih maju

** = hanya untuk proyek yang lebih mendasar

Biaya:

Jika memulai dari awal (tetapi dengan besi solder, dll…), tidak ada sistem FPV: ~$370

Jika Anda sudah memiliki pemancar/penerima RC, pengisi daya baterai LiPo, dan baterai LiPo: ~$260

Biaya sistem FPV: $80

Langkah 2: Pasang Bingkai

Merakit Bingkai
Merakit Bingkai
Merakit Bingkai
Merakit Bingkai
Merakit Bingkai
Merakit Bingkai

Langkah ini cukup mudah, terutama jika menggunakan bingkai pre-made yang sama dengan yang kita gunakan. Cukup gunakan sekrup yang disertakan dan satukan bingkai seperti yang ditunjukkan, menggunakan kunci pas atau obeng yang sesuai untuk bingkai Anda. Pastikan lengan dengan warna yang sama berdekatan satu sama lain (seperti pada gambar ini), sehingga drone memiliki bagian depan dan belakang yang jelas. Selanjutnya, pastikan bagian panjang pelat bawah menonjol di antara lengan yang berwarna berlawanan. Ini menjadi penting nantinya.

Langkah 3: Pasang Motor dan Hubungkan Escs

Pasang Motor dan Hubungkan Escs
Pasang Motor dan Hubungkan Escs
Pasang Motor dan Hubungkan Escs
Pasang Motor dan Hubungkan Escs
Pasang Motor dan Hubungkan Escs
Pasang Motor dan Hubungkan Escs
Pasang Motor dan Hubungkan Escs
Pasang Motor dan Hubungkan Escs

Sekarang setelah bingkai terpasang, keluarkan empat motor dan empat aksesori pemasangan. Anda dapat menggunakan sekrup yang disertakan dalam set pemasangan, atau sekrup yang tersisa dari rangka quadcopter untuk memasang motor dan dudukan pada tempatnya. Jika Anda membeli tunggangan yang telah kami tautkan, Anda akan menerima dua komponen tambahan, seperti yang digambarkan di atas. Kami memiliki performa motor yang baik tanpa bagian-bagian ini, jadi kami meninggalkannya untuk mengurangi bobot.

Setelah motor disekrup pada tempatnya, epoksi papan distribusi daya (PDB) pada tempatnya di atas pelat atas rangka quadcopter. Pastikan Anda mengarahkannya sedemikian rupa sehingga konektor baterai mengarah di antara lengan dengan warna berbeda (sejajar dengan salah satu bagian panjang pelat bawah), seperti pada gambar di atas.

Anda juga harus memiliki empat kerucut baling-baling dengan ulir betina. Sisihkan ini untuk saat ini.

Sekarang keluarkan ESC Anda. Satu sisi akan memiliki dua kabel yang keluar darinya, satu merah dan satu hitam. Untuk masing-masing dari empat ESC, masukkan kabel merah ke konektor positif pada PDB dan hitam ke negatif. Perhatikan bahwa jika Anda menggunakan PDB yang berbeda, langkah ini mungkin memerlukan penyolderan. Sekarang hubungkan masing-masing dari tiga kabel yang keluar dari masing-masing motor. Pada titik ini, tidak masalah kabel ESC mana yang Anda sambungkan dengan kabel motor mana (selama Anda menghubungkan semua kabel dari satu ESC dengan motor yang sama!) Anda akan memperbaiki polaritas mundur nanti. Tidak berbahaya jika kabel dibalik; itu hanya mengakibatkan motor berputar mundur.

Langkah 4: Siapkan Arduino dan Perisai

Siapkan Arduino dan Perisai
Siapkan Arduino dan Perisai
Siapkan Arduino dan Perisai
Siapkan Arduino dan Perisai

Catatan sebelum Anda mulai

Pertama, Anda dapat memilih untuk menyolder semua kabel secara langsung. Namun, kami merasa sangat berharga untuk menggunakan pin header karena mereka memberikan banyak fleksibilitas untuk pemecahan masalah dan mengadaptasi proyek. Berikut ini adalah deskripsi dari apa yang kami lakukan (dan merekomendasikan orang lain lakukan).

Siapkan Arduino dan perisai

Keluarkan Arduino Mega Anda (atau Uno jika melakukan quad non-otonom), pelindung GPS, dan header yang dapat ditumpuk. Solder ujung jantan dari header yang dapat ditumpuk pada tempatnya pada pelindung GPS, di deretan pin yang sejajar dengan pin yang telah disolder sebelumnya, seperti yang ditunjukkan pada gambar di atas. Juga solder di header stackable pada baris pin berlabel 3V, CD, … RX. Gunakan pemotong kawat untuk memotong kelebihan panjang pada pin yang mencuat di bagian bawah. Tempatkan header pria dengan atasan bengkok di semua header yang dapat ditumpuk ini. Ini adalah tempat Anda akan menyolder kabel untuk komponen lainnya.

Pasang pelindung GPS ke atas, pastikan pin cocok dengan yang ada di Arduino (Mega atau Uno). Perhatikan bahwa jika menggunakan Mega, banyak Arduino masih akan terbuka setelah Anda memasang pelindung.

Tempatkan pita listrik di bagian bawah Arduino, menutupi semua solder pin yang terbuka, untuk mencegah korsleting saat Arduino bertumpu pada PDB.

Langkah 5: Hubungkan Komponen Bersama dan Tempatkan Baterai (Uno)

Hubungkan Komponen Bersama dan Tempatkan Baterai (Uno)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Uno)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Uno)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Uno)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Uno)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Uno)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Uno)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Uno)

Skema di atas hampir identik dengan yang dibuat oleh Joop Brooking karena kami sangat mendasarkan desain kami darinya.

*Perhatikan bahwa skema ini mengasumsikan pelindung GPS yang dipasang dengan benar, dan karenanya GPS tidak muncul dalam skema ini.

Skema di atas disiapkan menggunakan perangkat lunak Fritzing, yang sangat direkomendasikan terutama untuk skema yang melibatkan Arduino. Kami sebagian besar menggunakan bagian generik yang dapat diedit secara fleksibel, karena bagian kami umumnya tidak ada di perpustakaan bagian Fritzing yang disertakan.

-Pastikan sakelar pada pelindung GPS dialihkan ke "Tulis Langsung".

-Sekarang pasang semua komponen sesuai dengan skema di atas (kecuali baterai!) (Catatan penting tentang kabel data GPS di bawah).

-Perhatikan bahwa Anda telah menghubungkan ESC ke motor dan PDB, jadi bagian skema ini sudah selesai.

-Selanjutnya, perhatikan bahwa data GPS (kabel kuning) keluar dari pin 0 dan 1 pada Arduino (bukan pin Tx dan Rx yang terpisah pada GPS). Itu karena dikonfigurasi ke "Direct Write" (lihat di bawah), output GPS langsung ke port serial perangkat keras pada uno (pin 0 dan 1). Ini paling jelas ditunjukkan pada gambar kedua di atas dari kabel lengkap.

-Saat memasang kabel penerima RC, lihat gambar di atas. Perhatikan bahwa kabel data masuk ke baris atas, sedangkan Vin dan Gnd masing-masing berada di baris kedua dan ketiga (dan pada kolom pin kedua hingga terjauh).

-Untuk melakukan pengkabelan untuk transceiver HC-12, penerima RC, dan 5Vout dari PDB ke Vin Arduino kami menggunakan header yang dapat ditumpuk, sedangkan untuk gyro kami menyolder kabel langsung ke papan dan menggunakan tabung heat-shrink di sekitar pateri. Anda dapat memilih untuk melakukan salah satu komponen, namun menyolder langsung ke gyro disarankan karena menghemat ruang yang membuat bagian kecil lebih mudah dipasang. Menggunakan header adalah sedikit lebih banyak pekerjaan di depan, tetapi memberikan lebih banyak fleksibilitas. Menyolder kabel secara langsung adalah koneksi yang lebih aman dalam jangka panjang, namun berarti menggunakan komponen itu pada proyek lain lebih sulit. Perhatikan bahwa jika Anda telah menggunakan header pada pelindung GPS, Anda masih memiliki fleksibilitas yang layak terlepas dari apa yang Anda lakukan. Yang terpenting, pastikan bahwa kabel data GPS di pin 0 dan 1 pada GPS mudah dilepas dan diganti.

Pada akhir proyek kami, kami tidak dapat merancang metode yang baik untuk memasang semua komponen kami ke bingkai. Karena tekanan waktu kelas kami, solusi kami umumnya berkisar pada pita busa dua sisi, lakban, pita listrik, dan ikatan ritsleting. Kami sangat menyarankan Anda menghabiskan lebih banyak waktu merancang struktur pemasangan yang stabil jika Anda merencanakan ini menjadi proyek jangka panjang. Dengan semua itu, jika Anda hanya ingin membuat prototipe cepat, silakan ikuti proses kami. Namun, pastikan gyro terpasang dengan aman. Ini adalah satu-satunya cara Arduino tahu apa yang dilakukan quadcopter, jadi jika bergerak dalam penerbangan, Anda akan mengalami masalah.

Dengan semua kabel terpasang dan terpasang, ambil baterai LiPo Anda dan geser di antara pelat atas dan bawah bingkai. Pastikan konektornya mengarah ke arah yang sama dengan konektor PDB, dan mereka benar-benar dapat terhubung. Kami menggunakan selotip untuk menahan baterai di tempatnya (pita velcro juga berfungsi, tetapi lebih mengganggu daripada selotip). Lakban berfungsi dengan baik karena seseorang dapat dengan mudah mengganti baterai atau melepasnya untuk mengisi daya. Namun, Anda harus yakin bahwa Anda menempelkan baterai dengan KERAS, seolah-olah baterai bergerak selama penerbangan, hal ini dapat mengganggu keseimbangan drone. JANGAN sambungkan baterai ke PDB dulu.

Langkah 6: Hubungkan Komponen Bersama dan Tempatkan Baterai (Mega)

Hubungkan Komponen Bersama dan Tempatkan Baterai (Mega)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Mega)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Mega)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Mega)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Mega)
Hubungkan Komponen Bersama dan Tempatkan Baterai (Mega)

Skema di atas disiapkan menggunakan perangkat lunak Fritzing, yang sangat direkomendasikan terutama untuk skema yang melibatkan arduino. Kami sebagian besar menggunakan suku cadang generik, karena suku cadang kami umumnya tidak ada di perpustakaan bagian Fritzing yang disertakan.

-Perhatikan bahwa skema ini mengasumsikan pelindung GPS yang dipasang dengan benar, dan dengan demikian GPS tidak muncul dalam skema ini.

-Putar sakelar pada Mega 2560 Anda ke "Soft Serial."

-Sekarang pasang semua komponen sesuai dengan skema di atas (kecuali baterai!)

-Perhatikan bahwa Anda telah menghubungkan ESC ke motor dan PDB, jadi bagian skema ini sudah selesai.

-Kabel jumper dari Pin 8 ke Rx dan Pin 7 ke Tx ada karena (tidak seperti Uno, yang perisai ini dibuat), mega tidak memiliki universal asynchronous receiver-transmitter (UART) pada pin 7 dan 8, dan dengan demikian kita harus menggunakan pin serial hardware. Ada lebih banyak alasan mengapa kita membutuhkan pin serial perangkat keras, yang akan dibahas nanti.

-Saat memasang kabel penerima RC, lihat gambar di atas. Perhatikan bahwa kabel data masuk ke baris atas, sedangkan Vin dan Gnd masing-masing berada di baris kedua dan ketiga (dan pada kolom pin kedua hingga terjauh).

-Untuk melakukan pengkabelan untuk transceiver HC-12, penerima RC, dan 5Vout dari PDB ke Vin Arduino kami menggunakan header stackable, sedangkan untuk gyro kami menyolder kabel secara langsung dan menggunakan tabung heat-shrink di sekitar solder. Anda dapat memilih untuk melakukan salah satu komponen. Menggunakan header adalah sedikit lebih banyak pekerjaan di depan, tetapi memberikan lebih banyak fleksibilitas. Menyolder kabel secara langsung adalah koneksi jangka panjang yang lebih aman, namun berarti menggunakan komponen itu pada proyek lain lebih sulit. Perhatikan bahwa jika Anda telah menggunakan header pada pelindung GPS, Anda masih memiliki fleksibilitas yang layak terlepas dari apa yang Anda lakukan.

Pada akhir proyek kami, kami tidak dapat merancang metode yang baik untuk memasang semua komponen kami ke bingkai. Karena tekanan waktu kelas kami, solusi kami umumnya berkisar pada pita busa dua sisi, lakban, pita listrik, dan ikatan ritsleting. Kami sangat menyarankan Anda menghabiskan lebih banyak waktu merancang struktur pemasangan yang stabil jika Anda merencanakan ini menjadi proyek jangka panjang. Dengan semua itu, jika Anda hanya ingin membuat prototipe cepat, silakan ikuti proses kami. Namun, pastikan gyro terpasang dengan aman. Ini adalah satu-satunya cara Arduino tahu apa yang dilakukan quadcopter, jadi jika bergerak dalam penerbangan, Anda akan mengalami masalah.

Dengan semua kabel terpasang dan terpasang, ambil baterai LiPo Anda dan geser di antara pelat atas dan bawah bingkai. Pastikan konektornya mengarah ke arah yang sama dengan konektor PDB, dan mereka benar-benar dapat terhubung. Kami menggunakan lakban untuk menahan baterai di tempatnya (pita velcro juga berfungsi, tetapi lebih mengganggu daripada lakban). Lakban berfungsi dengan baik karena seseorang dapat dengan mudah mengganti baterai atau melepasnya untuk mengisi daya. Namun, Anda harus yakin bahwa Anda menempelkan baterai dengan KERAS, seolah-olah baterai bergerak selama penerbangan, hal ini dapat mengganggu keseimbangan drone. JANGAN sambungkan baterai ke PDB dulu.

Langkah 7: Ikat Penerima

mengikat penerima
mengikat penerima
mengikat penerima
mengikat penerima

Ambil penerima RC dan hubungkan sementara ke catu daya 5V (baik dengan menyalakan Arduino dengan daya USB atau 9V, atau dengan catu daya terpisah. Jangan sambungkan LiPo ke Arduino). Ambil pin pengikat yang disertakan dengan penerima RC dan letakkan di pin BIND pada penerima. Bergantian, pendekkan pin atas dan bawah di kolom BIND seperti yang ditunjukkan pada foto di atas. Lampu merah harus berkedip cepat pada penerima. Sekarang ambil pengontrol dan tekan tombol di bagian belakang saat dimatikan, seperti yang ditunjukkan di atas. Dengan tombol ditekan, hidupkan pengontrol. Sekarang lampu berkedip pada penerima harus menjadi solid. Penerima terikat. Lepaskan kabel pengikat. Jika Anda menggunakan catu daya yang berbeda, sambungkan kembali penerima ke 5V dari Arduino.

Langkah 8: (Opsional) Hubungkan Bersama dan Pasang Sistem Kamera FPV

(Opsional) Hubungkan dan Pasang Sistem Kamera FPV
(Opsional) Hubungkan dan Pasang Sistem Kamera FPV
(Opsional) Hubungkan dan Pasang Sistem Kamera FPV
(Opsional) Hubungkan dan Pasang Sistem Kamera FPV

Pertama, solder bersama adaptor XT-60 dengan kabel daya dan ground pada monitor. Ini mungkin berbeda dari monitor ke monitor, tetapi daya hampir selalu merah, tanah hampir selalu hitam. Sekarang masukkan adaptor dengan kabel yang disolder ke LiPo 1000mAh Anda dengan steker XT-60. Monitor harus menyala dengan (biasanya) latar belakang biru. Itu langkah tersulit!

Sekarang pasang antena pada penerima dan pemancar Anda.

Hubungkan Lipo 500mAh kecil Anda ke pemancar. Pin paling kanan (tepat di bawah antena) adalah ground (V_) baterai, pin berikutnya di sebelah kiri adalah V+. Mereka datang tiga kabel yang masuk ke kamera. Kamera Anda harus dilengkapi dengan colokan tiga-dalam-satu yang pas dengan pemancar. Pastikan Anda memiliki kabel data kuning di tengah. Jika Anda menggunakan baterai yang kami tautkan dengan colokan yang dimaksudkan untuk ini, langkah ini tidak memerlukan penyolderan apa pun.

Terakhir, sambungkan baterai 1000mAh Anda yang lain dengan kabel DC out yang disertakan dengan receiver Anda, dan sambungkan ke port DC di receiver Anda. Terakhir, sambungkan ujung hitam kabel AVin yang disertakan dengan receiver Anda ke port AVin di receiver Anda, dan ujung lainnya (kuning, betina) ke ujung kuning jantan kabel AVin monitor Anda.

Pada titik ini, Anda seharusnya dapat melihat tampilan kamera di monitor. Jika Anda tidak bisa, pastikan penerima dan pemancar keduanya menyala (Anda akan melihat angka di layar kecilnya) dan keduanya berada di saluran yang sama (kami menggunakan saluran 11 untuk keduanya dan berhasil dengan baik). Selanjutnya, Anda mungkin perlu mengubah saluran pada monitor.

Pasang komponen pada bingkai.

Setelah pengaturan berfungsi, cabut baterai sampai Anda siap untuk terbang.

Langkah 9: Siapkan Penerimaan Data GPS

Mengatur Penerimaan Data GPS
Mengatur Penerimaan Data GPS
Mengatur Penerimaan Data GPS
Mengatur Penerimaan Data GPS

Hubungkan Arduino kedua Anda dengan transceiver HC-12 kedua Anda seperti yang ditunjukkan pada skema di atas, dengan mengingat bahwa pengaturan hanya akan diaktifkan seperti yang ditampilkan jika dicolokkan ke komputer. Unduh kode transceiver yang disediakan, buka monitor serial Anda ke 9600 baud.

Jika menggunakan pengaturan yang lebih mendasar, Anda harus mulai menerima kalimat GPS jika pelindung GPS Anda diberi daya dan disambungkan dengan benar ke transceiver HC-12 lainnya (dan jika sakelar pada pelindung aktif "Tulis Langsung").

Dengan Mega, pastikan sakelar berada di "Soft Serial."

Langkah 10: Lakukan Setup Code (Uno)

Kode ini identik dengan yang digunakan oleh Joop Brokking dalam tutorial quadcopter Arduino-nya, dan dia pantas mendapatkan semua pujian untuk penulisannya.

Dengan baterai terputus, gunakan kabel USB untuk menghubungkan komputer Anda ke Arduino, dan unggah Kode Pengaturan yang terlampir. Nyalakan pemancar RC Anda. Buka monitor serial Anda ke 57600 baud dan ikuti petunjuknya.

Kesalahan Umum:

Jika kode gagal diunggah, pastikan pin 0 dan 1 dicabut pada pelindung UNO/GPS. Ini adalah port perangkat keras yang sama yang digunakan perangkat untuk berkomunikasi dengan komputer, jadi harus gratis.

Jika kode melewati beberapa langkah sekaligus, periksa apakah sakelar GPS Anda dalam posisi "Tulis Langsung".

Jika tidak ada penerima yang terdeteksi, pastikan ada lampu merah menyala (tapi redup) pada penerima Anda saat pemancar menyala. Jika demikian, periksa kabelnya.

Jika tidak ada gyro yang terdeteksi, ini bisa jadi karena gyro rusak atau jika Anda memiliki jenis gyro yang berbeda dari tujuan penulisan kode.

Langkah 11: Lakukan Setup Code (Mega)

Kode ini identik dengan yang digunakan oleh Joop Brokking dalam tutorial quadcopter Arduino-nya, dan dia pantas mendapatkan semua pujian untuk penulisannya. Kami hanya mengadaptasi kabel untuk Mega sehingga input penerima sesuai dengan pin Interupsi Perubahan Pin yang benar.

Dengan baterai terputus, gunakan kabel USB untuk menghubungkan komputer Anda ke Arduino, dan unggah Kode Pengaturan yang terlampir. Buka monitor serial Anda ke 57600 baud dan ikuti petunjuknya.

Langkah 12: Kalibrasi ESC (Uno)

Sekali lagi, kode ini identik dengan kode Joop Brokking. Semua modifikasi dilakukan dalam upaya untuk mengintegrasikan GPS dan Arduino dan dapat ditemukan nanti, dalam deskripsi konstruksi quadcopter yang lebih maju.

Unggah kode kalibrasi ESC terlampir. Pada monitor serial, tulis huruf 'r' dan tekan kembali. Anda akan mulai melihat nilai pengontrol RC waktu nyata terdaftar. Verifikasi bahwa mereka bervariasi dari 1000 hingga 2000 pada ekstrem throttle, roll, pitch, dan yaw. Kemudian tulis 'a' dan tekan kembali. Biarkan kalibrasi gyro berjalan, dan kemudian verifikasi bahwa gyro mencatat gerakan quad. Sekarang cabut arduino dari komputer, dorong throttle sepenuhnya ke atas pada pengontrol, dan sambungkan baterai. ESC harus memutar ton bip yang berbeda (tetapi ini mungkin berbeda tergantung pada ESC dan firmware-nya). Dorong throttle sepenuhnya ke bawah. ESC harus mengeluarkan bunyi bip yang lebih rendah, lalu diam. Cabut baterai.

Secara opsional, saat ini Anda dapat menggunakan kerucut yang disertakan dengan paket aksesori pemasangan motor Anda untuk mengencangkan baling-baling dengan kencang. Kemudian masukkan angka 1 - 4 pada serial monitor untuk menyalakan motor masing-masing 1 - 4, pada daya terendah. Program akan mencatat jumlah guncangan karena ketidakseimbangan alat peraga. Anda dapat mencoba memperbaikinya dengan menambahkan sedikit selotip di satu sisi atau sisi lain dari alat peraga. Kami menemukan bahwa kami bisa terbang dengan baik tanpa langkah ini, tetapi mungkin sedikit kurang efisien dan lebih keras daripada kami menyeimbangkan alat peraga.

Langkah 13: Kalibrasi ESC (Mega)

Kode ini sangat mirip dengan kode Brokking, namun kami mengadaptasinya (dan kabel yang sesuai) untuk bekerja dengan Mega.

Unggah kode kalibrasi ESC terlampir. Pada monitor serial, tulis huruf 'r' dan tekan kembali. Anda akan mulai melihat nilai pengontrol RC waktu nyata terdaftar. Verifikasi bahwa mereka bervariasi dari 1000 hingga 2000 pada ekstrem throttle, roll, pitch, dan yaw.

Kemudian tulis 'a' dan tekan kembali. Biarkan kalibrasi gyro berjalan, dan kemudian verifikasi bahwa gyro mencatat gerakan quad.

Sekarang cabut arduino dari komputer, dorong throttle sepenuhnya ke atas pada pengontrol, dan sambungkan baterai. ESC harus mengeluarkan tiga bunyi bip rendah diikuti dengan bunyi bip tinggi (tetapi ini mungkin berbeda tergantung pada ESC dan firmware-nya). Dorong throttle sepenuhnya ke bawah. Cabut baterai.

Perubahan yang kami buat pada kode ini adalah beralih dari menggunakan PORTD untuk pin ESC menjadi menggunakan PORTA dan kemudian mengubah byte yang ditulis ke port ini sehingga kami mengaktifkan pin yang tepat seperti yang ditunjukkan pada skema pengkabelan. Perubahan ini karena pin register PORTD tidak berada di lokasi yang sama di Mega seperti di Uno. Kami belum dapat menguji kode ini sepenuhnya karena kami bekerja dengan Mega lama yang tidak bermerek yang dimiliki toko sekolah kami. Ini berarti bahwa untuk beberapa alasan tidak semua pin register PORTA dapat mengaktifkan ESC dengan benar. Kami juga mengalami masalah dengan menggunakan atau sama dengan operator (|=) di beberapa kode pengujian kami. Kami tidak yakin mengapa ini menyebabkan masalah saat menulis byte untuk mengatur tegangan pin ESC, jadi kami memodifikasi kode Brooking sesedikit mungkin. Kami pikir kode ini sangat dekat dengan fungsional, tetapi jarak tempuh Anda mungkin berbeda.

Langkah 14: Dapatkan Airborne!! (Tidak)

Dan sekali lagi, kode jenius ketiga ini adalah karya Joop Brokking. Perubahan pada ketiga bagian kode ini hanya ada dalam upaya integrasi data GPS ke Arduino.

Dengan baling-baling Anda terpasang dengan kuat ke bingkai dan semua komponen diikat, direkatkan, atau dipasang, muat kode pengontrol penerbangan ke Arduino Anda, lalu cabut Arduino dari komputer Anda.

Bawa quadcopter Anda ke luar, pasang baterai dan nyalakan pemancar Anda. Secara opsional, bawalah laptop yang terhubung ke pengaturan penerimaan GPS Anda serta pengaturan dan monitor penerimaan video Anda. Muat kode transceiver ke Arduino terestrial Anda, buka monitor serial Anda ke 9600 baud dan lihat data GPS masuk.

Sekarang Anda siap untuk terbang. Dorong throttle ke bawah dan yaw ke kiri untuk mempersenjatai quadcopter, lalu dengan lembut angkat throttle untuk melayang. Mulailah dengan terbang rendah ke tanah dan di atas permukaan lembut seperti rumput sampai Anda merasa nyaman.

Lihat video tertanam kami dengan bersemangat menerbangkan drone saat pertama kali kami dapat membuat drone dan GPS bekerja secara bersamaan.

Langkah 15: Dapatkan Airborne!! (Mega)

Karena hangup kami dengan kode kalibrasi ESC untuk Mega, kami tidak pernah dapat membuat kode pengontrol penerbangan untuk papan ini. Jika Anda telah sampai pada titik ini, maka saya membayangkan bahwa Anda setidaknya telah mengutak-atik kode kalibrasi ESC untuk membuatnya bekerja untuk Mega. Oleh karena itu, Anda mungkin harus membuat modifikasi serupa pada kode pengontrol penerbangan seperti yang Anda buat pada langkah terakhir. Jika kode kalibrasi ESC kami untuk Mega bekerja secara ajaib tanpa modifikasi lain, maka hanya ada beberapa hal yang harus Anda lakukan pada kode stok untuk membuatnya berfungsi untuk langkah ini. Anda harus terlebih dahulu melalui dan mengganti semua instance PORTD dengan PORTA. Juga, jangan lupa untuk mengubah DDRD ke DDRA. Kemudian, Anda perlu mengubah semua byte yang ditulis ke register PORTA sehingga mereka mengaktifkan pin yang tepat. Untuk melakukan ini, gunakan byte B11000011 untuk mengatur pin ke high dan B00111100 untuk mengatur pin ke low. Semoga Sukses, dan beri tahu kami jika Anda berhasil terbang menggunakan Mega!

Langkah 16: Bagaimana Kami Sampai Di Tempat Kami Saat Ini Dengan Desain Mega

Proyek ini merupakan pengalaman belajar yang luar biasa bagi kami sebagai Arduino dan pemula hobi elektronik. Oleh karena itu, kami pikir kami akan menyertakan kisah semua yang kami temui saat mencoba mengaktifkan GPS kode Joop Brokking. Karena kode Brokking sangat teliti dan jauh lebih rumit daripada apa pun yang kami tulis, kami memutuskan untuk memodifikasinya sesedikit mungkin. Kami mencoba mendapatkan pelindung GPS untuk mengirim data ke Arduino dan kemudian meminta Arduino mengirimkan informasi itu kepada kami melalui transceiver HC12 tanpa mengubah kode penerbangan atau kabel dengan cara apa pun. Setelah melihat skema dan pengkabelan Arduino Uno kami untuk mengetahui pin apa yang tersedia, kami mengubah kode transceiver GPS yang kami gunakan untuk mengatasi desain yang ada. Kemudian kami mengujinya untuk memastikan semuanya berfungsi. Pada titik ini, segalanya tampak menjanjikan.

Langkah selanjutnya adalah mengintegrasikan kode yang baru saja kami modifikasi dan uji dengan pengontrol penerbangan Brokking. Ini tidak terlalu sulit, tetapi kami dengan cepat mengalami kesalahan. Pengontrol penerbangan Brokking bergantung pada perpustakaan Arduino Wire dan EEPROM sementara kode GPS kami menggunakan perpustakaan Software Serial dan perpustakaan Arduino GPS. Karena Wire Library mereferensikan library Software Serial, kami mengalami kesalahan di mana kode tidak dapat dikompilasi karena ada "beberapa definisi untuk _vector 3_", apa pun artinya. Setelah mencari di Google dan menggali-gali di perpustakaan, kami akhirnya menyadari bahwa konflik perpustakaan ini membuat tidak mungkin untuk menggunakan potongan kode ini bersama-sama. Jadi, kami pergi mencari alternatif.

Apa yang kami temukan adalah bahwa satu-satunya kombinasi pustaka yang tidak menimbulkan kesalahan pada kami adalah mengalihkan pustaka GPS standar ke neoGPS dan kemudian menggunakan AltSoftSerial alih-alih Serial Perangkat Lunak. Kombinasi ini berhasil, namun AltSoftSerial hanya dapat beroperasi dengan pin tertentu, yang tidak tersedia dalam desain kami. Hal inilah yang mendorong kami untuk menggunakan Mega. Arduino Megas memiliki beberapa port serial perangkat keras, yang berarti bahwa kita dapat melewati konflik perpustakaan ini dengan tidak perlu membuka port serial perangkat lunak sama sekali.

Namun, ketika kami mulai menggunakan Mega, kami segera menyadari bahwa konfigurasi pinnya berbeda. Pin di Uno yang memiliki interupsi berbeda di Mega. Demikian pula, pin SDA dan SCL berada di lokasi yang berbeda. Setelah mempelajari diagram pin untuk setiap jenis Arduino, dan mereferensikan register yang dipanggil dalam kode, kami dapat menjalankan kode pengaturan penerbangan hanya dengan sedikit pengkabelan ulang dan tanpa perubahan perangkat lunak.

Kode kalibrasi ESC adalah tempat kami mulai mengalami masalah. Kami menyentuh ini secara singkat sebelumnya, tetapi pada dasarnya kode menggunakan register pin untuk mengatur pin yang digunakan untuk mengontrol ESC. Ini membuat kode lebih sulit dibaca daripada menggunakan fungsi pinMode() standar; namun, itu membuat kode berjalan lebih cepat dan mengaktifkan pin secara bersamaan. Ini penting karena kode penerbangan berjalan dalam putaran waktu yang hati-hati. Karena perbedaan pin antara Arduino, kami memutuskan untuk menggunakan register port A pada Mega. Namun, dalam pengujian kami, tidak semua pin memberi kami tegangan output yang sama ketika disuruh menjalankan tinggi. Beberapa pin memiliki output sekitar 4.90V dan yang lain memberi kami lebih dekat ke 4.95V. Rupanya ESC yang kami miliki agak rewel, sehingga mereka hanya akan beroperasi dengan baik ketika kami menggunakan pin dengan tegangan lebih tinggi. Ini kemudian memaksa kami untuk mengubah byte yang kami tulis ke register A sehingga kami berbicara dengan pin yang benar. Ada info lebih lanjut tentang ini di bagian kalibrasi ESC.

Ini sejauh yang kami dapatkan di bagian proyek ini. Ketika kami menguji kode kalibrasi ESC yang dimodifikasi ini, ada sesuatu yang korsleting dan kami kehilangan komunikasi dengan Arduino kami. Kami sangat bingung dengan ini karena kami tidak mengubah kabel apa pun. Ini memaksa kami untuk mundur dan menyadari bahwa kami hanya punya beberapa hari untuk mendapatkan drone terbang setelah berminggu-minggu mencoba menyatukan bagian-bagian kami yang tidak kompatibel. Inilah sebabnya kami mundur dan membuat proyek yang lebih sederhana dengan Uno. Namun, kami masih berpikir bahwa pendekatan kami hampir bekerja dengan Mega dengan sedikit lebih banyak waktu.

Tujuan kami adalah agar penjelasan tentang rintangan yang kami temui ini berguna bagi Anda jika Anda sedang berusaha memodifikasi kode Brokking. Kami juga tidak pernah mendapat kesempatan untuk mencoba mengkodekan fitur kontrol otonom apa pun berdasarkan GPS. Ini adalah sesuatu yang perlu Anda ketahui setelah membuat drone yang berfungsi dengan Mega. Namun, dari beberapa penelitian awal Google sepertinya menerapkan filter Kalman mungkin merupakan cara yang paling stabil dan akurat untuk menentukan posisi dalam penerbangan. Kami menyarankan Anda untuk meneliti sedikit tentang bagaimana algoritme ini mengoptimalkan estimasi keadaan. Selain itu, semoga berhasil dan beri tahu kami jika Anda melangkah lebih jauh dari yang kami mampu!

Direkomendasikan: