Beröring-känslig musikaliska målning (7 / 9 steg)

Steg 7: Programmera din styrelse

Följande kod kan du programmera ditt Teensy styrelse att skicka MIDI till din dator. Du kan också hämta koden på GitHub.

int bounceThreshold = 0; en press måste senaste här många loop cykler (ca 20ms varje) före utlösning.
högre värden göra det mindre känslig, färre falska triggers, högre latency
#define NUM_INPUTS 44
int kanal = 1;
Redigera denna matris för att ändra MIDI-noter skickas
int platser [NUM_INPUTS] = {
79, 84, 75, 67, 65, 63, / / topp av styrelsen (upp, vänster, ner, höger, utrymme, klicka)
60, 62, 77, 68, 58, 56, / / vänster sidan av kvinnliga sidhuvud, w, a, s, d, f, g
51, 53, 48, 55, 72, 74 / / höger sida av kvinnliga sidhuvud, upp, ner, vänster, höger, vänster-klicka, högerklicka
//};
teensy makey pin-koder
int pinNumbers [NUM_INPUTS] = {
0,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17, / / vänster sida börjar på USB-kontakten, pin D0, hoppa över D6
26,25,24,23,22,21,20,19,18,38,39,40,41,42,43,44,45, / / höger sida börjar på USB-kontakten är stift B6, hoppa över gnd och aref
36,37,32,33,34,35,28,29,30,31 / / detta är "interiör" genomgående hål, i mitten av styrelsen
};
Cap känsla tröskelvärden för varje stift
denna är proportionerlig till kapacitans på PIN-koden som kommer att räknas som en press
Det är enheter av en mycket liten enhet tid, i iterationer genom en upprullad loop
högre värden göra det mindre känsliga (dvs. kräva större kapacitans)
int capThresholds [NUM_INPUTS] = {
1, 1, 1, 1, 1, 2,
2, 2, 1, 1, 1, 1,
2, 1, 1, 1, 1, 1,
//};
int bounceCounter [NUM_INPUTS];
Boolean pressade [NUM_INPUTS],
void setup() {
för (int jag = 0; jag
void loop() {
för (int jag = 0; i1) {/ / om vi upptäcker en touch på stiftet
om (! pressed[i]) {/ / och om vi inte redan är tryckt
bounceCounter [i] ++; ökar värdet för räknaren bounce
om (bounceCounter [i] > bounceThreshold) {/ / om vi är över tröskeln bounce
usbMIDI.sendNoteOn(60+i,127,channel); Skicka en MIDI-not
tryckte [i] = true; kom ihåg det trycktes
bounceCounter [i] = 0; Återställ räknaren bounce
}
}
}
annat {/ / om vi inte gör en identifiera touch på stiftet
om (pressed[i]) {/ / om knapptryckningen innan
usbMIDI.sendNoteOff(60+i,127,channel); Skicka en MIDI-not
tryckte [i] = false; minns vi inte trycker
bounceCounter [i] = 0; Återställ räknaren bounce
}
}
}
Serial.println("");
}
CapacitiveSensor handledning från http://www.arduino.cc/playground/Code/CapacitiveS...
readCapacitivePin
Ingång: Arduino pin-kod
Utgång: Flera, från 0 till 17 uttrycker
Hur mycket kapacitans är på stiftet
När du rör den PIN-kod, eller vad du har
fäst vid den, kommer att hur många få högre
uint8_t readCapacitivePin (int pinToMeasure) {
Variabler som används för att översätta från Arduino att AVR pin namngivning
flyktiga uint8_t * hamn.
flyktiga uint8_t * ddr;
flyktiga uint8_t * pin;
Här översätter vi ingångsstift numret från
Arduino pin-kod till AVR PORT, PIN, DDR,
och vilken bit av dessa register vi bryr oss om.
bitmask som byte;
Port = portOutputRegister(digitalPinToPort(pinToMeasure));
DDR = portModeRegister(digitalPinToPort(pinToMeasure));
bitmask = digitalPinToBitMask(pinToMeasure);
PIN-kod = portInputRegister(digitalPinToPort(pinToMeasure));
Ansvarsfrihet stiftet först genom att ange det låga och utdata
* port & = ~ (bitmask);
* ddr | = bitmask;
Delay(1);
Gör stiftet indata med inre pull-up på
* ddr & = ~ (bitmask);
* port | = bitmask;
Nu se hur länge den PIN-kod får dras. Denna manuella slangen av slingan
minskar antalet hårdvara cykler mellan varje läsning av klämma fast,
vilket ökar känsligheten.
uint8_t cykler = 17;
om (* pin & bitmask) {
cykler = 0;
}
annars om (* pin & bitmask) {
cykler = 1;
}
annars om (* pin & bitmask) {
cykler = 2;
}
annars om (* pin & bitmask) {
cykler = 3;
}
annars om (* pin & bitmask) {
cykler = 4;
}
annars om (* pin & bitmask) {
cykler = 5;
}
annars om (* pin & bitmask) {
cykler = 6;
}
annars om (* pin & bitmask) {
cykler = 7.
}
annars om (* pin & bitmask) {
cykler = 8.
}
annars om (* pin & bitmask) {
cykler = 9.
}
annars om (* pin & bitmask) {
cykler = 10;
}
annars om (* pin & bitmask) {
cykler = 11;
}
annars om (* pin & bitmask) {
cykler = 12.
}
annars om (* pin & bitmask) {
cykler = 13.
}
annars om (* pin & bitmask) {
cykler = 14.
}
annars om (* pin & bitmask) {
cykler = 15.
}
annars om (* pin & bitmask) {
cykler = 16.
}
Ansvarsfrihet PIN-koden igen genom att ange det låga och utdata
Det är viktigt att lämna stiften låg om du vill
att kunna röra mer än 1 sensor på en gång - om
sensorn är kvar drog hög, när du rör
två sensorer, din kropp kommer att överföra laddningen mellan
sensorer.
* port & = ~ (bitmask);
* ddr | = bitmask;
returnera cykler;
}

Se Steg
Relaterade Ämnen

Flerfärgade ljus målare (beröring känslig)

Ljus målning är en fotografisk teknik används för att skapa specialeffekter på långa slutartider. Oftast används en ficklampa för att "måla" bilderna. I detta Instructable kommer jag visa dig hur man bygger en allt i en ljus målare med touch väx...

Göra ett oscilloskop med SainSmart Mega2560 med TFT LCD sköld och 3.5 "Cologne beröring skärm

Detta instructable visar dig hur man bygger en bärbar pekskärmOscilloskop för mindre än 40 U$!Oscilloskopet är en av de mest kraftfulla elektroniska instrument somär tillgänglig för elektronik hobby, praktiker och ingenjörer. Det äranvänds främst til...

DIY Snabb Beröring upp för möbler

Jag gör en hel del möbler reparation och röra. Touch up kan vara svårt ibland. Professionell touch upp leveranser kan vara riktigt dyra. Men använder jag en blandning av artiklar från markörer och akvareller att färga och måla. Min en måste ha är ton...

Beställning av beröring menyn med Makey Makey

Detta visar att använda en enkel penna ritade menyn för att skapa en order av touch restaurangmeny. Projektet byggdes på maker utrymme i Omaha Maker grupp. Menyn beställning programmet byggdes Scratch 2.0 från MIT.StycklistaNågra ark vanligt kopiator...

Rör mig! Edison baserat beröring weblog

Detta instructable guidar dig steg för steg till:Konfigurera din Intel® Edison Arduino ombord med Grove Starter Kit Plus V2.0Läs grundläggande sensor information (knappen / touch sensor)Visa meddelanden på Grove - LCD-skärmkommunicera från Arduino ID...

LG enV beröring teman

här är min LG teman. Inte riktigt något berättar som hur man gör det, men oavsett.Steg 1: SoUnDwAvE Detta är ett tema löst baserad på ljud.Steg 2: Sprucken LCD jag fick denna idé från spruckna LCD-skärmen upptåg. Det är ganska exakt... Jag tror. xD...

Sublimator LCD beröring skärm mod

Sublimator (http://sublimator.ca/) är en stor enhet, men den analoga justeringen på det lämnar mycket att önska. I denna guide ska jag visa dig hur man byter lager elektronik med en LCD-pekskärm för en enklare temperatur justering upplevelse. Denna m...

Hur man gör penna för någon beröring skärm

Bygg material:-Penna eller penna-Aluminiumfolie...

En-beröring Keypad Masher

slösa värdefull sekunder att skriva in en kod varje gång du behöver öppna dörren?Denna lilla enhet effektiviserar processen genom att trycka på rätt knappar för dig och kan döljas i handflatan så att du helt enkelt mosa handen mot knappsatsen och - t...

Raspberry Pi Pad! Kapacitiv beröring skärm tavlan!

En kort guide för att göra din alldeles egna touchscreen pi pad!Element14 kapacitiv pekskärm £60Apple ipad mini batteri £10Litium batteriladdare och 5v usb 2a förare ombord på £5Raspberry pi 2 £35Lödkolv och färdigheterPly trä och såg färdigheter £5D...

HY28B beröring uppvisning med Raspberry Pi

Det finns en hel del skärmar där ute som kan användas med RPi. Förutom de som har en HDMI-adapter eller att vara ansluten via komposit utgång de flesta nakna ben visar sig ha en parallell eller seriell datagränssnitt. Båda dessa två sista typer måste...

Sexig Ipod beröring Generator 2 vertikala docka från allt i rutan

här är hur man gör en mycket sexig och rena snygga Ipod Touch docka som kan ta upp din extra kablar som använder något annat än förpackningen ipod kom med.Detta fungerar bara med generation två inslag som kommer i det hårt plast skalet.Du behöverKlar...

Komma i beröring med din inre Chip

om du läser detta på instructable webbplatsen du nästan säkert använder en dator för att göra det. Och som de flesta av er vet datorer använder mikrochips för att bearbeta all information de arbetar med och lagra. Du kanske även har sett IC marker mo...

ElectroPlush - sovande Nalle som vaknar upp när beröring på magen

med detta Instructable, kommer du att kunna göra den typiska nallebjörn plysch leksak och hacka den med vissa kretsar för att göra det "vakna upp" när dess mage vidrörs. ElectroPlush använder kapacitiv avkänning på sin mage, lysdioder på dess ög...

RFID-läsaren detektor och Tilt-känslig RFID-Tag

'Klämmer'Vill du upptäcka förekomsten av RFID-läsare? Vill styra när en RFID-tagg är aktiv eller lättläst? Beskrivs hur man kan göra både med bitar av koppar och kort och några lättillgängliga elektronik maskinvara.Längre ingressRadiofrekvensidentifi...

Elektriskt ledande gummi: Göra Touch känsliga Robot hud

göra elektriskt ledande gummi och använda den för att skapa en flexibel touch känsliga robot hud. Den resulterande hud kan sträckte sig över en ram eller monterade på fasta ytor. Det kan också monteras på böjda ytor eller kläder.Det är beröringskänsl...

Kram & touch känsliga Instructables robot patch

jag alltid velat göra en enkel men bra projekt med denna patch, och "fickformat" tävlingen kändes som ett perfekt tillfälle att göra en robot maskot.Denna chap sitter i min skjorta ficka, precis som i tävlingen ikonen, och går med mig var som he...

Touch känsliga ljud skrivbord brickor - Arduino

Efter att ha avslutat min första Arduino projekt (som kan hittas här) ville jag försöka skapa något som hade mer av en praktisk användning. Min tanke bakom detta projekt var ett sätt för att hjälpa synskadade.I slutet av detta projekt har du skapat n...

FSR Tutorial!

Vad är en Force känsliga motstånd?FSRs är sensorer som gör att du kan upptäcka fysiskt tryck, klämma och vikt. De är enkla att använda och låg kostnad.FSRS är i grunden en resistor som ändrar dess resistiv värde (i ohm) beroende på hur mycket dess pr...