ورکشاپ آموزشی - آیسی مدار
رفتن به محتوا

کنترل بلوتوثی با حرکت دست؛ ساخت دستبند هوشمند با XIAO nRF52840

ابزار و گجت
۰ نظر
۷۶ نفر
کد ۴۳۱۱

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

برای این پروژه از برد فوق‌العاده کوچیک XIAO nRF52840 Sense استفاده می‌کنیم که به خاطر داشتن سنسورهای داخلی و بلوتوث کم‌مصرف (BLE)، یه انتخاب بی‌نقص برای پروژه‌های پوشیدنیه. این برد حرکات مچ دستت رو تشخیص می‌ده و دیتای اون رو به یه برد ESP32 می‌فرسته تا یه سروو موتور رو دقیقا متناسب با حرکت دستت بچرخونه.

کل این سیستم داخل یه قاب سه‌بعدی که شبیه بند ساعته قرار می‌گیره تا بتونی راحت روی دستت ببندیش. پس وسایلت رو آماده کن تا بریم سراغ ساخت این گجت خفن و کاربردی!

قطعات موردنیاز

  • برد XIAO nRF52840 Sense
  • برد ESP32
  • باتری لیپو 150mAh
  • سروو موتور
  • کلید کشویی مینیاتوری
  • ماژول کاهنده ولتاژ (Buck Converter)
  • خازن
  • سیم لاکی یا سیم نازک
مرحله ۱

راه‌اندازی و برنامه‌نویسی مغز دستبند

اول از همه باید بریم سراغ برد XIAO nRF52840 Sense و اون رو برای خوندن حرکات برنامه‌ریزی کنیم. این برد به راحتی از طریق محیط Arduino IDE پروگرم می‌شه. کافیه تنظیمات مربوط به برد رو توی نرم‌افزار انجام بدی و کد فرستنده رو روش آپلود کنی. کار با این برد خیلی ساده و لذت‌بخشه و سنسورهای داخلیش حسابی کارمون رو راه می‌ندازن.

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

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

حالا برد XIAO از طریق BLE می‌گرده تا برد مقصد یعنی ESP32 رو پیدا کنه. به محض اینکه ارتباط برقرار بشه، رنگ ال‌ای‌دی به سبز تغییر می‌کنه. از این لحظه به بعد، برد فرستنده دیتای حرکتی رو به اعدادی بین 0 تا 180 (زاویه سروو موتور) تبدیل می‌کنه و بی‌وقفه برای گیرنده می‌فرسته.

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

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

مرحله ۲

پرینت سه‌بعدی بند و قاب ساعت

برای اینکه همه‌چیز تمیز و حرفه‌ای جمع بشه، یه دستبند سه‌بعدی طراحی کردیم. فضای داخل این قاب دقیقا برای قرار گرفتن برد XIAO، یه باتری لیپو کوچیک (با ابعاد حدودی 32x17x4 میلی‌متر) و یه کلید کشویی قالب‌گیری شده. نکته جالبش اینه که کل بدنه و حلقه‌های دستبند به صورت یکپارچه و با هم پرینت می‌شن.

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

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

مرحله ۳

ارتقای طراحی با قفل مغناطیسی

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

مرحله ۴

جاگذاری قطعات و لحیم‌کاری نهایی

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

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

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

مرحله ۵

تنظیمات گیرنده ESP32 و تست پروژه

برای بخش گیرنده، برد نام‌آشنای ESP32 یه انتخاب عالیه. این برد بلوتوث داخلی داره و برنامه‌نویسیش هم بی‌دردسره. قراره سروو موتور رو به این برد متصل کنیم تا فرمان‌ها رو اجرا کنه.

برای تامین برق پایدار، یه ماژول کاهنده ولتاژ که روی 5 ولت تنظیم شده به همراه یه خازن تو مسیر تغذیه قرار می‌گیره. کد گیرنده رو روی ESP32 آپلود کن و مدار رو روشن کن.

وقتی همه‌چیز درست پیش بره، رنگ ال‌ای‌دی دستبندت از آبی به سبز تغییر می‌کنه که یعنی ارتباط برقرار شده. حالا دستت رو بالا و پایین ببر و از هماهنگی حرکت سروو موتور با مچ دستت لذت ببر! برای اینکه حرکت سروو نرم‌تر باشه و پرش نداشته باشه، از یه فیلتر نمایی تو کد استفاده کردیم که فرمولش به شکل زیره: این پروژه یه نمونه جذاب از ترکیب سنسورها و اینترنت اشیا بود.

تو دوست داری با حرکت دستت چه وسیله دیگه‌ای رو کنترل کنی؟ ایده‌هات رو تو کامنت‌ها برامون بنویس و اگه سوالی داشتی حتما بپرس. منتظر پروژه‌های بعدی ما تو آیسی‌مدار باش!

TXT
EMA_S = (EMA_a*showValue) + ((1-EMA_a)*EMA_S);
myservo.write(EMA_S);delay(20); //executing servo movements

فایل‌های پیوست

STL Wrist_Remote_magnetic.stl
STL Wrist Remote magnetic.stl
INO BLE_3_sender_Acc.ino

تو میتونی اولین سازنده باشی!

اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر

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

آموزش‌های مشابه

گفتگو‌های کاربران

هنوز نظری ثبت نشده؛ تو شروع کن!