Arduino Drone Dengan GPS

Kami berhasrat untuk membina sebuah cakera quadcopter yang dikawal oleh Arduino dan dikawal, GPS yang didapatkan oleh pandangan pertama (FPV) dengan pulang ke rumah, pergi ke koordinat, dan memegang fungsi GPS. Kami menganggap bahawa menggabungkan program Arduino sedia ada dan pendawaian untuk quadcopter tanpa GPS dengan sistem penghantaran GPS akan menjadi agak mudah dan kami dapat dengan cepat beralih kepada tugas-tugas pengaturcaraan yang lebih kompleks. Walau bagaimanapun, jumlah yang menghairankan perlu berubah untuk menukarkan kedua-dua projek ini, dan dengan itu kami akhirnya membuat quadcopter FPV yang dibolehkan GPS, tanpa sebarang fungsi tambahan.

Kami telah memasukkan arahan tentang cara meniru produk kami jika anda gembira dengan quadcopter yang lebih terhad.

Kami juga telah memasukkan semua langkah yang kami jalankan ke quadcopter yang lebih autonomi. Jika anda merasa selesa menggali jauh ke dalam Arduino atau sudah mempunyai banyak pengalaman Arduino dan ingin mengambil titik berhenti sebagai titik melompat untuk penerokaan anda sendiri, maka Instructable ini juga untuk anda.

Ini projek yang hebat untuk mempelajari sesuatu tentang bangunan dan pengekodan untuk Arduino tidak kira berapa banyak pengalaman yang anda miliki. Juga, anda diharapkan akan berjalan dengan drone.

Persediaan adalah seperti berikut:

Dalam senarai bahan, bahagian tanpa asterisk diperlukan untuk kedua-dua matlamat.

Bahagian dengan satu asteris diperlukan hanya untuk projek yang belum selesai dari quadcopter yang lebih autonomi.

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

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

Langkah-langkah hanya diperlukan untuk quadcopter yang tidak terhad autonomi mempunyai "(Uno)" selepas tajuk.

Langkah-langkah hanya diperlukan untuk quadcopter autonomous yang sedang dijalankan mempunyai "(Mega)" selepas tajuk.

Untuk membina kuad berasaskan Uno, ikuti langkah-langkah demi pesanan, melangkau sebarang langkah dengan "(Mega)" selepas tajuk.

Untuk mengerjakan quad berasaskan Mega, ikuti langkah-langkah yang teratur, melangkau sebarang langkah dengan "(Uno)" selepas tajuk.

Langkah 1: Kumpulkan Bahan

Komponen:

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

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

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

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

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

6) Banyak pensel (banyak pecahnya) ($ 10)

7) Satu Arduino Mega 2560 * ($ 40)

8) Satu Arduino Uno R3 ($ 20)

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

10) Satu Arduino Ultimate GPS Shield (anda tidak perlu perisai, tetapi menggunakan GPS yang berbeza akan memerlukan pendawaian yang berbeza) ($ 45)

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

12) Satu MPU- 6050, 6DOF (darjah kebebasan) gyro / accelerometer ($ 5)

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

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

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

17) USB A ke B lelaki kepada kord penyesuai lelaki ($ 5)

17) Pita saluran

18) Pusingkan tiub

Peralatan:

1) besi pematerian

2) Solder

3) Epoksi Plastik

4) Lebih ringan

5) penari telanjang

6) Satu set kunci Allen

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

1) Kamera FPV kecil (pautan ini kepada kualiti yang sangat murah dan buruk yang kita gunakan, anda boleh menggantikan yang lebih baik) ($ 20)

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

3) 500mAh, 3s (11.1V) bateri LiPo ($ 7) (kami menggunakan plag pisang, tetapi kami mencadangkan supaya anda menggunakan bateri yang disambungkan kerana ia mempunyai penyambung yang serasi dengan pemancar TS832, tidak memerlukan pematerian).

4) 2 1000mAh 2s (7.4V) bateri LiPo, atau serupa ($ 5). Bilangan mAh tidak kritikal selagi ia melebihi 1000mAh atau lebih. Pernyataan yang sama seperti di atas terpakai kepada jenis plag bagi salah satu daripada dua bateri. Yang lain akan digunakan untuk menguasai monitor, jadi anda perlu untuk meminjam apa pun. Mungkin terbaik untuk mendapatkan satu dengan palam XT-60 untuk ini (itulah yang kami lakukan). Pautan untuk jenis itu adalah di sini: 1000mAh 2s (7.4V) LiPo dengan plag XT-60

5) monitor LCD (pilihan) ($ 15). Anda juga boleh menggunakan penyesuai AV-USB dan perisian penyalin DVD untuk melihat terus pada komputer riba. Ini juga memberi pilihan untuk merekodkan video dan foto, bukan sekadar menontonnya secara realtime.

6) Jika anda telah membeli bateri dengan palam berbeza dari yang dikaitkan, anda mungkin memerlukan penyesuai yang sesuai. Walau apa pun, dapatkan penyesuai yang sepadan dengan plag bagi bateri yang memantau monitor. Di sinilah mendapatkan adaptor XT-60

* = hanya untuk projek yang lebih maju

** = hanya untuk projek yang lebih asas

Kos:

Jika bermula dari awal (tetapi dengan besi penyolder, dll ...), tiada sistem FPV: ~ $ 370

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

Kos sistem FPV: $ 80

Langkah 2: Pasang Frame

Langkah ini agak mudah, terutamanya jika menggunakan bingkai pra yang dibuat yang kami gunakan. Cukup gunakan skru yang disertakan dan letakkan bingkai tersebut bersama-sama seperti yang ditunjukkan, menggunakan sepana yang sesuai sepana atau pemutar skru untuk bingkai anda. Pastikan lengan warna yang sama bersebelahan dengan satu sama lain (seperti dalam gambar ini), supaya drone mempunyai depan dan belakang yang jelas. Selanjutnya, pastikan bahagian panjang plat bawah melekat di antara lengan berwarna bertentangan. Ini menjadi penting kemudian.

Langkah 3: Mount Motors dan Connect Escs

Sekarang bingkai dipasang, mengambil empat motor dan empat aksesori pelekap. Anda boleh menggunakan skru sama ada dalam set pelekap, atau skru yang ditinggalkan dari bingkai quadcopter untuk mengetatkan motor dan gunung di tempatnya. Jika anda membeli kenderaan yang kami sambungkan, anda akan menerima dua komponen tambahan, yang digambarkan di atas. Kami mempunyai prestasi motor yang baik tanpa bahagian ini, jadi kami meninggalkan mereka untuk mengurangkan berat badan.

Sebaik sahaja motor dibuang di tempat, epoxy papan pengagihan kuasa (PDB) di tempat di atas plat atas bingkai quadcopter. Pastikan anda mengorientasikannya supaya penyambung bateri menunjukkan di antara lengan berwarna berbeza (sejajar dengan salah satu bahagian panjang plat bawah), seperti dalam gambar di atas.

Anda juga perlu mempunyai empat baling kipas dengan benang perempuan. Tetapkan ini untuk masa sekarang.

Sekarang ambil ESC anda. Satu pihak akan mempunyai dua wayar yang keluar daripadanya, satu merah dan satu hitam. Bagi setiap empat ESC, masukkan wayar merah ke penyambung positif pada PDB dan hitam ke negatif. Ambil perhatian bahawa jika anda menggunakan PDB yang berbeza, langkah ini mungkin memerlukan pematerian. Sekarang sambungkan setiap tiga wayar keluar dari setiap motor. Pada ketika ini, tidak kira kabel ESC yang anda sambungkan dengan wayar motor mana (selagi anda menyambung semua wayar satu ESC dengan motor yang sama!) Anda akan membetulkan mana-mana kutub belakang di kemudian hari. Ia tidak berbahaya sekiranya wayar dibalikkan; ia hanya menyebabkan motor berputar ke belakang.

Langkah 4: Sediakan Arduino dan Perisai

Nota sebelum anda bermula

Pertama, anda boleh memilih untuk menyolder semua wayar bersama secara langsung. Walau bagaimanapun, kami mendapati ia tidak ternilai untuk menggunakan pengepala pin kerana mereka menyediakan banyak fleksibiliti untuk penyelesaian masalah dan menyesuaikan projek. Apa yang berikut adalah penerangan tentang apa yang kita lakukan (dan mengesyorkan orang lain).

Sediakan Arduino dan perisai

Keluarkan Arduino Mega anda (atau Uno jika melakukan quad non-autonomi), perisai GPS, dan tajuk stackable. Pateri ujung kepala penumpuk yang ditempatkan pada perisai GPS, dalam baris pin sejajar dengan pin yang dipintal, seperti yang ditunjukkan pada gambar di atas. Juga solder dalam tajuk stackable pada baris pin berlabel 3V, CD, ... RX. Gunakan pemotong dawai untuk mengelakkan panjang berlebihan pada pin yang melekat di bahagian bawah. Letakkan tajuk lelaki dengan bahagian atas terbengkalai di semua tajuk yang boleh disusun. Ini adalah apa yang anda akan memasang wayar untuk komponen lain.

Pasang perisai GPS ke bahagian atas, memastikan bahawa pin sepadan dengan yang terdapat pada Arduino (Mega atau Uno). Ambil perhatian bahawa jika menggunakan Mega, banyak Arduino masih akan terdedah selepas anda meletakkan perisai di tempatnya.

Letakkan pita elektrik di bahagian bawah Arduino, yang meliputi semua palang pin yang terdedah, untuk mengelakkan sebarang litar pintas apabila Arduino terletak pada PDB.

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

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

* Perhatikan bahawa skematik ini mengandaikan perisai GPS dipasang dengan betul, dan oleh itu GPS tidak muncul dalam skema ini.

Skema di atas disediakan menggunakan perisian Fritzing, yang sangat disyorkan terutamanya untuk skema yang melibatkan Arduino. Kami kebanyakannya menggunakan bahagian-bahagian generik yang boleh diedit secara fleksibel, kerana bahagian kami pada umumnya tidak berada di bahagian perpustakaan Fritzing.

-Pastikan suis pada perisai GPS dihidupkan ke "Direct Write."

-Penghidupkan semua komponen mengikut skema di atas (kecuali bateri!) (Nota penting pada wayar data GPS di bawah).

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

Selain itu, ambil perhatian bahawa data GPS (wayar kuning) keluar dari pin 0 dan 1 pada Arduino (bukan Tx dan Rx pin yang berasingan pada GPS). Itu kerana dikonfigurasi untuk "Tulis Langsung" (lihat di bawah), output GPS terus ke port siri perkakasan pada uno (pin 0 dan 1). Ini paling jelas ditunjukkan pada gambar kedua di atas pendawaian lengkap.

-When wiring the RC receiver, rujuk gambar di atas. Perhatikan bahawa wayar data masuk ke barisan atas, manakala Vin dan Gnd berada pada baris kedua dan ketiga, dan pada lajur pin kedua-ke-terjauh.

-Untuk melakukan pendawaian untuk penerima HC-12, penerima RC, dan 5Vout dari PDB ke Vin dari Arduino kami menggunakan pengepala bertindan, sedangkan untuk gyro kami menyalurkan wayar secara langsung ke papan dan menggunakan tiub penyejuk haba sekitar solder. Anda boleh memilih untuk melakukan sama ada untuk mana-mana komponen, namun pematerian langsung ke gyro disyorkan kerana menjimatkan ruang yang menjadikan bahagian kecil lebih mudah dipasang. Menggunakan tajuk adalah sedikit lebih banyak bekerja di depan, tetapi menyediakan lebih banyak kelenturan. Kabel pematerikan secara langsung adalah sambungan yang lebih selamat jangka panjang, namun bermakna bahawa menggunakan komponen itu pada projek lain lebih sukar. Ambil perhatian bahawa jika anda menggunakan tajuk pada perisai GPS, anda masih mempunyai jumlah fleksibiliti yang baik tanpa mengira apa yang anda lakukan. Secara asasnya, pastikan wayar data GPS dalam pin 0 dan 1 pada GPS mudah dikeluarkan dan ganti.

Pada akhir projek kami, kami tidak dapat merancang kaedah yang baik untuk melampirkan semua komponen kami ke kerangka. Disebabkan tekanan masa kelas kami, penyelesaian kami pada umumnya berputar di sekitar pita buih dua sisi, pita saluran, pita elektrik, dan hubungan zip. Kami sangat mengesyorkan anda menghabiskan lebih banyak masa merangka struktur pemasangan yang stabil jika anda merancang ini menjadi projek jangka panjang. Dengan semua yang dikatakan, jika anda hanya ingin membuat prototaip cepat, maka jangan ragu untuk mengikuti proses kami. Walau bagaimanapun, pastikan gyro dipasang dengan selamat. Inilah satu-satunya cara Arduino tahu apa yang dilakukan quadcopter, jadi jika ia bergerak dalam penerbangan, anda akan menghadapi masalah.

Dengan semua yang dipasang dan di tempat, ambil bateri LiPo anda dan slaidnya di antara plat atas dan bawah bingkai. Pastikan penyambungnya menunjuk arah yang sama dengan penyambung PDB, dan mereka sebenarnya boleh menyambungkannya. Kami menggunakan pita saluran untuk memegang bateri di tempat (pita velcro juga berfungsi, tetapi lebih menjengkelkan daripada pita saluran). Pita saluran berfungsi dengan baik kerana seseorang boleh dengan mudah menggantikan bateri atau mengeluarkannya untuk mengecas. Walau bagaimanapun, anda mesti memastikan anda memukul bateri ke bawah KEBAIKAN, seolah-olah bateri bergerak sekitar semasa penerbangan ini serius boleh menjejaskan keseimbangan drone. TIDAK Sambungkan bateri ke PDB lagi.

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

