Datavetenskap, Data- och informationsteknik,
            Chalmers Tekniska Högskola och Göteborgs Universitet

Processing

Interaktionsdesign - projekt TDA500

Processing är ett relativt nytt programmeringspråk / utvecklingsmiljö, i första hand tänkt som ett redskap för de som vill kunna dra nytta av datorer och programmering men som inte är experter på tekniska detaljer inom programmering, och kanske inte heller vill lägga den tid som krävs för att bli expert. Processing har en stark tonvikt på visuella effekter och interaktion, även om mycket annat finns med också. Processing bygger på Java, och i själva Processing är ett Open Source-projekt som har initierats av Ben Fry och Casey Reas vid Aesthetics + ComputationMIT Media Lab.

Installation av Processing

För att kunna använda Processing behöver du ladda ner och installera följande filer:

Processing självt.
http://processing.org/download/
Senaste stabila version är 0068 alpha. Det kanske låter som en väldigt tidig release men det fungerar rätt stabilt. Processing distrubueras i två olika varianter. Standardversionen innehåller även Java (JDK 1.4.nånting tror jag) och allt är förkonfigurerat. Denna är enklast att använda. Expert-versionen innehåller enbart Processing och inte Java. Den kan du välja om du redan har JDK installerat, eller kanske föredrar den senaste JDK:n (1.5.0) som har bättre stöd för grafik än tidigare versioner. Väljer du denna måste du även manuellt installera Java Comm-API för att kunna hantera serieportar.
Pack upp zip-filen på lämpligt ställe, t.ex. c:\processing. För att starta Processing, dubbelklicka på scriptfilen "run.bat" (alternativt "run-expert.bat"). Kör inte Processing.exe direkt eftersom du då missar inställningar av diverse environment-variabler som behövs för Java.

Apple iTunes + QuickTime
För att kunna hantera video krävs att du har QuickTime for Java installerat. Detta kan laddas hem gratis från Apple men det är en aning omständigt, speciellt som man inte längre kan installera QuickTime utan att samtidigt få iTunes på köpet. Här följer ganska utförliga instruktioner på hur du gör:

Ladda ner iTunesSetup.exe från Apple på http://www.apple.com/quicktime/download/
Installera iTunes/QuickTime. Ta bort bockarna för att ha iTunes som default mediaspelare etc (om du inte väldigt gärna vill ha det :). Slutför installationen.
Högerklicka på QuickTime-ikonen som dyker upp i Taskbaren (ett blått Q). Välj "QuickTime preferences".
Välj "Update Check" i menyn, näst längst ner. Markera "Update and install additional QuickTime software" och klicka på "Update".
I nästa meny, klicka på "custom". Markera "QuickTime for Java" i listan och klicka sedan på "Update Now". Klart!

VDIG
WinVDIG krävs för att QuickTime ska kunna använda sig av standard videokameror under Windows.
http://www.vdig.com/WinVDIG/

Java
Om valt expertversionen av Processing så behöver du även Java. Även om du redan har en JDK installerad kanske du vill uppgradera till den senaste versionen. Den hittar du här:
http://java.sun.com/j2se/1.5.0/download.jsp
Du behöver antagligen också Java Comm-API, för att komma åt serieportar, och därmed t.ex. BX-24, från Java.
http://java.sun.com/products/javacomm/downloads/

Övningar

Fredag 4/2
Individuella övningar, eller i små grupper om ni så vill.
Installera Processing på din dator. Installera även stöd för videokamera.

Titta igenom ett par exempel, gärna alla, i varje kategori på http://processing.org/learning/. Exemplen beskrivs med källkod och illustreras av exekverande programkod i en applet på webbsidan. Prova att ladda in samma exempel i Processing-utvecklingsmiljön. Ändra på en eller ett par parametrar i programkoden, och provkör programmet igen. Försök att förstå hur det fungerar.

Gå snabbt igenom kursen (tutorial) Procedural Painting av Daniel Shiffman från ITP. Titta igenom alla modulerna (Intro t.o.m. Computer Vision). Klipp ut källkoden för ett antal exempel och klistra in i Processing (skapa en ny sketch för varje exempel). Utforska koden och prova att ändra på vissa detaljer.


Tisdag 8/2 och fredag 11/2
Övning med halva klassen åt gången. Tisdag är en av dagarna för CHARM, Chalmers Arbetsmarknadsdagar. Om du vill gå till CHARM under tisdagen så välj fredag som övningstillfälle.

Förberedelser:
Mjukvara: Se till att Processing, Java, Quicktime for Java samt VDIG är korrekt installerat på din dator (se ovan). Du behöver även utvecklingsmiljön för BX-24 ifall du inte redan har den installerad. Du kommer även att behöva Sonia, en audio-plug-in till Processing.
Hårdvara: En USB-videokamera per grupp, vi har 10st kameror att låna ut, samt mikrofon. En USB-till-serieports-omvandlare, ifall du inte redan har en serieport på din PC. En experimentplatta, en BX-24, en seriekable för BX-24:an, en nätadapter för att ge ström till BX-24:an, och diverse mindre elektronikkomponenter som ni får av övningsledaren.

Övningar:

1. Koppla in en tryckknapp på pin 13 på en BX-24, i enlighet med exemplet på binär input. Tänk på pull-up motstånd. Provkör programmet och se till att det fungerar. Ändra Processing-koden så att du istället kontrollerar X-axeln i en rektangel.
Koppla in en till tryckknapp till BX-24:an på pin 14. Skriv om BX-24-koden så att du skickar data över seriekablen även för denna tryckknapp. Ändra i Processingkoden så att denna tryckknapp styr den andra dimensionen, Y-axeln i rektangeln.

2. Gör en ny koppling med BX-24:an som istället använder analog input och skickar värden till Processing-programmet via seriekabeln. Använd valfri sensor eller inputdon som ni kan läsa analoga värdlen från, t.ex. en skjutpotentiometer, en vridpotentiometer, en resistiv ljussensor, eller en IR-baserad avståndssensor som Sharp GP2D12. Utgå från exemplet med en sfär som styrs med musen. Ändra i programmet så att ni kontrollerar rotationen i X-led (variabeln mouseY) på sfären med hjälp av er sensor stället för med musen. Tänk på att skala om sensorvärdet till lämpligt intervall för det ni ska styra.
Koppla in ytterligare en analog sensor av valfri typ. Skriv om seriekommunikationsprotokollet, och därmed programkoden för både BX-24 och Processing, så att ni kan skilja på sensordata från respektive sensor. Skala om mätvärdet från den andra sensorn till lämpligt intervall och byt ut variabeln mouseX i Processing-programmet mot denna styrsignal.

3. Skicka data åt andra hållet, från Processing till BX-24:an. Använd Sonia för att i realtid analysera ljud från en mikrofon. Använd LiveInput.getLevel(Sonia.LEFT) för att mäta ljudnivån. Skicka denna data över serieporten till BX-24:an, och använd den för att reglera ljusnivån på en lysdiod (alternativt för att reglera varvtalet på en liten fläkt).

4. Ladda ner och installera WebCamXtra. Prova samtliga exempel som följer med för att få en känsla för vad som går att göra med videotracking i realtid.

Referensmanual för Processing



Senast ändrad: 2005-02-08