সুচিপত্র:

ওয়েব ইন্টারফেস এবং ভিডিও স্ট্রিমিং সহ রাস্পবেরি ট্যাঙ্ক: 8 টি ধাপ (ছবি সহ)
ওয়েব ইন্টারফেস এবং ভিডিও স্ট্রিমিং সহ রাস্পবেরি ট্যাঙ্ক: 8 টি ধাপ (ছবি সহ)

ভিডিও: ওয়েব ইন্টারফেস এবং ভিডিও স্ট্রিমিং সহ রাস্পবেরি ট্যাঙ্ক: 8 টি ধাপ (ছবি সহ)

ভিডিও: ওয়েব ইন্টারফেস এবং ভিডিও স্ট্রিমিং সহ রাস্পবেরি ট্যাঙ্ক: 8 টি ধাপ (ছবি সহ)
ভিডিও: লাইভে না গিয়েও লাইভ? How to Set LiVE Premiere on Facebook Page 👉 Complete WATCH TIME Fast! 😱 2024, নভেম্বর
Anonim
ওয়েব ইন্টারফেস এবং ভিডিও স্ট্রিমিং সহ রাস্পবেরি ট্যাঙ্ক
ওয়েব ইন্টারফেস এবং ভিডিও স্ট্রিমিং সহ রাস্পবেরি ট্যাঙ্ক

আমরা দেখতে যাচ্ছি কিভাবে আমি একটু ওয়াইফাই ট্যাঙ্ক বুঝতে পেরেছি, যা রিমোট ওয়েব কন্ট্রোল এবং ভিডিও স্ট্রিমিং করতে সক্ষম।

এটি ইলেকট্রনিক এবং সফটওয়্যার প্রোগ্রামিং এর প্রাথমিক জ্ঞান প্রয়োজন এমন টিউটোরিয়াল হওয়ার উদ্দেশ্যে। এই কারণে আমি একটি ট্যাঙ্ক চ্যাসি কিট (থ্রিডি প্রিন্টার ব্যবহার করে এটি মুদ্রণের পরিবর্তে, পরবর্তী আপগ্রেড হতে পারে) এবং ব্যাটারিসহ মোট 6 টি উপাদান বেছে নিয়েছি। সফটওয়্যারের দিকে আপনি ধাপে ধাপে ইনস্টলেশন প্রক্রিয়া অনুসরণ করতে পারেন এবং প্রোগ্রামিং সর্বনিম্ন রাখা হয়, রাস্পবেরি জিনিসগুলির একটি প্রাথমিক জ্ঞান সাহায্য করতে পারে।

আমি 0 থেকে প্রস্তুত ট্যাঙ্ক চালানোর জন্য 12 ঘন্টা কাজ অনুমান করেছি। সমস্ত উপাদানগুলির জন্য মোট খরচ 70।

ধাপ 1: BOM

বিওএম
বিওএম
বিওএম
বিওএম
বিওএম
বিওএম
বিওএম
বিওএম

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 - রাস্পবেরি পাই 5 এমপি ক্যামেরা মডিউল ওয়েবক্যাম মডেল জিরোর জন্য - 8 (€)

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

1 - পাওয়ার ব্যাংক 5V

1 - 9v ব্যাটারি

মিশ্র ব্রেডবোর্ড কেবল ডুপন্ট সংযোগকারী

রাস্পবেরি সেটআপের জন্য মাউস, কীবোর্ড, মনিটর বা টিভি (alচ্ছিক, শুধু প্রথম সেটআপ সহজ করার জন্য)

ধাপ 2: প্রধান উপাদান স্পেস

মোটর

JGA25-370 ডিসি গিয়ারমোটর

এই মোটরটিতে একটি D- আকৃতির আউটপুট শ্যাফট রয়েছে।

স্পেসিফিকেশন

· অপারেটিং ভোল্টেজ: 6 V এবং 18 V এর মধ্যে

Voltage নামমাত্র ভোল্টেজ: 12 V

12 V: 399 RPM এ ফ্রি-রান স্পিড

12 V: 50 mA এ ফ্রি-রান কারেন্ট

12V এ স্টল কারেন্ট: 1200 mA

12V এ স্টল টর্ক: 2.2 kg.cm

· গিয়ার অনুপাত: 1:21

· Reductor আকার: 19 মিমি

· ওজন: 84 গ্রাম

ডুয়াল চ্যানেল L298N ডিসি মোটর ড্রাইভার বোর্ড

দ্বৈত এইচ-ব্রিজ মোটর ড্রাইভার, দুটি ডিসি মোটর বা 4-তারের দুই-ফেজ স্টেপার মোটর চালাতে পারে। অন্তর্নির্মিত TSD, মোটর স্টল থেকে রক্ষা করার জন্য।

স্পেসিফিকেশন

· মডিউল সরবরাহ ভোল্টেজ: ডিসি 2V-10V

· সংকেত ইনপুট ভোল্টেজ: ডিসি 1.8-7V

· একক কাজ বর্তমান: 1.5A

A সর্বোচ্চ 2.5A পর্যন্ত বর্তমান

Stand নিম্ন স্ট্যান্ডবাই বর্তমান (0.1uA এর কম)

Common অন্তর্নির্মিত সাধারণ সঞ্চালন সার্কিট, ইনপুট টার্মিনাল খালি, মোটর ত্রুটিপূর্ণ নয়

· আকার: 24.7 x 21 x 7 মিমি

ধাপ 3: ওয়্যারিং

ওয়্যারিং
ওয়্যারিং
ওয়্যারিং
ওয়্যারিং

এটি চূড়ান্ত ওয়্যারিং হবে, তবে অপেক্ষা করুন, তার আগে আমাদের কিছু ইনস্টল করতে হবে

সফটওয়্যার এবং এটি সহজতর ওয়্যারিং দিয়ে পরীক্ষা করার জন্য একটি ভাল ধারণা, প্রস্তুত হলে এখানে ফিরে আসুন।

আমাদের দুটি ভিন্ন শক্তির উৎস দরকার, একটি মোটরের জন্য এবং আরেকটি রাস্পবেরির জন্য।

মোটর চালক ডুয়াল চ্যানেল L298N ডিসি মোটর ড্রাইভার বোর্ড (সর্বোচ্চ ইনপুট ভোল্টেজ DC 2V-10V) 9V ব্যাটারি ব্যবহার করে চালিত হয় এবং রাস্পবেরি পাই মান 5V USB সঞ্চয়কারী ব্যবহার করে।

মোটর চালকের GND পিন ব্যাটারি বিয়োগ এবং রাস্পবেরি পাই (GND) এর সাথে সংযুক্ত থাকবে। রাস্পবেরি পাই এর জিপিআইও পিনগুলি টেবিল হিসাবে মোটর চালকের সাথে সংযুক্ত।

ধাপ 4: রাস্পবেরি ওএস প্রস্তুত করা

এটি রাস্পবিয়ান অপারেটিভ সিস্টেমের জন্য একটি আদর্শ ইনস্টলেশন, আপনি খুঁজে পেতে পারেন

ওয়েবে অনুসন্ধান করা অনেক বিস্তারিত টিউটোরিয়াল, মূলত পদক্ষেপগুলি হল:

1. https://www.raspberrypi.org/downloads/raspbian/ থেকে ডেস্কটপের সাথে আইএসও রাস্পিয়ান স্ট্রেচ ডাউনলোড করুন

2. একটি 16 জিবি এসডি কার্ড ফরম্যাট করুন, আমি এসডি ফরম্যাটার ব্যবহার করেছি

3. আইএমজি ফাইল বার্ন করুন, আমি Win32DiskImager ব্যবহার করেছি

এখন আপনার রাস্পবেরি বুট করার জন্য প্রস্তুত, এটি একটি USB পাওয়ার সোর্স (5V, 2A) এর সাথে সংযুক্ত করুন এবং প্রথম বুট সেটআপের জন্য প্রস্তুত করুন। আপনি এটি দুটি উপায়ে করতে পারেন, মাউস, কীবোর্ড এবং মনিটরের মতো বাহ্যিক ডিভাইসগুলি ব্যবহার করে বা আপনার পিসি এবং রাস্পবেরির সাথে দূরবর্তী সংযোগ ব্যবহার করে। এই সম্পর্কে অনেক টিউটোরিয়াল আছে, একটি হল:

ধাপ 5: কিভাবে NODE. JS এবং WEBSOCKET. IO দিয়ে আমাদের ওয়াইফাই ট্যাঙ্ক নিয়ন্ত্রণ করবেন

কিভাবে NODE. JS এবং WEBSOCKET. IO দিয়ে আমাদের ওয়াইফাই ট্যাঙ্ক নিয়ন্ত্রণ করবেন
কিভাবে NODE. JS এবং WEBSOCKET. IO দিয়ে আমাদের ওয়াইফাই ট্যাঙ্ক নিয়ন্ত্রণ করবেন

এখন আমাদের রাস্পবেরি মাইক্রো পিসির একটি নতুন ইনস্টলেশন রয়েছে যা আমাদের কাজ চালানোর জন্য প্রস্তুত, তাই … ট্যাঙ্ককে কমান্ড দেওয়ার জন্য আমরা কী ব্যবহার করব?

