Isi kandungan:

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: Drone flight in the fog bayangtoys x16 GPS camera up down from arduino nano gimbal bgc 2D 2024, November
Anonim
Arduino Drone Dengan GPS
Arduino Drone Dengan GPS

Kami bertekad untuk membangun drone quadcopter first-view-view (FPV) yang dikawal dan stabil, yang dikendalikan oleh Arduino dan kembali ke rumah, pergi ke koordinat, dan fungsi menahan GPS. Kami dengan naif menganggap bahawa menggabungkan program Arduino yang ada dan kabel untuk quadcopter tanpa GPS dengan sistem transmisi GPS akan agak mudah dan kami dapat dengan cepat beralih ke tugas pengaturcaraan yang lebih kompleks. Walau bagaimanapun, jumlah yang mengejutkan harus diubah untuk menggabungkan kedua-dua projek ini, dan dengan itu kami akhirnya membuat quadcopter FPV yang dilengkapi GPS, tanpa ada fungsi tambahan.

Kami telah memasukkan arahan mengenai cara meniru produk kami jika anda berpuas hati dengan quadcopter yang lebih terhad.

Kami juga telah memasukkan semua langkah yang kami ambil untuk menuju quadcopter yang lebih autonomi. Sekiranya anda merasa selesa untuk menggali jauh ke Arduino atau sudah mempunyai banyak pengalaman Arduino dan ingin menjadikan titik berhenti kami sebagai titik permulaan untuk penerokaan anda sendiri, maka Instructable ini juga sesuai untuk anda.

Ini adalah projek yang bagus untuk mempelajari sesuatu tentang membina dan pengekodan untuk Arduino tidak kira berapa banyak pengalaman yang anda ada. Anda juga boleh pergi dengan drone.

Penyediaannya adalah seperti berikut:

Dalam senarai bahan, bahagian tanpa tanda bintang diperlukan untuk kedua-dua tujuan tersebut.

Bahagian dengan satu tanda bintang hanya diperlukan untuk projek quadcopter yang lebih lengkap yang belum selesai.

Bahagian dengan dua tanda bintang hanya diperlukan untuk quadcopter yang lebih terhad.

Langkah biasa untuk kedua-dua projek tidak mempunyai penanda selepas tajuk

Langkah yang hanya diperlukan untuk quadcopter bukan autonomi yang lebih terhad mempunyai "(Uno)" selepas tajuknya.

Langkah-langkah yang hanya diperlukan untuk quadcopter autonomi yang sedang dijalankan mempunyai "(Mega)" setelah tajuknya.

Untuk membina quad berasaskan Uno, ikuti langkah mengikut urutan, melewati langkah dengan "(Mega)" selepas tajuk.

Untuk mengusahakan quad berasaskan Mega, ikuti langkah mengikut urutan, melewati sebarang langkah dengan "(Uno)" selepas tajuk.

Langkah 1: Kumpulkan Bahan

Komponen:

1) Satu bingkai quadcopter (bingkai tepat mungkin tidak penting) ($ 15)

2) Empat motor tanpa berus 2830, 900kV (atau serupa), dan empat pek aksesori pemasangan (4x $ 6 + 4x $ 4 = jumlah $ 40)

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

4) Satu papan pengagihan kuasa (dengan sambungan XT-60) ($ 20)

5) Satu bateri LiPo 3s, 3000-5000mAh dengan sambungan XT-60 (3000mAh sepadan dengan masa penerbangan lebih kurang 20 minit) ($ 25)

6) Banyak pendorong (ini sangat banyak) ($ 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 perisai, tetapi menggunakan GPS yang berbeza akan memerlukan pendawaian yang berbeza) ($ 45)

11) Dua pemancar wayarles HC-12 (2x $ 5 = $ 10)

12) Satu MPU- 6050, 6DOF (darjah kebebasan) giro / pecutan ($ 5)

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

14) Header wanita Arduino (stackable) ($ 20)

15) Pengecas Baki Bateri LiPo (dan penyesuai DC 12V, tidak termasuk) ($ 20)

17) Kabel penyesuai lelaki A ke B lelaki ke lelaki ($ 5)

17) Pita saluran

18) Kecilkan tiub

Peralatan:

1) Setrika pematerian

2) Pateri

3) Epoksi Plastik

4) Lebih ringan

5) Pelucut wayar

6) Satu set sepana Allen

Komponen pilihan untuk penghantaran video FPV (pandangan orang pertama) masa nyata:

1) Kamera FPV kecil (ini berkait dengan kamera yang sangat murah dan berkualiti buruk yang kami gunakan, anda mungkin menggantikan yang lebih baik) ($ 20)

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

3) Baterai LiPo 500mAh, 3s (11.1V) ($ 7) (kami gunakan dengan palam pisang, tetapi kami mengesyorkan agar anda menggunakan semula bateri yang dipautkan, kerana ia mempunyai penyambung yang serasi dengan pemancar TS832, dan dengan demikian t memerlukan pematerian).

4) Bateri LiPo 2 1000mAh 2s (7.4V), atau serupa ($ 5). Bilangan mAh tidak kritikal selagi lebih daripada 1000mAh atau lebih. Pernyataan yang sama seperti di atas berlaku untuk jenis palam untuk salah satu daripada dua bateri. Yang lain akan digunakan untuk memberi kuasa pada monitor, jadi anda mesti memateri apa pun. Mungkin terbaik untuk mendapatkannya dengan palam XT-60 untuk ini (itulah yang kami lakukan). Pautan untuk jenis itu ada di sini: 1000mAh 2s (7.4V) LiPo dengan palam XT-60

5) Monitor LCD (pilihan) ($ 15). Anda juga boleh menggunakan penyesuai AV-USB dan perisian penyalinan DVD untuk melihat secara langsung di komputer riba. Ini juga memberi pilihan untuk merakam video dan foto, daripada hanya melihatnya secara realtime.

6) Sekiranya anda telah membeli bateri dengan palam yang berbeza dari yang dihubungkan, anda mungkin memerlukan penyesuai yang sesuai. Apa pun, dapatkan penyesuai yang sesuai dengan palam bateri yang memberi kuasa pada monitor. Di sinilah tempat untuk mendapatkan penyesuai XT-60

* = hanya untuk projek yang lebih maju

** = hanya untuk projek yang lebih asas

Kos:

Sekiranya bermula dari awal (tetapi dengan besi pematerian, dll …), tidak ada sistem FPV: ~ $ 370

Sekiranya anda sudah mempunyai pemancar / penerima RC, pengecas bateri LiPo, dan bateri LiPo: ~ $ 260

Kos sistem FPV: $ 80

Langkah 2: Pasang Bingkai

Pasang Bingkai
Pasang Bingkai
Pasang Bingkai
Pasang Bingkai
Pasang Bingkai
Pasang Bingkai

Langkah ini cukup mudah, terutamanya jika menggunakan bingkai buatan yang sama seperti yang kita gunakan. Cukup gunakan skru yang disertakan dan pasangkan bingkai bersama seperti yang ditunjukkan, menggunakan sepana allen atau pemutar skru yang sesuai untuk bingkai anda. Pastikan lengan dengan warna yang sama berdekatan satu sama lain (seperti dalam gambar ini), sehingga drone mempunyai depan dan belakang yang jelas. Selanjutnya, pastikan bahagian panjang plat bawah melekat di antara lengan yang berlawanan. Ini menjadi penting kemudian.

Langkah 3: Pasang Motor dan Sambungkan Escs

Mount Motors dan Connect Escs
Mount Motors dan Connect Escs
Mount Motors dan Connect Escs
Mount Motors dan Connect Escs
Mount Motors dan Connect Escs
Mount Motors dan Connect Escs
Mount Motors dan Connect Escs
Mount Motors dan Connect Escs

Setelah bingkai dipasang, keluarkan empat motor dan empat aksesori pemasangan. Anda boleh menggunakan skru yang disertakan dalam set pelekap, atau skru yang tersisa dari bingkai quadcopter untuk memasang motor dan pemasangan di tempatnya. Sekiranya anda membeli pemasangan yang telah kami tautkan, anda akan menerima dua komponen tambahan, seperti gambar di atas. Kami mempunyai prestasi motor yang baik tanpa bahagian ini, jadi kami membiarkannya mengurangkan berat badan.

Setelah motor disekat di tempatnya, pasangkan epoksi papan agihan kuasa (PDB) di tempat di atas plat atas bingkai quadcopter. Pastikan anda mengarahkannya sehingga penyambung bateri menunjuk di antara lengan berwarna berbeza (selari dengan salah satu bahagian panjang plat bawah), seperti pada gambar di atas.

Anda juga harus mempunyai empat kerucut baling-baling dengan benang betina. Ketepikan ini buat masa ini.

Sekarang keluarkan ESC anda. Satu sisi akan mempunyai dua wayar keluar, satu merah dan satu hitam. Untuk setiap empat ESC, masukkan wayar merah ke penyambung positif pada PDB dan hitam ke negatif. Perhatikan bahawa jika anda menggunakan PDB yang berbeza, langkah ini mungkin memerlukan pematerian. Sekarang sambungkan ketiga-tiga wayar yang keluar dari setiap motor. Pada ketika ini, tidak kira wayar ESC mana yang anda sambungkan dengan wayar motor mana (selagi anda menyambungkan semua wayar satu ESC dengan motor yang sama!) Anda akan membetulkan kekutuban ke belakang di kemudian hari. Tidak berbahaya jika wayar terbalik; ia hanya mengakibatkan motor berpusing ke belakang.

Langkah 4: Siapkan Arduino dan Shield

Siapkan Arduino dan Shield
Siapkan Arduino dan Shield
Siapkan Arduino dan Shield
Siapkan Arduino dan Shield

Catatan sebelum anda memulakan

Pertama, anda boleh memilih untuk menyatukan semua wayar secara langsung. Namun, kami merasa sangat berharga untuk menggunakan header pin kerana mereka memberikan banyak fleksibiliti untuk menyelesaikan masalah dan menyesuaikan projek. Yang berikut adalah penerangan tentang apa yang kami lakukan (dan mengesyorkan orang lain melakukannya).

Siapkan Arduino dan perisai

Keluarkan Arduino Mega (atau Uno jika melakukan quad yang tidak autonomi), perisai GPS, dan tajuk yang boleh ditumpuk. Memateri hujung lelaki dari kepala yang dapat ditumpuk di tempat pada pelindung GPS, di baris pin selari dengan pin pra-disolder, seperti yang ditunjukkan dalam gambar di atas. Juga pateri dalam tajuk yang dapat ditumpuk pada baris pin berlabel 3V, CD, … RX. Gunakan pemotong wayar untuk memotong lebihan panjang pada pin yang melekat di bahagian bawah. Letakkan header lelaki dengan bahagian atas yang bengkok di semua header yang boleh ditumpuk ini. Ini adalah apa yang anda akan solkan wayar untuk komponen yang lain.

Pasang pelindung GPS ke bahagian atas, pastikan pin sesuai dengan yang ada di Arduino (Mega atau Uno). Perhatikan bahawa jika menggunakan Mega, banyak Arduino masih akan terdedah setelah anda meletakkan perisai di tempatnya.

Letakkan pita elektrik di bahagian bawah Arduino, meliputi semua penjual pin yang terdedah, untuk mengelakkan litar pintas kerana Arduino terletak di PDB.

Langkah 5: Wire Together Components and Place Battery (Uno)

Wayar Bersama Komponen dan Letakkan Bateri (Uno)
Wayar Bersama Komponen dan Letakkan Bateri (Uno)
Wayar Bersama Komponen dan Letakkan Bateri (Uno)
Wayar Bersama Komponen dan Letakkan Bateri (Uno)
Wayar Bersama Komponen dan Letakkan Bateri (Uno)
Wayar Bersama Komponen dan Letakkan Bateri (Uno)
Wayar Bersama Komponen dan Letakkan Bateri (Uno)
Wayar Bersama Komponen dan Letakkan Bateri (Uno)

Skema di atas hampir sama dengan yang dibuat oleh Joop Brooking kerana kami sangat merancang reka bentuknya.

* Perhatikan bahawa skema ini menggunakan pelindung GPS yang terpasang dengan betul, dan dengan demikian GPS tidak muncul dalam skema ini.

Skema di atas disediakan dengan menggunakan perisian Fritzing, yang sangat disarankan terutama untuk skema yang melibatkan Arduino. Kami kebanyakan menggunakan bahagian generik yang dapat diedit secara fleksibel, kerana bahagian kami pada umumnya tidak terdapat di perpustakaan bahagian yang disertakan Fritzing.

-Pastikan bahawa suis pada perisai GPS diubah ke "Tulis Langsung."

-Sekarang memasang semua komponen mengikut skema di atas (kecuali bateri!) (Catatan penting pada wayar data GPS di bawah).

-Perhatikan bahawa anda sudah memasang ESC ke motor dan PDB, jadi bahagian skema ini selesai.

-Selanjutnya, perhatikan bahawa data GPS (wayar kuning) keluar dari pin 0 dan 1 pada Arduino (bukan pin Tx dan Rx yang terpisah pada GPS). Ini kerana dikonfigurasi ke "Tulis Langsung" (lihat di bawah), GPS akan keluar terus ke port siri perkakasan pada uno (pin 0 dan 1). Ini paling jelas ditunjukkan pada gambar kedua di atas pendawaian lengkap.

-Semasa memasang kabel penerima RC, rujuk gambar di atas. Perhatikan bahawa kabel data masuk ke baris atas, sementara Vin dan Gnd masing-masing berada di baris kedua dan ketiga (dan pada tiang pin kedua hingga paling jauh).

-Untuk melakukan pendawaian untuk transceiver HC-12, penerima RC, dan 5Vout dari PDB ke Vin of the Arduino kami menggunakan header yang dapat ditumpuk, sedangkan untuk gyro kami menyolder wayar terus ke papan dan menggunakan tiub pengecutan panas di sekitar pateri. Anda boleh memilih untuk melakukan salah satu komponen, namun disarankan pematerian terus ke gyro kerana menjimatkan ruang yang menjadikan bahagian kecil lebih mudah dipasang. Menggunakan header adalah sedikit lebih banyak kerja di muka, tetapi memberikan lebih banyak fleksibiliti. Memateri wayar secara langsung adalah sambungan yang lebih selamat dalam jangka masa panjang, namun ini bermakna bahawa menggunakan komponen tersebut pada projek lain adalah lebih sukar. Perhatikan bahawa jika anda menggunakan header pada pelindung GPS, anda masih mempunyai fleksibiliti yang baik tanpa mengira apa yang anda lakukan. Yang penting, pastikan wayar data GPS pada pin 0 dan 1 pada GPS mudah dilepaskan dan diganti.

Pada akhir projek kami, kami tidak dapat merancang kaedah yang baik untuk memasang semua komponen kami ke bingkai. Oleh kerana tekanan waktu kelas kami, penyelesaian kami pada umumnya berputar di sekitar pita busa dua sisi, pita saluran, pita elektrik, dan ikatan zip. Kami sangat mengesyorkan agar anda meluangkan lebih banyak masa untuk merancang struktur pelekap yang stabil jika anda merancang untuk menjadi projek jangka panjang. Dengan semua yang dinyatakan, jika anda hanya ingin membuat prototaip cepat, jangan ragu untuk mengikuti proses kami. Walau bagaimanapun, pastikan gyro dipasang dengan selamat. Ini adalah satu-satunya cara Arduino mengetahui apa yang dilakukan oleh quadcopter, jadi jika bergerak dalam penerbangan, anda akan menghadapi masalah.

Dengan semua yang tersambung dan pasang, bawa bateri LiPo anda dan luncurkannya di antara plat atas dan bawah bingkai. Pastikan penyambungnya menunjukkan arah yang sama dengan penyambung PDB, dan sebenarnya mereka boleh menyambung. Kami menggunakan pita saluran untuk menahan bateri di tempatnya (pita velcro juga berfungsi, tetapi lebih menjengkelkan daripada pita saluran). Pita saluran berfungsi dengan baik kerana seseorang boleh mengganti bateri dengan mudah atau mengeluarkannya untuk dicas. Walau bagaimanapun, anda mesti memastikan bateri anda terketar SEGERA, seolah-olah bateri bergerak semasa penerbangan ini boleh mengganggu keseimbangan drone dengan serius. JANGAN sambungkan bateri ke PDB.

Langkah 6: Wire Together Components and Place Battery (Mega)

Wayar Bersama Komponen dan Bateri Tempat (Mega)
Wayar Bersama Komponen dan Bateri Tempat (Mega)
Wayar Bersama Komponen dan Bateri Tempat (Mega)
Wayar Bersama Komponen dan Bateri Tempat (Mega)
Wayar Bersama Komponen dan Bateri Tempat (Mega)
Wayar Bersama Komponen dan Bateri Tempat (Mega)

Skema di atas disediakan dengan menggunakan perisian Fritzing, yang sangat disarankan terutama untuk skema yang melibatkan arduino. Kami kebanyakan menggunakan komponen generik, kerana bahagian kami pada umumnya tidak terdapat di perpustakaan bahagian yang disertakan Fritzing.

-Perhatikan bahawa skema ini menggunakan pelindung GPS yang terpasang dengan betul, dan dengan demikian GPS tidak muncul dalam skema ini.

-Fipkan suis pada Mega 2560 anda ke "Soft Serial."

-Sekarang memasang semua komponen mengikut skema di atas (kecuali bateri!)

-Perhatikan bahawa anda sudah memasang ESC ke motor dan PDB, jadi bahagian skema ini selesai.

-Kabel pelompat dari Pin 8 hingga Rx dan Pin 7 hingga Tx ada di sana kerana (tidak seperti Uno, yang mana perisai ini dibuat), mega kekurangan pemancar-penerima pemancar tak segerak (UART) pada pin 7 dan 8, dan dengan itu kita mesti menggunakan pin siri perkakasan. Terdapat lebih banyak sebab kita memerlukan pin siri perkakasan, yang akan dibincangkan di kemudian hari.

-Semasa memasang kabel penerima RC, rujuk gambar di atas. Perhatikan bahawa kabel data masuk ke baris atas, sementara Vin dan Gnd masing-masing berada di baris kedua dan ketiga (dan pada tiang pin kedua hingga paling jauh).

-Untuk melakukan pendawaian untuk transceiver HC-12, penerima RC, dan 5Vout dari PDB ke Vin of the Arduino, kami menggunakan header yang dapat ditumpuk, sedangkan untuk gyro kami menyolder wayar secara langsung dan menggunakan tiub pengecutan panas di sekitar solder. Anda boleh memilih untuk melakukan salah satu komponen. Menggunakan header adalah sedikit lebih banyak kerja di muka, tetapi memberikan lebih banyak fleksibiliti. Memateri wayar secara langsung adalah sambungan yang lebih selamat untuk jangka masa panjang, namun ini bermakna bahawa menggunakan komponen tersebut pada projek lain adalah lebih sukar. Perhatikan bahawa jika anda menggunakan header pada pelindung GPS, anda masih mempunyai fleksibiliti yang baik tanpa mengira apa yang anda lakukan.

Pada akhir projek kami, kami tidak dapat merancang kaedah yang baik untuk memasang semua komponen kami ke bingkai. Oleh kerana tekanan waktu kelas kami, penyelesaian kami pada umumnya berputar di sekitar pita busa dua sisi, pita saluran, pita elektrik, dan ikatan zip. Kami sangat mengesyorkan agar anda meluangkan lebih banyak masa untuk merancang struktur pelekap yang stabil jika anda merancang untuk menjadi projek jangka panjang. Dengan semua yang dinyatakan, jika anda hanya ingin membuat prototaip cepat, sila ikuti proses kami. Walau bagaimanapun, pastikan gyro dipasang dengan selamat. Ini adalah satu-satunya cara Arduino mengetahui apa yang dilakukan oleh quadcopter, jadi jika bergerak dalam penerbangan, anda akan menghadapi masalah.

