Съдържание:
- Стъпка 1: Съставки
- Стъпка 2: Свържете ултразвуковите сензори към Octasonic борда
- Стъпка 3: Свържете преобразувателя на логическо ниво към Octasonic Board
- Стъпка 4: Свържете конвертора на логическо ниво към Raspberry Pi
- Стъпка 5: Свържете Raspberry Pi 5V към Octasonic 5V
- Стъпка 6: Инсталирайте софтуер
- Стъпка 7: Направете малко музика
- Стъпка 8: Контрол с жестове
- Стъпка 9: Създаване на корпус
- Стъпка 10: Отстраняване на неизправности и следващи стъпки
Видео: Ултразвуково пиано Pi с контрол на жестовете!: 10 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Този проект използва евтини ултразвукови сензори HC-SR04 като входове и генерира MIDI бележки, които могат да се възпроизвеждат чрез синтезатор на Raspberry Pi за висококачествен звук.
Проектът използва и основна форма на управление с жестове, където музикалният инструмент може да бъде променен, като държите ръцете си над двата най -външни сензора за няколко секунди. Друг жест може да се използва за изключване на Raspberry Pi, след като приключите.
Видеото по-горе показва готовия продукт в обикновен лазерно изрязан корпус. Има по-задълбочен видеоклип по-късно в тази инструкция, който обяснява как работи проектът.
Създадох този проект съвместно с The Gizmo Dojo (моят местен производител в Брумфийлд, Колорадо), за да направя някои интерактивни експонати, които можем да вземем за местни събития STEM/STEAM и Maker Faires.
Моля, вижте също най -новата документация и уроци на адрес https://theotherandygrove.com/octasonic/, които сега включват информация за версията на Python на този проект (тази инструкция е написана за версията Rust).
Стъпка 1: Съставки
За тази инструкция ще ви трябват следните съставки:
- Raspberry Pi (2 или 3) със SD карта
- 8 ултразвукови сензора HC-SR04
- Octasonic Breakout Board
- Двупосочен преобразувател на логически нива
- 32 x 12 "женско-женски джъмпер проводници за свързване на ултразвукови сензори
- 13 x 6 "женско-женски джъмперни кабели за свързване на Raspberry Pi, Octasonic и преобразувател на логическо ниво
- Подходящо захранване за Raspberry Pi
- Компютърни високоговорители или подобни
Бих препоръчал да използвате Raspberry Pi 3, ако е възможно, тъй като има по -голяма изчислителна мощ, което води до по -отзивчив и приятен звук. Може да работи добре с Raspberry Pi 2 с малко промяна, но не бих се опитал да използвам оригиналния Raspberry Pi за този проект.
Ултразвуковите сензори HC -SR04 имат 4 връзки - 5V, GND, Trigger и Echo. Обикновено Trigger и Echo са свързани към отделни щифтове на микроконтролер или Raspberry Pi, но това означава, че ще трябва да използвате 16 пина за свързване на 8 сензора, а това не е практично. Тук идва Octasonic пробивната платка. Тази платка се свързва с всички сензори и има специален микроконтролер, който следи сензорите и след това комуникира с Raspberry Pi през SPI.
HC-SR04 изискват 5V, а Raspberry Pi е само 3.3V, така че затова се нуждаем и от преобразувател на логическо ниво, който ще свърже Raspberry Pi към платката Octasonic.
Стъпка 2: Свържете ултразвуковите сензори към Octasonic борда
Използвайте 4 проводника женски-женски, за да свържете всеки ултразвуков сензор към платката, като внимавате да ги свържете правилно. Платката е проектирана така, че щифтовете да са в същия ред като щифтовете на ултразвуковия сензор. Отляво надясно на дъската щифтовете са GND, Trigger, Echo, 5V.
Стъпка 3: Свържете преобразувателя на логическо ниво към Octasonic Board
Raspberry Pi и Octasonic Board комуникират по SPI. SPI използва 4 проводника:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Сериен часовник (SCK)
- Slave Select (SS)
Освен това трябва да свържем захранване (5V и GND).
Логическият преобразувател на ниво има две страни - ниско напрежение (LV) и високо напрежение (HV). Raspberry ще се свърже към LV страната, тъй като е 3.3V. Octasonic ще се свърже към HV страната, тъй като е 5V.
Тази стъпка е за свързване на Octasonic към HV страната на преобразувателя на логическо ниво
Вижте снимката, приложена към тази стъпка, показваща кои изводи трябва да бъдат свързани към преобразувателя на логическо ниво.
Връзките от преобразувателя на Octasonic към логическо ниво трябва да бъдат както следва:
- 5V към HV
- SCK към HV4
- MISO към HV3
- MOSI към HV2
- SS към HV1
- GND към GND
Стъпка 4: Свържете конвертора на логическо ниво към Raspberry Pi
Raspberry Pi и Octasonic Board комуникират по SPI. SPI използва 4 проводника:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Сериен часовник (SCK)
- Slave Select (SS)
Освен това трябва да свържем захранване (3.3V и GND). Логическият преобразувател на ниво има две страни - ниско напрежение (LV) и високо напрежение (HV). Raspberry ще се свърже към страната на НН, тъй като е 3.3V. Octasonic ще се свърже към HV страната, тъй като е 5V.
Тази стъпка е за свързване на Raspberry Pi към LV страната на преобразувателя на логическо ниво
Връзките от Raspbery Pi към конвертора на логическо ниво трябва да бъдат както следва:
- 3.3V към LV
- GPIO11 (SPI_SCLK) до LV4
- GPIO09 (SPI_MISO) към LV3
- GPIO10 (SPI_MOSI) към LV2
- GPIO08 (SPI_CE0_N) SS към LV1
- GND към GND
Използвайте диаграмата, приложена към тази стъпка, за да намерите правилните щифтове на Raspberry Pi!
Стъпка 5: Свържете Raspberry Pi 5V към Octasonic 5V
Има един последен проводник за добавяне. Трябва действително да захранваме платката Octasonic с 5V, затова правим това, като свържем един от пиновете Raspberry Pi 5V към 5V щифта на заглавието на Octasonic AVR. Това е долният ляв щифт в заглавния блок на AVR (това е блокът 2 x 3 в горния десен ъгъл на дъската). Вижте приложената снимка, показваща къде е AVR блокът.
Вижте другата приложена диаграма, за да намерите 5V щифта на Raspberry Pi.
Стъпка 6: Инсталирайте софтуер
Инсталирайте Raspian
Започнете с чиста инсталация на Raspbian Jessie, след което я актуализирайте до най -новата версия:
sudo apt-get update
sudo apt-get надстройка
Активиране на SPI
Трябва да активирате SPI на Raspberry Pi, за да работи този проект! Използвайте помощната програма за конфигуриране на Raspberry Pi, за да направите това.
Също така е важно да рестартирате Pi, след като активирате SPI, за да влезе в сила
Инсталирайте FluidSynth
Fluidsynth е невероятен безплатен софтуерен MIDI синтезатор. Можете да го инсталирате от командния ред с тази команда:
sudo apt-get install fluidsynth
Инсталирайте езика за програмиране Rust
Ултразвуковото пиано Pi е внедрено в езика за програмиране на Rust от Mozilla (това е като C ++, но без лошите битове). Това е, което всички готини деца използват тези дни.
Следвайте инструкциите на https://rustup.rs/, за да инсталирате Rust. За да спестите време, инструкциите са да изпълните тази команда. Можете да приемете отговорите по подразбиране на всички въпроси по време на инсталацията.
ЗАБЕЛЕЖКА: След публикуването на тази инструкция има някои проблеми с инсталирането на Rust на Raspberry Pi. Лошо време:-/ но промених командата по-долу, за да заобиколя проблема. Дано скоро поправят това. Работя върху създаването на изображение, което хората могат да изтеглят и записват на SD карта. Ако искате това, моля свържете се с мен.
експортиране RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | ш
Изтеглете изходния код на Ultrasonic Pi Piano
Изходният код за изходния код на Ultrasonic Pi Piano се хоства на github. Има две възможности за получаване на кода. Ако сте запознати с git и github, можете да клонирате репо:
git clone [email protected]: TheGizmoDojo/UltrasonicPiPiano.git
Като алтернатива можете да изтеглите zip файл с най -новия код.
Компилирайте изходния код
cd UltrasonicPiPiano
изграждане на товар -освобождаване
Тествайте кода
Преди да преминем към създаването на музика в следващата стъпка, нека се уверим, че софтуерът работи и че можем да четем валидни данни от сензорите.
Използвайте следната команда, за да стартирате приложението. Това ще прочете данните от сензорите и ще ги преобразува в MIDI бележки, които след това се отпечатват на конзолата. Докато премествате ръката си над сензорите, трябва да видите генерирането на данни. Ако не, преминете към раздела за отстраняване на неизправности в края на тази инструкция.
товарен пробег -освобождаване
Ако сте любопитни, флагът "--release" казва на Rust да компилира кода възможно най-ефективно, за разлика от настройката по подразбиране "--debug".
Стъпка 7: Направете малко музика
Уверете се, че все още сте в директорията, където сте изтеглили изходния код, и изпълнете следната команда.
Този скрипт "run.sh" гарантира, че кодът е компилиран и след това изпълнява кода, превеждайки изхода във fluidsynth.
./ run.sh
Уверете се, че имате усилени високоговорители, свързани към 3,5 -милиметровия аудио жак на Raspberry Pi и трябва да чувате музика, докато премествате ръцете си над сензорите.
Ако не чувате музика и имате свързан HDMI монитор, тогава аудио изходът вероятно отива там. За да поправите това, просто изпълнете тази команда и след това рестартирайте Pi Piano:
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.
Моля, посетете https://theotherandygrove.com/octasonic/ за пълна документация, включително съвети за отстраняване на неизправности, с конкретни статии за Rust и Python, както и информация за това как да получите поддръжка.
Следващи стъпки
След като стартирате проекта, препоръчвам да експериментирате с кода и да изпробвате различни музикални инструменти. Кодовете на инструментите MIDI са между 1 и 127 и са документирани тук.
Искате ли един музикален инструмент с всеки сензор да свири различна октава? Може би бихте искали всеки сензор да бъде отделен инструмент вместо това? Възможностите са почти неограничени!
Надявам се да ви хареса тази инструкция. Моля, харесайте, ако сте го направили, и не забравяйте да се абонирате за мен тук и за канала ми в YouTube, за да видите бъдещи проекти.
Препоръчано:
Контрол на щорите с ESP8266, Google Home и Openhab интеграция и уеб контрол: 5 стъпки (със снимки)
Контрол на щори с ESP8266, интегриране и уебконтрол на Google Home и Openhab: В тази инструкция ще ви покажа как добавих автоматизация към моите щори. Исках да мога да добавя и премахвам автоматизацията, така че цялата инсталация е закрепена. Основните части са: Стъпков двигател Стъпков шофьор, управляван от bij ESP-01 Gear и монтаж
Контрол на яркостта ШИМ базиран LED контрол с помощта на бутони, Raspberry Pi и надраскване: 8 стъпки (със снимки)
Контрол на яркостта PWM управление на LED управление с помощта на бутони, Raspberry Pi и Scratch: Опитвах се да намеря начин да обясня как PWM работи на моите ученици, затова си поставих задачата да се опитам да контролирам яркостта на светодиода с помощта на 2 бутона - единият бутон увеличава яркостта на светодиода, а другият го затъмнява. Към програмата
Направете ултразвуково устройство за откриване и измерване у дома: 7 стъпки (със снимки)
Направете ултразвуково устройство за откриване и измерване у дома: Здравейте! Аз съм Sourabh Kumar, бях нетърпелив да направя алармиращ радар, но той се провали, ще опитам отново, но днес ще ви насоча да направите устройство за ултразвуково откриване и дистанционно у дома, използвайки ултразвуков сензор (приемо -предавател), знам, че има много за
Ултразвуково устройство за подобряване на навигацията на хора с увредено зрение: 4 стъпки (със снимки)
Ултразвуково устройство за подобряване на навигацията на хора с увредено зрение: Сърцата ни са насочени към хората в неравностойно положение, докато използваме таланта си, за да подобряваме технологиите и изследователските решения, за да подобрим живота на ранените. Този проект е създаден единствено за тази цел. Тази електронна ръкавица използва ултразвуково откриване, за да подобри
Улдар за проста обработка (ултразвуково откриване и обхващане): 3 стъпки
Проста обработка Uldar (ултразвуково откриване и измерване): Това е прост проект, който използва Arduino UNO и Processing, за да направи прост лидар. целта с импулсна лазерна светлина и измерване