برد Esp32 برد ESP8266 برد ویموس Wemos رباتیک شتاب و ژایرو

پروژه کنترل و فرمان به سرو موتور با برد ESP از راه دور با پروتکل ESP-NOW

نوشته شده توسط CiferTech

در اپیزودهای قبلی از ESP-NOW سناریو های مختلفی را تست کردیم، که شامل انتقال دیتای ماژول و سنسور های مختلفی بود. در این پروژه قصد داریم به کمک پروتکل ESP-Now مقادیر x را از ماژول MPU6050 دریافت و در مقصد به این طریق یک را نسبت به تغییر مقادیر x سروو موتور را کنترل کنیم. به عبارتی پروژه کنترل سرو موتور با ژایرو توسط ESP-Now را پیاده کنیم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

کنترل سرو موتور از راه دور با ESP-Now و ماژول MPU6050 - دیجی اسپارک

 


پروتکل ESP-Now


ESP-NOW یک پروتکل ارتباطی بی سیم است که توسط Espressif ساخته شده و دارای قابلیت انتقال پکت است. این پروتکل چندین دستگاه را قادر می سازد تا به روشی آسان با یکدیگر صحبت کنند و اطلاعات را بصورت بهینه بین یکدیگر انتقال دهند. این  پروتکل مشابه اتصال بی سیم ۲٫۴GHz است، که اغلب در ماوس های بی سیم استفاده می شود. بنابراین، جفت شدن دستگاه ها قبل از برقراری ارتباط لازم است. این به این معنی است که پس از جفت شدن دستگاه ها با یکدیگر، اتصال پایدار است. به عبارت دیگر، اگر بطور ناگهانی یکی از ESP های شما قطع شود یا ریست شود، هنگام راه اندازی مجدد بطور خودکار اتصال برقرار می شود.

کنترل سرو موتور با ESP-Now و ماژول MPU6050 - دیجی اسپارک

 

مزیت های پروتکل ESP-NOW

  • انتقال داده تا ۲۵۰ بایت.
  • بهره مندی از ارتباط رمزگذاره شده.
  • استفاده از Call Back برای اطلاع رسانی به لایه های مختلف در صورت موفقیت یا عدم موفقیت در انتقال داده.

 

محدودیت های پروتکل ESP-NOW

  • حدکثر محدوده ۲۵۰payload بایت.
  • حداکثر پشتیبانی از ۱۰عدد SoftAP رمزگذاری شده.
  • حداکثر تعداد پشتیباتی در حالت رمزگذاری نشده ۲۰ عدد.

 


نقش فرستنده و گیرنده


در پروژه کنترل سرو موتور با ژایرو فرستنده که برد nodemcu ما با تراشه ESP32 هست وظیفه بدست آموردن مقادیر محور x از ماژول mpu6050 و ارسال آن به سمت گیرنده توسط پروتکل ESP-NOW. و در قسمت دیگر از پروژه یعنی گیرنده ما که برای این مورد یک برد Wemos در نظر گرفتیم تا دیتای ارسال شده دریافت و برای فرمان دهی به سروو موتور SG90 تحلیل شود.

اتصال ماژول MPU6050 به برد ESP32 - دیجی اسپارک

 


 برد Wemos


برد Wemos یکی از پرطرافدار ترین برد هایی است که در زمینه iot مورد استفاده قرار میگیرد، یکی از مزیت های این برد نسبت به برد هایی مانند Node MCU اندازه کوچک آن می باشد تراشه وای فای مورد استفاده در این برد ESP8266 می باشد. از دیگر مزیت های این برد وجود شیلد های مختلفی برای این برد می باشد، که انجام هر پروژه ای را برای کاربر بسیار آسان و لذت بخش می کند، شیلد هایی از جمله شیلد باتری، multi sensor ، DHT22 ، رله ، oled تعداد بسیار زیادی شیلد برای این برد توسعه داده شده که در نتیجه تجربه خوبی از iot برای شما به جا خواهد گذاشت. در پروژه کنترل سرو موتور با ژایرو برد ویموس به عنوان گیرنده و انتقال دیتا به سرو موتور عمل میکند.

 


برد ESP32


ESP32 نسل پیشرفته ESP8266 است. یکی از تفاوت‌های آن بلوتوث داخلی‌اش می‌باشد. همچنین دارای هسته وایفای ۲,۴ گیگا هرتزی و بلوتوث داخلی تولید شده با تکنولوژی ۴۰ نانومتری شرکت TSMC می‌باشد. این ماژول دارای بهترین پرفورمنس در مصرف انرژی می‌باشد یعنی با کمترین مصرف انرژی بهترین نتیجه را برای ما به همراه دارد. اگر بخواهیم دقیق‌تر به این برد نگاه کنیم باید بگوییم که این یک chip است که پلتفرم NodeMCU در اون پیاده سازی شده که به این نوع چیپ ها System on a chip microcontrollers هم گفته می‌شود.

 


روش کار این پروژه


در پروژه کنترل سرو موتور با ژایرو به دلیل یک طرفه بودن انتقال دیتا یکی از برد های وای‌فای به عنوان Master و برد دوم با عوان Slave کار خواهد کرد، که در نتیجه دیتا تنها یک برد به برد دیگر ارسال خواهد شد. در این سناریو برد ارسال کننده یا Master برد ESP32 است و برد Slave یا دریافت کننده برد Wemos که از تراشه ESP8266 استفاده خواهد کرد.

پروژه کنترل سرو موتور با ژایرو ESP-Now - دیجی اسپارک

 


وسایل مورد نیاز


برد wemos

برد ESP برپایه تراشه ESP8266 یا ESP32

سروو موتور SG90

ماژول ژایرو MPU6050

کابل جامپر مخصوص اتصالات سنسور و بردها

 


نصب کتابخانه مرجع


در این بخش اقدام به نصب کتابخانه مرجع ESP-NOW خواهیم کرد تا در نتیجه این امکان فراهم شود که از توابع و دستورات مورد نیاز در کد پروژه استفاده کنیم. در صورت دریافت هرگونه ارور مبنی بر عدم وجود کتابخانه espnow.h طبق مراحل زیر پیش بروید.

  1. این مسیر را دنبال کنید Sketch Include Library > Manage Libraries
  2. کلمه espnow را جستجو کنید.
  3. کتابخانه را نصب کنید.

 


بدست آوردن مک آدرس ESP32


پیش از این در آموزش راه اندازی پروتکل ESP-Now روش بدست آوردن مک آدرس را توضیح دادیم. چنانچه این مورد را اطلاعی ندارید، کافیست به پست اشاره شده مراجعه کنید. برای اجرای پروژه مبتنی بر پروتکل ESP-Now بایستی حتما حتما مک آدرس برد ESP مورد استفاده را بدست بیاوریم. برای این منظور بایستی اقداماتی را انجام دهیم. که این مورد در پست قبلی کاملا توضیح داده شده است.

 


کد و شماتیک بخش فرستنده


در اولین بخش از راه‌اندازی پروژه بعد از نصب کتابخانه های مورد نیاز اقدام به برقراری اتصالات خواهیم کرد در برد ESP32 اتصالات برای ماژول ژایرو به این شکل است از پین های D21 و D22 برای برقراری اتصال i2c با MPU6050 استفاده خواهیم کرد. اتصالات را طبق جدول و شماتیک زیر برقرار کنید.

اتصال ماژول شتاب MPU6050 به برد ESP32 - دیجی اسپارک

 

  • اتصالات بخش فرستنده پروژه کنترل سروو موتور از راه دور با پروتکل ESP-NOW

 

در ادامه نویت به آپلود کد ها در برد ESP32 می‌رسد. البته ابتدا بخش های مهمی از این کد را بررسی خواهیم کرد. ابتدا ساختار دیتای مد نظر را اینجاد خواهیم کرد تا مقادیر x را ارسال کنیم.

 

در این بخش دیتای خروجی از mpu6050 را در مقادیر زیر ذخیره خواهیم کرد، که در ادامه از آن ها استفاده کنیم.

 

در این بخش یک Void ایجاد کردیک که وظیفه ساخت payload برای ارسال را دارد.

 

کد کامل بخش فرستنده پروژه کنترل سروو موتور از راه دور با پروتکل ESP-NOW

 


کد و شماتیک بخش گیرنده


در بخش بعدی برای راه‌اندازی برد دریافت کننده مانند بخش قبل ابتدا با استفاده از جدول و شماتیک زیر اتصالات را برقرار کنید. در این بخش از یکی از پین های PWM در برد Wemos برای راه‌اندازی سروو موتور SG90 استفاده خواهیم کرد و مقادیر بدست آمده را

اتصال سرو موتور SG90 به برد ویموس Wemos - دیجی اسپارک

 

  • اتصالات بخش گیرنده پروژه کنترل سروو موتور از راه دور با پروتکل ESP-NOW

 

در خطوط ابتدایی کد ابتدا یک متغیر برای سروو SG90 مشخص میکنیم. در ادامه ساختار دیتای دریافتی را مشخص می‌کنیم که در این ساختار از int استفاده کرده ایم.

 

در این قسمت مقادیر x ذخیره شده در myData را را در سریال مانیتور print می‌کنیم.

 

در این خط پایه مربوط برای کنترل سروو را مشخص می‌کنیم.

 

در نهایت مقادیر دریافت شده را ابتدا رنج مورد استفاده را مشخص و در نهایت فرمان را به سروو می‎‌دهیم.

 

کد کامل بخش گیرنده پروژه کنترل سروو موتور از راه دور با پروتکل ESP-NOW

 


 جمع بندی


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

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

CiferTech

فقط 10 نوع آدم در این دنیا وجود داره، اونی که باینری میفهمه و اونی که باینری نمیفهمه! ^-^

~ اینستاگرام: CiferTech

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