آموزش آردوینوپروژه های آردوینو

ساخت ربات بذار و بردار بلوتوثی با آردوینو

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

بازوهای رباتیک به کاربردهای گسترده ای از اتوماسیون صنعتی تا خطوط مونتاژ بذار-بردار راه یافته اند. شما می توانید به راحتی در خانه، یک بازوی رباتیک نصب شده روی کارکیت آردوینو 2WD را بسازید.

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

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

کینماتیک بازوی رباتیک بذار و بردار

در ابتدا ممکن است ساخت بازوی رباتیک پیچیده و ترسناک به نظر برسد. اما بعد از آشنایی با فیزیک و کینماتیک آن و عمیق تر شدن در موضوع، متوجه خواهید شد که آنقدر ها هم سخت نیست.

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

کینماتیک علمی است که حرکت یک جسم (ربات) را بدون اهمیت دادن به علت آن حرکت بررسی میکند. کینماتیک، مکان، سرعت، شتاب و مشتقات بالاتر مکان نسبت به زمان را مطالعه میکند. (سرعت مشتق مرتبه اول مکان و شتاب مشتق مرتبه دوم مکان است.). در نتیجه، کینماتیک تمام ویژگی های متغیر جغرافیایی و متغیر با زمان حرکت را مطالعه میکند.

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

کینماتیک بازوی رباتیک بذار و بردار

کینماتیک روبه جلو

کینماتیک روبه جلو شامل استفاده از معادلات کینماتیک ربات برای محاسبه مکان قسمت انتهایی یا end-effector براساس مقادیر داده شده پارامتر مفصل است. در اینجا، مکان سرووموتورها مورد بررسی است. در عکس بازوی رباتیک زیر، میتوانید پارامترهای دناویت هارتنبرگ را ببینید. به علاوه، معادلات کینماتیک روبه جلو این بازو هم در قسمت پایین وجود دارند. اگرچه در نهایت از رویکردی جایگزین که مبتنی بر ماتریس ها هم نیست دراین باره استفاده شد، اما معادلات مشتق همچنان برای علاقه مندان به استفاده از روش های مختلف، باارزش است. همچنین C  نشانگر کسینوس و S نشانگر سینوس است.

کینماتیک روبه جلو

کینماتیک معکوس

با حل معادلات کینماتیک معکوس، قادر بر کنترل دقیق حرکت و چرخش end-effector خواهیم بود. میتوانیم از این معادلات، زاویه مطلوب هرمفصل برای دستیابی به یک مکان خاص در فضا را به دست آوریم. در شکل زیر، متغیرهای به کار برده شده در معادلات نشان داده شده اند و مفهوم ریاضی به حرکات عملی بازو ترجمه میشود.

کینماتیک روبه جلو

طراحی و ساخت بازوی رباتیک

طراحی و ساخت بازوی رباتیک

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

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

برای ساخت بازو، از برش  لیزری آکریلیک استفاده میکنیم. هرچند اگر شما به چاپگر سه بعدی دسترسی دارید، میتوانید از آن هم استفاده کنید. اما برای این کار، ابتدا باید فایل ها را در نرم افزار SolidWorks باز کنید، آن ها را به فرمت STL ببرید و ذخیره شان کنید.( هر قسمت را باز کرده، روی Save As کلیک کنید و STL را به عنوان فرمت جدید انتخاب کنید.)

در شکل پایین، برش لیزری ورق آکریلیک را میبینیم.

بازوی رباتیک بلوتوثی آردوینو

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

این ربات، دو سرووموتور MG90 دارد که  وجود دو درجه آزادی را میسر میکنند. هم چنین میتواند ماهرانه اشیای سبک را با گریپر (چنگک) خود بگیرد.

بیس که به عنوان کمر یا waist هم شناخته میشود، با توجه به نوع سرووموتور استفاده شده، چرخش 180 یا 360 درجه بازو را آسان میکند.(در این پروژه از سرووموتور 180 درجه استفاده شده است.)

شانه یا سازه مسئول بالا بردن یا پایین آوردن بازو به صورت عمودی است.

گریپر یا چنگک برای گرفتن اشیا، باز و بسته میشود.

بازوی رباتیک بلوتوثی آردوینو

قطعات لازم

  1. برد آردوینو ( مثل آردوینو نانو)
  2. 3 عدد سرووموتور دنده فلزی MG90
  3. راه انداز یا درایور موتور L298n
  4. ماژول بلوتوث HC-05
  5. شاسی برش لیزری خورده و قطعات مکانیکی بازو
  6. باتری 12 ولتی لیتیوم یون Li-ion
  7. مبدل باک LM2596 DC-DC
  8. کلید
  9. سیم های جامپر
  10. بردبرد یا PCB
  11. پیچ و مهره و اسپیسر
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

