
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 + Computation på
MIT 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.
Senast
ändrad: 2005-02-08