Skema di atas disediakan menggunakan perisian Fritzing, yang sangat disyorkan terutama untuk skema yang melibatkan arduino. Kami kebanyakannya menggunakan bahagian-bahagian generik, kerana sebahagian kami tidak berada di perpustakaan bahagian Fritzing.

-Perhatikan bahawa skema ini menganggap perisai GPS dipasang dengan betul, dan dengan itu GPS tidak muncul dalam skema ini.

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

-Kari kini semua komponen mengikut skema di atas (kecuali bateri!)

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

- Kabel jumper dari Pin 8 hingga Rx dan Pin 7 hingga Tx ada kerana (tidak seperti Uno, yang perisai ini dibuat), mega tidak mempunyai pemancar penerima asynchronous universal (UART) pada pin 7 dan 8, dan dengan itu kita perlu menggunakan pin siri perkakasan. Terdapat lebih banyak sebab kita perlu pin siri perkakasan, dibincangkan kemudian.

-When wiring the RC receiver, rujuk gambar di atas. Perhatikan bahawa wayar data masuk ke barisan atas, manakala Vin dan Gnd berada pada baris kedua dan ketiga, dan pada lajur pin kedua-ke-terjauh.

-Untuk melakukan pendawaian untuk penerima HC-12, penerima RC, dan 5Vout dari PDB ke Vin dari Arduino kami menggunakan pengepala yang boleh disusun, sedangkan untuk gyro kami menyalurkan wayar secara langsung dan menggunakan tiub penyejuk haba sekitar pateri. Anda boleh memilih sama ada untuk mana-mana komponen. Menggunakan tajuk adalah sedikit lebih banyak bekerja di depan, tetapi menyediakan lebih banyak kelenturan. Kabel pematerikan secara langsung adalah sambungan yang lebih selamat jangka panjang, namun bermakna bahawa menggunakan komponen itu pada projek lain lebih sukar. Ambil perhatian bahawa jika anda menggunakan tajuk pada perisai GPS, anda masih mempunyai jumlah fleksibiliti yang baik tanpa mengira apa yang anda lakukan.

Pada akhir projek kami, kami tidak dapat merancang kaedah yang baik untuk melampirkan semua komponen kami ke kerangka. Disebabkan tekanan masa kelas kami, penyelesaian kami pada umumnya berputar di sekitar pita buih dua sisi, pita saluran, pita elektrik, dan hubungan zip. Kami sangat mengesyorkan anda menghabiskan lebih banyak masa merangka struktur pemasangan yang stabil jika anda merancang ini menjadi projek jangka panjang. Dengan semua yang dikatakan, jika anda hanya mahu membuat prototaip cepat, jangan ragu untuk mengikuti proses kami. Walau bagaimanapun, pastikan gyro dipasang dengan selamat. Inilah satu-satunya cara Arduino tahu apa yang dilakukan quadcopter, jadi jika ia bergerak dalam penerbangan, anda akan menghadapi masalah.

Dengan semua yang dipasang dan di tempat, ambil bateri LiPo anda dan slaidnya di antara plat atas dan bawah bingkai. Pastikan penyambungnya menunjuk arah yang sama dengan penyambung PDB, dan mereka sebenarnya boleh menyambungkannya. Kami menggunakan pita saluran untuk memegang bateri di tempat (pita velcro juga berfungsi, tetapi lebih menjengkelkan daripada pita saluran). Pita saluran berfungsi dengan baik kerana seseorang boleh dengan mudah menggantikan bateri atau mengeluarkannya untuk mengecas. Walau bagaimanapun, anda mesti memastikan anda memukul bateri ke bawah KEBAIKAN, seolah-olah bateri bergerak sekitar semasa penerbangan ini serius boleh menjejaskan keseimbangan drone. TIDAK Sambungkan bateri ke PDB lagi.

Langkah 7: Penerima Bind

Ambil penerima RC dan sambungkannya sementara ke bekalan kuasa 5V (sama ada dengan menghidupkan Arduino dengan USB atau kuasa 9V, atau dengan bekalan kuasa berasingan. Jangan sambungkan LiPo ke Arduino lagi). Ambil pin yang terikat dengan penerima RC dan letakkan pada pin BIND pada penerima. Selalunya, sapukan pin atas dan bawah di lajur BIND seperti yang ditunjukkan dalam foto di atas. Lampu merah harus berkedip cepat pada penerima. Sekarang ambil pengawal dan tekan butang di belakang semasa ia dimatikan, seperti yang ditunjukkan di atas. Dengan butang yang ditekan, hidupkan pengawal. Sekarang lampu berkelip pada penerima harus bertukar padat. Penerima terikat. Keluarkan kabel mengikat. Sekiranya anda menggunakan bekalan kuasa yang berbeza, sambungkan semula penerima ke 5V daripada Arduino.