مونتاژ بازوی رباتیک

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

قبل از شروع به مونتاژ، باید زاویه سرووموتور را تنظیم کنیم. درغیراین صورت، بازو به درستی کار نخواهد کرد.

مونتاژ بازوی رباتیک

در ابتدا، با دقت بازوی سروو را با تراز و محکم کردن، به سروو بچسبانید. میتوانیم به صورت دستی هم کالیبره کرده و زاویه سرووموتور را تنظیم کنیم اما گاهی اوقات کالیبره کردن به صورت دستی یا ممکن نیست یا به درستی انجام نمیشود. پس از کد شماره 1 برای کالیبره کردن سرووموتور خود استفاده کنید. به این شکل که، سرووموتور خود را به پایه های 5، 6 و3 مطابق مداری که پایین تر ارائه شده، متصل کنید و سپس این کد را روی آردوینو آپلود کنید. انجام ندادن این مرحله میتواند باعث کارکرد ناپایدار ربات بشود.

مونتاژ بازوی رباتیک

فنداسیون یک ربات پایدار و باعملکرد خوب زمانی ایجاد میشود که از تراز و کالیبره بودن سرووها مطمئن باشیم.

مقادیر زاویه ها برای حرکات بازوی رباتیک

شماره نوع سروو زاویه چرخش سروو اطلاعات موقعیت
1 سروو گریپر 150 بسته
60 باز
 

2

سروو کمر 45 پایین
90 بالا
 

3

 

سروو بیس 0 راست
90 وسط
180 چپ

 

مقدار زاویه ممکن است با تنظیم سروو تغییر کند. بعد از انجام تنظیمات سروو به مونتاژ میرسیم.

گام 1: عکس تمام قطعات لازم برای مونتاژ بازو رباتیک را مشاهده میکنید.

بازوی رباتیک بلوتوثی آردوینو

گام 2: با پیچ و مهره های 10 میلی متری M2.5 سرووموتور را روی صفحه اصلی گریپر محکم کنید.

بازوی رباتیک بلوتوثی آردوینو

گام 3: با پیچ و مهره های 10 میلی متری M4 دو چرخ دنده گریپر را به سروو و صفحه اصلی متصل کنید.

بازوی رباتیک بلوتوثی آردوینو

گام 4 : با پیچ و مهره های 30 میلی متری M3، دست چنگک یا گریپر را به چرخ دنده در مکان های مشخص شده محکم کنید.

بازوی رباتیک بلوتوثی آردوینو

گام 5: با پیچ و مهره های 10 میلی متری M3 و M4، صفحه اصلی سروو و دست چنگک را به تکیه گاه دست متصل کنید.

بازوی رباتیک بلوتوثی آردوینو

گام 6: با پیچ و مهره های M3، درپوش کناری و پایه های حرکتی (شانه) را به جای خود متصل کنید.

بازوی رباتیک بلوتوثی آردوینو

مدار بازو رباتیک بلوتوثی با آردوینو

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

مدار بازوی رباتیک بلوتوثی آردوینو

در این پروژه، سیم کشی پیچیده و سخت نیست چون موتورها با ولتاژ 5 ولت کار میکنند. موتورها را با پایه های دیجیتال، کنترل میکینم و از پایه 5V آردوینو به دلیل اینکه نمیتواند توان کافی برای مدیریت تمامی موتورها برایمان فراهم کند، استفاده نکرده و به جای آن یک مبدل باک DC-DC ویک منبع تغذیه دیگر را به کار میبریم تا توان موردنیاز فراهم شود.

اتصالات آردوینو و ماژول موتور درایور L298n :

  1. پایه زمین (GND) آردوینو را به ریل زمین بردبرد متصل کنید.
  2. پایه Vin آردوینو را به ریل مثبت بردبرد متصل کنید.
  3. خروجی 5V مبدل باک DC-DC را به ریل مثبت بردبرد متصل کنید.
  4. خروجی زمین (GND) مبدل باک DC-DC را ریل زمین بردبرد متصل کنید.
  5. پایه ورودی 1 (IN1) و پایه ورودی 2 (IN2) راه انداز موتور L298n را برای کنترل اولین موتور DC به دو پایه دیجیتال آردوینو ( مثل پایه 7 و 8) متصل کنید.
  6. پایه ورودی 3 (IN3) و پایه ورودی 4 (IN4) راه انداز موتور L298n را برای کنترل دومین موتور DC به دو پایه دیجیتال آردوینو ( مثل پایه 11 و 12) متصل کنید.
  7. پایه های ENA و ENB راه انداز موتور L298n را به پایه روبرد high state راه انداز متصل کنید.

اتصالات سرووموتور:

  1. سیم قهوه ای اولین سرووموتور (سرووی کمر) را به یک پایه دیجیتال آردوینو ( مثل پایه 5) متصل کنید.
  2. سیم مثبت قرمز سروو کمر را به ریل مثبت یردیرد متصل کنید.
  3. سیم منفی مشکی سروو کمر را به ریل زمین بردبرد متصل کنید.
  4. سیم قهوه ای دومین سرووموتور (سروو شانه) را به یک پایه دیجیتال آردوینو ( مثل پایه 6) متصل کنید.
  5. سیم مثبت قرمز این سروو را به ریل مثبت بردبرد متصل کنید.
  6. سیم منفی مشکی آن را به ریل زمین بردبرد متصل کنید.
  7. سیم قهواه ای سومین سرووموتور (سروو گریپر) را به یک پایه دیجیتال آردوینو ( مثل پایه 3) متصل کنید.
  8. سیم قرمز مثبت این سروو را به ریل مثبت بردبرد متصل کنید.
  9. سیم منفی مشکی آن را به ریل زمین بردبرد متصل کنید.

اتصالات ماژول بلوتوث:

  1. پایه TX ماژول بلوتوث HC-05 زا به پایه RX آردوینو متصل کنید.
  2. پایه RX ماژول بلوتوث HC-05 را به پایه TX (پایه دیجیتال 1) آردوینو متصل کنید.
  3. پایه VCC ماژول بلوتوث را به ریل 5V بردبرد متصل کنید.
  4. پایه GND ماژول بلوتوث را به ریل زمین بردبرد متصل کنید.

اتصالات منبع تغذیه:

  1. پایانه مثبت باتری لیتیوم یون 12 ولتی را به ورودی Vin مبدل باک DC-DC متصل کنید.
  2. پایانه منفی باتری را به ریل زمین بردبرد متصل کنید.
  3. ترمینال مثبت باتری لیتیوم یون 12 ولتی را به ورودی ماژول راه انداز موتور L298n متصل کنید.
  4. پایانه منفی باتری را به زمین (GND) ماژول راه انداز موتور L298n متصل کنید.

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

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

کد آردوینو ربات بازوی مکانیکی بذار و بردار

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

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

#include <ESP32_Servo.h>    // include servo library
// Define 3 Servos
Servo myServo1; // waist or base Servo
Servo myServo2; // shoulder Servo
Servo myServo3; // gripper Servo
void setup() {
  // Attach servos to Arduino PWM Pins
  myServo1.attach(5);
  myServo2.attach(6);
  myServo3.attach(3);
  myServo1.write(90);
  myServo2.write(90);
  myServo3.write(90);
}
void loop() {
}

کد شماره 2 شامل تمام حرکات ضروری سرووموتور برای کاربردی ساختن ربات شماست. بدون این کد، نمی توانید این پروژه را با موفقیت تمام کنید.

این قطعه کد، نمای کلی تنظیمات مکانیزم های کنترلی بازو و یک ماشین آردوینو 2WD با سرووموتور و موتورهای DC بوده که شامل ارتباط بلوتوث برای کنترل ریموت و از راه دور و چگونگی تغییر زاویه سرووها و جهت موتور برای حرکت به یک سمت خاص است.

#include <Servo.h>
Servo motor_1;      
Servo motor_2;
Servo motor_3;

این خط کتابخانه لازم برای استفاده از سرووموتورها را فراخوانی میکند. سه شی یا object (motor_1, motor_2, motor_3) را هم برای کنترل 3 سرووموتور متصل به پایه های 5 و 6 و3 آردوینو تعریف کرده ایم.

#define in1 7 //Motor1  L298 Pin in1
#define in2 8 //Motor1  L298 Pin in1
#define in3 12 //Motor2  L298 Pin in1
#define in4 11 //Motor2  L298 Pin in1

در این خطوط، پایه های دیجیتال آردوینو (پایه 7، 8، 12 و 11) را به عنوان ورودی های راه انداز موتور L298n تعریف کردیم تا موتورهای DC تحت کنترل باشند. پایه های in1 و in2 کنترل یک موتور و پایه های in3 و in4 کنترل موتور دیگر را بر عهده دارند.

int servo1 = 90;
int servo2 = 0;
int servo3 = 90;
int bt_data;
int Speed = 130;

مکان های (زاویه ها) ابتدایی سه سرووموتور مشخص شده است. servo1 ، servo2 و servo3 متغیرهای مربوطه هستند و این زوایا را در خود ذخیره میکنند. متغیر bt_data برای ذخیره داده ورودی بلوتوث استفاده میشود و متغیر Speed روی مقدار اولیه 130 تنظیم شده است.

void setup(){
Serial.begin(9600); // initialize serial communication at 9600 bits per second:
motor_1.attach(5);   // Waist Servo
motor_2.attach(6);   // Shoulder Servo
motor_3.attach(3);   // Gripper Servo
motor_1.write(servo1);
motor_2.write(servo2);
motor_3.write(servo3);
//pinMode(enA, OUTPUT); // declare as output for L298 Pin enA
pinMode(in1, OUTPUT); // declare as output for L298 Pin in1
pinMode(in2, OUTPUT); // declare as output for L298 Pin in2
pinMode(in3, OUTPUT); // declare as output for L298 Pin in3  
pinMode(in4, OUTPUT); // declare as output for L298 Pin in4
//pinMode(enB, OUTPUT); // declare as output for L298 Pin enB
digitalWrite(in1, LOW); //Right Motor forword Pin
digitalWrite(in2, LOW); //Right Motor backword Pin
digitalWrite(in3, LOW); //Left Motor backword Pin
digitalWrite(in4, LOW); //Left Motor forword Pin
delay(1000);
}

در تابع ()setup، ارتباط سریال با سرعت 9600 بیت در هر ثانیه آغاز میشود. سرووموتورها به پایه های مشخصی متصل شده اند و مکان ابتدایی آن ها تنظیم میشود.  پایه های دیجیتال برای کنترل موتور و پایه های موتور راه انداز به عنوان خروجی تنظیم شده اند. پایه های راه انداز موتور در ابتدا در حالت low تنظیم میشوند تا موتورها در طی تنظیمات حرکت نکنند.

void loop(){
//if some date is sent, reads it and saves in state
if(Serial.available() > 0){    
bt_data = Serial.read();
Serial.println(bt_data);
if(bt_data > 20)
{Speed = bt_data;}      
}

در تابع ()loop منطق برنامه نوشته شده و این تابع به طور مداوم اجرا میشود.

این بلوک کد، داده ورودی بلوتوث را از ارتباط سریال میخواند. اگر داده دریافتی از 20 بزرگتر باشد، مقدار متغیر Speed را به روز میکند.

if(bt_data == 1)
  {forword(); }  // if the bt_data is '1' the DC motor will go forward
else if(bt_data == 2)
  {backword();}  // if the bt_data is '2' the motor will Reverse
else if(bt_data == 3)
  {turnLeft();}  // if the bt_data is '3' the motor will turn left
else if(bt_data == 4)
  {turnRight();} // if the bt_data is '4' the motor will turn right
else if(bt_data == 5)
  {Stop(); }     // if the bt_data '5' the motor will Stop

این جملات شرطی، مقدار متغیر bt_data را چک میکنند و بر اساس داده دریافتی تابع مناسب را فراخوانی میکنند. ( یکی از توابع forward(), backward(), turnLeft(), turnRight(), Stop)

else if (bt_data == 8){
if(servo1<180){servo1 = servo1+1;}
motor_1.write(servo1);  
}
else if (bt_data == 9){
if(servo1>0){servo1 = servo1-1;}
motor_1.write(servo1);  
}
else if (bt_data == 10){
if(servo2>0){servo2 = servo2-1;}
motor_2.write(servo2);
}
else if (bt_data == 11){
if(servo2<180){servo2 = servo2+1;}
motor_2.write(servo2);  
}
else if (bt_data == 16){
if(servo3>60){servo3 = servo3-1;}
motor_3.write(servo3);
}
else if (bt_data == 17){
if(servo3<150){servo3 = servo3+1;}
motor_3.write(servo3);
}
delay(30);
}

این جملات شرطی موقعیت motor_1 (سروو کمر) را براساس داده دریافتی از بلوتوث تنظیم میکنند. بلوک else if باقی مانده، موقعیت motor_2 و motor_3 ( سروو شانه و سروو گریپر) را به طور مشابه تنظیم میکند.

تابع تاخیر، یک مکث کوتاه بین تکرارهای تابع loop ایجاد میکند تا از اجرای سریع و پشت سرهم تابع جلوگیری شود.

void forword(){  //forword
digitalWrite(in1, HIGH);   //Right Motor forword Pin
digitalWrite(in2, LOW);   //Right Motor backword Pin
digitalWrite(in3, HIGH);  //Left Motor forward Pin
digitalWrite(in4, LOW);   //Left Motor backward Pin
}
void backword(){ //backword
digitalWrite(in1, LOW);  
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);  
}
void turnRight(){ //turnRight
digitalWrite(in1, LOW);  
digitalWrite(in2, HIGH);  
digitalWrite(in3, HIGH);  
digitalWrite(in4, LOW);
}
void turnLeft(){ //turnLeft
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);  
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);  
}
void Stop(){ //stop
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);  
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}

توابع forward()، backward()، turnLeft()، turnRight()،Stop() حرکت ربات بر اساس حالت پایه های موتور راه انداز را مشخص کرده و جهت آن را کنترل میکند.

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

جملات شرطی، اجرای تابع حرکتی متناسب با شرط تححق یافته براساس داده ورودی را تضمین میکند.

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

اپلیکیشن های متفاوتی برای کنترل بازوی رباتیک در Playstore وجود دارد. اما در این پروژه اپلیکیشن مخصوص خودمان را به کمک MIT App Inverter میسازیم.

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

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

برای اتصال ربات خود به تلفن همراه، گام های زیر را طی کنید.

  1. اپلیکیشن Robotic Arm Car را روی دستگاه اندروید خود باز کنید. لطفا توجه داشته باشید که در حال حاضر، این اپلیکیشن برای کاربران Ios در دسترس نیست.
  2. با رفتن به تنظیمات تلفن همراه خود، بلوتوث را روشن کنید.
  3. تلفن خود را به ماژول بلوتوث HC-05 متصل کنید. اگر از یک ماژول جدید استفاده میکنید، قبل از اتصال باید چند قدم اضافه طی کنید:

به تنظیمات تلفن همراه خود بروید.

دستگاه های بلوتوث را جست و جو کنید.

یک دستگاه بلوتوث به نام HC-05 پیدا خواهید کرد.

با انتخاب کردن آن، تلفن خود و ماژول را جفت کنید.

در طی پروسه جفت شدن، از شما یک رمز خواسته خواهد شد.

رمز پیش فرض این ماژول معمولا 0000 یا 1234 است.

رمز را وارد کرده و پروسه جفت شدن را طی کنید.

4. وقتی دو دستگاه با موفقیت جفت شدند، بازوی رباتیک به دستگاه اندروید شما متصل شده است.

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

این اپلیکیشن دارای 10 کلید کنترلی است تا تعامل را آسان کند. 4 کلید در خدمت تعیین جهت حرکت ربات هستند. جلو، عقب، راست و چپ. 6 کلید باقی مانده، مخصوص تنظیم زاویه سرووها هستند.

به محض اینکه ماژول بلوتوث به درستی با تلفن همراه شما جفت شد (از طریق اپلیکیشن)، کاربر میتواند به راحتی این کلیدها را فعال کند. با فشار دادن کلید کنترلی، دستگاه اندروید به سرعت مقادیر مناسب را ارسال و دریافت کرده و ربات و بازویش را به طور دقیق کنترل میکند.

نتیجه گیری

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

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

موارد موجود در فایل : سورس کامل و نرم افزار اندروید

5 (3 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

10 نظر

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

    1. نحوه ساخت ربات بلوتوثی در دوره آردوینو به صورت کامل آموزش داده شده میتوانید مشاهده کنید irenx.ir/arduino-course

    2. نه من وقت آموزش ندارم یه مسابقه شرکت کردم باید طرحمو سریع تحویل بدم

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

  2. سلام توی بخش برنامه ربات خطا میده من خیلی خرج کردم لطفاً میشه اشکال کد رو اصلاح کنید
    از خط های 1,2,13,21,…. خطا میگیره میگه اوردن اسم تعریف نده
    خواهش میکنم کد رو اصلاح کنید 🌹

    1. سلام عزیز
      متن خطا را در انجمن قرار بدهید

    2. اگه میتونید یه کد برام بنویسید بهم بگید

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

  3. سلام مهندس جان تو فایل پیوست اثری از قطعات برش لیزری نیست لطفا اصلاح بفرمایید

    1. سلام عزیز
      لینک فایل برش لیزری در بخش “طراحی و ساخت بازوی رباتیک” قرار داده شده است

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

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