انجام پروژه با آردوینو, پروژه با آردوینو

سروو موتور کنترل شده با بلوتوث و آردوینو

سروو موتور کنترل شده با بلوتوث و آردوینو:

اقلام مورد نیاز:

آردوینو یونو Arduino UNO
ماژول بلوتوث سریال HC-05 همراه با برد کمکی
سرو موتور Tower Pro SG90
برد برد سایز متوسط breadboard
سیم برد بردی 40 تایی دو سر نری
آداپتور 5 ولت 3 Ah سویچینگ رسپری

پک اقلام مورد نیاز:


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

با نحوه کنترل سروو موتورها با استفاده از یک برنامه اندروید در دستگاه تلفن همراه، یک Arduino UNO و ماژول بلوتوث HC-05 آشنا شوید.


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

سروو موتور RC بر روی همان اصل کار می کند. این شامل یک موتور DC کوچک است که از طریق چرخ دنده ها به شفت خروجی متصل می شود.

شفت خروجی یک بازوی سروو را به حرکت در می آورد و همچنین به یک پتانسیومتر (pot) متصل می شود.

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

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

یک سروو موتور با ارسال یک سری پالس از طریق خط سیگنال کنترل می شود. فرکانس سیگنال کنترل باید 50 هرتز باشد یا هر 20 میلی ثانیه یک پالس رخ دهد. عرض پالس موقعیت زاویه ای سروو را تعیین می کند و این نوع سرووها معمولاً می توانند 180 درجه بچرخند.

سیم کنترل برای ارتباط زاویه استفاده می شود. زاویه توسط مدت زمان پالسی که به سیم کنترل اعمال می شود تعیین می شود. به این مدولاسیون کدگذاری پالس می گویند. سروو انتظار دارد هر 20 میلی ثانیه (0.02 ثانیه) یک پالس ببیند. طول پالس تعیین می کند که موتور تا چه اندازه بچرخد. به عنوان مثال، یک پالس 1.5 میلی ثانیه ای باعث می شود که موتور به موقعیت 90 درجه بچرخد (اغلب به عنوان موقعیت خنثی نامیده می شود). اگر پالس کمتر از 1.5 میلی ثانیه باشد، موتور شفت را به 0 درجه نزدیک می کند. اگر پالس بیشتر از 1.5 میلی ثانیه باشد، شفت به 180 درجه نزدیک تر می شود.

مدار:

فیلم
ابتدا اتصالات سروو موتورها را با آردوینو انجام دهید.

سیم مشکی هر دو سروو موتور را با GND آردوینو وصل کنید سیم نارنجی هر دو موتور را به 5 ولت آردوینو وصل کنید سیم نارنجی موتور اول را به پایه 9 آردوینو وصل کنید.
ابتدا عملکرد موتور سروو را بدون استفاده از کد آردوینو زیر تست کنید:

#include <Servo.h>

Servo myservo; // create servo object to control a servo

// twelve servo objects can be created on most boards

int pos = 0; // variable to store the servo position

void setup() {

myservo.attach(9); // attaches the servo on pin 9 to the servo object

}

void loop() {

for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees

// in steps of 1 degree

myservo.write(pos); // tell servo to go to position in variable 'pos'

delay(15); // waits 15ms for the servo to reach the position

}

for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees

myservo.write(pos); // tell servo to go to position in variable 'pos'

delay(15); // waits 15ms for the servo to reach the position

}

}

نتیجه خروجی:

پس از آن، اتصالات ماژول بلوتوث را با آردوینو برقرار کنید.

VCC ماژول بلوتوث را به 5 ولت آردوینو وصل کنید GND ماژول بلوتوث را به GND آردوینو وصل کنید TX ماژول بلوتوث را به پین ​​Rx آردوینو وصل کنید RX ماژول بلوتوث را به پین ​​Tx آردوینو وصل کنید

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

#include <Servo.h>

Servo myservo;

const int Pin = 9; // myservo pin3 PWM

char Text;

String Spilt;

String angle;

int pos = 0; // variable to store the servo position

int k1;

void setup() {

Serial.begin(9600);

pinMode (Pin, OUTPUT);

myservo.attach(Pin);

}

void loop() {

if(Serial.available())

{

Text = Serial.read();

Spilt = Spilt + Text;

if (Text == '*') {

Serial.println(Spilt);

Spilt = Spilt.substring(0, Spilt.length() - 1); // Delete last char *

k1 = Spilt.indexOf('*');

angle = Spilt.substring(0, k1);

myservo.write(angle.toInt());

delay(15);

Spilt = "";

}

}

}

پس از آپلود برنامه، TX و RX را دوباره وصل کنید و مطمئن شوید که تلفن با ماژول بلوتوث مناسب جفت شده است. مراحل اتصال به گوشی اندرویدی به شرح زیر است:

ماژول بلوتوث را روشن کنید و به تنظیمات دستگاه اندروید بروید.
دستگاه را جفت کنید. در برخی از گوشی ها، برای جفت شدن گوشی، این مرحله باید دو بار انجام شود. مطمئن شوید که کدهای پین را در دسترس داشته باشید (پیش‌فرض برای اکثر بلوتوث میت‌ها “1234” است) > پاور هر دو دستگاه را روشن کنید > ماژول را در برنامه “تنظیمات” Android در زیر نماد بلوتوث جستجو کنید.
هنگامی که دستگاه با تلفن جفت شد، برنامه BT Servo را باز کنید.
از لیست برای اتصال به دستگاه استفاده کنید و نام صحیح دستگاه حاوی متن HC-05 را پیدا کنید.

از لیست زیر هم برای اتصال کمک بگیرید.

دانلود اپلیکیشن:

سرو 180:

https://drive.google.com/file/d

سروو 360:

https://drive.google.com/file/d/1TdbP0

کد:
کد

#include <Servo.h>

Servo myservo;

const int Pin = 9; // 
char Text;

String Spilt;

String angle;

int pos = 0; // variable to store the servo position

int k1;

void setup() {

  Serial.begin(9600);

  pinMode(Pin, OUTPUT);

  myservo.attach(Pin);

}

void loop() {

  if (Serial.available())

  {

    Text = Serial.read();

    Spilt = Spilt + Text;

    if (Text == '*') {

      Serial.println(Spilt);

      Spilt = Spilt.substring(0, Spilt.length() - 1); // Delete last char *

      k1 = Spilt.indexOf('*');

      angle = Spilt.substring(0, k1);

      myservo.write(angle.toInt());

      delay(15);

      Spilt = "";

    }

  }

}


شماتیک ها:
شماتیک

منبع این مطالب:

https://create.arduino.cc

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

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

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

Iبا این شرایط موافقید.