Langkah 8: (Pilihan) Wire Bersama dan Gunung Sistem Kamera FPV.

Pertama, solder bersama penyesuai XT-60 dengan wayar kuasa dan tanah di monitor. Ini mungkin berbeza-beza dari monitor untuk memantau, tetapi kuasa hampir selalu menjadi merah, tanah hampir selalu hitam. Sekarang masukkan penyesuai dengan wayar yang disalurkan ke dalam LiPo 1000mAh anda dengan palam XT-60. Monitor harus dihidupkan dengan (biasanya) latar belakang biru. Itulah langkah paling sukar!

Kini skru pada antena pada penerima dan pemancar anda.

Sambungkan 500mAh Lipo kecil anda ke pemancar. PIN paling kanan (betul-betul di bawah antena) adalah tanah (V_) bateri, pin seterusnya ke kiri adalah V +. Mereka datang ke tiga wayar yang pergi ke kamera. Kamera anda harus dilengkapi dengan satu pasang tiga dalam yang sesuai dengan pemancar. Pastikan anda mempunyai wayar data kuning di tengah. Jika anda menggunakan bateri yang kami sambungkan dengan palam yang dimaksudkan untuk ini, langkah ini tidak sepatutnya memerlukan pematerian.

Akhir sekali, angkat bateri 1000mAh yang lain dengan wayar keluar DC yang disertakan dengan penerima anda, dan seterusnya pasangkannya ke dalam port DC pada penerima anda. Akhir sekali, hubungkan hujung hitam kabel AVin yang datang dengan penerima anda ke port AVin pada penerima anda, dan yang lain (kuning, perempuan) hujung ke hujung lelaki kuning kabel AVin monitor anda.

Pada ketika ini, anda harus melihat pandangan kamera pada monitor. Sekiranya anda tidak boleh, pastikan penerima dan pemancar kedua-duanya (anda harus melihat nombor pada skrin kecil mereka) dan bahawa mereka berada di saluran yang sama (kami menggunakan saluran 11 untuk kedua-duanya dan berjaya). Selanjutnya, anda mungkin perlu menukar saluran pada monitor.

Pasang komponen pada bingkai.

Sebaik sahaja anda mempunyai persediaan berfungsi, cabut plag bateri sehingga anda sudah bersedia untuk terbang.

Langkah 9: Sediakan Penerimaan Data GPS

Wayar Arduino kedua anda dengan penerima HC-12 kedua anda sebagai pertunjukan dalam skema di atas, perlu diingat bahawa persediaan hanya akan dikuasai seperti dipaparkan jika dipasang ke dalam komputer. Muat turun kod transceiver yang disediakan, buka monitor siri anda ke 9600 baud.

Jika menggunakan persediaan yang lebih asas, anda harus mula menerima ayat GPS jika perisai GPS anda dikuasakan dan disambung dengan betul ke penerima transceiver HC-12 yang lain (dan jika suis perisai berada pada "Direct Write").

Dengan Mega, pastikan suis berada pada "Serial Lembut."

Lampiran

  • Muat turun Transceiver_Uno.ino

Langkah 10: Lakukan Persediaan Kod (Uno)

Kod ini sama dengan yang digunakan oleh Joop Brokking dalam tutorial quadcopter Arduinonya, dan dia layak mendapat kredit untuk penulisannya.

Dengan bateri terputus, gunakan kord USB untuk menyambung komputer anda ke Arduino, dan muat naik Kod Persediaan yang dilampirkan. Hidupkan pemancar RC anda. Buka monitor bersiri anda untuk 57600 baud dan ikut arahan.

Kesalahan umum:

Jika kod gagal dimuat naik, pastikan pin 0 dan 1 dicabut pada perisai UNO / GPS. Ini adalah port perkakasan yang sama yang digunakan oleh peranti untuk berkomunikasi dengan komputer, jadi ia mesti bebas.

Sekiranya kod tersebut melangkaui sekumpulan langkah sekaligus, periksa suis GPS anda pada "Tulis Langsung."

Sekiranya tiada penerima dikesan, pastikan terdapat lampu merah padat (tetapi redup) pada penerima anda apabila pemancar sedang aktif. Jika ya, periksa pendawaian.

