فهرست مطالب:
- مرحله 1: تجهیزات
- مرحله 2: فایل تصویر نمودار مدار
- مرحله 3: Fritzing File of Circuit Diagram
- مرحله 4: کد فرستنده
- مرحله 5: کد گیرنده
- مرحله 6: فایل های INO
- مرحله 7: پیوند کتابخانه ها
تصویری: ماشین بی سیم کنترل شده با ژست: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
در این آموزش ما قصد داریم نحوه ساخت ماشین کنترل شده یا هر گونه ربات را یاد بگیریم. این پروژه دارای دو قسمت است ، یک قسمت واحد فرستنده و قسمت دیگر واحد گیرنده است. واحد فرستنده در واقع بر روی دستکش نصب شده و واحد گیرنده در داخل ماشین یا هر روبات قرار می گیرد. اکنون زمان ساخت یک ماشین خوب است. بیا بریم!
مرحله 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:
کتابخانه سیم:
توصیه شده:
کنترل ژست ساده - اسباب بازی های RC خود را با حرکت بازو کنترل کنید: 4 مرحله (همراه با تصاویر)
کنترل ژست ساده - اسباب بازی های RC خود را با حرکت بازوی خود کنترل کنید: به "ible" شماره 45 من خوش آمدید. چندی پیش من یک نسخه کامل RC از BB8 با استفاده از قطعات Lego Star Wars ساختم … https://www.instructables.com/id/Whats-Inside-My-R … وقتی دیدم چقدر باحال بود Force Force ساخته شده توسط Sphero ، فکر کردم: & quot؛ خوب ، من
ROOT ربات کنترل شده مبتنی بر ژست: 10 مرحله (همراه با تصاویر)
روبات کنترل شده مبتنی بر ژست IOT: این ربات یک حرکت کنترل شده است که با کمک اینترنت از هر کجا قابل کنترل است. در این پروژه از شتاب سنج MPU 6050 برای جمع آوری داده ها در مورد حرکات دست ما استفاده می شود. این شتاب دست ما را در سه اندازه گیری می کند
ESP8266 RGB LED STRIP WIFI کنترل - NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi - کنترل تلفن هوشمند RGB LED STRIP: 4 مرحله
ESP8266 RGB LED STRIP WIFI کنترل | NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi | RGB LED STRIP Smartphone Control: سلام بچه ها در این آموزش می آموزیم که چگونه از nodemcu یا esp8266 به عنوان ریموت IR برای کنترل نوار LED RGB استفاده کنید و Nodemcu توسط تلفن هوشمند از طریق وای فای کنترل می شود. بنابراین اساساً می توانید RGB LED STRIP را با تلفن هوشمند خود کنترل کنید
UCL - ماشین کنترل شده جاسازی شده: 5 مرحله
UCL - ماشین کنترل شده جاسازی شده: ما آرزوهای بزرگی برای این پروژه داشتیم. ماشین خودران! پیروی از یک خط سیاه یا رانندگی در اطراف بدون اجتناب از موارد احتمالی. اتصالات بلوتوث و دومین آردوینو برای کنترلر با ارتباط بی سیم خودرو. شاید دومین خودرویی که بتواند به دنبال آن باشد
کنترل رباتیک بی سیم توسط ژست و صدا: 7 مرحله (همراه با تصاویر)
کنترل رباتیک بی سیم توسط ژست و صدا: اساساً این پروژه کالج ما بود و به دلیل کمبود زمان برای ارسال این پروژه ، ما عکس گرفتن از برخی مراحل را فراموش کردیم. ما همچنین کدی را طراحی کردیم که با استفاده از آن می توان این دست روباتیک را با استفاده از حرکت و صدا همزمان کنترل کرد ، اما به دلیل