Dengan semua yang tersambung dan pasang, bawa bateri LiPo anda dan luncurkannya di antara plat atas dan bawah bingkai. Pastikan penyambungnya menunjukkan arah yang sama dengan penyambung PDB, dan sebenarnya mereka boleh menyambung. Kami menggunakan pita saluran untuk menahan bateri di tempatnya (pita velcro juga berfungsi, tetapi lebih menjengkelkan daripada pita saluran). Pita saluran berfungsi dengan baik kerana seseorang boleh mengganti bateri dengan mudah atau mengeluarkannya untuk dicas. Walau bagaimanapun, anda mesti memastikan bahawa anda mengetepikan bateri dengan SEGERA, seolah-olah bateri bergerak semasa penerbangan ini boleh mengganggu keseimbangan drone secara serius. JANGAN sambungkan bateri ke PDB.

Langkah 7: Penerima Ikatan

Penerima Ikatan
Penerima Ikatan
Penerima Ikatan
Penerima Ikatan

Ambil penerima RC dan sambungkan sementara ke bekalan kuasa 5V (sama ada dengan menghidupkan Arduino dengan kuasa USB atau 9V, atau dengan bekalan kuasa yang berasingan. Jangan sambungkan LiPo ke Arduino). Ambil pin pengikat yang disertakan dengan penerima RC dan letakkan ke pin BIND pada penerima. Sebagai alternatif, pendekkan pin atas dan bawah di ruangan BIND seperti yang ditunjukkan pada foto di atas. Lampu merah akan berkelip cepat pada penerima. Sekarang ambil alat kawalan dan tekan butang di bahagian belakang semasa dimatikan, seperti gambar di atas. Dengan butang ditekan, hidupkan alat kawalan. Kini lampu yang berkelip pada penerima akan menjadi padat. Penerima terikat. Tanggalkan kabel pengikat. Sekiranya anda menggunakan bekalan kuasa yang berbeza, sambungkan semula penerima ke 5V dari Arduino.

Langkah 8: (Pilihan) Kawat Bersama dan Pasang Sistem Kamera FPV

(Pilihan) Kawat Bersama dan Pasang Sistem Kamera FPV
(Pilihan) Kawat Bersama dan Pasang Sistem Kamera FPV
(Pilihan) Kawat Bersama dan Pasang Sistem Kamera FPV
(Pilihan) Kawat Bersama dan Pasang Sistem Kamera FPV

Pertama, pasangkan penyesuai XT-60 dengan wayar kuasa dan wayar pada monitor. Ini mungkin berbeza dari monitor ke monitor, tetapi kekuatannya hampir selalu berwarna merah, tanah hampir selalu hitam. Sekarang masukkan penyesuai dengan kabel yang disolder ke LiPo 1000mAh anda dengan palam XT-60. Monitor harus dihidupkan dengan (biasanya) latar belakang biru. Itu langkah paling sukar!

Sekarang pasangkan antena pada penerima dan pemancar anda.

Sambungkan Lipo 500mAh kecil anda ke pemancar. Pin paling kanan (tepat di bawah antena) adalah tanah (V_) bateri, pin sebelah kiri adalah V +. Mereka datang dengan tiga wayar yang masuk ke kamera. Kamera anda harus dilengkapi dengan palam tiga-satu yang sesuai dengan pemancar. Pastikan anda mempunyai wayar data kuning di tengahnya. Sekiranya anda menggunakan bateri yang kami sambungkan dengan palam yang dimaksudkan, langkah ini tidak memerlukan pematerian.

Akhirnya, pasangkan bateri 1000mAh anda yang lain dengan wayar keluar DC yang disertakan dengan penerima anda, dan kemudian pasangkannya ke port DC pada penerima anda. Akhirnya, sambungkan hujung hitam kabel AVin yang disertakan dengan penerima anda ke port AVin pada penerima anda, dan hujung yang lain (kuning, wanita) ke hujung lelaki kuning kabel AVin monitor anda.

Pada ketika ini, anda seharusnya dapat melihat paparan kamera di monitor. Sekiranya tidak dapat dilakukan, pastikan penerima dan pemancar berada di kedua (anda mesti melihat nombor di skrin kecilnya) dan mereka berada di saluran yang sama (kami menggunakan saluran 11 untuk keduanya dan berjaya). Selanjutnya, anda mungkin perlu menukar saluran pada monitor.

Pasang komponen pada bingkai.

Setelah penyediaan berfungsi, cabut bateri sehingga anda siap terbang.

Langkah 9: Sediakan Penerimaan Data GPS

Sediakan Penerimaan Data GPS
Sediakan Penerimaan Data GPS
Sediakan Penerimaan Data GPS
Sediakan Penerimaan Data GPS

Sambungkan Arduino kedua anda dengan transceiver HC-12 kedua anda seperti yang ditunjukkan dalam skema di atas, ingat bahawa penyediaan hanya akan diaktifkan seperti yang dipaparkan jika dipasang ke komputer. Muat turun kod transceiver yang disediakan, buka monitor bersiri anda hingga 9600 baud.

Sekiranya menggunakan persediaan yang lebih asas, anda harus mula menerima ayat GPS jika perisai GPS anda dihidupkan dan disambungkan dengan betul ke transceiver HC-12 yang lain (dan jika suis pada perisai di "Tulis Langsung").

