Daftar Isi:

Jadikan Gerakan Drone Anda Terkendali dalam $10: 4 Langkah
Jadikan Gerakan Drone Anda Terkendali dalam $10: 4 Langkah

Video: Jadikan Gerakan Drone Anda Terkendali dalam $10: 4 Langkah

Video: Jadikan Gerakan Drone Anda Terkendali dalam $10: 4 Langkah
Video: Tanuki menuruni bukit dengan kecepatan tinggi!! 🛹🌪🦊 - Tanuki Sunset Classic GamePlay 🎮📱 🇮🇩 2024, November
Anonim
Image
Image
Jadikan Gerakan Drone Anda Terkendali dalam $10
Jadikan Gerakan Drone Anda Terkendali dalam $10
Jadikan Gerakan Drone Anda Terkendali dalam $10
Jadikan Gerakan Drone Anda Terkendali dalam $10

Instruksi ini adalah panduan untuk mengubah Drone R/C Anda menjadi Drone Gesture Controlled di bawah $10!

Saya adalah orang yang sangat terinspirasi oleh film-film Sci-Fi dan mencoba menampilkan teknologi dalam film dalam kehidupan nyata. Proyek ini merupakan inspirasi dari dua film seperti: "STAR WARS: The Empire Strikes Back" dan "Project Almanac". Di kedua film tersebut, Anda melihat benda terbang (X-wing Starship & R/C Drone) yang dikendalikan hanya dengan gerakan tangan. Ini menginspirasi saya untuk membuat sesuatu yang serupa…

Jelas saya tidak memiliki X-wing, jadi, sayangnya, saya harus bekerja dengan Mini R/C Quadcopter saya.

Jadi rencananya - akan ada skrip pengolah gambar yang berjalan di laptop saya yang akan terus mencari tangan saya dan melacak posisinya di bingkai video. Setelah mendapatkan koordinat tangan, ia akan mengirim sinyal masing-masing ke drone dan ini akan dilakukan menggunakan Arduino yang terhubung ke laptop bersama dengan Modul Transceiver NRF24L01 2.4GHz yang dapat langsung berkomunikasi dengan papan penerima dari setiap R/C Drone.

Perlengkapan

  • Laptop/Komputer Desktop dengan Webcam dan Python terpasang. (Saya menggunakan laptop W indows saya dengan webcam bawaannya dan menjalankan Python 2.7.14)
  • Drone R/C apa pun yang berjalan pada Frekuensi 2.4Ghz. (JJRC H36 dalam kasus saya)
  • Arduino UNO beserta Kabel Pemrogramannya. (Saya menggunakan tiruannya karena lebih murah)
  • Modul Transceiver Nirkabel Antena NRF24L01 2.4GHz. (Saya membeli ini dari sini hanya dengan 99 ($1,38))
  • Papan Adaptor 3.3V untuk Modul Nirkabel 24L01. (Saya membeli ini dari sini hanya dengan 49 ($ 0,68))
  • Kabel Jumper Pria ke Wanita x7

Langkah 1: Kumpulkan Persediaan

Kumpulkan Persediaan!
Kumpulkan Persediaan!

Langkah 2: Koneksi Modul NRF Dengan Arduino

Koneksi Modul NRF Dengan Arduino
Koneksi Modul NRF Dengan Arduino
Koneksi Modul NRF Dengan Arduino
Koneksi Modul NRF Dengan Arduino
Koneksi Modul NRF Dengan Arduino
Koneksi Modul NRF Dengan Arduino
Koneksi Modul NRF Dengan Arduino
Koneksi Modul NRF Dengan Arduino

Sekarang setelah Anda memiliki semua bagian, mari kita mulai memasang kabel Modul NRF dengan Arduino.

  1. Pertama, masukkan modul NRF ke dalam slot yang disediakan pada adaptor. Anda dapat merujuk ke gambar di atas untuk itu.
  2. Setelah itu, ambil kabel Male to Female dan sambungkan adaptor NRF ke Arduino sebagai berikut: (Lihat Diagram Sirkuit di atas)

    • Pin Adaptor NRF - Pin Arduino
    • VCC - 5v
    • GND - GND
    • CE - Pin Digital 5
    • CSN - Pin Analog 1
    • SCK - Pin Digital 4
    • MO - Pin Digital 3
    • MI - Pin Analog 0
    • IRQ - Tidak digunakan
  3. Setelah koneksi selesai, sambungkan Arduino ke PC Anda menggunakan Kabel USB Pemrograman Arduino dan Anda hampir selesai.

Langkah 3: Mari Masuk Ke Coding

Mari Masuk Ke Coding!
Mari Masuk Ke Coding!
Mari Masuk Ke Coding!
Mari Masuk Ke Coding!

Sekarang di sini dimulai bagian yang sulit…!!!

Saya belum membuat seluruh kode sendiri. Sebagai gantinya, saya telah mengambil bagian dan bit kode dari pengembang yang berbeda dan mengintegrasikan semuanya menjadi satu dengan sedikit penyesuaian. Oleh karena itu, kredit yang tepat untuk semua pencipta asli diberikan terlebih dahulu.

Anda dapat mengunduh semua kode yang dilampirkan di sini, dan membuatnya berfungsi. Atau Anda bisa pergi ke Repositori Github saya, di mana saya akan terus memperbarui kode terbaru untuk pelacakan yang lebih baik.

Pelacakan Tangan:

Pengklasifikasi Haar Cascade digunakan untuk pelacakan tangan dalam proyek ini. Haar Cascade dilatih dengan menempatkan citra positif di atas sekumpulan citra negatif. Dan data terlatih ini biasanya disimpan dalam file ".xml". Anda mungkin mendapatkan file Classifier dari hampir semua hal di internet atau Anda bahkan dapat membuatnya sendiri seperti ini. Untuk proyek ini, karena kami perlu membuatnya dikontrol dengan gerakan tangan, saya menggunakan pengklasifikasi tinju bernama "closed_frontal_palm.xml" yang dibuat oleh Aravind Nambissan untuk deteksi tangan saya. Anda dapat menguji kode ini dengan menjalankan kode "hand_live.py" di repo saya.

Memilih Kode NRF24 untuk mencocokkan Drone Anda:

Jadi menurut produsen dan model drone Anda, Anda dapat merujuk ke repositori Github - "nrf24_cx10_pc" yang dibuat oleh Perry Tsao untuk memilih kode Arduino yang tepat untuk dijalankan yang akan cocok dengan frekuensinya. Dia telah membuat tutorial yang bagus untuk mengontrol Drone CX10-nya melalui PC.

Saat saya menggunakan drone JJRC H36, saya merujuk ke repositori Github lain - "nrf24_JJRC_H36_pc" yang merupakan cabang dari repo Perry Tsao yang dibuat oleh Lewis Cornick untuk mengontrol JJRC H36-nya melalui PC.

Mempersiapkan Arduino:

Saya melakukan fork repo Lewis ke Github saya yang dapat Anda kloning jika Anda bekerja pada drone yang sama. Anda perlu mengunggah kode "nRF24_multipro.ino" sekali di Arduino Uno Anda untuk membuatnya berpasangan dengan Drone Anda setiap kali kami menjalankan skrip Python kami.

Pengujian Komunikasi Serial:

Di repo yang sama, Anda juga dapat menemukan kode "serial_test.py" yang dapat digunakan untuk menguji Komunikasi Serial skrip Python dengan Arduino dan apakah drone Anda dipasangkan atau tidak. Jangan lupa untuk mengganti COM port di kode sesuai dengan COM port board Arduino anda.

Mengintegrasikan Semuanya dalam Satu Kode:

Jadi saya mengintegrasikan semua kode ini oleh pengembang yang berbeda dan membuat kode saya sendiri "handserial.py". Jika Anda melakukan hal yang sama persis seperti yang saya lakukan dengan drone yang sama persis, maka Anda dapat langsung menjalankan kode ini dan kemudian Anda dapat mengontrol drone Anda hanya dengan menggerakkan kepalan tangan Anda di udara. Kode pertama melacak kepalan tangan di bingkai video. Tergantung pada koordinat Y dari tinju, kode mengirimkan nilai throttle ke drone membuatnya naik atau turun dan juga tergantung pada koordinat X tinju, kode mengirimkan nilai aileron ke drone membuatnya ke kiri atau kanan.

Langkah 4: Catatan Penulis

Ada 4 poin yang secara khusus ingin saya sebutkan mengenai proyek ini:

  1. Seperti yang ditentukan sebelumnya, kode ini tidak sepenuhnya dibuat oleh saya, tetapi saya terus mengerjakannya dan akan memperbarui kode untuk pelacakan yang lebih baik di Repositori Github saya. Jadi untuk pertanyaan atau pembaruan apa pun, Anda dapat mengunjungi repositori atau ping saya di Instagram.
  2. Saat ini, kami menggunakan webcam laptop yang tidak memungkinkan untuk memiliki perspektif tampilan drone, tetapi jika diperlukan, kamera yang dipasang pada drone juga dapat digunakan untuk tujuan pelacakan. Ini akan membantu untuk memiliki pandangan yang lebih baik dan pada akhirnya kontrol yang lebih baik.
  3. Untuk proyek ini, saya menggunakan drone JJRC H36 yang merupakan salah satu drone termurah yang tersedia di pasaran sehingga tidak memiliki stabilitas gyroscopic. Itulah alasan mengapa Anda mungkin merasa gerakan dalam video itu goyah, tetapi jika Anda menggunakan drone berkualitas baik dengan stabilitas yang baik, Anda tidak akan menghadapi masalah ini.
  4. Saya ingin mengotak-atik Computer Vision dan kontrol drone, maka saya mulai dengan proyek ini. Tapi setelah mengerjakan computer vision, saya merasa itu bukan solusi optimal untuk mengendalikan drone. Jadi, saya berencana untuk membuat semacam perangkat jenis sarung tangan dengan sensor Gyro untuk mengendalikan drone di masa depan. Jadi pantau terus update…

Jika Anda menyukai tutorial ini, silakan suka dan bagikan dan juga pilih itu.

Itu saja untuk saat ini.. Sampai jumpa di lain waktu…

Direkomendasikan: