Piolin elektroniska musikinstrument (4 / 17 steg)
Steg 4: Lägga till motstånd
Vi lödda vårt motstånd på plats - men oroa dig inte om du inte kan löda. Du kan också svepa motstånden tätt mellan bandet kablar då vik dem över och säkra dem med en tumme tack. För att beräkna rätt motstånd att använda, måste vi ta en titt på Scratch (som vi gjorde med hjälp av en Raspberry Pi men du kan också göra på en PC).
Vidare finns på i Instructable mycket mer information om hur du programmet grunden för detta projekt, så det rekommenderas att du läser hela vägen om du inte är bekant med den. För att spela en anteckning i början, du väljer ljud och sedan spela Obs [Markera din valda frekvens/not] för önskad längd. När du gör det, visar ett piano diagrammet. Scratch 60 värdet mellersta C. 0 är mycket låg och 100 är smärtsamt hög!
För att spela en låt du kan sträng ett antal "spela OBS" kommandon tillsammans, men för att göra ett levande instrument, såsom Piolin, använder vi en PicoBoard / Arduino till känsla där fören ligger på bron och ringen på banden. Titta på input kurvan för PicoBoard, för att få mitten C (ett värde av 60) behöver du ett motstånd värde på ca 15 000 ohm (15KΩ), men det skulle vara nästan omöjligt att tråd en massa motstånd i serie/parallell att få exakt rätt värde... och att upprätthålla värdet! Så denna design värden hämtas från instrumentet och mappar dem till oktaver och anteckningar. På detta sätt fråga de verkliga värdena från maskinvaran inte så mycket, så länge de är måttligt stabil och repeterbar.
PicoBoard har en inbyggd 10KΩ pull-up resistor, ombord A-D omvandlaren tar en analog inspänning och omvandlar den till ett värde mellan 0 och 1023, då grunden konverterar det till ett värde mellan 0 och 100. Ingående egenskaperna hos PicoBoard är därför inte linjär. Se figuren scratch värde på bilden.
Du kan kolla in Warwick University "avkänning vår värld" för några användbara resurser, inklusive en utförligare diskussion med PicoBoard, att välja ingång sensorer etc. (Vänligen notera, jag ritade och fram kurvan ovan som en del av Sensing vår värld workshop 2012, därför får jag återge den här... och det är ett bra tillfälle att peka som är intresserade av Scratch på en användbar uppsättning resurser)
När du väljer din motstånd, är målet att få en rimlig spridning av scratch värden som är så linjär som möjligt. Av en bit av försök och misstag hittade vi våra värderingar, som mappas i en av bilderna visas.
Nu har vi sladdar och kedjor av motstånd... i den verkliga världen dessa plocka upp buller (.. .especially från elnätet) så Scratch värdet kan "waver" något, så tidigt i design-fasen jag bestämde mig för att "finjustera" instrumentet, fören och ring genom mappning av Scratch värdena och sedan ta ett medelvärde mellan dessa värden att utföra testet på – att bestämma var på bron och gräma respektive.
Finns det bara 14 bandet kontakter, sista motståndet i kedjan är ansluten till kontakten block så är inte riktigt tillgängliga (därav N/A – inte tillgänglig).. .du kommer att märka men det finns nominellt 16 "medelvärden"... Detta är viktigt eftersom vi kan använda dem i en binär sökning i grunden skriptet. En binär sökning är deterministiskt, det tar samma tid varje gång eftersom det alltid 4 tester (med 16 värden), om vi bara jakt upp värdelistan ett lågt värde skulle matcha långt innan ett högre värde.
Med hjälp av samma process, vi fast beslutna att vi bör använda 1kΩ motstånd för att ansluta bron.