1 poin oleh GN⁺ 2024-12-25 | 1 komentar | Bagikan ke WhatsApp
  • Drone DIY berbasis ESP32 ini mewujudkan drone WiFi kecil yang dikendalikan lewat smartphone dengan komponen murah, sehingga Anda bisa mempraktikkan kontrol drone, PCB, dan firmware sekaligus
  • Inti desainnya adalah PCB all-in-one yang mengintegrasikan USB Type-C, rangkaian pengisian baterai, ESP32, USB-UART CP2102, MPU6050, dan driver motor SI2302
  • Firmware didasarkan pada ESP-drone firmware dari Espressif, dan bisa dibangun langsung dengan ESP-IDF 4.4.5 atau mem-flash ESPDrone.bin yang disediakan
  • Setelah dinyalakan, sambungkan ke hotspot WiFi yang dibuat drone dengan kata sandi 12345678, lalu kendalikan melalui aplikasi iOS atau Android
  • Jika performa discharge baterai tidak mencukupi, koneksi aplikasi bisa terputus atau drone bisa reboot saat lepas landas, sehingga dibutuhkan baterai dengan discharge rate tinggi seperti 1300mAh 30C pada contoh

Gambaran Umum Proyek dan Fitur

  • Proyek ini adalah cara membuat sendiri drone WiFi yang dikendalikan smartphone menggunakan ESP32 dan komponen pendukung
  • Rangka kecil dan ringan menggunakan modul ESP32, IMU MPU6050, motor coreless, dan baling-baling plastik
  • Fitur utamanya adalah sebagai berikut
    • Kontrol WiFi berbasis smartphone
    • IMU MPU6050 untuk kontrol stabilitas
    • PCB all-in-one yang dirakit tanpa komponen cetak 3D
    • Dapat menambahkan position hold atau height hold melalui modul eksternal
    • Pengisi daya baterai bawaan
    • Antarmuka USB bawaan untuk pemrograman dan debugging
    • Dukungan aplikasi Android dan iOS
    • Open source

Konfigurasi Rangkaian

  • Port USB Type-C menangani pengisian daya dan pemrograman sekaligus
  • Kontrol jalur daya menggunakan P-Channel MOSFET U2 dan dioda D1 untuk beralih antara daya USB dan daya baterai
  • Regulasi tegangan ditangani oleh MIC5219 3.3V LDO dari Microchip
  • Kontroler pengisian TP4056 mengelola pengisian baterai, dan pendeteksian tegangan ditangani dengan rangkaian pembagi tegangan
  • Bagian kontrol utama terdiri dari SoC ESP32, kontroler USB-UART CP2102, dan chip IMU MPU6050
    • CP2102 dan dual MOSFET menyederhanakan fungsi reset ESP32
    • MPU6050 terhubung ke pin GPIO ESP32 dan digunakan untuk stabilisasi penerbangan serta kontrol gerak
  • Rangkaian driver motor mengendalikan motor dengan SI2302 N-Channel MOSFET, bersama dioda pelindung dan resistor
  • LED debugging digunakan untuk memeriksa status
    • LED biru: kalibrasi
    • LED hijau: deteksi koneksi
    • LED merah: baterai lemah
    • Indikator daya dan pengisian juga disertakan

PCB dan Perakitan

  • Untuk membuat produk akhir kecil dan mudah dirakit, digunakan PCB kustom
  • Kaki drone juga disertakan pada PCB dan dapat dipisahkan dengan mudah dari PCB utama
  • Baling-baling A dan B harus dipasang sesuai arah yang ditentukan
  • Selama self-test saat daya dinyalakan, perlu dipastikan baling-baling berputar normal dan ke arah yang benar

Firmware dan Flashing

  • Firmware didasarkan pada ESP-drone firmware dari Espressif, dan harus menggunakan source GitHub dari Circuit Digest yang telah dimodifikasi agar sesuai dengan desain PCB
  • Kode ditulis dengan ESP-IDF, dan versi yang digunakan untuk kompilasi adalah ESP-IDF 4.4.5
  • Ada tiga cara menerapkan firmware
    • Membangun source dengan ESP-IDF
      • Instal dan konfigurasikan ESP-IDF 4.4.x
      • Clone repositori dengan git clone https://github.com/Circuit-Digest/ESP-Drone.git
      • Pindah ke folder ESP-Drone/Firmware/esp-drone
      • Pengaturan bisa diubah dengan idf.py menuconfig, tetapi pengaturan default sudah cukup
      • Jalankan build dan flash dengan perintah idf.py -p PORT flash
    • Menggunakan ESPTOOL
      • Setelah menginstal ESP-IDF, jalankan dari folder image firmware
      • Flash dengan perintah esptool.py write_flash --flash_size detect 0x0 ESPDrone.bin
    • Menggunakan ESP32 Flash Download Tool
      • Unduh dan jalankan tool, lalu pilih ESP32 sebagai tipe chip
      • Pilih file ESPDrone.bin dan atur alamat ke 0x00
      • Pilih port COM yang benar, lalu lakukan erase dan flash dengan START

Koneksi Aplikasi dan Kontrol

  • Letakkan drone di permukaan datar dan nyalakan; flight controller akan membuat hotspot WiFi
  • Di smartphone, sambungkan dengan kata sandi 12345678, lalu buka aplikasi untuk menggunakannya
  • Aplikasi iOS bisa diperoleh dengan mencari ESP-Drone APP di App Store
  • Aplikasi Android bisa diperoleh dari tautan yang disediakan, dan karena aplikasi dibuat serta di-hosting oleh pihak ketiga, pengguna harus memutuskan sendiri sebelum menginstalnya
  • Saat tombol connect ditekan di aplikasi, komunikasi dengan drone akan dimulai
  • Jika koneksi berhasil, LED drone akan berkedip hijau
  • Tombol turn lock digunakan untuk mengunci controller kiri agar hanya memakai gerakan atas-bawah, atau memakai atas-bawah-putar kiri-putar kanan
  • Stick kiri menangani lepas landas dan mendarat, sedangkan stick kanan menangani kontrol gerak
  • Jika koneksi aplikasi terputus atau drone reboot saat lepas landas, baterai mungkin tidak mampu memasok daya yang cukup
    • Contoh baterai adalah 1300mAh 30C
    • Dibutuhkan baterai dengan discharge rate lebih tinggi

Pemeriksaan Sebelum Terbang

  • Letakkan drone dengan kepala menghadap ke depan dan bagian ekor, yaitu antena, menghadap ke belakang
  • Taruh drone di permukaan horizontal dan nyalakan dalam keadaan tidak bergerak
  • Setelah komunikasi tersambung, pastikan LED di ekor drone berkedip hijau dengan cepat
  • Jika LED merah berkedip, itu berarti kondisi baterai lemah, sehingga perlu diisi daya
  • Dorong sedikit throttle controller ke depan untuk memastikan drone merespons perintah
  • Periksa apakah kontrol arah dengan controller kanan bekerja dengan benar

Komponen Utama

  • ESP32-WROOM-32E-H4: modul BT/WiFi RF TXRX dari Espressif Systems
  • MPU-6050: IMU akselerometer 3 sumbu dan giro dari TDK InvenSense
  • CP2102N-A02-GQFN28R: bridge USB-UART dari Silicon Labs
  • 2N7002DW-G: dual N-Channel MOSFET dari onsemi
  • MIC5219-3.3YM5-TR: regulator linear 3.3V 500mA dari Microchip Technology
  • AO3401: P-Channel MOSFET dari Alpha & Omega Semiconductor
  • SI2302DDS-T1-BE3: N-Channel MOSFET dari Vishay Siliconix
  • JS102011SAQN: switch geser SPDT dari C&K
  • 1N4148W: dioda standar dari Diotec Semiconductor
  • SS34: dioda Schottky 40V 3A dari MDD

1 komentar

 
GN⁺ 2024-12-25
Pendapat di Hacker News
  • Sebagai tambahan bagi yang belum familiar, ekosistem drone FPV yang bisa dirakit sendiri sudah cukup aktif
    Konfigurasi yang umum adalah menggabungkan PCB persegi kecil berisi MCU pengendali penerbangan berbasis STM32 dan sensor, PCB driver motor, rangka serat karbon, PCB modul radio LoRa, kamera dan sistem pemancar video (analog ala kamera keamanan tahun 90-an atau digital), motor DC brushless dan propeler, dan sebagainya
    Firmware-nya bisa memakai Betaflight, ArduPilot, iNav, PX4, atau ditulis sendiri. Rangka PCB dalam tulisan itu memang rapi dan jelas praktis, tetapi saya ragu apakah kekakuannya cukup untuk menghasilkan karakteristik kendali yang diinginkan dalam kondisi akselerasi tinggi

    • Sebagian besar ekosistem ini bersifat open source
      Untuk perangkat lunak ESC ada https://github.com/am32-firmware, https://github.com/mathiasvr/bluejay, dan untuk pengendali penerbangan ada https://github.com/betaflight, https://github.com/ArduPilot, https://github.com/iNavFlight
      Untuk tautan kendali ada https://github.com/ExpressLRS dan juga menggunakan chip ESP32/ESP82. Untuk pemancar kendali radio ada https://github.com/EdgeTX
      Lima tahun lalu sebagian besar masih teknologi proprietari dan biaya masuk ke hobi ini mencapai ribuan dolar, tetapi sekarang bisa mulai dari sekitar 500 dolar. Biaya besar dalam FPV ada pada goggles, tetapi goggles analog murah bisa didapat sekitar 100 dolar
    • Secara umum itu benar, tetapi ekspektasi perlu disesuaikan. Kecuali ada area tertentu yang berkembang sangat cepat, ekosistem open source tampak cukup tertinggal dibanding sisi komersial proprietari
      Perangkat lunak pengendali penerbangan memang membaik secara bertahap dan subsistem video juga umumnya berpindah dari analog ke digital 2.4/5.8GHz, tetapi struktur keseluruhannya tidak banyak berbeda dari lima tahun lalu. Pemancar dan penerima R/C hobi melewati pengendali penerbangan (biasanya STM32) lalu menggerakkan ESC hobi lewat keluaran PWM, dan ESC mengendalikan motor. ESC berbasis mikrokontroler sehingga bisa di-flash ulang, tetapi prosesnya merepotkan dan menjengkelkan. Telemetri biasanya terpisah dari kendali, kendali juga terpisah dari video, semuanya berjarak pendek dan bukan berbasis IP
      Sebaliknya, quadcopter komersial siap pakai seperti DJI menangani kendali, video, dan telemetri sekaligus lewat satu backhaul antara wahana dan pengendali, dengan latensi video yang juga sangat mengesankan. Mungkin menggunakan chipset sejenis WiFi untuk menyebarkan frame vendor mentah dan penerimanya mengambil sebanyak mungkin dengan cara best-effort. Sepertinya hal serupa juga bisa dilakukan dengan mode ESP-NOW pada ESP32. Saya pernah melihat upaya merekayasa balik protokol DJI, tetapi tidak tahu adanya implementasi yang sepenuhnya kompatibel atau alternatif setara di dunia open source
      Di kelas atas wilayah komersial-proprietari, ada yang sudah dilengkapi otonomi siap pakai, multi-backhaul berbasis IP (radio line-of-sight/non-line-of-sight, LTE, komunikasi satelit, dll.), integrasi beacon navigasi untuk mengurangi ketergantungan pada GPS, motor/generator hibrida, hingga sistem daya redundan
      Tampaknya kesenjangan seperti ini tidak perlu ada karena alasan selain minat developer. Hampir semua komponennya bisa didapat, dan Raspberry Pi yang menjalankan sistem operasi real-time yang layak punya kemampuan pemrosesan jauh lebih besar daripada STM32, sehingga fusi multi-sensor ala sistem komersial pun bisa dilakukan dengan mudah. Modem LTE juga murah, dan hexacopter atau fixed-wing yang lebih besar bahkan bisa mengangkat piringan Starlink kecil. Hal seperti “perching”, yaitu mendarat di panel surya untuk mengisi daya, juga cukup mungkin
      Namun, tampaknya garis terdepan drone open source sedang terjadi di balik pintu tertutup di Ukraina dan Iran. Saya dengan senang hati menerima koreksi jika ada teknologi baru yang terlewat, tetapi jarak antara “apa yang mungkin” dan praktik saat ini terlihat besar. Pada saat yang sama, itu juga berarti ada banyak peluang
    • Bagaimana dengan orang yang benar-benar buruk dalam menerbangkan drone? Saya pernah mencoba FPV sendiri, tetapi kemampuan saya tidak banyak meningkat, sementara saya sangat menikmati DJI Mini
      Saya selalu kesulitan menemukan informasi tentang drone terbuka yang terbang seperti DJI, dan mungkin saya sendiri tidak tahu harus mencari apa
    • Disebutkan kelebihannya adalah “karena PCB all-in-one, tidak perlu komponen seperti hasil cetak 3D”, tetapi meski saya bisa cukup baik melakukan pencetakan 3D dan pemotongan laser di rumah, saya tidak punya peralatan untuk membuat PCB dan keterampilan menyolder saya tidak cukup untuk lebih dari through-hole
    • Menambahkan pada pernyataan bahwa ekosistem drone FPV yang bisa dirakit sendiri itu aktif: dari sudut pandang orang yang selama puluhan tahun membuat wahana terbang yang kapan saja bisa dijadikan drone, bahkan sebelum drone tersebar luas seperti sekarang, rcgroups.com pada dasarnya sudah menjadi ekosistem rujukan
      Hobi “pesawat model/penerbangan kendali jarak jauh” juga sudah berkembang selama puluhan tahun, dan hanya dengan melihat kategorinya saja sudah terlihat sangat kaya: https://www.rcgroups.com/forums/index.php
      Jika menelusuri berbagai subforum dengan serius, Anda bisa menemukan desain-desain mengejutkan yang mematahkan “normalitas” tentang seperti apa seharusnya wahana terbang dari sudut pandang biasa. Kata kunci seperti Magnus, aerostat, dan Fettler cukup bagus
  • Saya curiga ini mungkin seseorang yang mengunggah ulang esp-drone milik Espressif (https://github.com/espressif/esp-drone) lalu mengklaimnya sebagai miliknya sendiri. DigiKey pada dasarnya memasangnya di situs mereka
    Mereka bilang membuat PCB kustom, tapi kelihatannya hampir sama persis. Repositori yang ditautkan di artikel (https://github.com/Circuit-Digest/ESP-Drone) juga punya issue yang mengatakan ada malware, dan riwayat commit-nya terlihat agak mencurigakan. Bisa saja saya salah

    • Karena pihak yang membuka issue juga tidak menyebutkan file mana yang terdampak, ini murni spekulasi, tapi masalah virus itu tampaknya seperti false positive. Firmware prabuild yang masuk ke repositori bisa dengan mudah memicu antivirus
      Sebagian besar repositori berisi file teks biasa, dan zip serta bin tampaknya tidak diperlukan untuk build, jadi kalau merasa tidak nyaman, hapus saja sebelum build
    • Kedua proyek sama-sama menyebut Crazyflie sebagai inspirasi, jadi kemiripannya mungkin muncul dari situ
      https://www.bitcraze.io/products/old-products/crazyflie-2-0/
    • Benar, sepertinya mereka mengambil kode berhak cipta dari esp-drone apa adanya
      https://github.com/Circuit-Digest/ESP-Drone/blob/main/Firmwa...
      Menurut saya ini pelanggaran lisensi. Sangat tidak enak dilihat DigiKey mempekerjakan orang-orang seperti ini
    • Saya kira Espressif hanya menulis firmware, tapi ini benar-benar mirip dengan drone yang diunggah itu, bahkan termasuk dudukan PCB-nya
  • Timing artikel ini benar-benar pas. Di AS sedang terjadi semacam histeria massal, dan ternyata drone DIY bisa diproduksi seharga 12–13 dolar per unit—zaman yang luar biasa
    Karena belakangan ada orang-orang yang melihatnya sebagai UFO tersendiri, mungkin drone murah pun sebenarnya berlebihan; satu paket 20 lampion terbang buatan China mungkin sudah cukup untuk membuat lingkungan rata-rata di AS terus berada dalam keadaan takut, atau untuk melihat berapa lama sampai masuk halaman depan /r/UFOs

    • Dari postingan yang saya lihat, sudah ada orang yang memulainya. Beberapa hari lalu ada orang yang memasang Roman candle yang menyala di drone. Atau alien yang mematuhi aturan FAA, salah satu dari keduanya
    • Satu-satunya cara menutupi penampakan asli adalah menyebarkan penampakan palsu
    • Bagian yang menarik sekaligus menakutkan adalah tidak sulit mempersenjatai drone seperti ini. Bisa menjatuhkan bahan peledak rakitan, bergerak sepenuhnya otonom, lalu dibuat menabrak ke dalam air. Bisa dilakukan jauh lebih murah daripada senjata api
    • Histeria massal di AS itu merujuk ke apa? Bukankah keributan balon cuaca China itu sudah beberapa tahun lalu?
  • Menarik. Dulu saya pernah membuat Crazyflie[1]; saat itu belum ada ESP32, jadi kami memakai protokol 2,4GHz kustom, dan ini merupakan upgrade yang bagus dari itu
    Menggunakan satu MOSFET low-side sebagai pengendali motor juga membuatnya lebih sederhana dan murah, dengan konsekuensi mengorbankan sebagian perilaku yang diberikan motor BLDC. Secara keseluruhan, 10–15 dolar adalah harga yang sangat bagus, dan saya penasaran apakah ini akan masuk ke Hackerbox[2]. Ini persis jenis barang yang mungkin mereka lakukan
    Saya dulu banyak bersenang-senang dengan mikrodron CF, dan saya juga pasti akan mencoba membuat yang ini
    [1] https://github.com/bitcraze/crazyflie-firmware
    [2] https://hackerboxes.com/

  • Saya sedang mempertimbangkan mengubah iPhone lama menjadi drone. Kita sudah punya hardware yang bagus untuk menangani tugas tingkat tinggi, sementara pekerjaan yang lebih real-time seperti benar-benar menggerakkan motor berdasarkan input sensor bisa diserahkan ke ESP32
    Bahkan iPhone 6 lama saja punya GPS, giroskop, akselerometer, beberapa kamera, prosesor yang cukup kuat, Bluetooth/WiFi/LTE, suara dan lampu, serta sensor cahaya sekitar dan proximity. Jika casing-nya dilepas, itu menjadi mini komputer yang sangat bagus yang bisa memahami sekitar dan berkomunikasi
    Pada iPhone yang lebih baru, teknologi canggih seperti ARKit juga bisa memberi pemahaman spasial tentang drone dan lingkungannya untuk membuat drone otonom. Dengan iPhone 15, video spasial juga mungkin. Saya membayangkan betapa kerennya itu
    Saya berharap Apple menyediakan cara sederhana untuk membuka batasan tingkat sistem operasi agar ponsel lama bisa dipakai untuk proyek DIY

    • Apakah harus ponsel? ESP32 dual-core 240MHz pun tampaknya bisa melakukan pekerjaan itu dengan bobot dan daya yang lebih rendah
      Ponsel lama mungkin lebih baik dipakai sebagai pengendali
    • Untuk penggunaan ini, saya benar-benar ingin menghindari hardware buatan Apple. Lebih baik tidak membuang waktu hidup untuk hal seperti itu
    • Tetap saja, itu bukan sistem operasi real-time
  • Kalau tidak ingin membuatnya dari nol, Anda bisa membayar sedikit lebih mahal dan membeli produk jadi yang bisa diprogram: https://shop.m5stack.com/products/m5stamp-fly-with-m5stamps3...
    Stack software yang disertakan sangat mendasar, dan untuk avionik open source, Anda bisa menelusuri Twitter nerd Jepang

    • Benar, tapi harganya 3 kali lipat dan stoknya habis :(
  • Keren. Bahkan perangkat pendaratan (penyangga?) merupakan bagian dari PCB. Saya berharap penulis menjual kit atau mengalihdayakannya ke tempat seperti Seeed Studio. Saya tinggal di negara yang ongkos kirim pesanan DigiKey-nya cukup mahal
    Penulis memperkirakan biaya bill of materials sedikit di bawah 13 dolar. Dengan harga segitu, rasanya seru mencoba membuat swarm untuk light show drone DIY
    [1] https://circuitdigest.com/microcontroller-projects/DIY-wifi-...

    • Sebagai catatan, kalau membuat 10 unit saja, harga 13 dolar itu bisa turun cukup banyak
      Namun berdasarkan pemasok yang bisa saya pakai, 1 unit tampaknya lebih mendekati 50 dolar, dan 10 unit sekitar 150 dolar
      Meski begitu, biaya sepertinya masih bisa sedikit ditekan. Chip USB-serial harganya hampir 6 dolar, tetapi paket lain harganya 4,40 dolar untuk 1 unit atau 3,99 dolar per unit untuk 10 unit, dan chip alternatif yang tampaknya memadai bisa lebih murah. Regulator tegangan yang dipilih harganya 1 dolar per unit untuk 500mA, sementara yang biasanya saya pilih 0,22 dolar per unit untuk 1000mA, dan kalau 10 unit bisa turun sampai 0,13 dolar per unit
  • Rasanya kurang cocok karena jumlah core yang bisa digunakan terbatas
    Akan bagus kalau memakai sesuatu seperti rp2350. Karena ada core I/O berdaya ultra-rendah yang bisa bekerja terlepas dari core utama menyala atau tidak. Embedded adalah salah satu ranah yang paling cocok untuk multicore, tetapi terlalu jarang ada struktur offloading yang bagus dan sistem Programmable IO yang tidak pas-pasan
    Produk seperti GreenPAK dari Silego/Dialog/Renesas juga layak disebut. Logika programmable mixed-signal yang sangat kecil tapi menarik, dengan cukup banyak periferal

    • Menyebut unit PIO RP2350 sebagai “core I/O berdaya rendah” itu cukup berlebihan. Dengan banyak hacking, secara teori memang Turing-complete, tetapi benar-benar buruk untuk segala jenis komputasi. Bahkan perhitungan parity UART pun saya tidak ingin serahkan kepadanya
      Justru untuk penggunaan seperti ini, co-processor berdaya ultra-rendah pada ESP32 bisa jadi pas, tetapi secara realistis tidak sepadan dengan upayanya. Daya komputasi nyaris tak berarti dibanding daya yang dibutuhkan WiFi dan rotor, dan menjalankan beberapa tugas real-time pada satu core juga bukan rocket science
    • Tidak perlu core tambahan. ArduPilot berjalan di hardware yang jauh lebih lemah: https://ardupilot.org/copter/docs/common-autopilots.html#com...
      Kita pernah mengirim manusia ke bulan dengan hardware yang lebih lemah dari itu. Lebih banyak core hanya menambah kompleksitas
    • RP2040 saja sudah cukup untuk menjalankan drone dasar. Saya banyak belajar dari proyek ini: https://github.com/holsatus/holsatus-flight
  • Saya sempat bermain-main dengan drone WiFi lipat seharga 25 euro dari Lidl sampai EU mewajibkan biaya tahunan 30 euro untuk drone berkamera
    Saya tidak terlalu terpikir penggunaan praktis untuk drone tanpa kamera. Fly fishing mungkin salah satunya, tetapi harus diprogram agar menjatuhkan tali pancing dan pulang begitu terasa ikan menarik

    • EU tidak mewajibkan biaya tahunan 30 euro untuk drone berkamera. Negara Anda mungkin begitu, tetapi negara saya jelas tidak
    • Di Irlandia, pendaftaran drone diperlukan jika bobotnya di atas 250g atau punya kamera, dan biayanya 38 euro untuk 2 tahun
      https://www.iaa.ie/general-aviation/drones/drone-register
    • Seberapa banyak yang bisa diangkat drone 30 euro? Bahkan trout 600g saja bisa dengan mudah menyeretnya ke dalam air kecuali drone itu punya tenaga yang tidak masuk akal besarnya
    • Saya pernah mencobanya dengan drone saya. Saya menempelkan klip keripik kecil yang terbuka ke samping di bagian bawah drone
      Jika diterbangkan cukup cepat, begitu tali menegang, tali itu terlepas dari klip dan jatuh
  • Aneh juga ini tulisan DigiKey tapi tidak ada tombol Buy now
    Kalau saya yakin semua komponennya bisa dikirim dan tidak ada yang terlewat, saya mungkin langsung mencobanya

    • Di bagian paling bawah ada tautan kecil bertuliskan “Add all DigiKey Parts to Cart”
      Namun satu komponennya sudah discontinued dan tidak bisa didapat, sementara dua lainnya punya minimum order quantity lebih besar daripada jumlah yang dibutuhkan di sini, jadi kurang bagus