فهرست مطالب:

ماشین بی سیم کنترل شده با ژست: 7 مرحله
ماشین بی سیم کنترل شده با ژست: 7 مرحله

تصویری: ماشین بی سیم کنترل شده با ژست: 7 مرحله

تصویری: ماشین بی سیم کنترل شده با ژست: 7 مرحله
تصویری: لزبازی لیلا اوتادی چه لبی میگیره (نبینی از دستت رفته) 2024, دسامبر
Anonim
ماشین بی سیم کنترل شده با ژست
ماشین بی سیم کنترل شده با ژست

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

مرحله 1: تجهیزات

واحد فرستنده

1. آردوینو نانو.

2. ماژول سنسور MPU6050.

3. فرستنده RF 433 مگاهرتز.

4. هر نوع 3 سلولی ، 11.1 ولت باتری (در اینجا من از سلول سکه استفاده کردم).

5. Vero-Board.

6. دستکش دست.

واحد گیرنده

1. آردوینو نانو یا آردوینو اونو.

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

3. قاب ربات 4 چرخ شامل موتورها.

4. گیرنده RF 433 RF.

5. باتری 3 سلولی ، 11.1 ولت Li-po باتری.

6. تخته ورو.

دیگران

1. چسب چوب و تفنگ.

2. سیم های جهنده.

3. پیچ درایورها

4. کیت لحیم کاری.

و غیره.

مرحله 2: فایل تصویر نمودار مدار

فایل تصویر نمودار مدار
فایل تصویر نمودار مدار

مرحله 3: Fritzing File of Circuit Diagram

مرحله 4: کد فرستنده

#عبارتند از

#عبارتند از

#عبارتند از

MPU6050 mpu6050 (سیم) ؛

تایمر طولانی = 0 ؛

کنترلر char *؛

void setup ()

{Serial.begin (9600) ؛ Wire.begin ()؛ mpu6050.begin ()؛ mpu6050.calcGyroOffsets (درست) ؛ vw_set_ptt_inverted (true) ؛ // vw_set_tx_pin (10) ؛ vw_setup (4000) ؛ // سرعت انتقال داده Kbps

}

حلقه خالی ()