Dengan Mega, pastikan suis dihidupkan "Soft Serial."

Langkah 10: Lakukan Kod Persediaan (Tidak)

Kod ini sama dengan yang digunakan oleh Joop Brokking dalam tutorial quadcopter Arduino, dan dia berhak mendapat semua penghargaan atas penulisannya.

Dengan bateri terputus, gunakan kabel USB untuk menyambungkan komputer anda ke Arduino, dan muat naik Kod Persediaan yang dilampirkan. Hidupkan pemancar RC anda. Buka monitor bersiri anda ke 57600 baud dan ikuti arahannya.

Kesalahan biasa:

Sekiranya kod gagal dimuat naik, pastikan pin 0 dan 1 dicabut pada pelindung UNO / GPS. Ini adalah port perkakasan yang sama yang digunakan oleh peranti untuk berkomunikasi dengan komputer, jadi mestilah percuma.

Sekiranya kod tersebut melewati banyak langkah sekaligus, pastikan suis GPS anda dihidupkan "Tulis Langsung."

Sekiranya tidak ada penerima yang dikesan, pastikan terdapat lampu merah padat (tetapi redup) pada penerima anda semasa pemancar dihidupkan. Sekiranya ada, periksa pendawaian.

Sekiranya tidak ada gyro yang terdeteksi, ini mungkin disebabkan oleh gyro yang rosak atau jika anda mempunyai jenis gyro yang berbeza dari kod yang dirancang untuk ditulis.

Langkah 11: Lakukan Kod Persediaan (Mega)

Kod ini sama dengan yang digunakan oleh Joop Brokking dalam tutorial quadcopter Arduino, dan dia berhak mendapat semua penghargaan atas penulisannya. Kami hanya menyesuaikan pendawaian untuk Mega supaya input penerima sesuai dengan pin Pin Change Interrupt yang betul.

Dengan bateri terputus, gunakan kabel USB untuk menyambungkan komputer anda ke Arduino, dan muat naik Kod Persediaan yang dilampirkan. Buka monitor bersiri anda ke 57600 baud dan ikuti arahannya.

Langkah 12: Kalibrasi ESC (Tidak)

Sekali lagi, kod ini sama dengan kod Joop Brokking. Semua modifikasi dilakukan dalam usaha untuk mengintegrasikan GPS dan Arduino dan dapat ditemukan di kemudian hari, dalam keterangan pembinaan quadcopter yang lebih maju.

Muat naik kod penentukuran ESC yang dilampirkan. Pada monitor bersiri, tulis huruf 'r' dan tekan kembali. Anda harus mula melihat nilai pengawal RC masa nyata yang disenaraikan. Sahkan bahawa ia berbeza antara 1000 hingga 2000 pada tahap throttle, roll, pitch, dan yaw. Kemudian tulis 'a' dan tekan kembali. Biarkan penentukuran giro pergi, dan kemudian sahkan bahawa gyro mencatatkan gerakan quad. Sekarang naikkan arduino dari komputer, tekan throttle sepanjang pengawal, dan sambungkan baterinya. ESC harus mengitar beep ton yang berbeza (tetapi ini mungkin berbeza bergantung pada ESC dan firmware). Tekan pendikit sehingga ke bawah. ESC harus mengeluarkan bunyi bip yang lebih rendah, kemudian diam. Cabut bateri.

Sebagai pilihan, pada saat ini anda boleh menggunakan kerucut yang disertakan dengan pek aksesori pemasangan motor anda untuk mengetatkan baling-baling dengan ketat. Kemudian masukkan nombor 1 - 4 pada monitor bersiri untuk menghidupkan motor 1 - 4 masing-masing, pada kuasa terendah. Program ini akan mencatat jumlah gegaran kerana ketidakseimbangan alat peraga. Anda boleh mencuba membetulkannya dengan menambahkan sejumlah kecil pita scotch ke satu sisi atau bahagian lain alat peraga. Kami dapati penerbangan dengan baik tanpa langkah ini, tetapi mungkin sedikit lebih cekap dan lebih kuat daripada yang kami mengimbangkan alat peraga.

Langkah 13: Kalibrasi ESC (Mega)

Kod ini sangat mirip dengan kod Brokking, namun kami menyesuaikannya (dan pendawaian yang sesuai) untuk bekerja dengan Mega.

Muat naik kod penentukuran ESC yang dilampirkan. Pada monitor bersiri, tulis huruf 'r' dan tekan kembali. Anda harus mula melihat nilai pengawal RC masa nyata yang disenaraikan. Sahkan bahawa ia berbeza antara 1000 hingga 2000 pada tahap throttle, roll, pitch, dan yaw.

Kemudian tulis 'a' dan tekan kembali. Biarkan penentukuran giro pergi, dan kemudian sahkan bahawa gyro mencatatkan gerakan quad.

Sekarang naikkan arduino dari komputer, tekan throttle sepanjang pengawal, dan sambungkan baterinya. ESC harus mengeluarkan tiga bip rendah diikuti dengan bip tinggi (tetapi ini mungkin berbeza bergantung pada ESC dan firmware). Tekan pendikit sehingga ke bawah. Cabut bateri.

Perubahan yang kami buat pada kod ini adalah beralih dari menggunakan PORTD untuk pin ESC ke menggunakan PORTA dan kemudian mengubah bait yang ditulis ke port ini sehingga kami mengaktifkan pin yang sesuai seperti yang ditunjukkan dalam skema pendawaian. Perubahan ini adalah kerana pin daftar PORTD tidak berada di lokasi yang sama di Mega seperti di Uno. Kami belum dapat menguji sepenuhnya kod ini kerana kami bekerja dengan Mega lama jenama lama yang dimiliki kedai sekolah kami. Ini bermaksud bahawa untuk beberapa sebab tidak semua pin daftar PORTA dapat mengaktifkan ESC dengan betul. Kami juga menghadapi masalah menggunakan operator atau sama dengan (| =) dalam beberapa kod ujian kami. Kami tidak pasti mengapa ini menyebabkan masalah semasa menulis byte untuk menetapkan voltan pin ESC, jadi kami mengubah kod Brooking sesedikit mungkin. Kami berpendapat bahawa kod ini hampir berfungsi, tetapi jarak tempuh anda mungkin berbeza-beza.

Langkah 14: Dapatkan Udara !! (Tidak)

Dan sekali lagi, kod genius ketiga ini adalah karya Joop Brokking. Perubahan pada ketiga-tiga kod ini hanya terdapat dalam percubaan kami menyatukan data GPS ke dalam Arduino.

Dengan baling-baling anda dipasang dengan kuat ke bingkai dan semua komponen diikat, ditempel, atau dipasang di dalamnya, muatkan kod pengawal penerbangan ke Arduino anda, kemudian cabut Arduino dari komputer anda.

Bawa quadcopter anda ke luar, pasangkan bateri dan hidupkan pemancar anda. Sebagai pilihan, bawa komputer riba yang disambungkan ke persediaan penerimaan GPS anda serta persediaan dan monitor penerimaan video anda. Muatkan kod transceiver ke Arduino terestrial anda, buka monitor bersiri anda hingga 9600 baud dan perhatikan data GPS masuk.

Sekarang anda sudah bersedia untuk terbang. Tekan throttle ke bawah dan menguap ke kiri untuk mengayunkan quadcopter, kemudian perlahan-lahan naikkan throttle untuk melayang. Mulailah dengan terbang rendah ke tanah dan di atas permukaan lembut seperti rumput sehingga anda menjadi selesa.

Lihat video kami yang teruja dengan menerbangkan drone pada kali pertama kami dapat membuat drone dan GPS berfungsi serentak.

Langkah 15: Dapatkan Udara !! (Mega)

Oleh kerana hubungan kami dengan kod penentukuran ESC untuk Mega, kami tidak dapat membuat kod pengawal penerbangan untuk papan ini. Sekiranya anda sampai ke tahap ini, maka saya bayangkan bahawa anda sekurang-kurangnya bermain dengan kod penentukuran ESC untuk menjadikannya berfungsi untuk Mega. Oleh itu, anda mungkin perlu membuat pengubahsuaian serupa pada kod pengawal penerbangan seperti yang anda buat pada langkah terakhir. Sekiranya kod penentukuran ESC kami untuk Mega secara ajaib berfungsi tanpa pengubahsuaian lain, maka hanya ada beberapa perkara yang perlu anda lakukan pada kod stok untuk membuatnya berfungsi untuk langkah ini. Anda perlu melalui dan mengganti semua kejadian PORTD dengan PORTA. Juga, jangan lupa menukar DDRD menjadi DDRA. Kemudian, anda perlu menukar semua bait yang ditulis ke daftar PORTA supaya mereka mengaktifkan pin yang betul. Untuk melakukan ini, gunakan byte B11000011 untuk menetapkan pin ke tinggi dan B00111100 untuk menetapkan pin ke rendah. Semoga berjaya, dan beritahu kami jika anda berjaya terbang menggunakan Mega!

Langkah 16: Bagaimana Kami Mendapat Ke Tempat Kami Kini Dengan Reka Bentuk Mega

Projek ini merupakan pengalaman pembelajaran yang luar biasa bagi kami sebagai pemula hobi Arduino dan elektronik. Oleh itu, kami akan memasukkan kisah semua perkara yang kami hadapi semasa mencuba GPS mengaktifkan kod Joop Brokking. Kerana kod Brokking begitu teliti dan jauh lebih rumit daripada apa pun yang kami tulis, kami memutuskan untuk mengubahnya sesedikit mungkin. Kami cuba mendapatkan pelindung GPS untuk menghantar data ke Arduino dan kemudian meminta Arduino menghantar maklumat tersebut kepada kami melalui transceiver HC12 tanpa mengubah kod penerbangan atau pendawaian dengan cara apa pun. Setelah melihat skema dan pendawaian Arduino Uno kami untuk mengetahui pin apa yang ada, kami mengubah kod transceiver GPS yang kami gunakan untuk menyelesaikan reka bentuk yang ada. Kemudian kami mengujinya untuk memastikan semuanya berfungsi. Pada ketika ini, perkara kelihatan menjanjikan.

Langkah seterusnya adalah menggabungkan kod yang baru saja kita ubah dan diuji dengan pengawal penerbangan Brokking. Ini tidak terlalu sukar, tetapi kami mengalami kesilapan dengan cepat. Pengawal penerbangan Brokking bergantung pada perpustakaan Arduino Wire dan EEPROM sementara kod GPS kami menggunakan perpustakaan Serial Perisian dan perpustakaan GPS Arduino. Kerana Perpustakaan Wire merujuk perpustakaan Serial Perisian, kami mengalami ralat di mana kod tidak akan disusun kerana terdapat "beberapa definisi untuk _vector 3_", apa pun maksudnya. Setelah melihat di Google dan mencari-cari di perpustakaan, kami akhirnya menyedari bahawa konflik perpustakaan ini menjadikan mustahil untuk menggunakan potongan kod ini bersama-sama. Oleh itu, kami terus mencari alternatif.

Apa yang kami dapati ialah satu-satunya kombinasi perpustakaan yang tidak menimbulkan ralat pada kami adalah menukar pustaka GPS standard ke neoGPS dan kemudian menggunakan AltSoftSerial dan bukannya Software Serial. Kombinasi ini berfungsi, namun AltSoftSerial hanya dapat beroperasi dengan pin tertentu, yang tidak terdapat dalam reka bentuk kami. Inilah yang mendorong kita untuk menggunakan Mega. Arduino Megas mempunyai banyak port bersiri perkakasan, yang berarti kita dapat melewati konflik perpustakaan ini dengan tidak perlu membuka port serial perisian sama sekali.

Namun, ketika kami mula menggunakan Mega, kami dengan cepat menyedari bahawa konfigurasi pin berbeza. Pin di Uno yang mempunyai gangguan berbeza pada Mega. Begitu juga, pin SDA dan SCL berada di lokasi yang berbeza. Setelah mempelajari diagram pin untuk setiap jenis Arduino, dan menolak daftar yang disebut dalam kod, kami dapat menjalankan kod persediaan penerbangan dengan hanya pendawaian semula minimum dan tidak ada perubahan perisian.

Kod penentukuran ESC adalah tempat kami mula menghadapi masalah. Kami membahasnya sebentar tadi, tetapi pada dasarnya kod tersebut menggunakan pin register untuk mengatur pin yang digunakan untuk mengawal ESC. Ini menjadikan kod lebih sukar dibaca daripada menggunakan fungsi pinMode () standard; namun, ia menjadikan kod berjalan lebih cepat dan mengaktifkan pin secara serentak. Ini mustahak kerana kod penerbangan berjalan dalam jangka masa yang teliti. Kerana perbezaan pin antara Arduino, kami memutuskan untuk menggunakan port register A di Mega. Walau bagaimanapun, dalam ujian kami, tidak semua pin memberi kami voltan output yang sama apabila disuruh berjalan tinggi. Sebilangan pin mempunyai output sekitar 4.90V dan yang lain memberikan kita lebih dekat dengan 4.95V. Rupa-rupanya ESC yang kita miliki agak rewel, dan mereka hanya akan berfungsi dengan baik apabila kita menggunakan pin dengan voltan yang lebih tinggi. Ini kemudian memaksa kami menukar bait yang kami tulis untuk mendaftarkan A supaya kami bercakap dengan pin yang betul. Terdapat lebih banyak maklumat mengenai ini di bahagian penentukuran ESC.

Ini adalah sejauh yang kita dapat dalam bahagian projek ini. Semasa kami menguji kod penentukuran ESC yang diubah suai ini, ada kekurangan dan kami kehilangan komunikasi dengan Arduino kami. Kami sangat bingung dengan ini kerana kami tidak mengubah pendawaian apa pun. Ini memaksa kami untuk mundur dan menyedari bahawa kami hanya mempunyai beberapa hari untuk mendapatkan drone terbang setelah berminggu-minggu berusaha menyatukan kepingan kami yang tidak sesuai. Inilah sebabnya mengapa kami mengundurkan dan membuat projek yang lebih mudah dengan Uno. Walau bagaimanapun, kami masih berpendapat bahawa pendekatan kami hampir dengan bekerja dengan Mega dengan sedikit masa lagi.

Tujuan kami adalah bahawa penjelasan mengenai rintangan yang kami hadapi dapat membantu anda sekiranya anda berusaha mengubah kod Brokking. Kami juga tidak pernah berpeluang mencuba pengekodan ciri kawalan autonomi berdasarkan GPS. Ini adalah sesuatu yang perlu anda fahami setelah membuat drone yang berfungsi dengan Mega. Namun, dari beberapa penyelidikan awal Google, nampaknya menerapkan penapis Kalman mungkin merupakan kaedah yang paling stabil dan tepat untuk menentukan kedudukan dalam penerbangan. Kami mencadangkan agar anda meneliti sedikit bagaimana algoritma ini mengoptimumkan anggaran keadaan. Selain itu, semoga berjaya dan beritahu kami jika anda melangkah lebih jauh daripada yang kami dapat!

Disyorkan: