صفحهکلید موسیقی RaspPi
نمایش/توضیح
سازندگان/نقشها
- Andrew Darling
- ساختار و منطق برنامهنویسی شیءگرا را برای کد نوشت.
- Riley Royall
- مدار RPBP را ساخت.
- Mehmet Yilmaz
- عنصر رابط گرافیکی و تولیدکنندهٔ نت موسیقی را برای کد نوشت.
درباره
پروژهٔ Raspberry Pi Buzzer Piano (RPBP) یک پروژهٔ نهایی برای سیستمهای حسگر پایتون (CSCI-250)، یک درس کارشناسی ارائهشده توسط Colorado School of Mines، در طول ترم پاییز 2019 بود. این پروژه یک پروژهٔ گروهی بود که از Andrew Darling، Riley Royall و Mehmet Yilmaz تشکیل میشد. این پروژه بهطور رسمی حدود اواخر نوامبر 2019 و اوایل دسامبر 2019 تکمیل شد.
پروژهٔ ما یک Raspberry Pi Buzzer Piano (RPBP) است. این ایدهٔ RPBP یک صفحهکلید موسیقی است که مجموعهای از 13 کلید خواهد داشت، که در آن کلیدها فقط دکمههایی هستند و میتوانند مانند کلیدهای پیانو عمل کنند. وقتی یک کلید فشرده میشود، باعث میشود یک یا چند بیزر با فرکانسهای مختلف، بسته به اینکه کدام دکمه فشرده شده است، صدا کنند. همچنین دو پتانسیومتر وجود خواهد داشت که یکی از آنها برای تغییر بین 3 حالت RPBP استفاده میشود و دومی برای تغییر اکتاو(ها)ی بیزرها به کار میرود. 3 حالت روی RPBP عبارتاند از: Free-Play، Record، و Play-Back. حالت Free-Play به کاربر اجازه میدهد RPBP را بنوازد و فقط چیزی را که زده است بشنود. حالت Record به کاربر اجازه میدهد RPBP را بهصورت Free-Play بنوازد و در همان زمان آن را در یک فایل npy ضبط کند و همچنین برای آن ضبط، نت موسیقی را بهصورت PDF ایجاد کند. حالت Play-Back به کاربر اجازه میدهد نام یک فایل ضبطشده را وارد کند و مدار آن فایل ضبطشده را از طریق بیزرها پخش کند. همهٔ نتهای موسیقی در یک دایرکتوری ذخیره خواهند شد، بنابراین کاربر هر زمان که بخواهد میتواند به نتهای موسیقی خود برگردد. هر دکمه/کلید یک LED دارد تا به کاربر نشان دهد چه زمانی یک دکمه/کلید فشرده شده است. این پروژه فقط در Rasbian (Raspberry Pi OS) و با پیشنیازهای نشاندادهشده در زیر، زمانی که بهدرستی راهاندازی شوند، اثبات شده است که کار میکند.
نیازمندیها
- LilyPond
- Python3
- Raspberry Pi B 3+
- Raspberry Pi OS (ISO)
- Make LillyPond Work With ARM (Raspberry Pi)
- NumPy
- Bash
- برد مدار
اطلاعات
- حالتها:
- Free-play: به کاربر اجازه میدهد فقط RPBP را بنوازد.
- Record: به کاربر اجازه میدهد آنچه را مینوازد ضبط کند، آن ضبط را ذخیره کند، و برای آنچه ضبط میکند نت موسیقی ایجاد کند.
- Play-Back: به کاربر اجازه میدهد هر ضبطی را که دانلود کرده یا ساخته است، پخش کند.
- Mute: همهٔ بیزرهای RPBP را بیصدا میکند.
- چگونه بین حالتها بهروزرسانی کنیم:
- تنظیمات/مقادیر را در رابط گرافیکی تغییر دهید و دکمهٔ Submit را بزنید.
- نکات دیگر:
- برای اینکه از داخل رابط گرافیکی بیشتر دربارهٔ RPBP بدانید، دکمهٔ README را بزنید و این README باز خواهد شد.
مدار
- میتوانید تصاویر برد مدار استفادهشده برای این پروژه را در بخش تصاویر مدار ببینید.
- Pi Wedge از طریق یک کابل ریبون به Raspberry Pi 3 B+ متصل است.
- Raspberry Pi کد ارائهشده در این مخزن را با درایورهای فهرستشده در این README اجرا میکند.
- بابت چیدمان شلوغ مدار متأسفیم، متأسفانه ما این بخش را خیلی خوب مستندسازی نکردیم.
چگونه استفاده کنیم:
- ابتدا مطمئن شوید همهٔ نیازمندیها برآورده شدهاند، سپس اسکریپت bash مربوط به start.sh را اجرا کنید تا یک رابط گرافیکی ظاهر شود.
- دوم، در زیر برچسب “Modes” حالت موردنظر خود را انتخاب کنید.
- [ این مراحل برای کسانی است که حالت “Free-Play” را انتخاب میکنند ]
- Third_10: دکمهٔ Submit را بزنید و نواختن روی RPBP را شروع کنید
- [ این مراحل برای کسانی است که حالت “Record” را انتخاب میکنند ]
- Third_20, نامی را که میخواهید به فایل ضبطشدهٔ خود بدهید، در زیر برچسب “Record Name” بنویسید.
- Third_21, دکمهای به نام Submit را بزنید و یک LED قرمز روشن خواهد شد.
- Third_22, روی RPBP بنوازید و وقتی کارتان تمام شد، دکمهٔ Stop را روی رابط گرافیکی بزنید.
- Third_23, بعد از اینکه دکمهٔ Stop را زدید، ضبط شما ذخیره خواهد شد و نت موسیقی شما تولید و بهصورت یک PDF برای مشاهدهتان باز خواهد شد و در دایرکتوری SHEETS ذخیره میشود.
- [ این مراحل برای کسانی است که “Play-Back” را انتخاب میکنند ]
- Third_30, زیر برچسب “Send It” انتخاب کنید که میخواهید کدام فایل آهنگ را پخش کنید
- Third_31, دکمهٔ submit را بزنید و گوش دادن به فایل آهنگی را که انتخاب کردهاید شروع کنید.
- [ این مراحل برای کسانی است که حالت “Mute” را انتخاب میکنند ]
- Third_40, فقط دکمهٔ Submit را بزنید و همهٔ بیزرها بیصدا خواهند شد تا زمانی که به حالت دیگری تغییر دهید
- چهارم، بعد از اینکه همهچیز را با RPBP تمام کردید، دکمهٔ Exit را بزنید تا رابط گرافیکی و کل برنامه بسته شوند
تصاویر مدار