{ ////////////////////////////////////////////////////////////////////////////////////////////////

mpu6050.update ()؛

if (millis () - تایمر> 1000)

{Serial.println ("========================================== =========== ")؛ Serial.print ("temp:") ؛ Serial.println (mpu6050.getTemp ()) ؛ Serial.print ("accX:") ؛ Serial.print (mpu6050.getAccX ()) ؛ Serial.print ("\ taccY:") ؛ Serial.print (mpu6050.getAccY ()) ؛ Serial.print ("\ taccZ:") ؛ Serial.println (mpu6050.getAccZ ()) ؛ Serial.print ("gyroX:") ؛ Serial.print (mpu6050.getGyroX ()) ؛ Serial.print ("\ tgyroY:") ؛ Serial.print (mpu6050.getGyroY ()) ؛ Serial.print ("\ tgyroZ:") ؛ Serial.println (mpu6050.getGyroZ ()) ؛ Serial.print ("accAngleX:") ؛ Serial.print (mpu6050.getAccAngleX ()) ؛ Serial.print ("\ taccAngleY:") ؛ Serial.println (mpu6050.getAccAngleY ()) ؛ Serial.print ("gyroAngleX:") ؛ Serial.print (mpu6050.getGyroAngleX ()) ؛ Serial.print ("\ tgyroAngleY:") ؛ Serial.print (mpu6050.getGyroAngleY ()) ؛ Serial.print ("\ tgyroAngleZ:") ؛ Serial.println (mpu6050.getGyroAngleZ ()) ؛ Serial.print ("angleX:") ؛ Serial.print (mpu6050.getAngleX ()) ؛ Serial.print ("\ tangleY:") ؛ Serial.print (mpu6050.getAngleY ()) ؛ Serial.print ("\ tangleZ:") ؛ Serial.println (mpu6050.getAngleZ ()) ؛ Serial.println ("========================================== ========= / n ")؛ تایمر = میلی ثانیه ()؛ }

/////////////////////////////////////////////////////////////////////////////////////

if (mpu6050.getAccAngleX () 30) {controller = "X2"؛ vw_send ((uint8_t *) کنترل کننده ، strlen (کنترل کننده)) ؛ vw_wait_tx ()؛ // صبر کنید تا کل پیام از بین برود Serial.println ("FORWARD")؛ } else if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"؛ vw_send ((uint8_t *) کنترل کننده ، strlen (کنترل کننده)) ؛ vw_wait_tx ()؛ // صبر کنید تا کل پیام از بین برود Serial.println ("LEFT") ؛ } else if (mpu6050.getAccAngleY () <-40) {controller = "Y2"؛ vw_send ((uint8_t *) کنترل کننده ، strlen (کنترل کننده)) ؛ vw_wait_tx ()؛ // صبر کنید تا کل پیام از بین برود Serial.println ("RIGHT")؛ } else if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {controller = "A1"؛ vw_send ((uint8_t *) کنترل کننده ، strlen (کنترل کننده)) ؛ vw_wait_tx ()؛ // منتظر بمانید تا کل پیام از بین برود Serial.println ("STOP") ؛ }}

مرحله 5: کد گیرنده

#عبارتند از

int LA = 3 ؛

int LB = 11 ؛ int RA = 5 ؛ int RB = 6 ؛ void setup () {Serial.begin (9600)؛ vw_set_ptt_inverted (true) ؛ // مورد نیاز برای DR3100 vw_set_rx_pin (12) ؛ vw_setup (4000) ؛ // بیت در ثانیه pinMode (13 ، OUTPUT) ؛ pinMode (LA ، OUTPUT) ؛ pinMode (LB ، OUTPUT) ؛ pinMode (RA ، OUTPUT) ؛ pinMode (RB ، OUTPUT) ؛ vw_rx_start ()؛ // PLL گیرنده را با اجرای Serial.println ("همه خوب است") شروع کنید.

}

حلقه خالی () {uint8_t buf [VW_MAX_MESSAGE_LEN] ؛ uint8_t buflen = VW_MAX_MESSAGE_LEN ؛

if (vw_get_message (buf، & buflen)) // عدم انسداد

{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD")؛ به عقب()؛ تأخیر (100) ؛ // خاموش ()؛ } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD")؛ رو به جلو()؛ تأخیر (100) ؛ // خاموش ()؛ }

else if ((buf [0] == 'Y') && (buf [1] == '1'))

{Serial.println ("چپ") ؛ ترک کرد()؛ تأخیر (100) ؛ // خاموش ()؛ }

else if ((buf [0] == 'Y') && (buf [1] == '2'))

{Serial.println ("راست") ؛ درست()؛ تأخیر (100) ؛ // خاموش ()؛ } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP")؛ خاموش () تأخیر (100) ؛ }} else {Serial.println ("سیگنالی دریافت نشد")؛ }}

خالی به جلو ()

{analogWrite (LA، 70)؛ analogWrite (LB ، 0) ؛ analogWrite (RA، 70)؛ analogWrite (RB، 0)؛ }

خالی به عقب ()

{analogWrite (LA، 0)؛ analogWrite (LB ، 70) ؛ analogWrite (RA، 0)؛ analogWrite (RB، 70)؛ }

خلاء سمت چپ ()

{analogWrite (LA، 0)؛ analogWrite (LB ، 70) ؛ analogWrite (RA، 70)؛ analogWrite (RB، 0)؛ }

خالی حق ()

{analogWrite (LA، 70)؛ analogWrite (LB ، 0) ؛ analogWrite (RA، 0)؛ analogWrite (RB، 70)؛ }

خالی ()

{analogWrite (LA، 0)؛ analogWrite (LB ، 0) ؛ analogWrite (RA، 0)؛ analogWrite (RB، 0)؛ }

مرحله 6: فایل های INO

مرحله 7: پیوند کتابخانه ها

کتابخانه سیم مجازی:

MPU6050_tockn Libraby:

کتابخانه سیم:

توصیه شده: