INHOUDSOPGAWE:
- Stap 1: Bestanddele
- Stap 2: Koppel die ultrasoniese sensors aan die Octasonic -bord
- Stap 3: Koppel die Logic Level Converter aan die Octasonic Board
- Stap 4: Koppel die Logic Level Converter aan die Raspberry Pi
- Stap 5: Koppel Raspberry Pi 5V aan Octasonic 5V
- Stap 6: Installeer sagteware
- Stap 7: Maak musiek
- Stap 8: Gebaarbeheer
- Stap 9: Maak 'n bylaag
- Stap 10: Probleemoplossing en volgende stappe
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
Hierdie projek gebruik goedkoop HC-SR04 ultrasoniese sensors as insette en genereer MIDI-note wat deur 'n sintetiseerder op die Raspberry Pi gespeel kan word vir 'n hoë kwaliteit klank.
Die projek gebruik ook 'n basiese vorm van gebaarbeheer, waar die musiekinstrument verander kan word deur 'n paar sekondes oor die twee buitenste sensors te hou. 'N Ander gebaar kan gebruik word om die Raspberry Pi af te skakel sodra u klaar is.
Die video hierbo toon die voltooide produk in 'n eenvoudige lasergesnyde omhulsel. Daar is later 'n meer diepgaande video in hierdie instruksie wat verduidelik hoe die projek werk.
Ek het hierdie projek saam met The Gizmo Dojo (my plaaslike makersruimte in Broomfield, CO) geskep om interaktiewe uitstallings te maak wat ons na plaaslike STEM/STEAM -geleenthede en Maker Faires kan neem.
Kyk ook na die nuutste dokumentasie en tutoriale op https://theotherandygrove.com/octasonic/, wat nou inligting bevat oor 'n Python -weergawe van hierdie projek (hierdie instruksie is geskryf vir die Rust -weergawe).
Stap 1: Bestanddele
Vir hierdie instruksies benodig u die volgende bestanddele:
- Framboos Pi (2 of 3) met SD kaart
- 8 ultrasoniese sensors van HC-SR04
- Octasonic Breakout Board
- Tweerigting-logiese vlakomskakelaar
- 32 x 12 "vroulike-vroulike jumperdrade vir die koppeling van die ultrasoniese sensors
- 13 x 6 "vroulike-vroulike springdrade vir die aansluiting van die Raspberry Pi, Octasonic en Logic Level Converter
- Geskikte kragbron vir die Raspberry Pi
- PC luidsprekers of soortgelyke
Ek sou raai om 'n Raspberry Pi 3 te gebruik, indien moontlik, aangesien dit meer rekenaarkrag het, wat 'n meer responsiewe en aangename klank tot gevolg het. Dit kan goed werk met 'n Raspberry Pi 2 met 'n bietjie aanpassing, maar ek sou nie probeer om die oorspronklike Raspberry Pi vir hierdie projek te gebruik nie.
HC -SR04 ultrasoniese sensors het 4 verbindings - 5V, GND, Trigger en Echo. Tipies is Trigger en Echo gekoppel aan aparte penne op 'n mikrobeheerder of Raspberry Pi, maar dit beteken dat u 16 penne moet gebruik om 8 sensors aan te sluit, en dit is nie prakties nie. Dit is waar die Octasonic -uitbreekbord inkom. Hierdie bord maak verbinding met al die sensors en het 'n toegewyde mikrobeheerder wat die sensors monitor en dan met die Raspberry Pi via SPI kommunikeer.
HC-SR04 benodig 5V en die Raspberry Pi is slegs 3.3V, daarom het ons ook die logika-omskakelaar nodig wat die Raspberry Pi aan die Octasonic-uitbreekbord kan koppel.
Stap 2: Koppel die ultrasoniese sensors aan die Octasonic -bord
Gebruik 4 vroulike-vroulike jumperdrade om elke ultrasoniese sensor aan die bord te koppel, en wees versigtig om hulle op die regte manier aan te sluit. Die bord is so ontwerp dat die penne in dieselfde volgorde is as die penne op die ultrasoniese sensor. Van links na regs op die bord is die penne GND, Trigger, Echo, 5V.
Stap 3: Koppel die Logic Level Converter aan die Octasonic Board
Die Raspberry Pi en Octasonic Board kommunikeer oor SPI. SPI gebruik 4 drade:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Seriële klok (SCK)
- Slave Select (SS)
Boonop moet ons krag (5V en GND) aansluit.
Die logika -omskakelaar het twee kante - 'n lae spanning (LV) en 'n hoë spanning (HV). Die Framboos sal aan die LV -kant aansluit, aangesien dit 3.3V is. Die Octasonic sal aan die HV -kant koppel, aangesien dit 5V is.
Hierdie stap is om die Octasonic aan die HV -kant van die logika -omskakelaar te koppel
Sien die foto wat by hierdie stap aangeheg is, en wys watter penne aan die logika -omskakelaar gekoppel moet word.
Die verbindings van die Octasonic na die Logic Level converter moet soos volg wees:
- 5V tot HV
- SCK na HV4
- MISO na HV3
- MOSI tot HV2
- SS tot HV1
- GND tot GND
Stap 4: Koppel die Logic Level Converter aan die Raspberry Pi
Die Raspberry Pi en Octasonic Board kommunikeer oor SPI. SPI gebruik 4 drade:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Seriële klok (SCK)
- Slave Select (SS)
Boonop moet ons krag (3.3V en GND) aansluit. Die logiese vlakomskakelaar het twee kante - 'n lae spanning (LV) en 'n hoë spanning (HV). Die Framboos sal aan die LV -kant aansluit, aangesien dit 3.3V is. Die Octasonic sal aan die HV -kant koppel, aangesien dit 5V is.
Hierdie stap is om die Raspberry Pi aan die LV -kant van die logika -omskakelaar te koppel
Die verbindings van die Raspbery Pi na die Logic Level -omskakelaar moet soos volg wees:
- 3.3V tot LV
- GPIO11 (SPI_SCLK) na LV4
- GPIO09 (SPI_MISO) na LV3
- GPIO10 (SPI_MOSI) tot LV2
- GPIO08 (SPI_CE0_N) SS na LV1
- GND tot GND
Gebruik die diagram wat by hierdie stap aangeheg is om die regte penne op die Raspberry Pi te vind!
Stap 5: Koppel Raspberry Pi 5V aan Octasonic 5V
Daar is nog 'n laaste draad om by te voeg. Ons moet die Octasonic -bord eintlik met 5V voed, so ons doen dit deur een van die Raspberry Pi 5V -penne aan die 5V -pen op die Octasonic AVR -kopstuk te koppel. Dit is die pen links onder in die AVR -kopblok (dit is die 2 x 3 -blok regs bo op die bord). Sien die aangehegte foto wat wys waar die AVR -blok is.
Sien die ander aangehegte diagram om die 5V -pen op die Raspberry Pi te vind.
Stap 6: Installeer sagteware
Installeer Raspian
Begin met 'n skoon installasie van Raspbian Jessie, en werk dit dan op na die nuutste weergawe:
sudo apt-get update
sudo apt-get upgrade
Aktiveer SPI
U moet SPI op die Raspberry Pi in staat stel om hierdie projek te laat werk! Gebruik die Raspberry Pi -konfigurasiehulpprogram om dit te doen.
Dit is ook belangrik om die Pi te herlaai nadat SPI in staat gestel is om in werking te tree
Installeer FluidSynth
Fluidsynth is 'n wonderlike gratis sagteware MIDI synth. U kan dit vanaf die opdragreël installeer met hierdie opdrag:
sudo apt-get installeer fluidsynth
Installeer die Rust -programmeertaal
Die Ultrasonic Pi Piano is geïmplementeer in die Rust Programming Language van Mozilla (dit is soos C ++ maar sonder die slegte stukkies). Dit is wat al die cool kinders deesdae gebruik.
Volg die instruksies op https://rustup.rs/ om Rust te installeer. Om u tyd te bespaar, is die instruksies om hierdie een opdrag uit te voer. U kan die standaardantwoorde op enige vrae tydens die installasie aanvaar.
OPMERKING: Sedert u hierdie instruksies geplaas het, is daar probleme met die installering van Rust op die Raspberry Pi. Slegte tydsberekening:-/ maar ek het die onderstaande opdrag aangepas om die probleem op te los. Hopelik sal hulle dit gou regmaak. Ek werk daaraan om 'n beeld te skep wat mense kan aflaai en op 'n SD -kaart kan verbrand. As u dit wil hê, kontak my gerus.
uitvoer RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | sh
Laai die Ultrasonic Pi Piano -bronkode af
Die bronkode vir die Ultrasonic Pi Piano -bronkode word op github aangebied. Daar is twee opsies om die kode te kry. As u bekend is met git en github, kan u die repo kloon:
git kloon [email protected]: TheGizmoDojo/UltrasonicPiPiano.git
U kan ook 'n zip -lêer met die nuutste kode aflaai.
Stel die bronkode saam
cd UltrasonicPiPiano
vragbou -vrystelling
Toets die kode
Voordat ons in die volgende stap gaan musiek maak, moet ons seker maak dat die sagteware werk en dat ons geldige data van die sensors kan lees.
Gebruik die volgende opdrag om die toepassing uit te voer. Dit sal data van die sensors lees en dit vertaal in MIDI -notas wat dan op die konsole uitgedruk word. As u u hand oor die sensors beweeg, moet u sien dat data gegenereer word. Indien nie, gaan dan na die afdeling vir probleemoplossing aan die einde van hierdie instruksie.
vragloop -vrystelling
As u nuuskierig is, sê die "-release" vlag dat Rust die kode so doeltreffend as moontlik moet saamstel, in teenstelling met die standaard "--debug" instelling.
Stap 7: Maak musiek
Maak seker dat u nog steeds in die gids is waar u die bronkode afgelaai het en voer die volgende opdrag uit.
Hierdie "run.sh" -skripsie sorg dat die kode saamgestel is en voer dan die kode uit, wat die uitset in fluidsynth lei.
./run.sh
Maak seker dat u versterkte luidsprekers gekoppel het aan die 3,5 mm -klankaansluiting op die Raspberry Pi en dat u musiek moet hoor terwyl u u hande oor die sensors beweeg.
As u nie musiek hoor nie en 'n HDMI -monitor aangeheg het, gaan die klankuitset waarskynlik eerder daarheen. Om dit reg te stel, voer hierdie opdrag uit en begin dan weer die Pi Piano:
sudo amixer cset numid = 3 1
Verandering van die volume
Die volume (of "versterking") word gespesifiseer met die parameter "-g" tot fluidsynth. U kan die run.sh -script verander en hierdie waarde verander. Let daarop dat klein veranderinge in hierdie parameter 'n groot volumeverandering tot gevolg het, dus probeer om dit met klein hoeveelhede te verhoog (soos 0.1 of 0.2).
Stap 8: Gebaarbeheer
Sien die video wat by hierdie stap aangeheg is vir 'n volledige demonstrasie van die projek, insluitend hoe die gebaarkontroles werk.
Die konsep is baie eenvoudig. Die sagteware hou by watter sensors bedek is (binne 10 cm) en watter nie. Dit beteken 8 binêre getalle (1 of 0). Dit is baie gerieflik, aangesien 'n reeks van 8 binêre getalle 'n "byte" maak wat getalle tussen 0 en 255 kan verteenwoordig. As u nog nie weet van binêre getalle nie, beveel ek u sterk aan om na 'n tutoriaal te soek. Binêre getalle is 'n fundamentele vaardigheid om te leer as u meer wil leer oor programmering.
Die sagteware karteer die huidige toestand van die sensors na 'n enkele greep wat die huidige gebaar voorstel. As die getal vir 'n aantal siklusse dieselfde bly, werk die sagteware op die gebaar.
Omdat ultraklank -sensors nie baie betroubaar is nie en die sensor kan inmeng, kan u geduldig wees wanneer u die gebare gebruik. Probeer om die afstand tussen die sensors en die hoek waarin u u hande hou, te wissel. U probeer ook om iets plat en stewig oor die sensors te hou om die klank beter te weerspieël.
Stap 9: Maak 'n bylaag
As u van hierdie 'n permanente uitstalling wil maak en dit aan mense kan wys, wil u waarskynlik 'n omhulsel maak. Dit kan gemaak word van hout, karton of baie ander materiale. Hier is 'n video wat die omhulsel wys waaraan ons werk vir hierdie projek. Dit is gemaak van hout, met gate geboor om die ultrasoniese sensors op hul plek te hou.
Stap 10: Probleemoplossing en volgende stappe
Probleemoplossing
As die projek nie werk nie, is dit gewoonlik 'n bedradingfout. Neem die tyd om al die verbindings te kontroleer.
'N Ander algemene probleem is dat SPI nie in staat is om die pi weer te begin nie.
Besoek https://theotherandygrove.com/octasonic/ vir volledige dokumentasie, insluitend wenke vir probleemoplossing, met Rust- en Python -spesifieke artikels, en ook inligting oor hoe u ondersteuning kan kry.
Volgende stappe
Sodra die projek werk, beveel ek aan om met die kode te eksperimenteer en verskillende musiekinstrumente te probeer. MIDI -instrumentkodes is tussen 1 en 127 en word hier gedokumenteer.
Wil u 'n enkele musiekinstrument hê met elke sensor wat 'n ander oktaaf speel? Miskien wil u hê dat elke sensor eerder 'n aparte instrument moet wees? Die moontlikhede is byna onbeperk!
Ek hoop dat u hierdie instruksies geniet het. Hou daarvan as u dit gedoen het, en teken in op my hier en op my YouTube -kanaal om toekomstige projekte te sien.
Aanbeveel:
Arduino -alarm met ultrasoniese sensor: 5 stappe (met foto's)
Arduino -alarm met ultrasoniese sensor: hierdie instruksie handel oor hoe u self 'n maklike en goedkoop alarm kan maak. Al wat u nodig het, is basiese kennis in elektronika en arduino -programmering. As u enige vrae of probleme het, kan u my op my e -pos kontak: iwx [email protected] Hier
Hindernis om robot te vermy met behulp van ultrasoniese sensors: 9 stappe (met foto's)
Obstacle Vermy Robot Using Ultrasonic Sensors: Dit is 'n eenvoudige projek oor Obstacle Vermy Robot met behulp van Ultrasonic sensors (HC SR 04) en Arduino Uno board.Robot beweeg om hindernisse te vermy en die beste manier te kies om deur sensors te volg. Let daarop dat dit nie 'n tutoriaalprojek, deel jou
Bluetooth -muis met ultrasoniese sensor en fotosel: 10 stappe (met foto's)
Bluetooth -muis met ultrasoniese sensor en fotosel: 'n Inleiding tot die rede waarom ek hierdie projek gemaak het. Ek is tans op soek na 'n katjie in my nuwe huis aanneem. En nadat ek deur 'n paar speelbare goed vir katte gegaan het, het ek gedink: hoekom nie self 'n speelding maak nie. Ek het dus 'n Bluetooth -muis gemaak. U kan
Arduino -gebaseerde outonome bot met behulp van ultrasoniese sensor: 5 stappe (met foto's)
Arduino -gebaseerde outonome bot met behulp van ultraklank -sensor: skep u eie outonome bot op arduino met behulp van ultraklank -sensor. Wat dit eintlik doen, is dat dit enige hindernisse opspoor en die beste besluit
Ultrasoniese afstandsmeter met deure: 7 stappe (met foto's)
Ultrasoniese afstandsmeter met deure: Die ultrasoniese afstandsmeter ontdek of daar iets in sy pad is deur 'n hoëfrekwensie -klankgolf uit te stuur. Die fokus van hierdie instruksies sal wees hoe deure en ultraklankafstandzoekers kan saamwerk, spesifiek hoe hulle gebruik kan word om op te spoor wanneer