آردوینو اپلیکیشن بلوتوث Bluetooth درایور موتور دسته‌بندی رباتیک سرگرمی نرم افزار پروژه های آردوینو

ساخت ربات بلوتوثی آردوینو با درایور L298N و ماژول بلوتوث HC05

نوشته شده توسط محمدرضا یاورزاده

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

 


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


  1. ماژول بلوتوث HC05
  2. برد اردوینو
  3. موتور گیربکس دار DC(حداقل دو عدد)
  4. تایر
  5. درایور موتور L298N

 


درایور L298N ربات بلوتوثی


آردوینو به تنهایی نمی تواند جریان مورد نیاز برای حرکت موتورها را تامین کند زیرا حداکثر جریان خروجی اردینو ۴۰mA است و اتصال موتور باعث اسیب زدن به میکروکنترلر می شود. از این رو برای راه اندای موتورها با آردوینو از درایور موتور استفاده می شود. درایورها در یک بیان کلی باعث تقویت جریان ورودی به موتورها می شوند. ماژول درایو موتور L298N یک ماژول بسیار کاربردی برای مدیریت همزمان ۲ موتور یا بیشتر می باشد. از این ماژول برای راه اندازی استپر موتور(موتور پله ای ) نیز می توان استفاده کرد این ماژول به همراه هیت سینک مخصوص آی سی ارائه می شود تا بتوان حرارت ناشی از جریان دهی را کاهش داد.  این درایور برای هر کانال مدیریت موتورها توانایی جریان دهی تا ۲ آمپر و ۳۵V را دارد و جریان مصرفی پردازش ان از ۰ تا ۳۶mA متغیر است.درایور L298N توانایی درایو و کنترل جریان و تغیر ولتاژ از طریق تغیر پالس PWM را دارد. این ماژول ۳ ترمینال ورودی (GND , 12-5V , 5V) را دارد. واضح است که پایه ۵V برای اتصال به VCC اردینو یا میکروکنترلر ،۱۲V-5V به VCC منبع تغذیه خارجی و GND برای اتصال GND مشترک اردینو و اداپتور تعبیه شده است. دو پین هدر برای فعال سازی پایه سیگنال PWM هر دو موتور قرار دارد. بر روی برود ۴ خروجی برای اتصال به میکرو کنترلر قرار گرفته شده است. و در نهایت بر روی این درایور موتور ۴ پین هدر برای ورودی و اتصال به دو موتور DCقرار گرفته شده است.

 


ماژول بلوتوث HC05


ماژول بلوتوث HC05 با بورد یک ماژول بلوتوث با امکانات فراوان می‌باشد.,ولتاژکاری آن ۳٫۳V تا ۶V و جریان کاری ۵mA است. توانایی پشتیبانی از دو مد master و slave را دارد و پورت سریال را هم به صورت بی سیم در اختیار شما می‌گذارد از این رو می‌توانید از ماژول بلوتوث HC05 در طراحی خانه‌های هوشمند ، دستگاه‌های بی سیم و … استفاده کنید.  با استفاده از ماژول HC05 Bluetooth می‌توان دیتا را در فواصل معین از جمله ۱۰ تا ۳۳ متر با استفاده از پروتکل بلوتوث BT دریافت و ارسال کرد.این ماژول به سادگی به تلفن های هوشمند وصل می شود. از این ما جهت ما  از این ماژول برای کنترل بی سیم ربات استفاده خواهیم کرد.

 


 بدنه ربات و منبع تغذیه


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

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

 


اتصالات مدار


اتصالات درایور

  • GND ماژول L298N به GND اردوینو و منبع تغذیه ۱۲V یا ۵V
  • ۱۲V ماژول L298N  به VCC منبع تغذیه خارجی
  • ۵V ماژول L298N به ۵V اردوینو
  • EN1 ماژول L298N به پین دیجیتال ۱۰ اردوینو
  • I1 ماژول L268N به پین دیجیتال ۸ اردوینو
  • I2 ماژول L268N به پین دیجیتال ۹ اردوینو
  • I3 ماژول L268N به پین دیجیتال ۱۲ اردوینو
  • I4 ماژول L268N به پین دیجیتال ۱۳ اردوینو
  • EN2 ماژول L298N به پین دیجیتال ۱۱ اردوینو
  • به خروجی های ۱و۲ درایور موتور های خود را  وصل کنید دقت کنید که جهت حرکت موتورها یکسان باشد.

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

  • TX ماژول بلوتوث بهRX اردوینو
  • RX ماژول بلوتوث به TX اردوینو
  • VCC ماژول بلوتوث به ۵V اردوینو
  • GND ماژول بلوتوث به GND اردوینو

 


کدهای آردوینو


چندنکته را قبل از آپلود کدها در نظر بگیرید. هنگام آپلود کدها به برد آردوینو، ماژول بلوتوث HC-05 را جداکنید یا به عبارتی ماژول بلوتوث را بعد از اپلود کدها وصل کنید. میتوانید از طریق سریال مانیتور دستورهای ارسال شده به ماژول بلوتوث را ببینید. چنانچه روش آپلود کدها را نمی‌دانید به آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE مراجعه کنید.

#define E1 10  // Enable Pin for motor 1
#define E2 11  // Enable Pin for motor 2

#define I1 8  // Control pin 1 for motor 1
#define I2 9  // Control pin 2 for motor 1
#define I3 12  // Control pin 1 for motor 2
#define I4 13  // Control pin 2 for motor 2

String readString;
int SPEED;

void setup() {
  Serial.begin(38400); 
    pinMode(E1, OUTPUT); 
    pinMode(E2, OUTPUT);
 
    pinMode(I1, OUTPUT);
    pinMode(I2, OUTPUT);
    pinMode(I3, OUTPUT);
    pinMode(I4, OUTPUT);
   
  analogWrite(E1, 255); // Run in full speed
  analogWrite(E2, 255); // Run in full speed
  
}

void loop() {
  
  while (Serial.available()) {
    delay(50);
    char c = Serial.read();
    readString += c;
  }
  if (readString.length() > 0) {
    Serial.println(readString);
    
 //main code that work repeated   
  
  analogWrite(E1, 255); // Run in full speed
  analogWrite(E2, 255); // Run in full speed
  
  if (readString == "f") { //forward command
 forward();
  }

  if (readString == "b") { //backward command
 backward();
  }

   if (readString == "r") { //right command
 right();
  }

   if (readString == "l") { //laft command
 left();
  }
  
  if(readString == "s") { //stop command
 stoped();
  }

      readString="";
}

}
void forward(void){
    digitalWrite(I1, HIGH);
    digitalWrite(I2, LOW);
    digitalWrite(I3, HIGH);
    digitalWrite(I4, LOW);
}

void backward(void){
    digitalWrite(I1, LOW);
    digitalWrite(I2, HIGH);
    digitalWrite(I3, LOW);
    digitalWrite(I4, HIGH);
}

void right(void){
    digitalWrite(I1, LOW);
    digitalWrite(I2, HIGH);
    digitalWrite(I3, HIGH);
    digitalWrite(I4, LOW);
}

void left(void){
    digitalWrite(I1, HIGH);
    digitalWrite(I2, LOW);
    digitalWrite(I3, LOW);
    digitalWrite(I4, HIGH);
}

void stoped(void){
    digitalWrite(I1, LOW);
    digitalWrite(I2, LOW);
    digitalWrite(I3, LOW);
    digitalWrite(I4, LOW);
}

 

 


اپلیکشین موبایل


شما برای کنترل ربات از طریق بلوتوث به یک موبایل هوشمند اندروید و یک نرم افزار نیاز خواهید داشت.اپ های فراوانی را با این مضمون می توانید در گوگل پلی پیدا کنید دقت گنید اپ مورد نظر باید دستور های مدنظرشمارا طبق کدها ارسال نماید.کار با این اپلیکیشن بسیار ساده است امکاناتی نیز دارد که میتوانید بسته به خلاقیت و قطعات خود ربات بلوتوثی خود را ارتقا دهید.

 

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

 

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

محمدرضا یاورزاده

تبادل نظر و رفع عیب با ثبت دیدگاه

۸۴ دیدگاه