در این پروژه می خواهیم یک رادیو کنترل آردوینو ربات با استفاده از آردوینو و سنسور شتاب سنج ADXL335 طراحی کنیم تا با استفاده از حرکت دست به جهت های مختلف، ربات را کنترل کنیم.
در اینجا می خواهیم یک ربات هوشمند که توانایی تشخیص حرکات دست را دارد، طراحی کنیم. این رادیو کنترل به دو بخش فرستنده و گیرنده تقسیم می شود. در اینجا می خواهیم مدار فرستنده را تشریح کنیم. از آردوینو و محیط برنامه نویسی آردوینو برای برنامه نویسی ربات استفاده می کنیم. برای شناسایی حرکات از سنسور شتاب سنج استفاده می کنیم.
یک سنسور شتاب سنج یک دستگاه اندازه گیری سه محوره است. شتاب سنج مورد استفاده در این پروژه ADXL335 می باشد و دارای سه محور X ، Y و Z می باشد.
تقریبا تمام گوشی های هوشمند دارای سنسور شتاب سنج هستند و بازیهایی که در موبایل تان انجام می دهید، با استفاده از این سنسور می باشد، به طوریکه شخصیت بازی با حرکت دادن موبایل به چپ، راست، بالا و پایین هدایت می شود.
سنسور دیگری به نام ژیروسکوپ نیز در گوشی های هوشمند وجود دارد که البته ما در این پروژه از آن استفاده نمی کنیم.
رادیو کنترل آردوینو چگونه عمل می کند؟
مغز ربات ماژول آردوینو Uno (Atmega32) می باشد. حرکاتی که با دست ایجاد می شوند با استفاده از یک دستگاه شتاب سنج به نام ADXL335 شناسایی می شوند.
شتاب سنج هنگامیکه ما حرکات را با دست نشان می دهیم، مختصات x، y و z را می خواند و مختصات x، y و z را به سمت آردوینو می فرستد (در اینجا ما به محور Z نیاز نداریم و تنها دو محور X و Y را لازم داریم). آردوینو مقادیر مختصات را بررسی می کند و یک کد چهار بیتی به آی سی انکودر می فرستد. انکودر داده را به فرستنده می فرستد و داده فرستاده شده توسط گیرنده RF دریافت می شود. گیرنده یک کد چهار بیتی به آی سی دیکدر (رمز گشا) می فرستد و دیکدر این داده را به آی سی درایور موتور می فرستد. سپس درایور موتور تصمیم می گیرد تا دو موتور را در جهت مورد نیاز به حرکت درآورد.
آماده سازی منبع تغذیه رادیو کنترل
ابتدا، مدار منبع تغذیه را آماده می کنیم. ما به دو مدار منبع تغذیه نیاز داریم: یکی برای گیرنده و دیگری برای فرستنده. مدار گیرنده نیاز به تغذیه 12 ولت دارد، زیرا ما از یک موتور 12 ولت استفاده می کنیم و مدار فرستنده با استفاده از یک باتری 9 ولت تعذیه می شود.
در تصویر زیر منبع تغذیه گیرنده را مشاهده می کنید. با استفاده از دیاگرام زیر اتصالات تغذیه مدار را انجام دهید. می توانید یک ال ای دی را همراه با یک مقاومت یک کیلو برای تشخیص حالت منبع تغذیه نیز به آن اضافه کنید.
قطعات مورد نیاز برای طراحی مدار منبع تغذیه
- آی سی 7805 که تغذیه 12 ولت را به 5 ولت رگوله و تنظیم می کند (اگر نمی توانید از تغذیه 12 ولت استفاده کنید، از تغذیه 9 ولت استفاده کنید).
- خازن 0.1uf و 470uf
- مقاومت یک کیلو اهم برای وضعیت ال ای دی
نکته: سعی کنید که از یک هیت سینک برای آی سی 7805 استفاده کنید، به این دلیل که از یک منبع تغذیه 7 ولت استفاده می کنیم، در نتیجه میزان گرمای زیادی تولید می شود و ممکن است که رگولاتور را بسوزاند.
طراحی فرستنده رادیو کنترل آردوینو
بخش فرستنده از یک شتاب سنج تشکیل شده که حرکات دست را تشخیص می دهد و داده را به سمت آردوینو می فرستد. سپس آردوینو داده را مطابق با داده های دریافت شده از شتاب سنج و داده هایی که به گیرنده ارسال شده اند، به آی سی انکودر می فرستد. همانند تصویر زیر اتصالات را انجام دهید:
نکته: دقت کنید که برخی از شتاب سنج ها از منبع تغذیه 3.3 ولت استفاده می کنند و ممکن است که با 5 ولت خراب شوند.
تصویر زیر فرستنده را نشان می دهد:
طراحی گیرنده رادیو کنترل آردوینو
مدار گیرنده از دو آی سی (دیکدر HT12D و درایور موتور L293D) تشکیل شده است. ماژول گیرنده RF همانند مدار شماتیک گیرنده زیر می باشد. در اینجا دو ال ای دی در برد گیرنده وجود دارد. یکی از آنها هنگامیکه منبع تغذیه به گیرنده داده می شود، روشن می شود و دیگری هنگامیکه منبع تغذیه به مدار فرستنده داده می شود، ال ای دی نزدیک آی سی HT12D باید روشن شود و هنگامیکه جریان برق به فرستنده داده می شود، انتقال انجام می شود، در غیر اینصورت اتصالات یا ماژول RF-TX-RX مشکل دارند.
ربات چه جهت هایی را تشخیص می دهد؟
این ربات 5 نوع حرکت را تشخیص می دهد: جلو، عقب، چپ، راست و توقف. تصاویر زیر جهت های گفته شده را نشان می دهند:
کد پروژه رادیو کنترل ربات
ویدیوی رادیو کنترل ربات
لینک دانلود ویدیوی آموزش طراحی رادیو کنترل آردوینو
قطعات مورد نیاز
- 1x Arduino UNO & Genuino UNO
- 1x SparkFun Triple Axis Accelerometer Breakout – ADXL335
- 1x RF Module 434-MHz
- 1x HT12D
- 1x HT12E
- 1x SparkFun Dual H-Bridge motor drivers L298
- 1x Prototyping PCB (generic)
- 2x Linear Regulator (7805)
- 1x DC motor (generic)