آردوینو 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 را در هر جایی که دوست دارید قرار دهید. صفحه وب بعد از این به صورت زیر ظاهر می شود.

مطلب پیشنهادی:  پروژه مشاهده ضربان قلب در اینترنت با آردوینو IoT

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

پس از آن ، بر روی دکمه “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 بارگذاری كنید. سپس برنامه را در تلفن همراه خود نصب کرده و سپس بلوتوث را روشن کنید. رابط کاربری برنامه به این شکل ظاهر خواهد شد.

مطلب پیشنهادی:  ساخت ساعت با سون سگمنت و آردوینو

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

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

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

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

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

دانلود فایل های پروژه

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

دوره آموزش الکترونیک
دوره آموزش آردوینو

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

محمد رحیمی

محمد رحیمی

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

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

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