فهرست مطالب:
- مرحله 1: مواد لازم
- مرحله 2: سنسورهای اولتراسونیک را به برد Octasonic وصل کنید
- مرحله 3: Logic Level Converter را به برد Octasonic وصل کنید
- مرحله 4: مبدل منطقی را به رزبری پای وصل کنید
- مرحله 5: Raspberry Pi 5V را به Octasonic 5V متصل کنید
- مرحله 6: نرم افزار را نصب کنید
- مرحله 7: کمی موسیقی بسازید
- مرحله 8: کنترل حرکت
- مرحله 9: ساختن یک محفظه
- مرحله 10: عیب یابی و مراحل بعدی
تصویری: پیانو اولتراسونیک پی با کنترل حرکت !: 10 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
این پروژه از سنسورهای اولتراسونیک ارزان 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 وصل کنید
برای اتصال هر یک از سنسورهای اولتراسونیک به برد ، از 4 سیم بلوز زن و زن استفاده کنید و مراقب باشید که آنها را به طور صحیح وصل کنید. صفحه به گونه ای طراحی شده است که پین ها به ترتیب پین های سنسور اولتراسونیک هستند. از چپ به راست روی برد ، پین ها GND ، Trigger ، Echo ، 5V هستند.
مرحله 3: 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 متصل کنید
یک سیم نهایی برای اضافه کردن وجود دارد. ما باید در واقع برد 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 من مشترک شوید تا پروژه های آینده را ببینید.
توصیه شده:
پیانو لیزری پیانو: 9 مرحله
پی-لیزر پیانو لیزری: سلام ، من دانشجوی چند رسانه ای هستم & amp؛ فناوری خلاق در Howest بلژیک. آیا همیشه می خواسته اید موسیقی بنوازید اما مانند همه نیست؟ سپس این ممکن است برای شما چیزی باشد! من از لیزر پیانو ساخته ام. شما فقط باید انگشتان خود را بالا بگذارید
کنترل ژست ساده - اسباب بازی های RC خود را با حرکت بازو کنترل کنید: 4 مرحله (همراه با تصاویر)
کنترل ژست ساده - اسباب بازی های RC خود را با حرکت بازوی خود کنترل کنید: به "ible" شماره 45 من خوش آمدید. چندی پیش من یک نسخه کامل RC از BB8 با استفاده از قطعات Lego Star Wars ساختم … https://www.instructables.com/id/Whats-Inside-My-R … وقتی دیدم چقدر باحال بود Force Force ساخته شده توسط Sphero ، فکر کردم: & quot؛ خوب ، من
ESP8266 RGB LED STRIP WIFI کنترل - NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi - کنترل تلفن هوشمند RGB LED STRIP: 4 مرحله
ESP8266 RGB LED STRIP WIFI کنترل | NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi | RGB LED STRIP Smartphone Control: سلام بچه ها در این آموزش می آموزیم که چگونه از nodemcu یا esp8266 به عنوان ریموت IR برای کنترل نوار LED RGB استفاده کنید و Nodemcu توسط تلفن هوشمند از طریق وای فای کنترل می شود. بنابراین اساساً می توانید RGB LED STRIP را با تلفن هوشمند خود کنترل کنید
مکانیسم حرکت و حرکت برای دورهای DSLR: 7 مرحله (همراه با تصاویر)
Pan and Tilt Mechanism for DSLR Time Lapses: من چند موتور پله ای در اطراف داشتم و واقعاً می خواستم از آنها برای ایجاد یک چیز جالب استفاده کنم. من تصمیم گرفتم که یک سیستم Pan and Tilt برای دوربین DSLR خود بسازم تا بتوانم بازه های زمانی خوبی ایجاد کنم. موارد مورد نیاز: موتورهای پله ای 2 برابر -htt
خروجی کنترل شده حرکت - از طریق نور حسگر حرکت: 6 مرحله
خروجی کنترل شده حرکت - از طریق نور حسگر حرکت: & nbsp؛ تصور کنید که شما یک حقه باز یا درمانگر هستید که به ترسناک ترین خانه بلوک می روید. پس از پشت سر گذاشتن همه غولها ، ارواح و قبرستان ، سرانجام به آخرین مسیر می رسید. می توانید آب نبات را در یک کاسه جلوی خود ببینید! اما ناگهان یک غافل