পাইথন ব্যবহার করা খুবই সহজ একটি ভাষা যা সাধারণত রs্যাপসবেরি প্রজেক্ট বালি চালানোর জন্য ব্যবহৃত হয় সহজেই র Rap্যাপসবেরি ইনপুট এবং আউটপুট পিনের সাথে যোগাযোগ করতেও ব্যবহার করা যেতে পারে (জিপিআইও)

কিন্তু, আমার লক্ষ্য ছিল একটি সাধারণ ওয়েব ব্রাউজার ব্যবহার করে যে কোন ডিভাইস (পিসি, মোবাইল ফোন, ট্যাবলেট …) থেকে আমার ট্যাংক ওয়াই-ফাই সংযোগ করা এবং সেখান থেকে ভিডিও স্ট্রিম করা। সুতরাং, আপাতত পাইথনকে ভুলে যান, এবং NODE. JS এবং SOCKET. IO এ যেতে দিন।

NODE.js

Node.js (https://github.com/nodejs/node/wiki) হল একটি ওপেন সোর্স সার্ভার ফ্রেম কাজ যা js ভাষা ভিত্তিক। যেহেতু আমি রাস্পবেরি পাই জিরো (ARMv6 CPU) ব্যবহার করছি আমরা স্বয়ংক্রিয় ইনস্টলেশন প্রক্রিয়াটি ব্যবহার করতে পারি না (ARMv7 CPU এর উদ্দেশ্যে) এবং আমাদের এটি ম্যানুয়ালি করতে হবে:

স্থানীয়ভাবে Nodejs ডাউনলোড করুন, (আমি ARMv6 এর জন্য 7.7.2 সংস্করণ ব্যবহার করেছি, এখানে অন্যান্য সংস্করণ দেখুন

পাই@রাস্পবেরি: ~ $ wget

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

একবার হয়ে গেলে, সংকুচিত ফাইলটি বের করুন:

pi@রাস্পবেরি: ~ $ tar -xzf নোড- v7.7.2-linux-armv6l.tar.gz

ফাইলগুলি অনুলিপি করুন এবং ইনস্টল করুন /ব্যবহারকারী /স্থানীয়

pi@রাস্পবেরি: ~ $ sudo cp -R node-v7.7.2-linux-armv6l/*/usr/local/

যেখানে আমরা নোডেজ ইনস্টল করি সেই জায়গাটি যোগ করুন, ".profile" ফাইলটি সম্পাদনা করুন:

pi@রাস্পবেরি: ~ $ nano ~/.profile

ফাইলের শেষে নিচের লাইন যোগ করুন, সংরক্ষণ করুন এবং প্রস্থান করুন

PATH = $ PATH:/usr/local/bin

ডাউনলোড করা ফাইলটি সরান:

pi@রাস্পবেরি: ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz

pi@রাস্পবেরি: ~ $ rm -r ~/node-v7.7.2-linux-armv6l

নোডজেএস ইনস্টলেশন চেক করতে নিম্নলিখিত কমান্ডগুলি টাইপ করুন:

pi@রাস্পবেরি: ~ $ node -v

পাই@রাস্পবেরি: ~ $ npm -v

আপনার প্রতিক্রিয়া হিসাবে v7.7.2 এবং v4.1.2 পড়া উচিত।

সবকিছু ঠিকঠাক থাকলে, আপনার নোডজেএস ফাইলগুলি হোস্ট করার জন্য একটি নতুন ফোল্ডার তৈরি করুন:

pi@রাস্পবেরি: ~ $ mkdir nodehome

নতুন ফোল্ডারের ভিতরে সরান:

পাই@রাস্পবেরি: ~ $ সিডি নোডহোম

জিপিআইও পরিচালনা করার জন্য প্রয়োজনীয় অতিরিক্ত মডিউল ইনস্টল করুন সবচেয়ে মৌলিক উপায়ে, চালু এবং বন্ধ করুন:

পাই@রাস্পবেরি: ~ $ npm ইনস্টল অফ অফ

এখন আমাদের প্রথম প্রকল্প "Blink.js" পরীক্ষা করার সময়, ফলাফল হবে … একটি ঝলকানি LED

pi@রাস্পবেরি: ~ $ nano blink.js

নিম্নলিখিত কোড আটকান, সংরক্ষণ করুন এবং প্রস্থান করুন:

var জিপিও = প্রয়োজন ('অনঅফ')। জিপিও; // অনঅফ অন্তর্ভুক্ত

var LED = নতুন জিপিও (3, 'আউট'); // GPIO 3 ব্যবহার করুন

var blinkInterval = setInterval (blinkLED, 250);

// প্রতি 250ms LED ঝলক

ফাংশন blinkLED () {// ফাংশন ঝলকানি শুরু করতে

যদি

(LED.readSync () === 0) {// পিন অবস্থা পরীক্ষা করুন, যদি রাজ্য 0 (বা বন্ধ) হয়

LED.writeSync (1);

// পিনের অবস্থা 1 সেট করুন (LED চালু করুন)

} অন্য {

LED.writeSync (0);

// সেট পিন অবস্থা 0 (LED বন্ধ করুন)

}

}

ফাংশন endBlink () {// ফাংশন ঝলকানি বন্ধ করতে

clearInterval (blinkInterval); // চোখের পলক বিরতি বন্ধ করুন

LED.writeSync (0); // LED বন্ধ করুন

LED.unexport (); // সম্পদ মুক্ত করার জন্য জিপিআইও রপ্তানি করুন

}

setTimeout (endBlink, 5000); // 5 সেকেন্ড পরে চোখের পলক বন্ধ করুন

স্কিমাতে দেখানো একটি LED, একটি প্রতিরোধক (200ohms) ওয়্যার করুন এবং প্রকল্পটি চালান:

pi@রাস্পবেরি: ~ $ node blink.js

নোড প্রস্তুত।

সকেট.আইও

ওয়েবসকেট একটি কম্পিউটার যোগাযোগ প্রোটোকল, টিসিপি সংযোগের উপর ভিত্তি করে, এটি একটি সার্ভার এবং ক্লায়েন্ট তৈরির জন্য একটি প্রোগ্রামার প্রদান করে। ক্লায়েন্ট সার্ভারের সাথে সংযোগ স্থাপন করে এবং সার্ভার থেকে এবং বার্তাগুলি নির্গত করে এবং গ্রহণ করে। Node.js এর জন্য WebSocket বাস্তবায়নকে বলা হয় Socket.io (https://socket.io/)।

Socket.io ইনস্টল করুন:

pi@রাস্পবেরি: ~ $ npm install socket.io --save

Nodejs বাড়ির ভিতরে সরান, previusly তৈরি:

পাই@রাস্পবেরি: ~ $ সিডি নোডহোম

এবং একটি নতুন ফোল্ডার "পাবলিক" তৈরি করুন:

pi@রাস্পবেরি: ~ $ mkdir পাবলিক

নতুন নমুনা ওয়েব সার্ভার তৈরি করুন, এটিকে "webserver.js" বলুন

pi@রাস্পবেরি: ~ $ nano webserver.js

নিম্নলিখিত কোড আটকান, সংরক্ষণ করুন এবং প্রস্থান করুন:

var http = প্রয়োজন ('http')। createServer (handler); // http সার্ভারের প্রয়োজন, এবং ফাংশন হ্যান্ডলার দিয়ে সার্ভার তৈরি করুন ()

var fs = প্রয়োজন ('fs'); // ফাইল সিস্টেম মডিউল প্রয়োজন

http.listen (8080); // 8080 পোর্ট শুনুন

ফাংশন হ্যান্ডলার (req, res) {// সার্ভার তৈরি করুন

fs.readFile (_ dirname + '/public/index.html', ফাংশন (ভুল, ডেটা) {// পড়া

ফাইল index.html পাবলিক ফোল্ডারে

যদি (ভুল) {

res.writeHead (404, {'বিষয়বস্তু-প্রকার': 'পাঠ্য/এইচটিএমএল'}); // ত্রুটিতে 404 প্রদর্শন করুন

রিটার্ন res.end ( 404 না

পাওয়া );

}

res.writeHead (200, {'বিষয়বস্তু-প্রকার': 'পাঠ্য/এইচটিএমএল'}); // HTML লিখুন

res.write (তথ্য); // তথ্য লিখুন

index.html থেকে

রিটার্ন res.end ();

});

}

এই ওয়েব সার্ভারটি আপনার রাস্পবেরি পোর্ট 8080 শুনবে এবং যে কোনো ওয়েব ক্লায়েন্টকে সংযুক্ত করে ফাইল সরবরাহ করবে। এখন আমাদের আমাদের ক্লায়েন্টদের হোস্ট এবং প্রদান করার জন্য কিছু তৈরি করতে হবে: "পাবলিক" ফোল্ডারে প্রবেশ করুন: pi@raspberry: ~ $ cd public

নতুন html ফাইল "index.html" তৈরি করুন:

pi@রাস্পবেরি: ~ $ nano index.html

সংযুক্ত "HelloWorld.txt" থেকে কোড আটকান, সংরক্ষণ করুন এবং প্রস্থান করুন।

Nodejs ফোল্ডারের ভিতরে সরান "nodehome":

পাই@রাস্পবেরি: ~ $ সিডি নোডহোম

HTTP ওয়েব সার্ভার শুরু করুন:

pi@রাস্পবেরি: ~ $ node webserver.js

Http: // Raspberry_IP: 8080/ব্যবহার করে একটি ব্রাউজারে ওয়েবসাইট খুলুন

ধাপ 6: ভিডিও স্ট্রিমিং ক্যাপাবিলিটি যোগ করা

রাস্পবেরিতে ভিডিও স্ট্রিমিং বাস্তবায়নের বিভিন্ন উপায় রয়েছে, সবচেয়ে সহজ

আমি এখন পর্যন্ত যেভাবে খুঁজে পেয়েছি, এটি দুর্দান্ত পারফরম্যান্স হিসাবে এবং একটি ওয়েব ইন্টারফেসে সংহত করা যায় মিগুয়েল মোটা থেকে প্রকল্পের ভিত্তি:

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

ধন্যবাদ মিগুয়েল! তার ব্লগ থেকে এই পদক্ষেপগুলি হল:

Libjpeg8 এবং cmake উপাদান ইনস্টল করুন:

pi@রাস্পবেরি: ~ $ sudo apt-get libjpeg8 ইনস্টল করুন

pi@রাস্পবেরি: ~ $ sudo apt-get libjpeg8-dev ইনস্টল করুন

pi@রাস্পবেরি: ~ $ sudo apt-get cmake ইনস্টল করুন

রাসপিকাম প্লাগইন সহ এমজেপিজি-স্ট্রিমার ডাউনলোড করুন:

পিআই রাস্পবেরি: ~ $ গিট ক্লোন

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

ডিরেক্টরি পরিবর্তন করুন:

pi@রাস্পবেরি: ~ $ cd ~/mjpg-streamer/mjpg-streamer- পরীক্ষামূলক

কম্পাইল:

pi@raspberry: ~ $ make all clean

পুরানো mjpg-streamer প্রতিস্থাপন করুন:

pi@রাস্পবেরি: ~ $ sudo rm -rf /opt /-j.webp

pi@রাস্পবেরি: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-experimental

/opt/mjpg-streamer

pi@রাস্পবেরি: ~ $ sudo rm -rf ~/mjpg -streamer

একটি নতুন "start_stream.sh" ফাইল তৈরি করুন, সংযুক্ত "start_stream.txt" ফাইল থেকে কপি এবং পেস্ট করুন।

এটি এক্সিকিউটেবল করুন (শেল স্ক্রিপ্ট তৈরি করুন):

pi@রাস্পবেরি: ~ $ chmod +x start_stream.sh

স্ট্রিমিং সার্ভার শুরু করুন:

পিআই@রাস্পবেরি: ~ $./start_stream.sh

Http: // Raspberry_IP: 9000 ব্যবহার করে একটি ব্রাউজারে ওয়েবসাইট খুলুন (আপনার IP দিয়ে রাস্পবেরি_আইপি প্রতিস্থাপন করুন)

ধাপ 7: ট্যাঙ্ক প্রোগ্রাম

সবকিছু প্রস্তুত, এখন আমাদের ট্যাঙ্ক (index.html) এবং আমাদের ওয়েব সার্ভার আমাদের কমান্ড (webserver.js) শোনার জন্য আমাদের ওয়েব পেজ তৈরি করতে হবে। সুতরাং, এখন পর্যন্ত দেখা ফাইলগুলি (সিস্টেম পরীক্ষা করার জন্য উদাহরণ) সংযুক্ত webserver.txt এবং index.txt দিয়ে প্রতিস্থাপন করুন।

ধাপ 8: নিয়ন্ত্রণ ইন্টারফেস এবং স্ট্রিমিং সার্ভার শুরু করুন

স্টার্ট কন্ট্রোল ইন্টারফেস এবং স্ট্রিমিং সার্ভার
স্টার্ট কন্ট্রোল ইন্টারফেস এবং স্ট্রিমিং সার্ভার

পরিষেবাগুলি শুরু করতে দুটি টার্মিনাল উইন্ডো খুলুন এবং এই কমান্ডগুলি চালান:

node nodehome/webserver.js

./nodehome/start_stream.sh

Http: // Raspberry_IP: 8080 ব্যবহার করে একটি ব্রাউজারে ওয়েবসাইট খুলুন (আপনার IP দিয়ে রাস্পবেরি_আইপি প্রতিস্থাপন করুন)

প্রস্তাবিত: