विषयसूची:

वेब इंटरफेस और वीडियो स्ट्रीमिंग के साथ रास्पबेरी टैंक: 8 कदम (चित्रों के साथ)
वेब इंटरफेस और वीडियो स्ट्रीमिंग के साथ रास्पबेरी टैंक: 8 कदम (चित्रों के साथ)

वीडियो: वेब इंटरफेस और वीडियो स्ट्रीमिंग के साथ रास्पबेरी टैंक: 8 कदम (चित्रों के साथ)

वीडियो: वेब इंटरफेस और वीडियो स्ट्रीमिंग के साथ रास्पबेरी टैंक: 8 कदम (चित्रों के साथ)
वीडियो: नित्य सुबह सुनिये ये भजन । होगी आपकी हर सुबह खुशियां भरी । श्री अनिरुद्धाचार्य जी महाराज 2024, जुलाई
Anonim
वेब इंटरफेस और वीडियो स्ट्रीमिंग के साथ रास्पबेरी टैंक
वेब इंटरफेस और वीडियो स्ट्रीमिंग के साथ रास्पबेरी टैंक

हम यह देखने जा रहे हैं कि कैसे मैंने एक छोटे से वाईफाई टैंक का एहसास किया है, जो रिमोट वेब कंट्रोल और वीडियो स्ट्रीमिंग में सक्षम है।

यह ट्यूटोरियल होने का इरादा है जिसके लिए इलेक्ट्रॉनिक और सॉफ्टवेयर प्रोग्रामिंग के बुनियादी ज्ञान की आवश्यकता होती है। इस कारण से मैंने एक टैंक चेसिस किट (इसे 3D प्रिंटर का उपयोग करके प्रिंट करने के बजाय, बाद में अपग्रेड किया जा सकता है) और बैटरी सहित कुल 6 घटकों को चुना है। सॉफ्टवेयर की तरफ आप स्टेप बाय स्टेप इंस्टालेशन प्रक्रिया का पालन कर सकते हैं और प्रोग्रामिंग को कम से कम रखा जाता है, रास्पबेरी चीजों का एक बुनियादी ज्ञान मदद कर सकता है।

मैंने 0 से रेडी टू रन टैंक तक 12 घंटे के काम का अनुमान लगाया है। सभी घटकों के लिए 70 € की कुल लागत।

चरण 1: बीओएम

बीओएम
बीओएम
बीओएम
बीओएम
बीओएम
बीओएम
बीओएम
बीओएम

1 - DIY RC रोबोट चेसिस टैंक - 32 (€)

www.banggood.com/DIY-RC-Robot-Chassis-Tan…

1 - दोहरी चैनल L298N डीसी मोटर चालक बोर्ड - 1, 39 (€)

www.banggood.com/Dual-Channel-L298N-DC-Mo…

1 - रास्पबेरी पाई जीरो डब्ल्यू स्टार्टर किट - 26 (€)

amzn.eu/1ugAaMP

1 - 16 जीबी एसडी कार्ड - 5, 50(€)

www.gearbest.com/memory-cards/pp_337819.h…

1 - मॉडल जीरो - 8 (€) के लिए रास्पबेरी पाई 5MP कैमरा मॉड्यूल वेब कैमरा

www.gearbest.com/raspberry-pi/pp_612249.h…

1 - पावर बैंक 5V

1 - 9वी बैटरी

मिश्रित ब्रेडबोर्ड केबल ड्यूपॉन्ट कनेक्टर

रास्पबेरी सेटअप के लिए माउस, कीबोर्ड, मॉनिटर या टीवी (वैकल्पिक, बस पहले सेटअप को आसान बनाने के लिए)

चरण 2: मुख्य घटक चश्मा

मोटर

JGA25-370 DC गियरमोटर

इस मोटर में डी-आकार का आउटपुट शाफ्ट है।

विशेष विवरण

· ऑपरेटिंग वोल्टेज: 6 वी और 18 वी. के बीच

नाममात्र वोल्टेज: 12 वी

· १२ वी: ३९९ आरपीएम पर फ्री-रन गति

· १२ वी: ५० एमए. पर फ्री-रन करंट

· १२ वी: १२०० एमए. पर वर्तमान स्टाल

· 12V पर स्टाल टॉर्क: 2.2 kg.cm

· गियर अनुपात: 1:21

रिडक्टर का आकार: 19 मिमी

· वजन: ८४ ग्राम

दोहरी चैनल L298N डीसी मोटर चालक बोर्ड

दोहरी एच-ब्रिज मोटर चालक, दो डीसी मोटर्स या 4-तार दो-चरण स्टेपर मोटर्स चला सकता है। मोटर स्टाल से बचाने के लिए बिल्ट-इन टीएसडी।

विशेष विवरण

· मॉड्यूल आपूर्ति वोल्टेज: डीसी 2V-10V

सिग्नल इनपुट वोल्टेज: डीसी 1.8-7V

· सिंगल वर्किंग करंट: 1.5A

· 2.5A तक का पीक करंट

· कम स्टैंडबाय करंट (0.1uA से कम)

· निर्मित सामान्य चालन सर्किट, इनपुट टर्मिनल खाली, मोटर खराब नहीं होता है

· आकार: २४.७ x २१ x ७ मिमी

चरण 3: वायरिंग

वायरिंग
वायरिंग
वायरिंग
वायरिंग

यह अंतिम वायरिंग होगी, लेकिन इससे पहले कि हमें कुछ स्थापित करने की आवश्यकता हो, प्रतीक्षा करें

सॉफ्टवेयर और इसे सरल वायरिंग के साथ परीक्षण करना एक अच्छा विचार है, जब तैयार हो तो यहां वापस आएं।

हमें दो अलग-अलग शक्ति स्रोत चाहिए, एक मोटर के लिए और दूसरा रास्पबेरी के लिए।

मोटर ड्राइवर डुअल चैनल L298N DC मोटर ड्राइवर बोर्ड (अधिकतम इनपुट वोल्टेज DC 2V-10V) 9V बैटरी का उपयोग करके संचालित होता है और रास्पबेरी पाई 5V USB संचायक मानकों का उपयोग करता है।

मोटर चालक का GND पिन बैटरी माइनस और रास्पबेरी पाई (GND) से जुड़ा होगा। रास्पबेरी पाई के GPIO पिन मोटर ड्राइवर से टेबल के रूप में जुड़े होते हैं।

चरण 4: रास्पबेरी ओएस तैयार करना।

यह रास्पियन ऑपरेटिव सिस्टम के लिए एक मानक इंस्टॉलेशन है, आप पा सकते हैं

वेब पर खोज करने वाले बहुत सारे विस्तृत ट्यूटोरियल, मूल रूप से चरण हैं:

1. डेस्कटॉप के साथ आईएसओ रास्पबेरी खिंचाव https://www.raspberrypi.org/downloads/raspbian/ से डाउनलोड करें

2. 16 जीबी एसडी कार्ड को फॉर्मेट करें, मैंने एसडी फॉर्मेटर का उपयोग किया है

3. बर्न. IMG फ़ाइल, मैंने Win32DiskImager का उपयोग किया है

अब आपका रास्पबेरी बूट करने के लिए तैयार है, इसे USB पावर स्रोत (5V, 2A) से कनेक्ट करें और पहले बूट सेटअप के लिए तैयार करें। आप इसे दो तरीकों से कर सकते हैं, माउस, कीबोर्ड और मॉनिटर जैसे बाहरी उपकरणों का उपयोग करके या अपने पीसी का उपयोग करके और रास्पबेरी से रिमोट कनेक्शन का उपयोग कर सकते हैं। इसके बारे में बहुत सारे ट्यूटोरियल हैं, एक है:

चरण 5: Node. JS और WEBSOCKET. IO के साथ हमारे वाईफ़ाई टैंक को कैसे नियंत्रित करें

Node. JS और WEBSOCKET. IO के साथ हमारे वाईफ़ाई टैंक को कैसे नियंत्रित करें
Node. JS और WEBSOCKET. IO के साथ हमारे वाईफ़ाई टैंक को कैसे नियंत्रित करें

अब हमारे पास हमारे रास्पबेरी माइक्रो पीसी की एक नई स्थापना है जो अपना काम चलाने के लिए तैयार है, इसलिए … टैंक को कमांड जारी करने के लिए हम क्या उपयोग करते हैं?

पायथन एक बहुत ही आसान भाषा है जिसका उपयोग आमतौर पर रैप्सबेरी परियोजना को चलाने के लिए किया जाता है रेत को आसानी से रैप्सबेरी इनपुट और आउटपुट पिन (जीपीआईओ) के साथ इंटरैक्ट करने के लिए भी इस्तेमाल किया जा सकता है

लेकिन, मेरा लक्ष्य एक सामान्य वेब ब्राउज़र का उपयोग करके किसी भी डिवाइस (पीसी, मोबाइल फोन, टैबलेट…) से अपने टैंक वाई-फाई को कनेक्ट करना था और इससे वीडियो भी स्ट्रीम करना था। तो, अभी के लिए पायथन को भूल जाओ, और NODE. JS और SOCKET. IO पर चलते हैं।

नोड.जेएस

Node.js (https://github.com/nodejs/node/wiki) जेएस भाषा पर आधारित एक ओपन सोर्स सर्वर फ्रेम वर्क है। चूंकि मैं रास्पबेरी पाई ज़ीरो (एआरएमवी 6 सीपीयू) का उपयोग कर रहा हूं, हम स्वचालित स्थापना प्रक्रिया (एआरएमवी 7 सीपीयू के लिए अभिप्रेत) का उपयोग नहीं कर सकते हैं और हमें इसे मैन्युअल रूप से करने की आवश्यकता है:

स्थानीय रूप से Nodejs डाउनलोड करें, (मैंने ARMv6 के लिए 7.7.2 संस्करण का उपयोग किया है, अन्य संस्करण यहां देखें

पाई @ रास्पबेरी: ~ $ wget

nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…

एक बार हो जाने के बाद, संपीड़ित फ़ाइल को निकालें:

pi@raspberry:~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz

फ़ाइलों को /user/local. में कॉपी और इंस्टॉल करें

pi@raspberry:~ $ sudo cp -R node-v7.7.2-linux-armv6l/* /usr/local/

वह स्थान जोड़ें जहां हम पथ में नोडज स्थापित करते हैं, ".profile" फ़ाइल संपादित करें:

पीआई@रास्पबेरी:~ $ नैनो ~/.प्रोफाइल

फ़ाइल के अंत में निम्न पंक्ति जोड़ें, सहेजें और बाहर निकलें

पथ = $ पथ:/usr/स्थानीय/बिन

डाउनलोड की गई फ़ाइल को हटा दें:।

पीआई@रास्पबेरी:~ $ आरएम ~/नोड-v7.7.2-linux-armv6l.tar.gz

पीआई @ रास्पबेरी: ~ $ आरएम-आर ~/नोड-v7.7.2-लिनक्स-आर्मवी 6 एल

नोडज इंस्टॉलेशन की जांच के लिए निम्न कमांड टाइप करें:

पाई @ रास्पबेरी: ~ $ नोड -v

पाई@रास्पबेरी:~ $ npm -v

आपको प्रतिक्रिया के रूप में v7.7.2 और v4.1.2 पढ़ना चाहिए।

अगर सब कुछ ठीक रहा, तो अपनी नोडज फाइलों को होस्ट करने के लिए एक नया फ़ोल्डर बनाएं:

पाई@रास्पबेरी:~ $mkdir nodehome

नए फ़ोल्डर के अंदर ले जाएँ:

पीआई @ रास्पबेरी: ~ $ सीडी नोडहोम

GPIO को सबसे बुनियादी तरीके से चालू और बंद करने के लिए आवश्यक अतिरिक्त मॉड्यूल स्थापित करें:

पीआई @ रास्पबेरी: ~ $ एनपीएम ऑनऑफ़ स्थापित करें

अब हमारी पहली परियोजना "ब्लिंक.जेएस" का परीक्षण करने का समय है, परिणाम होगा … एक चमकती एलईडी

pi@raspberry:~ $ nano blink.js

निम्नलिखित कोड पेस्ट करें, सहेजें और बाहर निकलें:

वर Gpio = आवश्यकता ('onoff')। Gpio; // ऑनऑफ़ शामिल करें

वर एलईडी = नया Gpio (3, 'बाहर'); // GPIO 3 का उपयोग करें

वर ब्लिंकइंटरवल = सेटइंटरवल (ब्लिंकलेड, 250);

// ब्लिंक एलईडी हर 250ms

फंक्शन ब्लिंकलेड () {// फंक्शन ब्लिंकिंग शुरू करने के लिए

अगर

(LED.readSync() === 0) {// पिन की स्थिति जांचें, अगर स्थिति 0 (या बंद) है

LED.writeSync(1);

// पिन स्थिति को 1 पर सेट करें (एलईडी चालू करें)

} अन्यथा {

एलईडी.राइटसिंक (0);

// पिन स्थिति को 0 पर सेट करें (एलईडी बंद करें)

}

}

फंक्शन एंडब्लिंक () {// फंक्शन ब्लिंकिंग को रोकने के लिए

क्लियरइंटरवल (ब्लिंकइंटरवल); // पलक झपकना बंद करें

एलईडी.राइटसिंक (0); // एलईडी बंद करें

एलईडी.अनएक्सपोर्ट (); // मुक्त संसाधनों के लिए GPIO को अनएक्सपोर्ट करें

}

सेटटाइमआउट (एंडब्लिंक, 5000); // 5 सेकंड के बाद पलक झपकना बंद करें

एक एलईडी, एक रोकनेवाला (200ohms) को तार दें जैसा कि स्कीमा में दिखाया गया है और परियोजना को चलाएं:

पीआई@रास्पबेरी:~ $ नोड ब्लिंक.जेएस

नोड तैयार है।

सॉकेट.आईओ

WebSocket एक कंप्यूटर संचार प्रोटोकॉल है, जो TCP कनेक्शन पर आधारित है, यह एक सर्वर और क्लाइंट बनाने के लिए एक प्रोग्रामर प्रदान करता है। क्लाइंट सर्वर से जुड़ता है और सर्वर से संदेश भेजता है और प्राप्त करता है। Node.js के लिए WebSocket कार्यान्वयन को Socket.io (https://socket.io/) कहा जाता है।

सॉकेट स्थापित करें।

pi@raspberry:~ $ npm सॉकेट स्थापित करें

नोडज घर के अंदर ले जाएँ, पहले बनाया गया:

पीआई @ रास्पबेरी: ~ $ सीडी नोडहोम

और एक नया फ़ोल्डर "सार्वजनिक" बनाएं:

पीआई@रास्पबेरी:~ $mkdir public

नया नमूना वेब सर्वर बनाएं, इसे "webserver.js" कहें

pi@raspberry:~ $ nano webserver.js

निम्नलिखित कोड पेस्ट करें, सहेजें और बाहर निकलें:

var http = आवश्यकता ('http')। createServer (हैंडलर); // http सर्वर की आवश्यकता है, और फ़ंक्शन हैंडलर के साथ सर्वर बनाएं ()

वर एफएस = आवश्यकता ('एफएस'); // फाइल सिस्टम मॉड्यूल की आवश्यकता है

http.listen (८०८०); // पोर्ट 8080 को सुनें

फ़ंक्शन हैंडलर (req, res) {// सर्वर बनाएं

fs.readFile(_dirname + '/public/index.html', function(err, data) {//पढ़ें

फ़ाइल index.html सार्वजनिक फ़ोल्डर में

अगर (गलती) {

res.writeHead(404, {'सामग्री-प्रकार': 'पाठ/एचटीएमएल'}); // त्रुटि पर 404 प्रदर्शित करें

वापसी res.end( 404 Not

मिला );

}

res.writeHead(200, {'सामग्री-प्रकार': 'पाठ/एचटीएमएल'}); // एचटीएमएल लिखें

res.write (डेटा); // डेटा लिखें

index.html. से

वापसी res.end ();

});

}

यह वेबसर्वर आपके रास्पबेरी पोर्ट 8080 को सुनेगा और इसे कनेक्ट करने वाले किसी भी वेब क्लाइंट को फाइल प्रदान करेगा। अब हमें अपने ग्राहकों को होस्ट करने और प्रदान करने के लिए कुछ बनाने की जरूरत है: "सार्वजनिक" फ़ोल्डर के अंदर ले जाएं: pi@raspberry:~ $ cd public

नई html फ़ाइल “index.html” बनाएँ:

pi@raspberry:~ $ nano index.html

संलग्न "HelloWorld.txt" से कोड पेस्ट करें, सहेजें और बाहर निकलें।

नोडज फ़ोल्डर "नोडहोम" के अंदर ले जाएं:

पीआई @ रास्पबेरी: ~ $ सीडी नोडहोम

HTTP वेब सर्वर प्रारंभ करें:

पीआई@रास्पबेरी:~ $ नोड webserver.js

Raspberry_IP:8080/ का उपयोग करके ब्राउज़र में वेबसाइट खोलें (Raspberry_IP को अपने IP से बदलें)

चरण 6: वीडियो स्ट्रीमिंग क्षमता जोड़ना

रास्पबेरी पर वीडियो स्ट्रीमिंग को लागू करने के विभिन्न तरीके हैं, सबसे आसान

जिस तरह से मैंने अब तक पाया है, कि महान प्रदर्शन के रूप में और एक वेब इंटरफेस में एकीकृत किया जा सकता है, मिगुएल मोटा से परियोजना पर आधारित है:

miguelmota.com/blog/raspberry-pi-camera-bo…

धन्यवाद मिगुएल! उनके ब्लॉग से ये चरण हैं:

घटक स्थापित करें libjpeg8 और cmake:

pi@raspberry:~ $ sudo apt-get install libjpeg8

pi@raspberry:~ $ sudo apt-get install libjpeg8-dev

पीआई @ रास्पबेरी: ~ $ sudo apt-cmake स्थापित करें

रास्पिकैम प्लगइन के साथ एमजेपीजी-स्ट्रीमर डाउनलोड करें:

पीआई @ रास्पबेरी: ~ $ गिट क्लोन

github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer

निर्देशिका बदलें:

पीआई@रास्पबेरी:~ $ सीडी ~/एमजेपीजी-स्ट्रीमर/एमजेपीजी-स्ट्रीमर-प्रयोगात्मक

संकलित करें:

पीआई @ रास्पबेरी: ~ $ सभी को साफ करें

पुराने mjpg-स्ट्रीमर को बदलें:

पीआई@रास्पबेरी:~ $ sudo rm -rf /opt/mjpg-streamer

पीआई @ रास्पबेरी: ~ $ सुडो एमवी ~/एमजेपीजी-स्ट्रीमर/एमजेपीजी-स्ट्रीमर-प्रयोगात्मक

/ऑप्ट/एमजेपीजी-स्ट्रीमर

pi@raspberry:~ $ sudo rm -rf ~/mjpg-streamer

एक नई "start_stream.sh" फ़ाइल बनाएं, संलग्न "start_stream.txt" फ़ाइल से कॉपी और पेस्ट करें।

इसे निष्पादन योग्य बनाएं (खोल स्क्रिप्ट बनाएं):

पीआई@रास्पबेरी:~ $ chmod +x start_stream.sh

स्ट्रीमिंग सर्वर प्रारंभ करें:

पीआई@रास्पबेरी:~ $./start_stream.sh

Raspberry_IP:9000 का उपयोग करके ब्राउज़र में वेबसाइट खोलें (Raspberry_IP को अपने IP से बदलें)

चरण 7: टैंक कार्यक्रम

सब कुछ तैयार है, अब हमें टैंक को नियंत्रित करने के लिए अपना वेब पेज बनाना है (index.html) और हमारे वेब सर्वर को हमारे आदेशों (webserver.js) को सुनने के लिए। तो, अब तक देखी गई फ़ाइलों को संलग्न करें (सिस्टम का परीक्षण करने के लिए केवल उदाहरण) संलग्न webserver.txt और index.txt के साथ बदलें।

चरण 8: नियंत्रण इंटरफ़ेस और स्ट्रीमिंग सर्वर प्रारंभ करें

नियंत्रण इंटरफ़ेस और स्ट्रीमिंग सर्वर प्रारंभ करें
नियंत्रण इंटरफ़ेस और स्ट्रीमिंग सर्वर प्रारंभ करें

सेवाएं शुरू करने के लिए दो टर्मिनल विंडो खोलें और इन आदेशों को चलाएं:

नोड नोडहोम/वेबसर्वर.जेएस

./nodehome/start_stream.sh

Raspberry_IP:8080 का उपयोग करके ब्राउज़र में वेबसाइट खोलें (Raspberry_IP को अपने IP से बदलें)

सिफारिश की: