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

ساخت ربات دنبال کننده توپ با رزبری پای و Processing

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

پروژه ربات دنبال کننده اشیا با Raspberry pi

رشته روباتیک ، هوش مصنوعی و یادگیری ماشین به سرعت در حال تحول است که مطمئناً در آینده نزدیک شیوه زندگی بشر را تغییر خواهد داد. تصور می شود روبات ها از طریق سنسورها و پردازش یادگیری ماشین با دنیای واقعی ارتباط برقرار کرده و با آنها تعامل دارند. تشخیص و پردازش تصویر از قسمت های رایج در رباتیک است که ربات ها با دیدن دنیای واقعی از طریق دوربین و حسگر ها، اشیا را درک میکنند. در این پروژه رزبری پای از قدرت Raspberry pi برای ساخت یک ربات استفاده میکنیم. این ربات میتواند توپ را ردیابی کند. دقیقا مانند ربات هایی که فوتبال بازی میکنند.

OpenCV ابزاری بسیار مشهور و متن باز است که برای پردازش تصویر استفاده می شود ، اما در این آموزش برای ساده نگه داشتن پروژه، ما از Processing IDE استفاده می کنیم.

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

پردازش در رزبری پای Processing & Raspberry pi

ما از محیط پردازش برای برنامه نویسی Raspberry Pi استفاده خواهیم کرد. یعنی در این پروژه از پایتون استفاده نمیکنیم. بنابراین مراحل زیر را دنبال کنید:

مرحله 1: Raspberry Pi خود را به مانیتور ، صفحه کلید و ماوس خود وصل کنید و آن را روشن کنید.

مرحله 2: اطمینان حاصل کنید که Pi به یک اتصال اینترنت فعال وصل شده است زیرا ما در حال بارگیری چند مورد هستیم.

مرحله 3: بر روی Processing ARM کلیک کنید ، تا IDE پردازش Raspberry Pi را بارگیری کنید. بارگیری به صورت فایل ZIP خواهد بود.

مرحله 4: پس از بارگیری ، پرونده ها را در پوشه ZIP خود در فهرست مورد نظر خود استخراج کنید. من آن را بر روی دسک تاپ استخراج کردم.

مرحله 5: اکنون پوشه استخراج شده را باز کرده و روی پرونده بنام Processing کلیک کنید. باید مانند پنجره باز شده مانند تصویر زیر باشد.

پردازش در رزبری پای Processing & Raspberry pi

مرحله 6: این محیطی است که کدهای خود را تایپ خواهیم کرد. برای افرادی که با آردوینو آشنا هستند ، کار با این نرم افزار بسیار ساده است زیرا شباهت زیادی به یکدیگر دارند.

مرحله 7: برای کار با توپ به دو کتابخانه نیاز داریم تا نصب شوند. روی Sketch -> Import Library -> Add Library کلیک کنید. کادر زیر باز خواهد شد.

پروژه ربات دنبال کننده اشیا با Raspberry pi

مرحله 8: از جعبه متن بالا در سمت چپ برای جستجوی Raspberry Pi استفاده کنید و enter بزنید، نتیجه جستجوی شما باید چیزی شبیه به این باشد.

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

نصب کتابخانه رزبری پای در Processing

مرحله 9: کتابخانه های “GL Video” و “Hardware I / O” را جستجو کرده و برای نصب آن روی install کلیک کنید. حتماً هر دو کتابخانه را نصب کنید.

مرحله 10: براساس اینترنت شما نصب چند دقیقه طول خواهد کشید.

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

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

حتما ببینید :  پروژه ساعت و تاریخ با لانچ پد MSP430 و ماژول DS3231

مدار ربات دنبال کننده توپ با رزبری پای

همانطور که مشاهده می کنید این مدار شامل یک دوربین PI ، ماژول درایور موتور و یک جفت موتور متصل به Raspberry pi است. مدار کامل توسط یک پاور بانک تغذیه می شود. از آنجا که جزئیات پین ها در تصویر Raspberry Pi ذکر نشده است ، لازم است که پین ​​ها را با استفاده از تصویر زیر بررسی کنیم.

پین های رزبری پای

برای رانندگی موتورها ، به چهار پین (A ، B ، A ، B) نیاز داریم. این چهار پین به ترتیب از GPIO14،4،17 و 18 به هم متصل شده اند. سیم نارنجی و سفید با هم اتصال یک موتور را تشکیل می دهند. بنابراین برای دو موتور دو جفت مشابه داریم.

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

قطعات مورد نیاز

  1. برد رزبری پای
  2. ماژول دوربین با کابل روبان
  3. درایور موتور L293D
  4. پاوربانک یا هر منبع تغذیه قابل حمل

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

برنامه پروژه ردیابی توپ با رزبری پای

برنامه Processing کامل این پروژه در انتهای این صفحه ارائه شده است. در اینجا بعضی از قسمت های کد را توضیح میدهیم.

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

مثل همیشه با وارد کردن دو کتابخانه که بارگیری کرده ایم شروع می کنیم. این کار توسط دو خط زیر قابل انجام است. کتابخانه سخت افزار I / O برای دسترسی مستقیم به پین ​​های GPIO PI به طور مستقیم از محیط Processing استفاده می شود و از کتابخانه glvideo برای دسترسی به ماژول دوربین Raspberry Pi استفاده می شود.

import processing.io.*;
import gohai.glvideo.*;

در داخل setup void () ، پین های خروجی را برای کنترل موتور تنظیم می کنیم و همچنین فیلم را از دوربین پای دریافت می کنیم و اندازه آن را در یک پنجره با اندازه 320 * 240 می گیریم.

void setup() {
  size(320, 240, P2D);
  video = new GLCapture(this);
  video.start();
  trackColor = color(255, 0, 0);
  GPIO.pinMode(4, GPIO.OUTPUT);
  GPIO.pinMode(14, GPIO.OUTPUT);
  GPIO.pinMode(17, GPIO.OUTPUT);
  GPIO.pinMode(18, GPIO.OUTPUT);
}

void draw() مانند حلقه نامحدود است. که کد درون این حلقه تا زمانی که برنامه خاتمه یابد اجرا خواهد شد. اگر منبع دوربین در دسترس باشد ، ویدئویی که از آن بیرون می آید را می خوانیم.

void draw() {
   background(0);
  if (video.available()) {
    video.read();
  }}

سپس شروع به تقسیم فریم ویدیو در پیکسل ها می کنیم. هر پیکسل مقداری رنگ قرمز ، سبز و آبی دارد. این مقادیر در متغیرهای r1 ، g1 و b1 ذخیره می شوند

  for (int x = 0; x < video.width; x ++ ) {
    for (int y = 0; y < video.height; y ++ ) {
      int loc = x + y*video.width;
      // رنگ فعلی
      color currentColor = video.pixels[loc];
      float r1 = red(currentColor);
      float g1 = green(currentColor);
      float b1 = blue(currentColor);

برای تشخیص رنگ توپ در ابتدا ، باید روی رنگ کلیک کنیم. پس از کلیک، رنگ توپ در متغیری به نام trackColour ذخیره می شود.

void mousePressed() {
  // Save color where the mouse is clicked in trackColor variable
  int loc = mouseX + mouseY*video.width;
  trackColor = video.pixels[loc];
}

پس از داشتن رنگ از پیش تعیین شده و رنگ فعلی، باید آنها را مقایسه کنیم. این مقایسه با استفاده از تابع dist انجام میشود. این تابع بررسی می کند که چقدر رنگ فعلی به رنگ از پیش تعیین شده نزدیک است.

float d = dist(r1, g1, b1, r2, g2, b2);

در صورتی که شباهت رنگ از محدوده ای بیشتر باشد، فرض میکنیم که توپ را یافته ایم. سپس مکان آن پیکسل را در متغیر closestX و closestY ذخیره میکنیم تا محل توپ را پیدا کنیم.

if (d < worldRecord) {
        worldRecord = d;
        closestX = x;
        closestY = y;
      }

ما همچنین یک بیضی را در اطراف رنگ یافت شده رسم می کنیم تا نشان دهنده این باشد که رنگ پیدا شده است.

if (worldRecord < 10) {
    // Draw a circle at the tracked pixel
    fill(trackColor);
    strokeWeight(4.0);
    stroke(0);
    ellipse(closestX, closestY, 16, 16);
    println(closestX,closestY);

در آخر می توانیم موقعیت نزدیکترین X و نزدیکترین Y را با هم مقایسه کرده و موتورها را به گونه ای تنظیم کنیم که رنگ به مرکز صفحه برسد. از کد زیر برای چرخاندن روبات به سمت راست استفاده می شود زیرا مشخص شده است که موقعیت X رنگ در سمت چپ صفحه قرار دارد (<140)

    if (closestX<140)
    {
     GPIO.digitalWrite(4, GPIO.HIGH);
     GPIO.digitalWrite(14, GPIO.HIGH);
     GPIO.digitalWrite(17, GPIO.HIGH);
     GPIO.digitalWrite(18, GPIO.LOW);
     delay(10);
     GPIO.digitalWrite(4, GPIO.HIGH);
     GPIO.digitalWrite(14, GPIO.HIGH);
     GPIO.digitalWrite(17, GPIO.HIGH);
     GPIO.digitalWrite(18, GPIO.HIGH);
     println("Turn Right");
    }

به همین ترتیب می توان موقعیت X و Y را برای کنترل موتورها در جهت مورد نیاز بررسی کرد.

حتما ببینید :  ساخت فاصله سنج التراسونیک بی سیم با STM32 و آردوینو

فیلم عملکرد پروژه

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

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

موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل

برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

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

محمد رحیمی

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

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

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

دکمه بازگشت به بالا
بستن
بستن