Sekiranya tiada gyro dikesan, ini mungkin kerana gyro rosak atau jika anda mempunyai jenis gyro yang berlainan daripada kod yang direka untuk menulis kepada.

Lampiran

  • YMFC-AL_setup.ino Muat turun

Langkah 11: Lakukan Kod Setup (Mega)

Kod ini sama dengan yang digunakan oleh Joop Brokking dalam tutorial quadcopter Arduinonya, dan dia layak mendapat kredit untuk penulisannya. Kami hanya menyesuaikan pendawaian untuk Mega supaya input penerima sepadan dengan pin Pin Tukar Interrupt yang betul.

Dengan bateri terputus, gunakan kord USB untuk menyambung komputer anda ke Arduino, dan muat naik Kod Persediaan yang dilampirkan. Buka monitor bersiri anda untuk 57600 baud dan ikut arahan.

Lampiran

  • YMFC-AL_setup.ino Muat turun

Langkah 12: Menentukur ESC (Uno)

Sekali lagi, kod ini sama dengan kod Joop Brokking. Semua pengubahsuaian dibuat dalam usaha untuk mengintegrasikan GPS dan Arduino dan boleh dijumpai kemudian, 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 bervariasi dari 1000 hingga 2000 pada keterlaluan throttle, roll, pitch, dan yaw. Kemudian tulis 'a' dan tekan kembali. Biarkan penentukuran gyro pergi, dan kemudian sahkan bahawa gyro mendaftar usul kuad. Sekarang uplug arduino dari komputer, tolak pendikit ke seluruh pengawal, dan sambungkan bateri. ESCs harus menaikkan bip bip yang berbeza (tetapi ini mungkin berbeza bergantung kepada ESC dan firmwarenya). Tolak pendikit semua jalan ke bawah. ESCs harus mengeluarkan bip yang lebih rendah, kemudian jatuh diam. Cabut plag bateri.

Opsional, anda boleh pada masa ini menggunakan kon yang datang dengan pek aksesori pemasangan motor anda untuk mengetatkan skru pada pensel. Kemudian masukkan nombor 1 - 4 pada monitor bersiri untuk menyalakan motor 1 - 4 masing-masing, pada kuasa terendah. Program ini akan mendaftarkan jumlah guncangan kerana ketidakseimbangan alat. Anda boleh cuba memperbaiki ini dengan menambah sejumlah kecil pita pita ke satu sisi atau yang lain dari alat peraga. Kami mendapati kami boleh mendapatkan penerbangan halus tanpa langkah ini, tetapi mungkin sedikit kurang cekap dan lebih keras daripada kami mengimbangi alat peraga.

Lampiran

  • YMFC-AL_esc_calibrate.ino Muat turun

Langkah 13: Kalibrasi ESC (Mega)

Kod ini sangat serupa dengan kod Brokking, namun kami menyesuaikannya (dan pendawaian yang sepadan) 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 bervariasi dari 1000 hingga 2000 pada keterlaluan throttle, roll, pitch, dan yaw.

Kemudian tulis 'a' dan tekan kembali. Biarkan penentukuran gyro pergi, dan kemudian sahkan bahawa gyro mendaftar usul kuad.

Sekarang uplug arduino dari komputer, tolak pendikit ke seluruh pengawal, dan sambungkan bateri. ESCs harus mengeluarkan tiga bip rendah diikuti dengan bip tinggi (tetapi ini mungkin berbeza bergantung kepada ESC dan firmwarenya). Tolak pendikit semua jalan ke bawah. Cabut plag bateri.

Perubahan yang kami buat pada kod ini adalah untuk menukar dari menggunakan PORTD untuk pin ESC untuk menggunakan PORTA dan kemudian menukar bait yang ditulis ke port ini supaya kami mengaktifkan pin yang betul seperti yang ditunjukkan dalam skema pendawaian. Perubahan ini adalah kerana PIN mendaftar PORTD tidak berada di lokasi yang sama di Mega kerana mereka berada di Uno. Kami tidak dapat menguji sepenuhnya kod ini kerana kami sedang bekerja dengan jenama Mega yang lama yang mempunyai kedai sekolah kami. Ini bermakna bahawa atas sebab tertentu tidak semua pin register PORTA dapat mengaktifkan ESC dengan betul. Kami juga menghadapi masalah menggunakan atau sama dengan operator (| =) dalam beberapa kod ujian kami. Kami tidak pasti mengapa ini menyebabkan masalah semasa menulis bait untuk menetapkan tegasan pin ESC, jadi kami mengubahsuai kod Brooking seketika mungkin. Kami fikir bahawa kod ini sangat dekat dengan fungsi, tetapi perbatuan anda mungkin berbeza-beza.

