فهرست مطالب:

فناوری پوشیدنی: دستکش تغییر صدا: 7 مرحله
فناوری پوشیدنی: دستکش تغییر صدا: 7 مرحله

تصویری: فناوری پوشیدنی: دستکش تغییر صدا: 7 مرحله

تصویری: فناوری پوشیدنی: دستکش تغییر صدا: 7 مرحله
تصویری: آینده ایران از نگاه #هوش_مصنوعی #shorts 2024, نوامبر
Anonim
Wearable Tech: دستکش تغییر صدا
Wearable Tech: دستکش تغییر صدا
Wearable Tech: دستکش تغییر صدا
Wearable Tech: دستکش تغییر صدا

خب ، به نظر می رسد این روزها دستکش هایی با قدرت باورنکردنی بسیار مورد توجه هستند. در حالی که دستکش Thanos Infinity یک دستکش بسیار قدرتمند است ، ما می خواستیم یک دستکش بسازیم که بتواند کاری حتی قابل توجه تر انجام دهد: تغییر صدای کاربر در زمان واقعی.

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

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

مرحله 1: مواد

مواد
مواد
مواد
مواد
مواد
مواد

قطعات:

  • میکروکنترلر HexWear (ATmega32U4) (https://hexwear.com/)
  • شتاب سنج MMA8451 (https://www.adafruit.com/product/2019)
  • سنسورهای فلکس کوتاه (x4) (https://www.adafruit.com/product/1070)
  • دستکش سبک دویدن
  • #2 پیچ و واشر (x8)
  • اتصالات ترمینال Crimp ؛ گیج 22-18 (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
  • مقاومت 50kΩ (x4)
  • سیم (سنج 20 پوند)
  • سنجاق ایمنی چسبناک
  • پارچه نمدی یا دیگر (~ 10 متر مربع)
  • نخ دوخت
  • Zipties
  • لپ تاپ
  • میکروفون USB

ابزارها

  • کیت لحیم کاری
  • استریپر و سیم برش
  • نوار الکتریکی
  • تفنگ هوای گرم
  • پیچ گوشتی
  • قیچی
  • سوزن خیاطی

نرم افزار:

  • حداکثر توسط دوچرخه سواری '74 (https://cycling74.com)
  • نرم افزار آردوینو (https://www.arduino.cc/fa/Main/Software)

مرحله 2: نصب نرم افزار

ما باید با آنچه واقعاً هیجان انگیزترین پروژه هر پروژه ای است ، شروع کنیم: نصب کتابخانه (و بیشتر).

آردوینو:

نرم افزار آردوینو (https://www.arduino.cc/fa/Main/Software) را بارگیری و نصب کنید.

HexWear:

1) (فقط Windows ، کاربران Mac می توانند از این مرحله بگذرند) با مراجعه به https://www.redgerbera.com/pages/hexwear-driver-installation ، درایور را نصب کنید. درایور را بارگیری و نصب کنید (فایل.exe ذکر شده در مرحله 2 در بالای صفحه پیوند شده RedGerbera).

2) کتابخانه مورد نیاز را برای Hexware نصب کنید. Arduino IDE را باز کنید. در بخش "پرونده" ، "تنظیمات برگزیده" را انتخاب کنید. در فضایی که برای URL های مدیران تابلوهای اضافی در نظر گرفته شده است ، جایگذاری کنید

github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.

سپس روی "OK" کلیک کنید.

به Tools -> Board: -> Board Board بروید. از منوی گوشه سمت چپ بالا ، "مشارکت شده" را انتخاب کنید.

جستجو کنید و سپس بر روی Gerbera Boards کلیک کنید و روی Install کلیک کنید. خروج و راه اندازی مجدد Arduino IDE.

برای اطمینان از اینکه کتابخانه به درستی نصب شده است ، به Tools -> Board بروید و به پایین منو بروید. شما باید بخشی را با عنوان "تخته های Gerbera" مشاهده کنید که در زیر آن حداقل HexWear (اگر نه بیشتر تخته هایی مانند mini-HexWear) وجود دارد.

شتاب سنج:

بارگیری و نصب کتابخانه شتاب سنج (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

مرحله 3: اتصال شتاب سنج

اتصال شتاب سنج
اتصال شتاب سنج
اتصال شتاب سنج
اتصال شتاب سنج

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

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

ولتاژ ورودی GNDSCL/D3 SCLSDA/D2 SDA

با همه چیز وصل شده ، ما آماده آزمایش هستیم!

به عنوان یک آزمایش ، کد نمونه شتاب سنج را در Arduino (File-> Examples-> Adafruit_MMA8451-> MMA8451demo) اجرا کنید و مطمئن شوید که می تواند به مانیتور سریال خروجی دهد. هنگامی که سطح نگه داشته می شود ، شتاب ناشی از گرانش (m 10m/s) در جهت z خروجی می شود. با شیب دادن شتاب سنج ، این شتاب در جهت x یا y اندازه گیری می شود. ما از این استفاده می کنیم تا به کاربر اجازه دهیم با چرخاندن دست خود صدا را تغییر دهد!

اکنون ، ما باید داده های شتاب سنج را به گونه ای ارائه دهیم که بتوان با Max ارتباط برقرار کرد. برای انجام این کار ، ما باید مقادیر x و y را چاپ کنیم ، شاید اصلاح شده برای مطابقت با محدوده مورد نظر (قسمت 6 را ببینید). در کد ما که در اینجا ضمیمه شده است ، موارد زیر را انجام می دهیم:

// جهت thex و جهت y را اندازه گیری کنید. تقسیم و ضرب می کنیم تا به محدوده مناسب MAX برسیم (محدوده 1000 در x و محدوده 40 در y) xdir = event.acceleration.x/0.02؛ ydir = abs (event.acceleration.y)*2 ؛ // همه چیز را در قالب قابل خواندن برای Max چاپ کنید - با فاصله بین هر شماره Serial.print (xdir) ؛ Serial.print ("")؛

در این حالت باید Hex مقادیر تغییر یافته جهت های x و y شتاب سنج را در هر خط چاپ کند. اکنون ما آماده اضافه کردن سنسورهای انعطاف پذیر هستیم!

مرحله 4: اتصال سنسورهای فلکس

اتصال سنسورهای فلکس
اتصال سنسورهای فلکس
اتصال سنسورهای فلکس
اتصال سنسورهای فلکس
اتصال سنسورهای فلکس
اتصال سنسورهای فلکس

اگر ما بتوانیم خم شدن انگشتان را تشخیص دهیم ، کنترل کننده های بالقوه صوتی را در اختیار دارد. سنسورهای فلکس این کار را انجام می دهند. هر سنسور فلکس در اصل یک پتانسیومتر است ، جایی که مقاومت خم نشده دارای مقاومت K 25KΩ است ، در حالی که کاملاً خمیده دارای مقاومت K 100KΩ است. همانطور که در تصویر اول نشان داده شده است ، هر سنسور فلکس را در یک تقسیم ولتاژ ساده با مقاومت 50K قرار می دهیم.

دوباره با استفاده از طولهای نسبتاً کوتاه سیم (در نظر داشته باشید که همه اینها در پشت دستکش قرار می گیرد) ، چهار ماژول تقسیم ولتاژ را لحیم کنید. چهار ماژول Vin و زمین یکسانی دارند-ما انتهای خطوط سیم ها را به هم وصل کردیم تا فقط یک سر به لحیم داشته باشیم. در نهایت ، چهار ماژول را بردارید و اتصالات نشان داده شده در تصویر دوم را برقرار کنید (اگر کسی می داند چگونه این کار را بدون ایجاد آشفتگی وحشتناک انجام دهد ، لطفاً اسرار خود را فاش کنید).

اکنون ، ما نیاز به کد آردوینو داریم تا ولتاژهای هر سنسور را بخواند. برای اهداف خود ، ما از سنسورهای فلکس به عنوان سوئیچ استفاده کردیم. آنها روشن یا خاموش بودند به این ترتیب ، کد ما به سادگی یک آستانه ولتاژ تعیین می کند-بالاتر از این آستانه ، ما یک عدد 1 را به پورت سریال (به این معنی که سنسور خم شده است) خروجی می دهیم ، در غیر این صورت یک 0 را خروجی می دهیم:

// تعدادی از آنها را بگیرید

نمونه های آنالوگ را برای هر سنسور Flex اضافه کنید

while (sample_count <NUM_SAMPLES) {

sum10 += analogRead (A10) ؛

sum9 += analogRead (A9) ؛

sum7 += analogRead (A7) ؛

sum11 += analogRead (A11) ؛

sample_count ++؛

// تأخیر کوتاه برای سریع نبردن آنها

تأخیر (5) ؛

}

// محاسبه ولتاژ ،

به طور متوسط بر روی نمونه های سریع

// از 5.0 برای ADC 5.0V استفاده کنید

ولتاژ مرجع

// 5.015V کالیبره شده است

ولتاژ مرجع

ولتاژ 10 = ((شناور) مجموع 10 /

(شناور) NUM_SAMPLES * 5.015 * / 1024.0 ؛

ولتاژ 9 = ((شناور) sum9/

(شناور) NUM_SAMPLES * 5.015 * / 1024.0 ؛

ولتاژ 7 = ((شناور) sum7 /

(شناور) NUM_SAMPLES * 5.015 * / 1024.0 ؛

ولتاژ 11 = ((شناور) sum11 /

(شناور) NUM_SAMPLES * 5.015 * / 1024.0 ؛

// بررسی کنید که آیا هر یک از سنسورهای انعطاف پذیر وجود دارد یا خیر

بیشتر از آستانه (آستانه) است - اگر چنین است ، عدد را تنظیم کنید

// انگشت پینکی

if (ولتاژ 10> آستانه)

{

//-5 برای افزایش

صدای صدا توسط یک اکتاو

flex10 = -10؛

}

else flex10 = 0؛

// انگشت حلقه

if (ولتاژ 9>

(thresh-0.4)) {

// 5 به پایین

صدای صدا توسط یک اکتاو

flex9 = 5؛

}

else flex9 = 0؛

//انگشت وسط

if (voltage7> thresh) {

// 1 برای تنظیم

اثر طنین انداز

flex7 = 1؛

}

else flex7 = 0؛

// انگشت اشاره

if (voltage11> thresh)

{

// 50 برای تنظیم

چرخه تا 50

flex11 = 93؛

}

else flex11 = 0؛

// همه شمارش را بازنشانی کنید

برای حلقه بعدی متغیر 0 است

sample_count = 0؛

sum10 = 0؛

sum9 = 0؛

sum7 = 0؛

sum11 = 0؛

در این مرحله ، پورت سریال باید مقادیری جهت جهت شتاب سنج و همچنین خم بودن هر سنسور فلکس را نشان دهد. ما آماده هستیم تا کد Arduino خود را با Max صحبت کنیم!

مرحله 5: ارتباط با Max

ارتباط با مکس
ارتباط با مکس

اکنون که کد Hex تعداد زیادی از اعداد را از طریق پورت سریال تف می کند ، برای خواندن این سیگنال ها به نرم افزار Max نیاز داریم. بلوک کد نشان داده شده در بالا این کار را می کند! خیلی خوش آمدید

نکته مهم: پس از بارگذاری کد در Hex ، تمام پنجره های پورت سریال را ببندید ، سپس حرف حلقه شده در کد Max را تغییر دهید تا با پورت Hex مطابقت داشته باشد. اگر مطمئن نیستید که کدام حرف را تنظیم کنید ، با فشار دادن قسمت "print" کد Max تمام پورت های متصل شده لیست می شوند.

خط چاپ شده از درگاه سریال Hex از طریق بلوک کد Max خوانده می شود و سپس بر اساس محدود کننده های فضا تقسیم می شود. خروجی در انتهای بلوک Max به شما امکان می دهد هر عدد را جداگانه بگیرید ، بنابراین اولین فضای خروجی را به جایی که می خواهیم جهت x جهت شتاب سنج برود متصل می کنیم ، فاصله دوم جهت y و غیره است. در حال حاضر ، فقط اینها را به بلوک های شماره متصل کنید تا مطمئن شوید که کار می کنند. شما باید بتوانید شتاب سنج و سنسورهای فلکس را حرکت داده و اعداد را در نرم افزار Max مشاهده کنید.

مرحله 6: ایجاد بقیه Max Code

با توجه به قدرت زبان Max ، می توانید با تمام روش هایی که می توانید سیگنال صوتی ورودی را با دستکش جادویی خود تغییر دهید ، تخیل خود را در اینجا تند کنید. با این حال ، اگر ایده های خود را تمام کرده اید ، در بالا خلاصه ای از آنچه Max code ما انجام می دهد و چگونه کار می کند آورده شده است.

برای هر پارامتری که سعی در تغییر آن دارید ، احتمالاً می خواهید طیف وسیعی از مقادیر را که از کد آردوینو به دست می آید به هم بزنید تا حساسیت مناسب را بدست آورید.

برخی دیگر از نکات عیب یابی Max:

  • اگر صدا نمی شنوید

    • مطمئن شوید Max تنظیم شده است تا از میکروفون شما صدا دریافت کند (Options Audio Status Input Device)
    • اطمینان حاصل کنید که نوار لغزنده Master Volume در Max روشن است و سایر کنترل های صدا که ممکن است در کد خود داشته باشید
  • اگر به نظر می رسد کد کاری انجام نمی دهد

    • مطمئن شوید که وصله شما قفل شده است (نماد قفل در گوشه پایین سمت چپ)
    • از طریق بازخوانی های موجود در پچ Max اطمینان حاصل کنید که پچ Max شما هنوز از پورت سریال Arduino اطلاعات دریافت می کند. در غیر این صورت ، پورت سریال را مجدداً تنظیم کنید (همانطور که در مرحله 5 ذکر شده است) و/یا اتصالات سیم کشی فیزیکی خود را بررسی کنید.
  • سر و صدای عجیب و غریب هنگام تغییر پارامترها

    این مربوط به نحوه عملکرد ~ tapin و out tapout است. به طور خاص هنگامی که مقادیر آنها را تغییر می دهید ، آنها تنظیم مجدد می شوند ، که باعث برش می شود. با توجه به دانش محدود ما در مورد برنامه ، تقریباً مطمئن هستیم که راه بهتری برای انجام این کار در Max و از بین بردن مشکل وجود دارد…

مرحله 7: به معنای واقعی کلمه همه چیز را با هم ترکیب کنید

به معنای واقعی کلمه همه چیز را کنار هم قرار می دهد
به معنای واقعی کلمه همه چیز را کنار هم قرار می دهد
به معنای واقعی کلمه همه چیز را در کنار هم قرار دهید
به معنای واقعی کلمه همه چیز را در کنار هم قرار دهید
به معنای واقعی کلمه همه چیز را کنار هم قرار می دهد
به معنای واقعی کلمه همه چیز را کنار هم قرار می دهد
به معنای واقعی کلمه همه چیز را در کنار هم قرار دهید
به معنای واقعی کلمه همه چیز را در کنار هم قرار دهید

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

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

شما آماده اید که دستکش قدرتمند آواز خود را به آزمایش بگذارید! (ممکن است ما توصیه کنیم "سخت تر بهتر سریعتر قوی تر" Daft Punk برای نشان دادن کامل قابلیت های تغییر صدا شما)

توصیه شده: