RaspPi Клавіатура (RPBP)

GitHub-репозиторій проєкту

Демонстрація/Пояснення

Творці/Ролі

  • Andrew Darling
    • Написав структуру та логіку об’єктно-орієнтованого програмування для коду.
  • Riley Royall
    • Зібрав схему для RPBP.
  • Mehmet Yilmaz
    • Написав елемент GUI та генератор нотних листів для коду.

Про

Проєкт Raspberry Pi Buzzer Piano (RPBP) був підсумковим проєктом для Python Sensor Systems (CSCI-250), бакалаврського курсу, що пропонує Colorado School of Mines, у осінньому семестрі 2019 року. Проєкт був груповим і включав Ендрю Дарлінга, Райлі Ройалла та Мехмета Йılmaz. Він був офіційно завершений наприкінці листопада 2019 року, на початку грудня 2019 року.

Наш проєкт — це Raspberry Pi Buzzer Piano (RPBP). Ідея RPBP — це музична клавіатура, що має набір з 13 клавіш, які є лише кнопками, що можуть функціонувати як клавіші піаніно. Коли клавішу натискають, один або кілька дзвінків видають звук на різних частотах залежно від натиснутої кнопки. Також буде два потенціометри: один використовується для перемикання між 3 режимами RPBP, а другий — для зміни октав(и) дзвінків. Три режими RPBP: Free-Play, Record та Play-Back. Free-Play дозволяє користувачеві грати на RPBP і просто чути, яку клавішу він натиснув. Record дозволяє користувачеві одночасно грати у режимі Free-Play, записувати це у файл npy та створювати нотний лист у форматі PDF для цього запису. Play-Back дозволяє користувачеві ввести назву записаного файлу, і схема відтворить його через дзвінки. Усі нотні листи зберігаються в одному каталозі, щоб користувач завжди міг переглянути їх за потреби. Кожна кнопка/клавіша має світлодіод, який показує, коли вона була натиснута. Цей проєкт доведено працює лише на Rasbian (Raspberry Pi OS) за умови правильного налаштування вимог, наведених нижче.

Вимоги

Інформація

  • Режими:
    • Free-play: Дозволяє користувачеві просто грати на RPBP.
    • Record: Дозволяє користувачеві записувати те, що він грає, зберігати запис і створювати нотний лист для запису.
    • Play-Back: Дозволяє користувачеві відтворювати будь‑який запис, який він завантажив або створив.
    • Mute: вимикає всі дзвінки на RPBP.
  • Як перемикати між режимами:
    • Змініть налаштування/значення у GUI та натисніть кнопку Submit.
  • Інші примітки:
    • Щоб дізнатися більше про RPBP у GUI, натисніть кнопку README, і цей README відкриється.

Схема

  • Ви можете переглянути зображення плати схеми, використаної в цьому проєкті, у розділі Зображення схеми.
  • Pi Wedge підключений до Raspberry Pi 3 B+ за допомогою стрічкового кабелю.
  • Raspberry Pi запускає код, наданий у цьому репозиторії, з драйверами, зазначеними в цьому README.
  • Перепрошуємо за те, що розташування схеми таке безладне, на жаль, ми не задокументували цю частину досить добре.

Як користуватись:

  • По‑перше, переконайтеся, що всі вимоги виконані, потім запустіть скрипт start.sh bash, і з’явиться GUI.
  • По‑друге, виберіть потрібний режим у розділі «Modes».
  • [ ці кроки призначені для тих, хто вибирає режим «Free-Play» ]
    • Third_10: Натисніть кнопку Submit і починайте грати на RPBP
  • [ ці кроки призначені для тих, хто вибирає режим «Record» ]
    • Third_20, Введіть назву, яку хочете надати вашому записаному файлу, у полі «Record Name».
    • Third_21, Натисніть кнопку Submit, і червоний світлодіод загориться.
    • Third_22, Грайте на RPBP, а коли закінчите, натисніть кнопку Stop у GUI.
    • Third_23, Після натискання кнопки Stop ваш запис буде збережений, а нотний лист згенеровано і відкрито у вигляді PDF для перегляду; файл буде збережено у каталозі SHEETS.
  • [ ці кроки призначені для тих, хто вибирає режим «Play-Back» ]
    • Third_30, Виберіть файл пісні, який хочете відтворити, у полі «Send It».
    • Third_31, Натисніть кнопку Submit і починайте прослуховувати вибраний файл пісні.
  • [ ці кроки призначені для тих, хто вибирає режим «Mute» ]
    • Third_40, Просто натисніть кнопку Submit, і всі дзвінки будуть вимкнені, доки ви не переключитеся на інший режим.
  • Четверте, після завершення роботи з RPBP, натисніть кнопку Exit, щоб закрити GUI та всю програму.

Зображення схеми

GUI_зображення
GUI_зображення
GUI_зображення