پروژه الکترونیکپروژه های آردوینوپروژه های بلوتوثپروژه های ربات

کنترل ربات با سنسور ژیروسکوپ موبایل و آردوینو + جوی استیک مجازی

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

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

در این پروژه آردوینو قصد داریم از طریق سنسور ژیروسکوپ تلفن همراه خود ربات اتومبیل را کنترل کنیم و شما قادر خواهید بود فقط با کج کردن تلفن، ربات را کنترل کنید. ما همچنین برای این ربات از Arduino و برنامه RemoteXY استفاده خواهیم کرد. برنامه RemoteXY برای ایجاد ارتباط بین تلفن هوشمند و برد آردوینو برای کنترل ربات استفاده می شود. ما جوی استیک را در این برنامه اضافه خواهیم کرد تا ربات بتواند توسط جوی استیک و همچنین با کج کردن گوشی کنترل شود. این پروژه هم با استفاده از IOS و هم Android کار میکند.

سنسور G یا همان G-Sensor در اصل سنسور شتاب سنج تلفن هوشمند است که برای یافتن جهت نمایش صفحه استفاده میشود. شتاب سنج جهت های Z, Y و X را بدست می آورد. اکنون شتاب سنج ها بسیار دقیق و حساس هستند. در این پروژه ربات ما مطابق با مسیری که تلفن را کج کرده ایم حرکت میکند. مثلا هنگامی که تلفن را در شیب رو به جلو قرار میدهیم ربات به سمت جلو حرکت میکند و برای چهار جهت دیگر نیز به همین صورت است. این پروژه مانند کنترل ماشین در بازی ها است با این تفاوت که بجای کنترل ماشین درون گوشی موبایل اندروید، ربات ماشین ساخته ی ما کنترل میشود. فیلم عملکرد این پروژه در انتهای صفحه قرار داده شده است.

کنترل ربات با نرم افزار اندروید RemoteXY

برای ایجاد رابط کاربری برای کنترل ربات ماشین با استفاده از برنامه RemoteXY ، باید به لینک روبرو بروید : ایجاد رابط کاربری اندروید با RemoteXY

صفحه وبی به صورت زیر ظاهر می شود :

کنترل ربات با نرم افزار اندروید RemoteXY

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

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

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

حتما ببینید :  آموزش ارتباط همتا به همتا رزبری پای و آردوینو با LoRa

کنترل ربات با سنسور ژیروسکوپ موبایل

پس از آن ، بر روی دکمه “Get source code” کلیک کرده و آن را روی رایانه خود ذخیره کنید. کتابخانه مربوط به این نرم افزار را که در فایل دانلودی انتهای صفحه قرار داده شده است نصب کنید. همچنین باید برنامه اندروید را دانلود کنید. دانلود نرم افزار اندروید Remote XY

توضیحات شماتیک مدار

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

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

اول از همه ، ما کنترلر موتور L298N را به Arduino متصل خواهیم کرد. پین ENA و ENB کنترلر موتور را به ترتیب به پین ​​آردوینو 12 و 11 وصل کنید. این دو پین برای کنترل PWM موتور است. با استفاده از این پین ها می توان سرعت خودرو را افزایش یا کاهش داد. سپس IN1 ، IN2 ، IN3 و IN4 را به ترتیب به پین ​​های 10 ، 9 ، 8 و 7 برد آردوینو  وصل کنید. این پین ها باعث چرخش موتورها در هر دو جهت (جهت حرکت عقربه های ساعت و عکس جهت عقربه های ساعت) می شوند.

ماژول موتور درایور L298N

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

برای تغذیه موتور ، مثبت و منفی باتری را به 12 ولت و GND درایور موتور وصل کنید. سپس 5 ولت و GND را از درایور موتور به GND و Vin آردوینو وصل کنید.

سپس ماژول بلوتوث HC-06 را به آردوینو متصل خواهیم کرد. اگر شما HC-05 داشته باشید هم کار خواهد کرد. سپس پین TX ماژول بلوتوث را به پین ​​2 آردوینو و پین RX به پین ​​3 آردوینو متصل کنید. همچنین برای آشنایی بیشتر برای استفاده از بلوتوث با آردوینو ، از ماشین اسباب بازی کنترل شده بلوتوث با استفاده از آردوینو نیز استفاده کنید.

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

  1. برذ آردوینو UNO
  2. ماژول موتور درایور L298N
  3. ماژول بلوتوث HC-06 یا HC-05

توضیح کد پروژه

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

اول از همه ، کتابخانه های سریال و RemoteXY را فراخوانی میکنیم. کتابخانه RemoteXY به ما در تنظیم برنامه با Arduino کمک می کند ، که از طریق آن ماشین ربات را کنترل خواهیم کرد. پس از آن ما پین ها را برای ماژول بلوتوث تعریف کرده ایم ، TX از ماژول بلوتوث به پین ​​2 آردویو متصل می شود و RX از ماژول بلوتوث به پین ​​3 Arduino متصل می شود.

#define REMOTEXY_MODE__SOFTWARESERIAL  
#include <SoftwareSerial.h>             //فراخوانی کتابخانه ارتباط سریالی
#include <RemoteXY.h>                   //فراخوانی کتابخانه remotexy 

/* RemoteXY connection settings */ 
#define REMOTEXY_SERIAL_RX 2            //تنظیم پین RX 
#define REMOTEXY_SERIAL_TX 3            //تنظیم پین TX 
#define REMOTEXY_SERIAL_SPEED 9600      //تنظیم baudrate روی 9600

کد زیر باعث افزایش یا کاهش سرعت موتور می شود. هنگامی که جوی استیک در مرکز باشد سرعت صفر خواهد بود و هنگامی که در جهت رو به جلو باشد سرعت از صفر به 100 افزایش می یابد. و در جهت عکس نیز سرعت حرکت از 0 به -100 کاهش می یابد.

  if (motor_speed>100) motor_speed=100; 
  if (motor_speed<-100) motor_speed=-100; 
  if (motor_speed>0) { 
    digitalWrite(pointer[0], HIGH); 
    digitalWrite(pointer[1], LOW); 
    analogWrite(pointer[2], motor_speed*2.55); 
  } 
  else if (motor_speed<0) { 
    digitalWrite(pointer[0], LOW); 
    digitalWrite(pointer[1], HIGH); 
    analogWrite(pointer[2], (-motor_speed)*2.55); 
  } 
  else { 
    digitalWrite(pointer[0], LOW); 
    digitalWrite(pointer[1], LOW); 
    analogWrite(pointer[2], 0); 
  }

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

void loop() 
{ 
  RemoteXY_Handler (); 
  digitalWrite (ledpin, (RemoteXY.switch_1==0)?LOW:HIGH);  
  Speed (first_motor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x); 
  Speed (second_motor, RemoteXY.joystick_1_y + RemoteXY.joystick_1_x); 
}

نحوه اجرا و فیلم عملکرد پروژه

كتابخانه RemoteXY را به كتابخانه های Arduino اضافه كنید و كد را در Arduino IDE بارگذاری كنید. سپس برنامه را در تلفن همراه خود نصب کرده و سپس بلوتوث را روشن کنید. رابط کاربری برنامه به این شکل ظاهر خواهد شد.

حتما ببینید :  ارتباط سریال بین آردوینو و رزبری پای با Rs-485

کنترل ربات با سنسور ژیروسکوپ موبایل IOS

سپس به بلوتوث بروید و آن را روشن کنید. پس از روشن کردن ، دستگاه های بلوتوث را به شما نشان می دهد. ماژول بلوتوث HC-06 خود را از آنجا انتخاب کنید ، از آنجا می توانید Robot Car را کنترل کنید.

کنترل ربات با جوی استیک مجازی و شتاب سنج موبایل

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

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

موارد موجود در فایل : سورس آردوینو ، شماتیک پروژه 

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

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

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

محمد رحیمی

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

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

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

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