من اخیرا یک پیانوی ساده با 8 کلید با استفاده از یک کنترلر اصلی NES و برد آردوینو UNO ساختم.
برخلاف پروژههای معمولی پیانو آردوینو که به یک پین دیجیتال برای هر کلید/دکمه نیاز دارند، پیانوی کنترلکننده NES فقط از سه پین دیجیتال (D5 برای nesClock، D6 برای nesLatch، D7 برای nesDataIn) استفاده میکند.
![](https://duino4projects.com/wp-content/uploads/2020/07/NES-Controller-Piano-Ultrasonic-Theremin-Mash-Up.jpg)
کنترلر NES پالس هایی از اطلاعات 8 بیتی را به Arduino UNO ارسال کرد و پالس ها توسط آردوینو ("bit-banging") تفسیر شدند تا از طریق مدول buzzer e - پیانوی NES Controller را بسازید و طرح را دانلود کنید و سپس باز کنید. مانیتور سریال برای تماشای این روند در عمل.
پیانوی کنترلکننده NES تنها هشت نت مختلف (C4 تا C5) را مینواخت و بچههای من از نواختن آن خیلی سریع خسته شدهاند - تصمیم گرفتم با اضافه کردن یک سنسور اولتراسونیک محدوده اکتاو پیانو (C1 تا C8) را افزایش دهم و یک پیانوی کنترلکننده NES ایجاد کنم. ترمین اولتراسونیک ترکیبی که می تواند 50 نت را تنها با استفاده از 5 پین دیجیتال (+1 برای زنگ پیزو) پخش کند.
من هنوز در مورد کدنویسی یادگیرنده هستم و از هر بازخوردی در مورد طرح خود استقبال می کنم.
مرحله 1: قطعات و تجهیزات *
![](https://duino4projects.com/wp-content/uploads/2020/07/Parts-and-Equipment.jpg)
- 1 عدد کنترلر NES اصلی
- 1 عدد آردوینو UNO
- 1 عدد ماژول اکتیو Buzzer سازگار با آردوینو
- 1 عدد ماژول سنسور اولتراسونیک سازگار با آردوینو
- 1 عدد تخته نان
- 12 x نر – سیم بلوز نر
- 2 عدد سیم جامپر نر – ماده
*من قبلاً پیانوی کنترلر NES خود را ساخته بودم و فقط باید یک تخته نان، سنسور اولتراسونیک HC-SR04 و چند سیم جامپر نر-نر دیگر اضافه کنم.
مرحله 2: کنترلر NES
![](https://duino4projects.com/wp-content/uploads/2020/07/NES-Controller.jpg)
کنترلر NES دارای 8 دکمه است، از یک آی سی 4021 8 بیتی Shift Register استفاده می کند و فقط به 3 پین دیجیتال در آردوینو (و همچنین اتصال به + 5V و GND ) نیاز دارد.
دوشاخه دارای 7 پایه است (5 مورد از آنها در این آموزش استفاده شده است) - در تصویر دوم روی پین های موجود در دوشاخه کلیک کنید تا هر عملکرد را پیدا کنید.
سیم های جامپر نر برای پین های دوشاخه کنترلر NES مناسب هستند.
- سیم قرمز را به ریل مثبت روی تخته نان و به پین 5 ولت (آردوینو) وصل کنید .
- سیم قرمز دیگری را از ریل مثبت به +5 ولت (پین 7) روی کنترلر NES وصل کنید
- سیم مشکی را به GND در کنترلر NES و GND را در آردوینو وصل کنید
- سیم نارنجی را به ساعت (پایه NES 2) و D5 وصل کنید
- سیم زرد را به لچ (پایه NES 3) و D6 وصل کنید
- سیم سبز را به Data (پاین 4 NES) به D7 وصل کنید
مرحله 3: سنسور اولتراسونیک
![](https://duino4projects.com/wp-content/uploads/2020/07/Ultrasonic-Sensor.jpg)
- سنسور اولتراسونیک را در تخته نان قرار دهید
- یک سیم سیاه از آردوینو GND به ریل زمین وصل کنید
- سیم سیاه دیگری را از ریل زمین به سنسور Gnd وصل کنید
- سیم بنفش را از D9 به Echo وصل کنید
- سیم خاکستری را از D10 به Trig وصل کنید
- سیم قرمز را از ریل مثبت به Vcc وصل کنید
- کد سنسور اولتراسونیک در مرحله 6 پوشش داده شده است
مرحله 4: ماژول Piezo Buzzer
اتصالات ماژول پیزو زنگ در این پروژه در مقایسه با NES Controller Piano کمی متفاوت است.
- یک سیم سیاه را از ریل زمینی به ماژول زنگ هشدار متصل کنید
- یک سیم آبی از D8 به S وصل کنید
مرحله 5: کد کنترلر NES
![](https://duino4projects.com/wp-content/uploads/2020/07/NES-Controller-Code.jpg)
من کد NES Controller Piano / Ultrasonic Theremin Mash-Up خود را بر اساس کد پیانوی کنترلر NES خودم (که خود بر اساس "طرح کنترلر صفحه بازی Teachbot" توسط گوردون مک کوم در Arduino Robot Bonanza منتشر شده توسط McGraw-Hill در سال 2013 بود) قرار دادم .
کنترلر NES هنگامی که یک دکمه فشار داده میشود* یا فشار داده نمیشود، پالسهای کوتاهی از اطلاعات 8 بیتی ارسال میکند که آردوینو میگیرد و سپس به آهنگهایی تبدیل میشود که توسط ماژول زنگ پخش میشود (مثلاً اگر بیت 0 (01111111) گرفته شود buzzer آهنگ F4 را پخش می کند - دستورات bitRead را در کد زیر مشاهده کنید .
کد NES Controller Piano به طور کامل در کادر زیر آمده است: