فهرست مطالب:

پیانو اولتراسونیک پی با کنترل حرکت !: 10 مرحله (همراه با تصاویر)
پیانو اولتراسونیک پی با کنترل حرکت !: 10 مرحله (همراه با تصاویر)

تصویری: پیانو اولتراسونیک پی با کنترل حرکت !: 10 مرحله (همراه با تصاویر)

تصویری: پیانو اولتراسونیک پی با کنترل حرکت !: 10 مرحله (همراه با تصاویر)
تصویری: تهیه مدارک مهندسی - بخش 3 2024, نوامبر
Anonim
Image
Image
پیانو اولتراسونیک پی با کنترل ژست!
پیانو اولتراسونیک پی با کنترل ژست!

این پروژه از سنسورهای اولتراسونیک ارزان HC-SR04 به عنوان ورودی استفاده می کند و یادداشت های MIDI را تولید می کند که می تواند از طریق سینت سایزر روی رزبری پای برای صدایی با کیفیت بالا پخش شود.

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

ویدئوی بالا محصول نهایی را در یک محفظه ساده برش لیزری نشان می دهد. بعداً یک فیلم عمیق تر در این دستورالعمل وجود دارد که نحوه عملکرد پروژه را توضیح می دهد.

من این پروژه را در ارتباط با The Gizmo Dojo (فضای محلی من در Broomfield، CO) ایجاد کردم تا برخی از نمایشگاه های تعاملی را که می توانیم به رویدادهای محلی STEM/STEAM و Maker Faires ببریم ، بسازم.

لطفاً آخرین اسناد و آموزشها را در https://theotherandygrove.com/octasonic/ که اکنون شامل اطلاعاتی در مورد نسخه پایتون این پروژه (این دستورالعمل برای نسخه Rust نوشته شده است) بررسی کنید.

مرحله 1: مواد لازم

برای این دستورالعمل ، شما به مواد زیر نیاز دارید:

  • رزبری پای (2 یا 3) با کارت SD
  • 8 سنسور اولتراسونیک HC-SR04
  • تخته شکستن Octasonic
  • مبدل سطح منطق دو جهته
  • سیمهای بلوز زنانه-زنانه 32 12 12 اینچی برای اتصال سنسورهای اولتراسونیک
  • سیمهای جهنده زنانه 6 x 13 اینچی برای اتصال Raspberry Pi ، Octasonic و Logic Level Converter
  • منبع تغذیه مناسب رزبری پای
  • بلندگوهای رایانه شخصی یا موارد مشابه

من توصیه می کنم از Raspberry Pi 3 در صورت امکان استفاده کنید زیرا قدرت محاسبات بیشتری دارد و در نتیجه صدایی پاسخگو و دلپذیرتر ایجاد می شود. این می تواند با Raspberry Pi 2 با کمی تغییر کار کند ، اما من سعی نمی کنم از Raspberry Pi اصلی برای این پروژه استفاده کنم.

سنسورهای اولتراسونیک HC -SR04 دارای 4 اتصال - 5V ، GND ، Trigger و Echo هستند. به طور معمول ، Trigger و Echo به پین های جداگانه روی میکروکنترلر یا Raspberry Pi متصل می شوند ، اما این بدان معناست که برای اتصال 8 سنسور باید از 16 پین استفاده کنید ، اما این عملی نیست. این جایی است که برد برشکاری Octasonic وارد می شود. این برد به همه سنسورها متصل می شود و دارای یک میکروکنترلر اختصاصی است که سنسورها را نظارت می کند و سپس با رزبری پای از طریق SPI ارتباط برقرار می کند.

HC-SR04 به 5 ولت و رزبری پای تنها 3.3 ولت نیاز دارد ، بنابراین به همین دلیل ما به مبدل سطح منطقی نیز نیاز داریم که رزبری پای را به برد بریکت Octasonic متصل می کند.

مرحله 2: سنسورهای اولتراسونیک را به برد Octasonic وصل کنید

سنسورهای اولتراسونیک را به برد Octasonic وصل کنید
سنسورهای اولتراسونیک را به برد Octasonic وصل کنید
سنسورهای اولتراسونیک را به برد Octasonic وصل کنید
سنسورهای اولتراسونیک را به برد Octasonic وصل کنید

برای اتصال هر یک از سنسورهای اولتراسونیک به برد ، از 4 سیم بلوز زن و زن استفاده کنید و مراقب باشید که آنها را به طور صحیح وصل کنید. صفحه به گونه ای طراحی شده است که پین ها به ترتیب پین های سنسور اولتراسونیک هستند. از چپ به راست روی برد ، پین ها GND ، Trigger ، Echo ، 5V هستند.

مرحله 3: Logic Level Converter را به برد Octasonic وصل کنید

Logic Level Converter را به برد Octasonic وصل کنید
Logic Level Converter را به برد Octasonic وصل کنید

