Ultrasonic Piano (4 / 6 steg)
Steg 4: Hur det fungerar
Genomförandet har några bra knep för att få det att fungera väl.
I grund och botten tanken är när någon sätter sin hand nära en sensor spelar en urvalet anteckning.
Koden krävs att övervaka alla sensorer i realtid och spela noterar med som liten fördröjning som möjligt - flera toner samtidigt, i bakgrunden - alla tiden försöker undvika replikväxlning och debouncing detektorerna så de inte utlösa flera gånger som en hand flyttas framför.
Ultrasonic pulser som kontinuerligt skickas från detektorerna - och programvaran lyssnar efter ett eko - om detta eko hörs inom 1 millisekund - sedan ett objekt är mycket nära - ca 15-20 cm - så vi spelar en samplade ljud för att detektorn. En räckvidd upp till ett par meter skulle fungera - men vi ville att utesluta människor som gick förbi långt från tabellen.
För att få maximal realtid prestanda, använda vi som inte Arduino standardbibliotek - dessa kan bara övervaka en sensor i taget och tenderar att låsa upp för en sekund eller mer när ett objekt är långt borta. Ingen användning för en lyhörd piano.
Också - om du vill minska antalet kablar, som samt att göra den mer lyhörd - vi använder en utlösa för att utlösa alla senors på en gång - det fanns en oro för att detta kan innebära vissa överhörning mellan sensorer - men det fungerar bra i verkliga livet.
För att eliminera helt eventuella överhörning mellan sensorerna - filt material rullade och fastnat för att skapa 2 tum långa rör och bifogas varje sensor detektorerna att göra det mer riktad. Se denna länk för detaljer. Vi ansåg det onödigt, men du kan hitta det förbättrar separation av sensorer.
Allt detta krävs vi skapade vår egen ultraljud bibliotek kod då ping svar alla nio detektorer samtidigt - och för att filtrera bort falska värden som kan hända som oönskade dubbel aktivering 's i rad som kan hända.