Indholdsfortegnelse:
- Trin 1: Ingredienser
- Trin 2: Tilslut ultralydssensorerne til Octasonic -kortet
- Trin 3: Tilslut Logic Level Converter til Octasonic Board
- Trin 4: Tilslut Logic Level Converter til Raspberry Pi
- Trin 5: Tilslut Raspberry Pi 5V til Octasonic 5V
- Trin 6: Installer software
- Trin 7: Lav noget musik
- Trin 8: Gesture Control
- Trin 9: Lav et kabinet
- Trin 10: Fejlfinding og næste trin
![Ultralyds Pi -klaver med gestus -kontrol !: 10 trin (med billeder) Ultralyds Pi -klaver med gestus -kontrol !: 10 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-924-70-j.webp)
Video: Ultralyds Pi -klaver med gestus -kontrol !: 10 trin (med billeder)
![Video: Ultralyds Pi -klaver med gestus -kontrol !: 10 trin (med billeder) Video: Ultralyds Pi -klaver med gestus -kontrol !: 10 trin (med billeder)](https://i.ytimg.com/vi/EPTer_DU83k/hqdefault.jpg)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
![Image Image](https://i.howwhatproduce.com/images/001/image-924-71-j.webp)
![](https://i.ytimg.com/vi/SoxqeWotdIg/hqdefault.jpg)
![Ultralyds Pi -klaver med gestus -kontrol! Ultralyds Pi -klaver med gestus -kontrol!](https://i.howwhatproduce.com/images/001/image-924-72-j.webp)
Dette projekt bruger billige HC-SR04 ultralydssensorer som input og genererer MIDI-noter, der kan afspilles gennem en synthesizer på Raspberry Pi for en lyd af høj kvalitet.
Projektet anvender også en grundlæggende form for gestusstyring, hvor musikinstrumentet kan ændres ved at holde dine hænder over de to yderste sensorer i et par sekunder. En anden gestus kan bruges til at lukke Raspberry Pi ned, når du er færdig.
Videoen ovenfor viser det færdige produkt i et enkelt laserskåret kabinet. Der er en mere dybtgående video senere i denne instruktør, der forklarer, hvordan projektet fungerer.
Jeg oprettede dette projekt i forbindelse med The Gizmo Dojo (mit lokale makerspace i Broomfield, CO) for at lave nogle interaktive udstillinger, som vi kan tage med til lokale STEM/STEAM -arrangementer og Maker Faires.
Se også den nyeste dokumentation og selvstudier på https://theotherandygrove.com/octasonic/, som nu indeholder oplysninger om en Python -version af dette projekt (denne instruks blev skrevet til Rust -versionen).
Trin 1: Ingredienser
Til denne instruktive skal du bruge følgende ingredienser:
- Hindbær Pi (2 eller 3) med SD -kort
- 8 ultralydssensorer HC-SR04
- Octasonic Breakout Board
- Bi-directional Logic Level Converter
- 32 x 12 "hun-hun jumperwire til tilslutning af ultralydssensorer
- 13 x 6 "kvindelige-hun-jumperwire til tilslutning af Raspberry Pi, Octasonic og Logic Level Converter
- Passende strømforsyning til Raspberry Pi
- PC -højttalere eller lignende
Jeg vil om muligt anbefale at bruge en Raspberry Pi 3, da den har mere computerkraft, hvilket resulterer i en mere lydhør og behagelig lyd. Det kan fungere fint med en Raspberry Pi 2 med lidt tweaking, men jeg ville ikke forsøge at bruge den originale Raspberry Pi til dette projekt.
HC -SR04 ultralydssensorer har 4 forbindelser - 5V, GND, Trigger og Echo. Typisk er Trigger og Echo forbundet til separate stifter på en mikrokontroller eller Raspberry Pi, men det betyder, at du skal bruge 16 ben til at forbinde 8 sensorer, og det er ikke praktisk. Det er her, Octasonic breakout -kortet kommer ind. Dette board forbinder til alle sensorerne og har en dedikeret mikrokontroller, der overvåger sensorerne og derefter kommunikerer med Raspberry Pi over SPI.
HC-SR04 kræver 5V, og Raspberry Pi er kun 3,3V, så derfor har vi også brug for den logiske niveauomformer, der forbinder Raspberry Pi til Octasonic breakout-kortet.
Trin 2: Tilslut ultralydssensorerne til Octasonic -kortet
![Tilslut ultralydssensorerne til Octasonic -kortet Tilslut ultralydssensorerne til Octasonic -kortet](https://i.howwhatproduce.com/images/001/image-924-73-j.webp)
![Tilslut ultralydssensorerne til Octasonic -kortet Tilslut ultralydssensorerne til Octasonic -kortet](https://i.howwhatproduce.com/images/001/image-924-74-j.webp)
Brug 4 hun-hun jumper-ledninger til at forbinde hver ultralydssensor til kortet, og pas på at tilslutte dem den rigtige vej. Tavlen er designet, så stifterne er i samme rækkefølge som stifterne på ultralydssensoren. Fra venstre til højre på brættet er benene GND, Trigger, Echo, 5V.
Trin 3: Tilslut Logic Level Converter til Octasonic Board
![Tilslut Logic Level Converter til Octasonic Board Tilslut Logic Level Converter til Octasonic Board](https://i.howwhatproduce.com/images/001/image-924-75-j.webp)
Raspberry Pi og Octasonic Board kommunikerer over SPI. SPI bruger 4 ledninger:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Serielt ur (SCK)
- Slave Select (SS)
Derudover skal vi tilslutte strøm (5V og GND).
Den logiske niveauomformer har to sider - en lav spænding (LV) og en høj spænding (HV). Hindbæret vil oprette forbindelse til LV -siden, da det er 3,3V. Octasonic vil oprette forbindelse til HV -siden, da den er 5V.
Dette trin er til tilslutning af Octasonic til HV -siden af den logiske niveauomformer
Se billedet vedhæftet dette trin, der viser, hvilke ben der skal tilsluttes logik -niveauomformeren.
Forbindelserne fra Octasonic til Logic Level -konverteren skal være som følger:
- 5V til HV
- SCK til HV4
- MISO til HV3
- MOSI til HV2
- SS til HV1
- GND til GND
Trin 4: Tilslut Logic Level Converter til Raspberry Pi
![Tilslut Logic Level Converter til Raspberry Pi Tilslut Logic Level Converter til Raspberry Pi](https://i.howwhatproduce.com/images/001/image-924-76-j.webp)
Raspberry Pi og Octasonic Board kommunikerer over SPI. SPI bruger 4 ledninger:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Serielt ur (SCK)
- Slave Select (SS)
Derudover skal vi tilslutte strøm (3.3V og GND). Den logiske niveauomformer har to sider - en lav spænding (LV) og en høj spænding (HV). Hindbæret vil oprette forbindelse til LV -siden, da det er 3,3V. Octasonic vil oprette forbindelse til HV -siden, da den er 5V.
Dette trin er til tilslutning af Raspberry Pi til LV -siden af det logiske niveauomformer
Forbindelserne fra Raspbery Pi til Logic Level -konverteren skal være som følger:
- 3,3V til LV
- GPIO11 (SPI_SCLK) til LV4
- GPIO09 (SPI_MISO) til LV3
- GPIO10 (SPI_MOSI) til LV2
- GPIO08 (SPI_CE0_N) SS til LV1
- GND til GND
Brug diagrammet vedhæftet dette trin til at finde de korrekte stifter på Raspberry Pi!
Trin 5: Tilslut Raspberry Pi 5V til Octasonic 5V
![Tilslut Raspberry Pi 5V til Octasonic 5V Tilslut Raspberry Pi 5V til Octasonic 5V](https://i.howwhatproduce.com/images/001/image-924-77-j.webp)
![Tilslut Raspberry Pi 5V til Octasonic 5V Tilslut Raspberry Pi 5V til Octasonic 5V](https://i.howwhatproduce.com/images/001/image-924-78-j.webp)
Der er en sidste ledning at tilføje. Vi skal faktisk forsyne Octasonic -kortet med 5V, så vi gør det ved at forbinde en af Raspberry Pi 5V -stifterne til 5V -stiften på Octasonic AVR -headeren. Dette er den nederste venstre pin i AVR -headerblokken (dette er 2 x 3 -blokken øverst til højre på brættet). Se det vedhæftede foto, der viser, hvor AVR -blokken er.
Se det andet vedhæftede diagram for at finde 5V -stiften på Raspberry Pi.
Trin 6: Installer software
Installer Raspian
Start med en ren installation af Raspbian Jessie, og opdater den derefter til den nyeste version:
sudo apt-get opdatering
sudo apt-get opgradering
Aktiver SPI
Du skal aktivere SPI på Raspberry Pi for at dette projekt kan fungere! Brug Raspberry Pi Configuration -værktøjet til at gøre dette.
Det er også vigtigt at genstarte Pi efter aktivering af SPI, for at den kan træde i kraft
Installer FluidSynth
Fluidsynth er en fantastisk gratis software MIDI synth. Du kan installere det fra kommandolinjen med denne kommando:
sudo apt-get install fluidsynth
Installer Rust programmeringssprog
Ultrasonic Pi Piano er implementeret i Rust Programming Language fra Mozilla (det er ligesom C ++ men uden de dårlige bits). Det er hvad alle de seje børn bruger i disse dage.
Følg instruktionerne på https://rustup.rs/ for at installere Rust. For at spare dig tid er instruktionerne at køre denne ene kommando. Du kan acceptere standardsvarene på eventuelle spørgsmål under installationen.
BEMÆRK: Siden udgivelsen af dette instruerbare, er der nogle problemer med at installere Rust på Raspberry Pi. Dårlig timing:-/ men jeg har ændret kommandoen herunder for at løse problemet. Forhåbentlig vil de rette dette snart. Jeg arbejder på at skabe et billede, som folk kan downloade og brænde på et SD -kort. Hvis du vil have det, bedes du kontakte mig.
eksport RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | sh
Download kildekoden til Ultrasonic Pi Piano
Kildekoden til Ultrasonic Pi Piano kildekoden er hostet på github. Der er to muligheder for at få koden. Hvis du kender git og github, kan du klone repoen:
git klon [email protected]: TheGizmoDojo/UltrasonicPiPiano.git
Alternativt kan du downloade en zip -fil med den nyeste kode.
Kompilér kildekoden
cd UltrasonicPiPiano
lastbygning -frigivelse
Test koden
Inden vi går videre til at lave musik i det næste trin, lad os sikre os, at softwaren kører, og at vi kan læse gyldige data fra sensorerne.
Brug følgende kommando til at køre programmet. Dette vil læse data fra sensorerne og oversætte dem til MIDI -noter, der derefter udskrives på konsollen. Når du bevæger din hånd over sensorerne, skal du se data blive genereret. Hvis ikke, skal du gå til afsnittet om fejlfinding i slutningen af denne instruktion.
ladning -frigivelse
Hvis du er nysgerrig, fortæller "--release" -flaget til Rust at kompilere koden så effektivt som muligt i modsætning til standardindstillingen "--debug".
Trin 7: Lav noget musik
Sørg for, at du stadig er i biblioteket, hvor du downloadede kildekoden, og kør følgende kommando.
Dette script "run.sh" sørger for, at koden er blevet kompileret, og kører derefter koden, og leder output til fluidsynth.
./run.sh
Sørg for, at du har forstærkede højttalere tilsluttet 3,5 mm lydstikket på Raspberry Pi, og du skal høre musik, mens du bevæger dine hænder hen over sensorerne.
Hvis du ikke hører musik, og du har en HDMI -skærm tilsluttet, går lydudgangen sandsynligvis derhen i stedet. For at løse dette skal du blot køre denne kommando og derefter genstarte Pi Piano:
sudo amixer cset numid = 3 1
Ændring af lydstyrken
Lydstyrken (eller "gain") er angivet med parameteren "-g" til fluidsynth. Du kan ændre run.sh -scriptet og ændre denne værdi. Bemærk, at små ændringer i denne parameter resulterer i en stor ændring i volumen, så prøv at øge den med små mængder (f.eks. 0,1 eller 0,2).
Trin 8: Gesture Control
![](https://i.ytimg.com/vi/jBlBn8oOtD0/hqdefault.jpg)
Se videoen vedhæftet dette trin for en fuld demonstration af projektet, herunder hvordan gestusstyringen fungerer.
Konceptet er meget enkelt. Softwaren holder styr på, hvilke sensorer der er dækket (inden for 10 cm), og hvilke der ikke er. Dette oversættes til 8 binære tal (1 eller 0). Dette er meget praktisk, da en sekvens på 8 binære tal laver en "byte", der kan repræsentere tal mellem 0 og 255. Hvis du ikke allerede ved om binære tal, så anbefaler jeg stærkt at søge efter en tutorial. Binære tal er en grundlæggende færdighed at lære, hvis du vil lære mere om programmering.
Softwaren kortlægger sensorernes aktuelle tilstand til en enkelt byte, der repræsenterer den aktuelle gestus. Hvis dette nummer forbliver det samme i et antal cyklusser, virker softwaren på den gestus.
Fordi ultralydssensorer ikke er super pålidelige, og der kan være interferens mellem sensorerne, skal du udvise lidt tålmodighed, når du bruger bevægelserne. Prøv at variere den afstand, du holder dine hænder fra sensorerne, samt den vinkel, du holder dine hænder. Du kold prøver også at holde noget fladt og solidt over sensorerne for bedre at afspejle lyden.
Trin 9: Lav et kabinet
Hvis du vil gøre dette til en permanent udstilling og være i stand til at vise det frem for folk, vil du sandsynligvis gerne lave en slags kabinet. Dette kan være lavet af træ, pap eller mange andre materialer. Her er en video, der viser kabinettet, vi arbejder på til dette projekt. Dette er lavet af træ, med huller boret ud for at holde ultralydssensorerne på plads.
Trin 10: Fejlfinding og næste trin
Fejlfinding
Hvis projektet ikke fungerer, skyldes det normalt en ledningsfejl. Tag dig tid til at dobbelttjekke alle forbindelser.
Et andet almindeligt problem er ikke at aktivere SPI og genstarte pi'en.
Besøg https://theotherandygrove.com/octasonic/ for fuld dokumentation, herunder fejlfindingstip, med Rust- og Python -specifikke artikler samt oplysninger om, hvordan du får support.
Næste skridt
Når du først har arbejdet med projektet, anbefaler jeg at eksperimentere med koden og prøve forskellige musikinstrumenter. MIDI -instrumentkoder er mellem 1 og 127 og er dokumenteret her.
Vil du have et enkelt musikinstrument, hvor hver sensor spiller en anden oktav? Måske vil du gerne have, at hver sensor i stedet er et separat instrument? Mulighederne er næsten ubegrænsede!
Jeg håber, at du nød dette instruerbare. Vær venlig at lide det, hvis du gjorde det, og sørg for at abonnere på mig her og på min YouTube -kanal for at se fremtidige projekter.
Anbefalede:
DIY digital afstandsmåling med ultralyds sensorinterface: 5 trin
![DIY digital afstandsmåling med ultralyds sensorinterface: 5 trin DIY digital afstandsmåling med ultralyds sensorinterface: 5 trin](https://i.howwhatproduce.com/images/007/image-18809-j.webp)
DIY digital afstandsmåling med ultralyds sensorinterface: Målet med denne instruktionsbog er at designe en digital afstandssensor ved hjælp af en GreenPAK SLG46537. Systemet er designet ved hjælp af ASM og andre komponenter i GreenPAK til at interagere med en ultralydssensor. Systemet er designet til
Sådan bruges gestus APDS9960 med SkiiiD: 9 trin
![Sådan bruges gestus APDS9960 med SkiiiD: 9 trin Sådan bruges gestus APDS9960 med SkiiiD: 9 trin](https://i.howwhatproduce.com/images/008/image-22096-j.webp)
Sådan bruges gestus APDS9960 med SkiiiD: En vejledning i at udvikle Collision Switch XD206 med skiiiD
Ultralyds smart instrument: 4 trin (med billeder)
![Ultralyds smart instrument: 4 trin (med billeder) Ultralyds smart instrument: 4 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-926-72-j.webp)
Ultrasonic Smart Instrument: Formål Dette er et instrument, der bruger en ultralydssensor til at måle afstanden til et objekt (dette kan være din hånd). Med dette vælges en note til at spille, i forskellige tilstande spiller instrumentet forskellige ting. Dette kan være en enkelt note (f
Trådløs robothånd styret af gestus og stemme: 7 trin (med billeder)
![Trådløs robothånd styret af gestus og stemme: 7 trin (med billeder) Trådløs robothånd styret af gestus og stemme: 7 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-1712-98-j.webp)
Trådløs robothånd styret af gestus og stemme: Grundlæggende var dette vores college -projekt, og på grund af mangel på tid til at indsende dette projekt glemte vi at tage billeder af nogle trin. Vi har også designet en kode, som man kan styre denne robothånd med ved hjælp af gestus og stemme på samme tid, men på grund af l
Ultralyds Batgoggles: 14 trin (med billeder)
![Ultralyds Batgoggles: 14 trin (med billeder) Ultralyds Batgoggles: 14 trin (med billeder)](https://i.howwhatproduce.com/images/005/image-12154-38-j.webp)
Ultralyds Batgoggles: Ønsker du at være flagermus? Vil du opleve ekkolokation? Vil du prøve at " se " med dine ører? Til min første Instructable vil jeg vise dig, hvordan du bygger dine egne ultralyds batgoggles ved hjælp af en Arduino mikrokontroller klon, Devantech ultralyds