ESP32 का उपयोग करके कम लागत वाला ड्रोन बनाने का तरीका
(digikey.com)- ESP32 आधारित DIY ड्रोन स्मार्टफोन से नियंत्रित होने वाला छोटा WiFi ड्रोन कम लागत वाले पार्ट्स से बनाता है, जिससे drone control, PCB और firmware का एक साथ अभ्यास किया जा सकता है
- डिजाइन का केंद्र Type-C USB, battery charging circuit, ESP32, CP2102 USB-UART, MPU6050 और SI2302 motor driver को जोड़ने वाला ऑल-इन-वन PCB है
- firmware Espressif के ESP-drone firmware पर आधारित है, और इसे ESP-IDF 4.4.5 से सीधे build किया जा सकता है या दिए गए
ESPDrone.binको flash किया जा सकता है - power on करने के बाद ड्रोन द्वारा बनाए गए WiFi hotspot से password
12345678के साथ connect करें, फिर iOS या Android app में connect करके इसे नियंत्रित करें - अगर battery की discharge performance कम है, तो app connection टूट सकता है या takeoff के समय reboot हो सकता है, इसलिए उदाहरण की तरह 1300mAh 30C स्तर की high-discharge-rate battery की जरूरत होती है
प्रोजेक्ट का अवलोकन और फीचर
- यह प्रोजेक्ट ESP32 और peripheral components से smartphone-controlled WiFi drone खुद बनाने का तरीका है
- छोटे और हल्के airframe में ESP32 module, MPU6050 IMU, coreless motors और plastic propellers का उपयोग किया जाता है
- मुख्य फीचर ये हैं
- smartphone-based WiFi control
- stability control के लिए MPU6050 IMU
- 3D printed parts के बिना बनने वाला ऑल-इन-वन PCB
- external modules के जरिए position hold या height hold जोड़ने की संभावना
- built-in battery charger
- programming और debugging के लिए built-in USB interface
- Android और iOS app support
- open source
सर्किट कॉन्फ़िगरेशन
- Type-C USB port charging और programming दोनों संभालता है
- power path control में P-Channel MOSFET U2 और diode D1 का उपयोग करके USB power और battery power के बीच switch किया जाता है
- voltage regulation Microchip का MIC5219 3.3V LDO करता है
- TP4056 charge controller battery charging manage करता है, और voltage sensing voltage divider circuit से किया जाता है
- core control section ESP32 SoC, CP2102 USB-UART controller और MPU6050 IMU chip से बना है
- CP2102 और dual MOSFET ESP32 reset function को सरल बनाते हैं
- MPU6050 ESP32 GPIO pins से जुड़ा होता है और flight stabilization व motion control में उपयोग होता है
- motor driver circuit SI2302 N-Channel MOSFET से motors को control करता है, और protection diode व resistor साथ में उपयोग करता है
- debugging LEDs status check के लिए उपयोग होते हैं
- नीला LED: calibration
- हरा LED: connection detection
- लाल LED: low battery
- power और charging indicators भी शामिल हैं
PCB और assembly
- final product को छोटा और assemble करने में आसान बनाने के लिए custom PCB का उपयोग किया जाता है
- drone legs भी PCB में शामिल हैं और main PCB से आसानी से अलग किए जा सकते हैं
- A और B propellers को निर्दिष्ट दिशा के अनुसार लगाना चाहिए
- power-on self-test के दौरान यह जांचना चाहिए कि propellers सामान्य रूप से घूम रहे हैं और सही दिशा में घूम रहे हैं
firmware और flashing
- firmware Espressif के ESP-drone firmware पर आधारित है, और PCB design के अनुरूप संशोधित Circuit Digest के GitHub source का उपयोग करना चाहिए
- code ESP-IDF में लिखा गया है, और compilation के लिए उपयोग किया गया version ESP-IDF 4.4.5 है
- firmware लागू करने के तीन तरीके हैं
- ESP-IDF से source build करें
- ESP-IDF 4.4.x install और configure करें
git clone https://github.com/Circuit-Digest/ESP-Drone.gitसे repository clone करेंESP-Drone/Firmware/esp-dronefolder में जाएंidf.py menuconfigसे settings बदली जा सकती हैं, लेकिन default settings भी पर्याप्त हैंidf.py -p PORT flashcommand से build और flash करें
- ESPTOOL का उपयोग करें
- ESP-IDF install करने के बाद firmware image folder में चलाएं
esptool.py write_flash --flash_size detect 0x0 ESPDrone.bincommand से flash करें
- ESP32 Flash Download Tool का उपयोग करें
- tool download करके चलाएं और chip type को ESP32 चुनें
ESPDrone.binfile चुनें और address को0x00set करें- सही COM port चुनने के बाद erase करें और START से flash करें
- ESP-IDF से source build करें
app connection और control
- drone को समतल सतह पर रखें और power on करें, तो flight controller WiFi hotspot बनाता है
- smartphone से password
12345678के साथ connect करें, फिर app खोलकर उपयोग करें - iOS app App Store में
ESP-Drone APPsearch करके मिल सकता है - Android app दिए गए link से मिल सकता है, और चूंकि app third party द्वारा बनाया व host किया गया है, इसलिए user को अपने निर्णय से install करना चाहिए
- app में connect button दबाने पर drone से communication शुरू होता है
- connection सफल होने पर drone का LED हरे रंग में blink करता है
- turn lock button का उपयोग left controller को केवल up/down के लिए, या up/down/left turn/right turn तक उपयोग करने के लिए lock करने में किया जाता है
- left stick takeoff और landing संभालती है, right stick movement control संभालती है
- अगर app connection टूटता है या takeoff के समय drone reboot होता है, तो battery पर्याप्त power supply नहीं कर पा रही हो सकती है
- example battery 1300mAh 30C है
- higher discharge rate वाली battery की जरूरत है
उड़ान से पहले जांच
- drone का head आगे की ओर और tail यानी antenna वाला हिस्सा पीछे की ओर रखें
- drone को horizontal surface पर रखें और उसे बिना हिलाए power on करें
- communication set होने के बाद जांचें कि drone tail का LED तेज़ी से हरे रंग में blink कर रहा है
- अगर red LED blink कर रहा है तो यह low battery स्थिति है, इसलिए charge करना होगा
- throttle controller को थोड़ा आगे धकेलकर जांचें कि drone command पर respond कर रहा है या नहीं
- right controller से direction control ठीक से काम कर रहा है या नहीं, यह जांचें
मुख्य components
- ESP32-WROOM-32E-H4: Espressif Systems का BT/WiFi RF TXRX module
- MPU-6050: TDK InvenSense का 3-axis accelerometer और gyro IMU
- CP2102N-A02-GQFN28R: Silicon Labs का USB-UART bridge
- 2N7002DW-G: onsemi का dual N-Channel MOSFET
- MIC5219-3.3YM5-TR: Microchip Technology का 3.3V 500mA linear regulator
- AO3401: Alpha & Omega Semiconductor का P-Channel MOSFET
- SI2302DDS-T1-BE3: Vishay Siliconix का N-Channel MOSFET
- JS102011SAQN: C&K का SPDT slide switch
- 1N4148W: Diotec Semiconductor का standard diode
- SS34: MDD का 40V 3A Schottky diode
1 टिप्पणियां
Hacker News की राय
जो लोग इससे परिचित नहीं हैं, उनके लिए जोड़ दूँ कि DIY FPV ड्रोन ecosystem पहले से ही काफ़ी सक्रिय है
आम सेटअप में STM32-आधारित flight control MCU और sensors वाला छोटा square PCB, motor driver PCB, carbon fiber frame, LoRa radio module PCB, camera और video transmission system (90s की security camera शैली का analog या digital), brushless DC motor और propeller वगैरह को जोड़कर बनाया जाता है
firmware के लिए Betaflight, ArduPilot, iNav, PX4 का इस्तेमाल किया जाता है, या फिर इसे खुद भी लिखा जा सकता है। लेख में दिखाया गया PCB frame साफ़-सुथरा है और सुविधा भी देता है, लेकिन ज़्यादा acceleration की स्थिति में मनचाहे control characteristics देने लायक इसकी rigidity काफ़ी होगी या नहीं, इस पर संदेह है
ESC software के लिए https://github.com/am32-firmware और https://github.com/mathiasvr/bluejay हैं, और flight controller के लिए https://github.com/betaflight, https://github.com/ArduPilot, https://github.com/iNavFlight हैं
control link के लिए https://github.com/ExpressLRS है, जो ESP32/ESP82 chip भी इस्तेमाल करता है। radio controller के लिए https://github.com/EdgeTX है
सिर्फ़ 5 साल पहले तक इसका ज़्यादातर हिस्सा proprietary technology था और इस hobby में शुरुआत करने के लिए हज़ारों डॉलर लगते थे, लेकिन अब लगभग 500 डॉलर से शुरुआत की जा सकती है। FPV में बड़ा खर्च goggles पर आता है, लेकिन सस्ते analog goggles लगभग 100 डॉलर में भी मिल सकते हैं
flight control software धीरे-धीरे बेहतर हुआ है और video subsystem भी अधिकतर analog से 2.4/5.8GHz digital की तरफ़ गया है, लेकिन overall architecture 5 साल पहले से बहुत अलग नहीं है। hobby R/C transmitter और receiver, flight controller (आम तौर पर STM32) के ज़रिए PWM output भेजकर hobby ESC चलाते हैं, और ESC motor को control करता है। ESC microcontroller-आधारित होता है, इसलिए उसे दोबारा flash किया जा सकता है, लेकिन यह झंझट भरा और परेशान करने वाला है। telemetry आम तौर पर control से अलग होती है, control video से भी अलग होता है, और सब कुछ short-range है तथा IP-based नहीं है
इसके उलट DJI जैसे commercial off-the-shelf quadcopter aircraft और controller के बीच एक ही backhaul पर control, video और telemetry तीनों संभाल लेते हैं, और video latency भी प्रभावशाली रूप से कम होती है। शायद वे WiFi-परिवार के chipset से raw vendor frame broadcast करते हैं और receiver जितना संभव हो सके उतना उठा लेता है। ESP32 के ESP-NOW mode से भी शायद ऐसा कुछ किया जा सकता है। मैंने DJI protocol को reverse engineer करने की कोशिशें देखी हैं, लेकिन पूरी तरह compatible implementation या open source दुनिया में उसका बराबरी का विकल्प मुझे नहीं पता
commercial/proprietary क्षेत्र के ऊपरी स्तर पर ऐसे सिस्टम भी हैं जिनमें तुरंत इस्तेमाल की जा सकने वाली autonomy, IP-based multi-backhaul (line-of-sight/non-line-of-sight radio, LTE, satellite communication आदि), GPS पर निर्भरता कम करने के लिए navigation beacon integration, hybrid motor/generator, और redundant power system तक शामिल हैं
ऐसा नहीं लगता कि यह अंतर developer interest के अलावा किसी और कारण से ज़रूरी है। लगभग सारे components उपलब्ध हैं, और ठीक-ठाक real-time operating system चलाने वाला Raspberry Pi, STM32 की तुलना में कहीं ज़्यादा processing power के साथ commercial-system जैसे multi-sensor fusion को भी आसानी से संभाल सकता है। LTE modem भी सस्ते हैं, और बड़े hexacopter या fixed-wing aircraft छोटे Starlink dish को भी उठा सकते हैं। solar panel पर उतरकर charge करने वाला “perching” भी पूरी तरह संभव लगता है
हालांकि open source drone का वास्तविक cutting edge शायद यूक्रेन और ईरान के बंद दरवाज़ों के पीछे बन रहा है। अगर मैं कोई नई technology मिस कर रहा हूँ तो सुधार का स्वागत है, लेकिन “जो संभव है” और मौजूदा practical field work के बीच का फ़ासला काफ़ी बड़ा दिखता है। साथ ही इसे इतना ही मौका भी कहा जा सकता है
DJI जैसी open drone जानकारी खोजना मेरे लिए हमेशा कठिन रहा है, और शायद मुझे यह भी ठीक से नहीं पता कि क्या खोजना चाहिए
“model aircraft / remote-controlled flight” hobby भी दशकों से फल-फूल रही है, और सिर्फ़ इसकी categories देखकर ही उसकी समृद्धि दिखती है: https://www.rcgroups.com/forums/index.php
अगर आप कई sub-forums को गंभीरता से देखें, तो आपको ऐसे चौंकाने वाले design मिलेंगे जो साधारण नज़रिए से aircraft कैसा दिखना चाहिए, इस “सामान्य” विचार को तोड़ देते हैं। Magnus, aerostat, Fettler जैसे search term काफ़ी अच्छे हैं
लगता है किसी ने Espressif के esp-drone(https://github.com/espressif/esp-drone) को फिर से अपलोड करके अपना बताने की कोशिश की है। DigiKey ने बस उसे अपनी साइट पर चढ़ा दिया है
दावा है कि कस्टम PCB बनाया गया है, लेकिन यह लगभग वही जैसा दिखता है। पोस्ट में लिंक किया गया repository(https://github.com/Circuit-Digest/ESP-Drone) malware होने के issue में भी घिरा है, और commit history भी थोड़ी संदिग्ध लगती है। मैं गलत भी हो सकता हूँ
repository का ज़्यादातर हिस्सा सामान्य text files है, और zip व bin build के लिए ज़रूरी नहीं लगते, इसलिए अगर असहज लगे तो build से पहले उन्हें हटा सकते हैं
https://www.bitcraze.io/products/old-products/crazyflie-2-0/
https://github.com/Circuit-Digest/ESP-Drone/blob/main/Firmwa...
यह license violation लगता है। DigiKey का ऐसे लोगों को hire करना बहुत बुरा दिखता है
इस पोस्ट के आने का समय बड़ा दिलचस्प है। अमेरिका में इस समय कुछ सामूहिक hysteria जैसा चल रहा है, और अब पता चल रहा है कि DIY drone को प्रति यूनिट 12–13 डॉलर में बनाया जा सकता है — क्या ज़माना आ गया है
आजकल लोग हर चीज़ को अलग UFO समझ लेते हैं, तो सच कहें तो सस्ते drones भी ज़्यादा ही हैं; शायद चीन में बने sky lanterns के 20 के pack से भी किसी औसत अमेरिकी मोहल्ले को लंबे समय तक डराया जा सकता है, या फिर /r/UFOs के front page तक पहुँचने में कितना समय लगेगा, यह देखा जा सकता है
काफ़ी मज़ेदार। मैंने पहले Crazyflie[1] बनाया था, और उस समय ESP32 भी नहीं था, इसलिए हमने custom 2.4GHz protocol इस्तेमाल किया था; यह उसी का शानदार upgrade है
motor controller के लिए single low-side MOSFET का उपयोग करना भी अच्छा है, क्योंकि इससे BLDC motor के कुछ व्यवहार छोड़ने पड़ते हैं, लेकिन चीज़ ज़्यादा सरल और सस्ती हो जाती है। कुल मिलाकर 10–15 डॉलर में यह बहुत बढ़िया कीमत है, और सोच रहा हूँ कि क्या यह Hackerbox[2] में आएगा। बिल्कुल उनकी तरह की चीज़ है
CF microdrone के साथ मैंने बहुत मज़ा किया था, और इसे भी ज़रूर बनाकर देखूँगा
[1] https://github.com/bitcraze/crazyflie-firmware
[2] https://hackerboxes.com/
मैं पुराने iPhone को drone में बदलने के विचार को देख रहा हूँ। ऊपरी स्तर के कामों के लिए अच्छा hardware पहले से मौजूद है, और sensor input के आधार पर असल में motors चलाने जैसे ज़्यादा real-time काम ESP32 को दिए जा सकते हैं
सिर्फ पुराना iPhone 6 भी GPS, gyro, accelerometer, कई cameras, काफ़ी ताकतवर processor, Bluetooth/WiFi/LTE, sound और lighting, साथ ही ambient light और proximity sensors देता है। केस हटाने पर यह एक बेहतरीन mini computer बन जाता है जो अपने आसपास को समझ सकता है और communicate कर सकता है
और नए iPhone में ARKit जैसी उन्नत तकनीकों से drone और उसके environment की spatial understanding मिल सकती है, जिससे autonomous drone भी बनाया जा सकता है। iPhone 15 हो तो spatial video भी संभव है। यह कितना शानदार होगा, सोचकर ही अच्छा लगता है
अच्छा होता अगर Apple पुराने phones को DIY projects में इस्तेमाल करने के लिए OS-level restrictions ढीली करने का कोई आसान तरीका देता
पुराने phone को controller की तरह इस्तेमाल करना शायद बेहतर होगा
अगर आप शुरुआत से बनाना नहीं चाहते, तो थोड़ा ज़्यादा खर्च करके programmable ready-made unit खरीदी जा सकती है: https://shop.m5stack.com/products/m5stamp-fly-with-m5stamps3...
इसके साथ आने वाला software stack बहुत basic है, और open source avionics वाली चीज़ों के लिए जापानी nerd Twitter खंगालना पड़ेगा
कमाल है। लैंडिंग गियर (सपोर्ट?) तक PCB का हिस्सा है। अच्छा होगा अगर लेखक kit sale करे या Seeed Studio जैसी किसी जगह से इसे बनवाए। मैं ऐसे देश में रहता हूँ जहाँ DigiKey ऑर्डर की shipping काफ़ी महंगी है
लेखक ने parts list की लागत 13 डॉलर से थोड़ी कम आँकी है। उस कीमत पर DIY drone light show के लिए swarm बनाकर देखना मज़ेदार हो सकता है
[1] https://circuitdigest.com/microcontroller-projects/DIY-wifi-...
हालांकि जिन suppliers का मैं इस्तेमाल कर सकता हूँ, उनके हिसाब से 1 की कीमत 50 डॉलर के काफ़ी करीब लगती है, और 10 की लगभग 150 डॉलर पड़ती है
फिर भी लागत थोड़ी कम की जा सकती है। USB-serial chip लगभग 6 डॉलर की है, जबकि दूसरा package 1 पीस पर 4.40 डॉलर या 10 पीस पर 3.99 डॉलर प्रति पीस है, और काफ़ी लगने वाली alternative chip इससे भी सस्ती हो सकती है। चुना गया voltage regulator 500mA पर 1 डॉलर प्रति पीस है, जबकि मैं आमतौर पर जो चुनता हूँ वह 1000mA पर 0.22 डॉलर प्रति पीस है और 10 पीस पर 0.13 डॉलर प्रति पीस तक आ जाता है
उपलब्ध cores की सीमित संख्या के लिहाज़ से यह कुछ ठीक फिट नहीं लगता
rp2350 जैसा कुछ बेहतर होता। उसमें ultra-low-power I/O core है जो main core चालू हो या नहीं, काम कर सकता है। embedded उन क्षेत्रों में से है जहाँ multi-core सबसे अच्छी तरह फिट बैठता है, लेकिन अच्छी offloading structure और कमज़ोर न होने वाले Programmable IO system के साथ चीज़ें बहुत कम मिलती हैं
Silego/Dialog/Renesas के GreenPAK जैसे products का भी ज़िक्र किया जा सकता है। वे बहुत छोटे हैं, लेकिन दिलचस्प mixed-signal programmable logic के साथ काफ़ी peripherals भी जुड़े हैं
बल्कि ऐसे इस्तेमाल के लिए ESP32 का ultra-low-power coprocessor एकदम सही हो सकता है, लेकिन व्यवहार में यह डाली गई मेहनत के लायक नहीं है। compute power की खपत WiFi और rotors की power demand के मुकाबले नगण्य है, और एक single core पर कई real-time tasks चलाना भी कोई rocket science नहीं है
हम इससे भी कमज़ोर hardware के साथ इंसानों को चाँद पर भेज चुके हैं। ज़्यादा cores सिर्फ complexity बढ़ाते हैं
EU द्वारा camera drone पर सालाना 30 euro fee लगाने से पहले मैं Lidl के 25 euro वाले foldable WiFi drone से खेलता था
camera के बिना drone के practical use ज़्यादा समझ नहीं आते। fly fishing एक हो सकता है, लेकिन जैसे ही मछली के खींचने का एहसास हो, उसे fishing line छोड़कर वापस लौटने के लिए program करना होगा
https://www.iaa.ie/general-aviation/drones/drone-register
अगर उसे काफ़ी तेज़ी से उड़ाएँ, तो line के tight होते ही वह clip से निकलकर गिर जाती है
यह DigiKey की पोस्ट है, लेकिन इसमें Buy now बटन न होना अजीब है
अगर मुझे यक़ीन हो कि सारे parts मंगाए जा सकते हैं और मैंने कुछ छोड़ा नहीं है, तो मैं शायद इसे तुरंत आज़माता
लेकिन एक part पहले ही discontinued है और दो parts के लिए minimum order quantity यहाँ ज़रूरी संख्या से ज़्यादा है, इसलिए यह बहुत अच्छा नहीं है