Lampiran

  • YMFC-AL_esc_calibrateMEGA.ino Muat turun

Langkah 14: Dapatkan Airborne !! (Uno)

Dan lagi, kod ketiga kod genius ini adalah kerja Joop Brokking. Perubahan kepada ketiga-tiga kod tersebut hadir hanya dalam percubaan kami untuk mengintegrasikan data GPS ke Arduino.

Dengan pensel anda dipasang ke bingkai dan semua komponen yang diikat, direkam, atau dipasang, memuatkan kod pengawal penerbangan ke Arduino anda, kemudian cabut Arduino dari komputer anda.

Ambil quadcopter anda di luar, pasangkan bateri dan hidupkan pemancar anda. Secara pilihan, bawa komputer riba yang disambungkan ke persediaan penerimaan GPS anda serta persediaan dan monitor penerimaan video anda. Muatkan kod transceiver ke Arduino terestrial, buka monitor siri anda ke 9600 baud dan nonton data data GPS.

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

Lihat video yang terimbas dari kami dengan senang hati terbang drone pada kali pertama kami dapat mendapatkan drone dan GPS berfungsi serentak.

Lampiran

  • YMFC-AL_Flight_controller.ino Muat turun

Langkah 15: Dapatkan Airborne !! (Mega)

Disebabkan gangguan kami dengan kod penentukuran ESC untuk Mega, kami tidak dapat membuat kod pengawal penerbangan untuk papan ini. Sekiranya anda sampai ke tahap ini, saya bayangkan bahawa anda sekurang-kurangnya telah digagalkan dengan kod penentukuran ESC untuk menjadikannya berfungsi untuk Mega. Oleh itu, anda mungkin perlu membuat pengubahsuaian yang serupa dengan kod pengawal penerbangan seperti yang anda buat pada langkah terakhir. Jika kod penentukuran ESC kami untuk Mega secara ajaib berfungsi tanpa apa-apa pengubahsuaian lain, maka hanya ada beberapa perkara yang perlu anda lakukan untuk kod saham untuk menjadikannya berfungsi untuk langkah ini. Anda terlebih dahulu perlu melalui dan menggantikan semua contoh PORTD dengan PORTA. Juga, jangan lupa untuk menukar DDRD ke DDRA. Kemudian, anda perlu menukar semua bait yang ditulis ke daftar PORTA supaya mereka mengaktifkan pin yang betul. Untuk melakukan ini, gunakan bait B11000011 untuk menetapkan pin ke tahap tinggi dan B00111100 untuk menetapkan pin ke tahap rendah. Nasib baik, dan tolong beritahu kami jika anda berjaya terbang menggunakan Mega!

Langkah 16: Bagaimana Kami Mendapat Kepada Di Mana Kita Kini Dengan Reka Bentuk Mega

Projek ini merupakan pengalaman pembelajaran yang luar biasa bagi kami sebagai pemula hobi Arduino dan elektronik. Oleh itu, kami walaupun kami akan memasukkan saga dari segala yang kami hadapi semasa cuba menggunakan GPS membolehkan kod Joop Brokking. Kerana kod Brokking sangat teliti dan jauh lebih rumit daripada apa yang kita tulis, kami memutuskan untuk mengubahnya sesedikit mungkin. Kami cuba untuk mendapatkan perisai GPS untuk menghantar data ke Arduino dan kemudian mempunyai Arduino menghantar maklumat itu kepada kami melalui penerima transceiver HC12 tanpa mengubah kod penerbangan atau pendawaian dengan cara apapun. Setelah melihat skema dan pendawaian Arduino Uno kami untuk mengetahui apa pin yang ada, kami menukar kod transceiver GPS yang kami gunakan untuk mengendalikan reka bentuk yang sedia ada. Kemudian kami mengujinya untuk memastikan semuanya berfungsi. Pada ketika ini, perkara-perkara sepertinya menjanjikan.

Langkah seterusnya ialah mengintegrasikan kod yang baru kita ubah dan diuji dengan pengawal penerbangan Brokking. Ini tidak terlalu sukar, tetapi kami dengan cepat berlari ke dalam kesilapan. Pengawal penerbangan Brokking bergantung pada Arduino Wire dan perpustakaan EEPROM sementara kod GPS kami menggunakan kedua-dua perpustakaan Siri Perisian dan perpustakaan Arduino GPS. Kerana Perpustakaan Wire merujuk pustaka Serial Perisian, kami menghadapi kesilapan di mana kod tidak akan dikompil kerana ada "pelbagai definisi untuk _vector 3_", apa pun maksudnya. Setelah melihat di Google dan menggali di perpustakaan, akhirnya kami menyedari bahawa konflik perpustakaan ini menjadikannya mustahil untuk menggunakan kepingan kod ini bersama-sama. Jadi, kami pergi mencari alternatif.

Apa yang kami tahu ialah satu-satunya kombinasi perpustakaan yang tidak membuang kesilapan kepada kami telah menukar pustaka GPS standard kepada neoGPS dan kemudian menggunakan AltSoftSerial dan bukannya Siri Perisian. Gabungan ini berfungsi, bagaimanapun, AltSoftSerial hanya boleh beroperasi dengan pin tertentu, yang tidak terdapat dalam reka bentuk kami. Inilah yang membawa kita menggunakan Mega. Arduino Megas mempunyai banyak port siri perkakasan, yang bermaksud bahawa kita boleh memintas konflik perpustakaan ini dengan tidak perlu membuka port siri perisian sama sekali.

Walau bagaimanapun, apabila kami mula menggunakan Mega, kami dengan cepat menyedari bahawa konfigurasi pin berbeza. Pins di Uno yang mempunyai interupsi berbeza di Mega. Begitu juga, pin SDA dan SCL berada di lokasi yang berlainan. Selepas mengkaji gambar rajah pin untuk setiap jenis Arduino, dan menghidupkan daftar yang dipanggil dalam kod, kami dapat menjalankan kod persediaan penerbangan dengan hanya pendawaian semula minimum dan tiada perubahan perisian.

Kod penentukuran ESC adalah di mana kita mula menghadapi masalah. Kami menyentuh ini secara ringkas sebelum ini, tetapi pada asasnya kod itu menggunakan pin register untuk mengatur pin yang digunakan untuk mengawal ESC. Ini menjadikan kod itu lebih sukar dibaca daripada menggunakan fungsi pinMode standard (); Walau bagaimanapun, ia menjadikan kod tersebut berjalan lebih cepat dan mengaktifkan pin pada masa yang sama. Ini penting kerana kod penerbangan berjalan dalam gelung yang berhati-hati. Kerana perbezaan pin antara Arduinos, kami memutuskan untuk menggunakan port register A di Mega. Walau bagaimanapun, dalam ujian kami, tidak semua pin memberikan kami voltan keluaran yang sama apabila diberitahu untuk berjalan tinggi. Beberapa pin mempunyai keluaran sekitar 4.90V dan yang lain memberi kita lebih dekat kepada 4.95V. Nampaknya ESC yang kita ada agak halus, dan oleh itu mereka hanya akan beroperasi dengan baik apabila kita menggunakan pin dengan voltan yang lebih tinggi. Ini kemudian memaksa kita mengubah bait yang kita tulis untuk mendaftarkan A supaya kita bercakap dengan pin yang betul. Terdapat maklumat lanjut mengenai ini dalam bahagian penentukuran ESC.

Ini adalah sejauh yang kita dapat dalam bahagian projek ini. Apabila kami pergi untuk menguji kod penentukuran ESC diubahsuai ini, sesuatu yang dipintas dan kami kehilangan komunikasi dengan Arduino kami. Kami sangat hairan dengan ini kerana kami tidak mengubah apa-apa pendawaian. Ini memaksa kita untuk melangkah mundur dan menyedari bahawa kami hanya mempunyai beberapa hari untuk mendapatkan drone terbang selepas berminggu-minggu berusaha untuk menyesuaikan kepingan kami yang tidak serasi bersama-sama. Inilah sebabnya mengapa kami mundur dan mencipta projek yang lebih mudah dengan Uno. Walau bagaimanapun, kami masih berfikir bahawa pendekatan kami hampir dengan bekerja dengan Mega dengan sedikit masa.

Matlamat kami ialah penjelasan ini tentang halangan yang kami hadapi adalah berguna kepada anda jika anda sedang berusaha mengubah kod Brokking. Kami juga tidak pernah mendapat peluang untuk mencuba sebarang ciri kawalan autonomi berdasarkan GPS. Ini adalah sesuatu yang anda perlu fikirkan setelah membuat drone bekerja dengan Mega. Walau bagaimanapun, dari beberapa penyelidikan awal Google, ia kelihatan seperti melaksanakan penapis Kalman mungkin cara yang paling stabil dan tepat untuk menentukan kedudukan dalam penerbangan. Kami mencadangkan anda sedikit penyelidikan mengenai bagaimana algoritma ini mengoptimumkan anggaran negara. Selain itu, nasib baik dan beritahu kami jika anda lebih jauh daripada yang kami dapat!

Artikel Berkaitan