ESP32 RC Cars
डेमो वीडियो
- यह प्रोजेक्ट ESP32-आधारित रिमोट-कंट्रोल कैमरा सिस्टम का प्रदर्शन करता है
- WebSockets के ज़रिए रीयल-टाइम वीडियो स्ट्रीम भेजी जा सकती है और मोटर व सर्वो को नियंत्रित किया जा सकता है
- Python सर्वर एप्लिकेशन WebSocket संचार को मैनेज करता है और ESP32 डिवाइस को नियंत्रित करने के लिए एक वेब इंटरफ़ेस प्रदान करता है
विशेषताएँ
- ESP32-CAM से वेब सर्वर तक रीयल-टाइम वीडियो स्ट्रीमिंग
- WebSocket कमांड के ज़रिए मोटर और सर्वो का रिमोट कंट्रोल
- मोटर और सर्वो को डिफ़ॉल्ट स्थिति में रीसेट करने के लिए ऑटोमैटिक टाइमआउट फ़ीचर
- सर्वर पर डायनेमिक मल्टी-क्लाइंट वीडियो फ़ीड कैनवास उपलब्ध
हार्डवेयर आवश्यकताएँ
- ESP32-CAM (AI Thinker मॉड्यूल या संगत बोर्ड)
- उपयुक्त GPIO पिन से जुड़े मोटर और सर्वो
- ESP32-CAM के लिए स्थिर 5V पावर सप्लाई
- वैकल्पिक: अतिरिक्त फ़ीचर्स के लिए SD कार्ड
- संचार के लिए Wi-Fi नेटवर्क
सामग्री
- सभी किट aliexpress से खरीदे जा सकते हैं
- कार चेसिस, electronic speed controller, बैटरी होल्डर, 18650 सेल या 7.4v बैटरी पैक, ESP32-CAM, Bluetooth गेमपैड (PS4 controller उपयोग किया गया)
सॉफ़्टवेयर आवश्यकताएँ
ESP32 कोड
लाइब्रेरी
WiFi.h: Wi-Fi कनेक्शन
ArduinoWebsockets.h: WebSocket संचार
esp_camera.h: ESP32-CAM कैमरा नियंत्रण
ServoControl.h और Esc.h: सर्वो और मोटर नियंत्रण
Arduino.h: मानक Arduino फ़ंक्शन
Python सर्वर
निर्भरताएँ
- निम्न Python लाइब्रेरी इंस्टॉल करें:
aiohttp, opencv-python, numpy
सेटअप
ESP32 फ़र्मवेयर
secrets.h फ़ाइल को संशोधित करें ताकि उसमें Wi-Fi credentials और WebSocket सर्वर URL शामिल हों
- सुनिश्चित करें कि कैमरा मॉड्यूल, मोटर और सर्वो के GPIO पिन आपके हार्डवेयर सेटअप से मेल खाते हों
Python सर्वर
- सर्वर स्क्रिप्ट को
index.html फ़ाइल के साथ डायरेक्टरी में रखें ताकि वेब इंटरफ़ेस काम करे
- सर्वर शुरू करें:
python3 server.py
उपयोग
ESP32
- Arduino IDE या किसी संगत प्लेटफ़ॉर्म का उपयोग करके दिया गया sketch ESP32-CAM पर अपलोड करें
- यह देखने के लिए serial output मॉनिटर करें कि Wi-Fi और WebSocket सर्वर से सफल कनेक्शन हुआ है या नहीं
सर्वर
- Python सर्वर स्क्रिप्ट चलाएँ
- ब्राउज़र में वेब इंटरफ़ेस खोलकर रीयल-टाइम वीडियो स्ट्रीम देखें
- WebSocket कनेक्शन के माध्यम से कंट्रोल कमांड भेजें
WebSocket कमांड
MOTOR:<speed>: मोटर स्पीड सेट करें (-255 से 255)
SERVO:<angle>: सर्वो एंगल सेट करें (0 से 180)
CONTROL:<speed>:<angle>: मोटर स्पीड और सर्वो एंगल को एक साथ नियंत्रित करें
तकनीकी विवरण
ESP32 initialization
- Wi-Fi: निर्दिष्ट Wi-Fi नेटवर्क से कनेक्ट करता है
- कैमरा: वीडियो स्ट्रीमिंग के लिए उपयुक्त सेटिंग्स के साथ ESP32-CAM को कॉन्फ़िगर करता है
- WebSocket: सर्वर के साथ WebSocket कनेक्शन स्थापित करता है
टाइमआउट हैंडलिंग
- यदि पहले से निर्धारित टाइमआउट अवधि के भीतर कोई कंट्रोल कमांड प्राप्त नहीं होता, तो मोटर स्पीड
0 और सर्वो एंगल 90 पर रीसेट कर दिए जाते हैं
Python सर्वर
- कई ESP32 क्लाइंट्स के साथ WebSocket संचार को हैंडल करता है
- प्राप्त वीडियो फ़्रेम्स को प्रोसेस करता है और उन्हें डायनेमिक ग्रिड में व्यवस्थित करता है
- वीडियो फ़्रेम ग्रिड को वेब इंटरफ़ेस तक स्ट्रीम करता है
समस्या निवारण
कनेक्शन समस्याएँ
secrets.h में Wi-Fi credentials की जाँच करें
- सुनिश्चित करें कि WebSocket सर्वर चल रहा है और उस तक पहुँचा जा सकता है
वीडियो स्ट्रीम समस्याएँ
- ESP32-CAM के लिए उचित पावर सप्लाई की पुष्टि करें
- कैमरा initialization settings की जाँच करें
लाइसेंस
- यह प्रोजेक्ट MIT लाइसेंस के तहत open source के रूप में उपलब्ध है
योगदान
- एप्लिकेशन को बेहतर बनाने के लिए issues सबमिट करना या pull request भेजना स्वागतयोग्य है
1 टिप्पणियां
Hacker News टिप्पणियाँ
12 साल पहले, जब Arduino था लेकिन ESP32 नहीं था, तब मैंने HTC Magic फोन का इस्तेमाल कैमरा और WiFi ट्रांसमीटर के रूप में किया था, और उसे Arduino से जोड़कर servo और RGB LED को नियंत्रित करने वाला एक प्रोजेक्ट बनाया था। कनेक्शन स्थिर नहीं था, लेकिन मज़ेदार था
अगर आपको RC कार automation में रुचि है, तो यह पढ़ने के लिए मज़ेदार सामग्री है। यह कुछ साल पुरानी है, लेकिन आज के समय में शायद इससे आसान तरीके मौजूद हों
ESP32 CAM खरीदने से पहले external antenna वाला मॉडल लेने पर विचार करना अच्छा रहेगा। मैंने frame rate समस्या पर सलाह के लिए Reddit का संदर्भ लिया था
हाल ही में मैंने Rust और Steam Deck का उपयोग करके एक ऐसा ही प्रोजेक्ट किया था
FPV की सबसे बड़ी समस्या latency है, और मैं इस प्रोजेक्ट की latency के बारे में जानना चाहता हूँ
मैंने ESP32 से चलने वाला एक RC tank बनाया था जिसे PlayStation 4 controller से Bluetooth के जरिए नियंत्रित किया था
AliExpress पर एक अच्छी 2.5-inch RC कार 30 डॉलर की है, और standalone 5.8 GHz analog camera 25 डॉलर का है
मैं भी एक ऐसा ही प्रोजेक्ट सोच रहा हूँ, और latency को लेकर लोगों का अनुभव जानना चाहता हूँ। मैं यह समझना चाहता हूँ कि क्या video feed देखकर इसे remotely नियंत्रित किया जा सकता है। लगता है obstacle avoidance में latency समस्या हो सकती है
मैं अपने आप obstacles से बचने वाला एक cat toy बनाना चाहता था। लगता है यह प्रोजेक्ट उस विकल्प से बेहतर आधार हो सकता है जिसे मैंने पहले चुना था