پروژه الکترونیکپروژه های اینترنت اشیاپروژه های پایتونپروژه های رزبری پای

ساخت ربات نجات دهنده دارای دوربین با رزبری پای

سلام. پروژه ساخت و کنترل ربات ماشین دارای دوربین با اینترنت و رزبری پای را آماده کردیم.

طراحی ربات امداد گر با رزبری پای و مشاهده تصویر در اینترنت

در این پروژه رزبری پای قصد داریم یک ماشین رباتیک بسازیم که از طریق اینترنت کنترل میشود و دارای یک وبکم برای ارسال تصاویر است. این ربات میتواند یک ابزار امنیتی و جاسوسی مفید و ارزان باشد. این پروژه را میتوان در دسته پروژه های اینترنت اشیا هم قرار دارد زیرا ما از طریق اینترنت آن را کنترل میکنیم و تصاویر را دریافت میکینم. این پروژه میتواند به عنوان یک ربات نجات دهنده در هنگام آتش سوزی و زلزله نیز استفاده شود.

نحوه کار پروژه ربات نجات دهنده با Raspberry pi

این ربات دارای یک وبکم است که از طریق آن میتوانید ویدئوی زنده را دریافت کنید و نکته جالب اینجاست که میتوانید از طریق یک مرورگر اینترنت ربات را کنترل کنید و حرکت دهید. از آنجا که میتوان ربات را از طریق یک مرورگر اینترنت کنترل کرد یعنی میتوان آن را هم از طریق لپتاپ و هم از طریق موبایل کنترل کرد. ما یک صفحه وب HTML ایجاد میکنیم که دارای لینک های حرکت به جلو، حرکت به عقب، حرکت به راست و حرکت به چپ است. با کلیک بر روی هر لینک ربات به مسیر مورد نظر هدایت میشود. ما از Motion برای دریافت متسقیم فیلم از دوربین و از Flask برای ارسال دستورات از صفحه وب به رزبری پای با پایتون استفاده کرده ایم.

فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.

نصب و پیکربندی Motion برای دریافت ویدئو از رزبری پای

Motion نرم افزاری متن باز است که برای لینوکس تهیه شده است. این بسته حرکت را تشخیص می دهد و شروع به ضبط فیلم از آن می کند. با نصب “Motion ” در Raspberry Pi ، می توانید رزبری پای را به صورت جادویی به دوربین امنیتی تبدیل کنید. این بسته برای دریافت ویدیوی زنده ، ساخت فیلم های Timelapse ، گرفتن عکس های فوری و … استفاده می شود. Motion هر زمان که حرکت یا هر گونه اختلال در منطقه دید را تشخیص دهد فیلم را ضبط و ذخیره می کند. با وارد کردن آدرس IP رزبری پای به همراه درگاه ، می توانید ویدئوی زنده را در مرورگر وب مشاهده کنید.

در اینجا شما نیاز دارید که فقط چند دستور را اجرا کنید. قبل از آن، بررسی کنید که Raspberry Pi شما به اینترنت متصل شده است. از LAN یا Wi-Fi استفاده کرده و مراحل زیر را دنبال کنید :

مرحله 1: ابتدا دستور زیر را اجرا کنید تا سیستم Raspbian روی Raspberry Pi به روز شود:

sudo apt-get update

مرحله 2: سپس کتابخانه “Motion” را با استفاده از دستور زیر نصب کنید:

sudo apt-get install motion

مرحله 3: اکنون Daemon Motion را روی Yes تنظیم کنید file: /etc/default/motion ، به طوری که همیشه اجرا شود. ویرایش با دستور زیر انجام میشود.

اگر میخواهید آردوینو را به صورت اصولی و پروژه محور (ساخت ربات، ارتباط با اندروید، اینترنت اشیا، برنامه نویسی حرفه ای) یاد بگیرید، حتما دوره آموزش آردوینو را مشاهده کنید.
sudo nano /etc/default/motion

نصب و پیکربندی Motion برای دریافت ویدئو از رزبری پای

سپس پرونده را با فشار دادن “CTRL + X” ، سپس “Y” و Enter ذخیره کنید.

مرحله 4: اکنون ما باید مجوز مربوط به Target Directory (/ var / lib / motion /) را تنظیم کنیم ، که در آن حرکت، ضبط های ویدیویی و پرونده های تصویری را ذخیره می کند. ما باید با صدور دستور زیر “Motion” را به عنوان مالک این فهرست تنظیم کنیم:

sudo chown motion:motion /var/lib/motion/

این مجوز ضروری است در غیر اینصورت هنگام بررسی وضعیت سرویس Motion، خطا دریافت خواهید کرد.

با استفاده از این دستور می توانید وضعیت سرویس را بررسی کنید: sudo service motion status

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

مرحله 5: اکنون کار تقریبا تمام شده است. فقط باید یک گزینه config را در پرونده پیکربندی Motion در (/etc/motion/motion.conf) که stream_localhost است را روی Off قرار دهیم. ما باید این را خاموش کنیم در غیر اینصورت ویدئو در شبکه مشاهده نمیشود. فایل config  بسته Motion را با “nano” ویرایش کنید و مانند تصویر زیر آن را خاموش کنید:

sudo nano /etc/motion/motion.conf

طراحی ربات با رزبری پای و مشاهده تصویر زنده در اینترنت

حالا باید بسته Motion را با استفاده از دستور زیر دوباره راه اندازی کنید :

sudo /etc/init.d/motion restart

اکنون کارمان در این قسمت تمام است. فقط کافیست آیپی رزبری پای را وارد کنید و در انتهای آن درگاه 5010 را وارد کنید تا بتوانید تصویر را ببینید. مانند :

192.168.43.199:5010

اگر نسخه برد رزبری پای مورد استفاده شده قبل از 3 باشد برای این پروژه نیاز به یک دانگل وای فای دارید.

تنظیم فلاسک در Raspberry Pi

در اینجا ما با استفاده از Flask یک وب سرور ایجاد میکنیم که راهی برای ارسال دستورات از صفحه وب به رزبری پای فراهم میکند. فلاسک به ما اجازه میدهد اسکریپت های پایتون را از طریق یک صفحه  وب اجرا کنیم. میتوانیم داده ها را از Raspberry pi به مرورگر وب و برعکس ارسال و دریافت کنیم.

شما باید با استفاده از دستورات داده شده، بسته پشتیبانی از فلسک را در Raspberry Pi نصب کند:

$ pip install Flask

سپس می توانیم از Flask با استفاده از فراخوانی آن در برنامه استفاده کنیم.

from flask import Flask
from flask import Flask, render_template, request

کد HTML برای صفحه وب کنترل ربات و دریافت تصویر

برای نمایش لینک های کنترل، یک صفحه وب با استفاده از زبان HTML ایجاد میکنیم تا بتوانیم به راحتی ربات خود را از طریق مرورگر وب کنترل کنیم. ما از اسکریپت جی کوئری برای ارتباط با توابع پایتون استفاده کرده ایم. پنج حرکت برای ربات در این صفحه قرار داده شده است که آنها : جلو، عقب، چپ، راست و توقف هستند. موتور های قرار داده شده با کلیک شما بر روی لینک ها حرکت میکنند. حرکت ربات به اینصورت است که هر گاه روی یک لینک کلیک کنید و نگه دارد ربات به همان جهت حرکت میکند و هنگامی که ماوس را رها کنید ربات می ایستد.

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>

<img src="https://192.168.43.199:8081" /> <!--Enter the IP Address of your Raspberry Pi-->
<div style="float:right">

</div>
<div style=" height:400px; width:300px; float:right;">
<center>
<h1><span style="color:#5C5C5C;">Circuit</span><span style="color:#139442"> Digest</span></h1>
<h2>Surveillance Robot</h2><br><br>
<a href="#" id="up" style="font-size:30px;text-decoration:none;">  &#x1F881;&#x1F881;<br>Forward</a><br><br></center>
<a href="#" id="left" style="font-size:30px;text-decoration:none;"> &#x1F880;&#x1F880;Left</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="#" id="right" style="font-size:30px; text-decoration:none;"> Right &#x1F882;&#x1F882;</a><br><br>
<center><a href="#" id="down" style="font-size:30px;text-decoration:none;"> Backward<br> &#x1F883;&#x1F883;</a></center>
</div>

<script>
$( document ).ready(function(){
    $("#down").on("mousedown", function() {
     $.get('/down_side');
     }).on('mouseup', function() {
     $.get('/stop');
    });
    $("#up").on("mousedown", function() {
     $.get('/up_side');
     }).on('mouseup', function() {
     $.get('/stop');
    });
    $("#left").on("mousedown", function() {
     $.get('/left_side');
     }).on('mouseup', function() {
     $.get('/stop');
    });
    $("#right").on("mousedown", function() {
     $.get('/right_side');
     }).on('mouseup', function() {
     $.get('/stop');
    });
});
</script>

</body>
</html>

در اینجا می توانید با استفاده از برچسب img src آدرس IP را که ویدئو روی آن پخش می شود ، وارد صفحه وب کنید. آدرس IP را مطابق Raspberry Pi تغییر دهید اما درگاه را یکسان نگه دارید.

<img src="https://192.168.43.199:8081" /> <!--آدرس آیپی رزبری پای را وارد کنید-->

شما باید این کد را در یک ویرایشگر مثل Notepad وارد کنید و سپس با آن را با پسوند .html ذخیره کنید. سپس با توجه به پوشه اسکریپت پایتون خود، آن را در پوشه /templates قرار دهید. حتما این مرحله را انجام دهید زیرا در غیر اینصورت پروژه کار نمیکند.

با استفاده از دستور ifconfig می توانید آدرس IP Raspberry Pi خود را بررسی کنید:

ifconfig

توضیحات مدار پروژه ربات نجات دهنده

تصویر زیر شماتیک مدار این پروژه را نشان میدهد.

توضیحات مدار پروژه ربات نجات دهنده

استفاده از نوع چرخ و شاسی مربوط به شما و موارد در دسترس است. ما برای تغذیه مدار از یک پاور بانک اسفتاده کرده ایم. فقط باید تعدادی سیم را به موتور های DC و ماژول موتور درایور L293D متصل کنید.

تصویر نهایی ربات نجات دهنده با وبکم

فیلم عملکرد پروژه کنترل ربات با اینترنت

همانطور که گفته آدرس آی پی برد رزبری پای خود را به همراه درگاه 5010 باز کنید. سپس صفحه وب را میبینید که دارای چهار لینک برای حرکت ربات است و در سمت چپ صفحه تصویر زنده دریافتی از ربات را مشاهده میکنید.

برای دانلود فایل ها باید عضو آیرنکس باشید، تنها چند ثانیه زمان لازم است.

ورود / ثبت نام

[lrm_form default_tab=”register” logged_in_message=””]

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید
امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. مالکیتی بر مطالب ارائه شده ندارم. اکثر فعالیت بنده در زمینه ترجمه است. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *