Sonifying kapacitiv Data över Serial Port med Teensy och SuperCollider (OSX och Linux) (3 / 4 steg)

Steg 3: Kör Teensy skissen och skicka seriella data



När du är igång med Teensy genom att hänvisa till: http://www.pjrc.com/teensy/td_download.html och några exempel program som körs, bör du vara redo att installera och köra den bifogade exempel skiss som tillhandahålls.

< p > //calibration < br > int avg_reading1, avg_reading2, avg_reading3, avg_reading4, avg_reading5;
int count_cal_readings = 0;
långa total1, total2, total3, total4, total5;
int cap_read1, cap_read2, cap_read3, cap_read4, cap_read5;
booleska done_cal = false;
använda
int touch_threshold;
debug
booleska debug;
int tval1, tval2, tval3, tval4, tval5;
int t_val1, t_val2, t_val3, t_val4, t_val5; < /p >< p > void setup() {

Felsöka = false;

Serial.BEGIN(9600);
done_cal = false;
touch_threshold = 0;
IF(debug==true) {
Serial.println("Starting...");
Delay(1000);
{} < /p >< p >} < /p >< p > void loop() {
cap_read1 = touchRead(A1);
cap_read2 = touchRead(A2);
cap_read3 = touchRead(A3);
cap_read4 = touchRead(A4);
cap_read5 = touchRead(A5);

IF(done_cal==true) {//RUNNING
Delay(10);
t_val1 = abs (cap_read1 - avg_reading1);
Delay(1);
t_val2 = abs (cap_read2 - avg_reading2);
Delay(1);
t_val3 = abs (cap_read3 - avg_reading3);
Delay(1);
t_val4 = abs (cap_read4 - avg_reading4);
Delay(1);
t_val5 = abs (cap_read5 - avg_reading5);

IF(t_val1 > touch_threshold) {
IF(debug==true) {
Serial.Print ("Raw touchRead data [");
Serial.Print(cap_read1); Serial.Print("");
Serial.Print(cap_read2); Serial.Print("");
Serial.Print(cap_read3); Serial.Print("");
Serial.Print(cap_read4); Serial.Print("");
Serial.Print(cap_read5);
Serial.println();

Serial.Print ("] \n");
Serial.Print ("Touch kalibrerade värde [");
Serial.Print(t_val1); Serial.Print("\t"); Serial.Print(t_val2);
Serial.Print("]\n");
} annat {
int tval1 = karta (t_val1, 1, 65536, 200, 1200);
int tval2 = karta (t_val2, 1, 65536, 200, 1200);
int tval3 = karta (t_val3, 1, 65536, 200, 1200);
int tval4 = karta (t_val4, 1, 65536, 200, 1200);
int tval5 = karta (t_val5, 1, 65536, 200, 1200);
Serial.Print(tval1); Serial.Print("");
Serial.Print(tval2); Serial.Print("");
Serial.Print(tval3); Serial.Print("");
Serial.Print(tval4); Serial.Print("");
Serial.Print(tval5);
Serial.println();
}
} annat {//CALIBRATION < /p >< p > if(millis() < 5000 & & done_cal == false) {//first fem sekunder, kalibrera
total1 += cap_read1;
total2 += cap_read2;
total3 += cap_read3;
total4 += cap_read4;
total5 += cap_read5;
count_cal_readings ++;
IF(debug==true) {
Serial.Print(cap_read1); Serial.Print("");
Serial.Print(cap_read2); Serial.Print("");
Serial.Print(cap_read3); Serial.Print("");
Serial.Print(cap_read4); Serial.Print("");
Serial.Print(cap_read5);
Serial.println();
}
} annat {
avg_reading1 = int(total1/count_cal_readings);
avg_reading2 = int(total2/count_cal_readings);
avg_reading3 = int(total3/count_cal_readings);
avg_reading4 = int(total4/count_cal_readings);
avg_reading5 = int(total5/count_cal_readings);
done_cal = sant;
IF(debug==true) {
Serial.println("~~");
Serial.println("AVG");
Serial.Print (avg_reading1 + "");
Serial.Print (avg_reading2 + "");
Serial.Print (avg_reading3 + "");
Serial.Print (avg_reading4 + "");
Serial.println(avg_reading5);
Serial.println("~~");
Delay(1000);
}
}

}

Delay(25); < /p >< p >} < /p >

Observera att denna skiss kod har en kort kalibreringsfasen som det går igenom i initieringen av varje ny kör. Så för att få de mest exakta avläsningarna, dess ' alltid en god idé att ha dina händer utanför Teensy och kablar, och inte har kablarna röra marken eller metall när du först ansluter den. Om du anger flaggan DEBUG till true i skissen kan du se kalibreringsfasen i konsolen Arduino.

När kalibreringen är klar, kommer du då se omgivande numeriskt värden i rulla på skärmen. De faktiska touchRead värden kommer från Teensy är 16 bitar i storlek och sträcker sig från 1-65536 men jag har kartlagt produktionsvärden ner till en mer smal (mindre irriterande) hörbara frekvensområdet för 200-1200 i .ino skissen.

Se Steg
Relaterade Ämnen

InPace - en Arduino baserad GPS-data logga fitness armband med bluetooth och en iOS app

InPace är en Arduino baserat fitness armband, med åtföljande iOS ansökan, som kan ge levande feedback på hur användaren pacing sig under en springa, gå eller cykla rutten. Det spår GPS lokaliseringarna och aktuella tider att jämföra användare nuvaran...

Logger för Arduino över Serial Port

Jag är lite trött på att använda följetong som logger - främst av två skäl: det stöder inte sprintf syntax och sträng sitter i RAM. Därför har jag genomfört nya bibliotek: https://github.com/maciejmiklas/ArdLogArdLog serverar enkel logger för Arduino...

Online realtid geigermätare att övervaka radioaktivitetsnivåerna i luften. Med Arduino och Linux-dator.

Instructable beskriver en geigermätare som är ansluten till internet så att andra människor kan också övervaka omgivande strålningssituationen....

Serial Port över WiFi

Datakommunikation mellan elektroniska enheter är oundviklig i många elektroniska projekt och ger många fördelar i projektet dvs ansluta din microcontroller till PC och övervaka data på en stor färgglad display istället för små monokrom LCD. När man t...

Power övervakning med Arduino och logga in i Google blad

Sedan senaste veckorna tänkte jag på att göra ett projekt som kan hjälpa mig att hålla ett spår på min dagliga energi användningsområden. I detta projekt använder jag en 30A övervakning styrelse. denna styrelse har 6 strömsensor som kan läsa upp till...

Fyra bokstäver Word klocka med Akafugu ordet Generator och inspirerande fraser

Detta är min version av fyra brev ord klockan, en idé som har sitt ursprung tillbaka i 1970. Klockan visar en serie av fyra - brev ord som genereras från antingen en random ord generator algoritm eller från en databas med tillhörande fyra - brev ord....

Enkla Guitar Hero Controller för PC med Teensy (kapabel för flera spelare)

Efter att den enkla tejpade upp DDR Pad, är det naturliga nästa steget naturligtvis en guitar hero controller :)Vad jag insåg är jag kommer att köra av stiften på min ombord om jag ville lägga till fler spelare.Lösningen?Med hjälp av analoga värde, v...

Kring låter feedback box-SSFBB (gjort med teensy)

Uppdatering 6/5 2016: Spektrogram på vägIdén till detta projekt kom halv olycka medan spela runt med teensy 3.2 det har hästkrafter till hande mycket saker, här realtid ljud beräkningar och smidigt uppdatera FFT, rullande topp mätaren (de på 2.2" ILI...

Musikspelare med Teensy 3.1

Teensy 3.1 från PJRC har en kraftfull ARM-processor med DSP instruktioner. Ljudprogram underlättas av PJRC'S audio adapter och ljudprogram bibliotek. Min musikspelare är en inledande undersökning av denna potential, och spelar WAV-filer från den audi...

Generera berättelse karaktär namn med Teensy

jag är en författare och ibland är det svårt att komma med namn för tecken som ska användas i en berättelse. Vad jag gjorde var att göra en USB-enhet att komma med storybook tecken på en push av en knäppas.Jag blev inspirerad av knappen Awesome gjort...

Om fastställande av Mac Lilypad USB Serial Port/Driver frågan

Är din Mac mindre än 2 år gammal?Har du nyligen uppgraderat till senaste OS (Yosemite eller något nyare)?Har din Lilypad USBs/MP3s inte längre fungerar?Min tutorial ska show dig hur jag fixade min Lilypad USBs.Felet jag stötte på var relaterat till e...

Data över ljus: en Laser Modem prototyp

Detta projekt var motiverat av en önskan att analysera och diskutera bristerna i vårt beroende av företagens kommunikationsnätverk.Som vi hålla delegera mer av vår vardag till färre digitala plattformar, med sladdar och torn ägs av en handfull teleko...

Skicka SMS från Arduino över Internet med ENC28J60 och Thingspeak

Detta Instructable förklarar hur du skickar ett SMS från en Arduino använder Internet. Det finns många sätt att närma sig detta och jag kommer att förklara ett av de olika metoder som används för att utföra denna uppgift.Några viktiga punkter som beh...

Bearbetning av Data med RasPi och partikel (tidigare gnista)

Hälsningar! Välkommen till en annan Instructable från NextFab. I detta Instructable vi kommer att byta redskap lite och gör en Instructable som är mycket mer grundläggande baserat att vem som helst kan plocka upp och sedan utöka.Raspberry Pi 2 B är e...

ESP8266 och Visuino: fjärrstyra Servo över Wi-Fi med Rotary Encoder

ESP8266 -moduler är stor låg kostnad fristående styrsystem med inbyggd Wi-Fi. I detta Instructable kommer jag visa dig hur du kan fjärrstyra en Servo över Wi-Fi med en Rotary Encoder. Instructable är en liknande men mer avancerad version av "Arduino...

Hur man hittar området över ett intervall med hjälp av integraler.

I denna instuctable, kommer du att kunna lära sig att hitta arean under kurvan med hjälp av integraler.Steg 1: materialPapperPennaKalkylatornEkvationIntervalletSteg 2: Vet standardformuläret för integraler.Standardformuläret för integraler är på bild...

IoT - kontrollera en Raspberry Pi Robot över internet med HTML och shell skript endast

(Om du gillar detta Instructables, glöm inte att rösta på det (ovan: högra hörnet flaggan). det konkurrerar om SAKERNAS INTERNET och AUTOMATION tävlingar. Tack så mycket! ;-)I detta instructable, vi lära dig att skapa en helt kontrollerad IoT Raspber...

Bygga din Internet kontrollerad Video-Streaming Robot med Arduino och Raspberry Pi

< the Instructable och koden är redo. Njut! Lämna en kommentar med du feedback! >Jag är (aka LiquidCrystalDisplay / Itay), en 14 år gammal student från Israel lärande i Max Shein Junior High School för avancerad vetenskap och matematik. Jag gör dett...

Att skapa IoT enheter med ESP8266 och PubNub

Om du inte hade hört, är internet saker kungen av en stor sak. Snarare än att tråka ut er med förutsägelser om hur många miljarder enheter ansluts under nästa år, ska jag visa dig hur du enkelt skapar en IoT-enhet med hjälp av awesome ESP8266 WiFi mo...