Raspberry Pi و Octasonic Board از طریق SPI ارتباط برقرار می کنند. SPI از 4 سیم استفاده می کند:

  • Master In، Slave Out (MISO)
  • Master Out ، Slave In (MOSI)
  • ساعت سریال (SCK)
  • برده انتخاب (SS)

علاوه بر این ، ما نیاز به اتصال برق (5V و GND) داریم.

مبدل سطح منطقی دارای دو طرف است - ولتاژ پایین (LV) و ولتاژ بالا (HV). تمشک از آنجا که 3.3V است به طرف LV متصل می شود. Octasonic از آنجا که 5V است به طرف HV متصل می شود.

این مرحله برای اتصال Octasonic به طرف HV مبدل سطح منطقی است

عکس پیوست شده به این مرحله را ببینید که نشان می دهد کدام پین ها باید به مبدل سطح منطقی متصل شوند.

اتصالات Octasonic به مبدل سطح منطقی باید به شرح زیر باشد:

  • 5V تا HV
  • SCK تا HV4
  • MISO تا HV3
  • MOSI تا HV2
  • SS تا HV1
  • GND به GND

مرحله 4: مبدل منطقی را به رزبری پای وصل کنید

مبدل منطقی را به رزبری پای وصل کنید
مبدل منطقی را به رزبری پای وصل کنید

Raspberry Pi و Octasonic Board از طریق SPI ارتباط برقرار می کنند. SPI از 4 سیم استفاده می کند:

  • Master In، Slave Out (MISO)
  • Master Out ، Slave In (MOSI)
  • ساعت سریال (SCK)
  • برده انتخاب (SS)

علاوه بر این ، ما نیاز به اتصال برق (3.3V و GND) داریم. مبدل سطح منطقی دارای دو طرف است - ولتاژ پایین (LV) و ولتاژ بالا (HV). رزبری به طرف LV متصل می شود زیرا 3.3 ولت است. Octasonic از آنجا که 5V است به طرف HV متصل می شود.

این مرحله برای اتصال Raspberry Pi به طرف LV مبدل سطح منطقی است

اتصالات Raspbery Pi به مبدل Logic Level باید به شرح زیر باشد:

  • 3.3 ولت به LV
  • GPIO11 (SPI_SCLK) تا LV4
  • GPIO09 (SPI_MISO) تا LV3
  • GPIO10 (SPI_MOSI) تا LV2
  • GPIO08 (SPI_CE0_N) SS تا LV1
  • GND به GND

از نمودار پیوست شده به این مرحله برای قرار دادن پین های صحیح روی رزبری پای استفاده کنید!

مرحله 5: Raspberry Pi 5V را به Octasonic 5V متصل کنید

Raspberry Pi 5V را به Octasonic 5V متصل کنید
Raspberry Pi 5V را به Octasonic 5V متصل کنید
Raspberry Pi 5V را به Octasonic 5V متصل کنید
Raspberry Pi 5V را به Octasonic 5V متصل کنید

یک سیم نهایی برای اضافه کردن وجود دارد. ما باید در واقع برد Octasonic را با 5 ولت تغذیه کنیم ، بنابراین این کار را با اتصال یکی از پین های Raspberry Pi 5V به پین 5V در هدر Octasonic AVR انجام می دهیم. این پین پایین سمت چپ در بلوک هدر AVR است (این بلوک 3 * 2 در سمت راست بالای صفحه است). عکس پیوست شده را ببینید که نشان می دهد بلوک AVR کجاست.

برای یافتن پین 5 ولت در رزبری پای ، نمودار دیگر را مشاهده کنید.

مرحله 6: نرم افزار را نصب کنید

Raspian را نصب کنید

با نصب پاک Raspbian Jessie شروع کنید ، سپس آن را به آخرین نسخه به روز کنید:

sudo apt-get update

sudo apt-get upgrade

SPI را فعال کنید

برای کارکردن این پروژه باید SPI را روی Raspberry Pi فعال کنید! برای این کار از ابزار Raspberry Pi Configuration استفاده کنید.

همچنین مهم است که Pi را بعد از فعال کردن SPI مجدداً راه اندازی کنید تا م effectثر واقع شود

FluidSynth را نصب کنید

Fluidsynth یک نرم افزار رایگان شگفت انگیز MIDI synth است. با این دستور می توانید آن را از خط فرمان نصب کنید:

sudo apt-get install fluidsynth

زبان برنامه نویسی Rust را نصب کنید

پیانو اولتراسونیک در زبان برنامه نویسی Rust از Mozilla اجرا می شود (مانند C ++ است اما بدون قطعات بد). این چیزی است که همه بچه های باحال این روزها از آن استفاده می کنند.

برای نصب Rust ، دستورالعمل های https://rustup.rs/ را دنبال کنید. برای صرفه جویی در وقت ، دستورالعمل اجرای این دستور است. در هنگام نصب می توانید پاسخ های پیش فرض س questionsالات را بپذیرید.

توجه: از زمان ارسال این دستورالعمل ، برخی از مشکلات مربوط به نصب Rust روی Raspberry Pi وجود دارد. زمان بندی بد:-/ اما من دستور زیر را برای حل مشکل اصلاح کرده ام. امیدوارم به زودی این مشکل را برطرف کنند. من روی ایجاد تصویری کار می کنم که افراد بتوانند آن را بارگیری کرده و روی کارت SD رایت کنند. اگر دوست دارید ، لطفاً با من تماس بگیرید.

صادر کردن RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | sh

کد منبع Ultrasonic Pi Piano را بارگیری کنید

کد منبع کد اولتراسونیک پی پیانو در github میزبانی می شود. برای دریافت کد دو گزینه وجود دارد. اگر با git و github آشنایی دارید ، می توانید repo را کلون کنید:

git clone [email protected]: TheGizmoDojo/UltrasonicPiPiano.git

متناوبا ، می توانید یک فایل زیپ از آخرین کد را بارگیری کنید.

کد منبع را کامپایل کنید

سی دی UltrasonicPiPiano

ساخت محموله -انتشار

کد را تست کنید

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

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

حمل بار -انتشار

اگر کنجکاو هستید ، پرچم "--release" به Rust می گوید که کد را تا آنجا که ممکن است کاملاً مileثر تنظیم کند ، بر خلاف تنظیم پیش فرض "--debug".

مرحله 7: کمی موسیقی بسازید

مطمئن شوید که هنوز در پوشه ای هستید که منبع کد را بارگیری کرده اید و دستور زیر را اجرا کنید.

این اسکریپت "run.sh" مطمئن می شود که کد کامپایل شده است و سپس کد را اجرا می کند و خروجی را به fluidsynth منتقل می کند.

./run.sh

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

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

sudo amixer cset numid = 3 1

تغییر صدا

حجم (یا "افزایش") با پارامتر "-g" به fluidsynth مشخص می شود. می توانید اسکریپت run.sh را تغییر داده و این مقدار را تغییر دهید. لطفاً توجه داشته باشید که تغییرات کوچک در این پارامتر منجر به تغییر بزرگی در حجم می شود ، بنابراین سعی کنید آن را به مقدار کم (مانند 0.1 یا 0.2) افزایش دهید.

مرحله 8: کنترل حرکت

برای نمایش کامل پروژه ، از جمله نحوه عملکرد کنترل های حرکتی ، ویدیوی پیوست شده به این مرحله را مشاهده کنید.

این مفهوم بسیار ساده است. این نرم افزار پیگیری می کند که کدام سنسورها (در عرض 10 سانتی متر) پوشانده شده اند و کدام سنسورها نیستند. این به 8 عدد باینری (1 یا 0) ترجمه می شود. این بسیار راحت است ، زیرا دنباله ای از 8 عدد باینری یک "بایت" ایجاد می کند که می تواند اعداد بین 0 تا 255 را نشان دهد. اگر قبلاً از اعداد باینری اطلاع ندارید ، توصیه می کنم یک آموزش را جستجو کنید. اگر می خواهید در مورد برنامه نویسی بیشتر بیاموزید ، اعداد دودویی یک مهارت اساسی است.

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

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

مرحله 9: ساختن یک محفظه

اگر می خواهید این نمایشگاه را دائمی کنید و بتوانید آن را برای مردم به نمایش بگذارید ، احتمالاً می خواهید نوعی محوطه بسازید. این می تواند از چوب ، مقوا یا بسیاری از مواد دیگر ساخته شود. در اینجا یک ویدیو وجود دارد که محوطه ای را که برای این پروژه روی آن کار می کنیم نشان می دهد. این از چوب ساخته شده است و سوراخ هایی برای نگه داشتن سنسورهای اولتراسونیک در محل ایجاد شده است.

مرحله 10: عیب یابی و مراحل بعدی

عیب یابی

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

مشکل رایج دیگر عدم فعال کردن SPI و راه اندازی مجدد pi است.

لطفاً برای اطلاع از اسناد کامل از جمله نکات عیب یابی ، با مقالات خاص Rust و Python ، و همچنین اطلاعاتی در مورد نحوه دریافت پشتیبانی ، از https://theotherandygrove.com/octasonic/ دیدن کنید.

مراحل بعدی

پس از انجام پروژه ، توصیه می کنم با کد آزمایش کنید و آلات موسیقی مختلف را امتحان کنید. کدهای ابزار MIDI بین 1 تا 127 هستند و در اینجا مستند شده اند.

آیا می خواهید یک ساز موسیقی واحد با هر سنسور با یک اکتاو متفاوت پخش شود؟ شاید دوست دارید هر سنسور به جای آن یک ابزار جداگانه باشد؟ امکانات تقریباً نامحدود است!

امیدوارم از این مطلب آموزنده لذت برده باشید لطفاً اگر دوست داشتید آن را دوست داشته باشید ، و حتماً در اینجا و در کانال YouTube من مشترک شوید تا پروژه های آینده را ببینید.

توصیه شده: