کنترل ربات ها با سیگنال های عضلانی

ساخت وبلاگ

از الکترودها برای کنترل مرغ مگس خوار با عضلات خود استفاده کنید.

خلق شده توسط

تیم هرت از تالار علوم لارنس

زبان برنامه نویسی

هر زبانی که توسط Hummingbird Duo پشتیبانی می شود

فاعل، موضوع

درجات

مطالب رایگان معلم

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

وقتی ماهیچه ای را منقبض می کنید، سیگنال الکتریکی تولید می کند. برای اندازه گیری این سیگنال می توانید از الکترودها استفاده کنید. این الکترومیوگرافی یا EMG نامیده می شود. اگر سیگنال عضلانی را با مرغ مگس خوار اندازه گیری کنید، می توانید از آن به عنوان سنسور استفاده کنید. این آموزش به شما نشان می دهد که چگونه سیگنال الکتریکی را اندازه گیری کنید، مقدار آن را روی صفحه نمایش ترسیم کنید و از آن برای کنترل ربات استفاده کنید.

1. استفاده از سپر

این آموزش نیاز به تجهیزات اضافی دارد. ابتدا به یک Muscle SpikerShield از Backyard Brains نیاز دارید. احتمالاً می خواهید تعدادی الکترود اضافی نیز بخرید، زیرا سپر فقط با الکترودهای یکبار مصرف کافی برای دو بار تلاش همراه است. این آزمایش از Backyard Brains همچنین اطلاعات مفید زیادی در مورد MuscleSpikerShield دارد.

Muscle SpikerShield یک سپر برای آردوینو است. می توان آن را با Hummingbird Duo استفاده کرد، اما نه با Hummingbird اصلی.

Muscle SpikerShield برای استفاده از پین آنالوگ A0 در Arduino Uno طراحی شده است. متأسفانه، این پین در حال حاضر توسط مرغ مگس خوار برای چیز دیگری (درگاه LED 4) استفاده می شود. برای رفع این مشکل، پین A0 روی شیلد را خم کنید تا از روی برد مشخص شود. سپس از یک تکه سیم کوچک برای اتصال پایه A0 به پایه A1 استفاده کنید. اکنون می توانید سیگنال عضله را از طریق پین A1 که درگاه حسگر 1 در مرغ مگس خوار است بخوانید.

بعد، Muscle SpikerShield را به سمت پایین مرغ مگس خوار وصل کنید. پین های شیلد تا انتهای پورت های آردوینو نمی روند. همچنین می توانید کابل الکترود را به محافظ وصل کنید.

2. اتصال الکترودها

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

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

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

الکترود سوم باید روی قسمت استخوانی بدن مانند کنار مچ قرار گیرد. دو گیره تمساح قرمز باید به الکترودهای روی ماهیچه متصل شوند و گیره تمساح سیاه باید به الکترود روی استخوان متصل شود.

3. پردازش داده ها

اساساً Muscle SpikerShield ولتاژ بین هر الکترود قرمز و الکترود سیاه (زمین) را اندازه گیری می کند. سپس این ولتاژها را کم می کند تا تغییر ولتاژ عضله را پیدا کند. هنگامی که یک افزایش در اختلاف ولتاژ می بینید، این سیگنال الکتریکی است که توسط عضله شما هنگام انقباض تولید می شود. برای اطلاعات بیشتر، لطفاً به Electromyography سطح: Detection and Recording، به ویژه نمودار عالی در صفحه 4 مراجعه کنید.

در اسکرچ، می توانید از بلوک ولتاژ HB برای خواندن ولتاژی که عضله شما تولید می کند استفاده کنید.

با ترسیم نمودار این داده ها شروع کنید تا ایده ای از ظاهر سیگنال بدست آورید. اسکریپت زیر تقریباً 15 ثانیه داده عضلانی را در مرحله اسکرچ ترسیم می کند. اگر دوست داشتید، می توانید این برنامه را طوری تغییر دهید که وقتی نمودار به سمت راست صفحه رسید، دوباره از سمت چپ شروع شود. به این ترتیب، برنامه به طور مداوم سیگنال عضلانی شما را ترسیم می کند. در این اسکریپت، ولتاژ عضله را با ضرب آن در 100 کوچک کرده ایم. ممکن است لازم باشد ضریب مقیاس را در اسکریپت خود تنظیم کنید.

همانطور که به نمودار خود نگاه می کنید، خواهید دید که بسیار نویز به نظر می رسد. شما می توانید با انجام میانگین 10 اندازه گیری ولتاژ عضلانی، مقداری از این نویز را از بین ببرید. برای انجام این کار، متغیرهایی را با نام sum و mean اعلام کنید. سپس می توانید از کد زیر برای یافتن میانگین در حلقه تکرار تا زمانی استفاده کنید. حتما برنامه خود را طوری تغییر دهید که به جای بلوک ولتاژ HB، میانگین را نمودار کنید.

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

4- با استفاده از سیگنال عضلانی

پس از داشتن سیگنال عضلانی قابل اعتماد ، می توانید از آن برای کنترل یک روبات استفاده کنید. در این مثال ، ما از یک مدل از آرنج استفاده کردیم. این مدل استخوان های بازو را نشان می دهد. این شامل دو موتور با قرقره وصل شده است. موتور راست عضله دوسر را نشان می دهد ، در حالی که موتور چپ نشان دهنده عضلات سه سر است. هنگامی که این برنامه سنبله را در ولتاژ عضله دوسر تشخیص می دهد ، موتورها را برای انعطاف پذیری (خم) بازو قرار می دهد. از کلید "E" برای گسترش (صاف کردن) بازو استفاده شده است ، زیرا ما فقط می توانیم یک سیگنال عضلانی را اندازه بگیریم. کد نمونه در بالا آورده شده است. از جمله IF در زیر برای انعطاف پذیری آرنج استفاده شده است. از این بیانیه برای جلوگیری از انعطاف پذیری بازو و گسترش همزمان استفاده شد.

در این مثال ، ما تصمیم به استفاده از موتورها گرفتیم ، اما شما همچنین می توانید از سیگنال عضلانی برای کنترل چراغ ها ، صدا یا سروو استفاده کنید!

بهترین استراتژی معاملات...
ما را در سایت بهترین استراتژی معاملات دنبال می کنید

برچسب : نویسنده : صدرا ذوالریاستین بازدید : 48 تاريخ : سه شنبه 22 فروردين 1402 ساعت: 13:59