User:Nikkidepree

From DigitalCraft_Wiki
Revision as of 07:29, 6 July 2016 by Simon (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Lab1: Measuring voltage, current and resistance

Dit zijn de eerste experimenten waar ik aan gewerkt heb. Ik heb samen gewerkt met Aaron. We hebben alle stappen in de experimenten netjes vastgelegd. Deze foto's staan er op dit moment nog niet bij. Foto's volgen snel.

Measuring Voltage

3,15 V

Measuring resistance

Series resistance

  • R1+R2+R3= 109,20 Ohm
  • 10.000+330+100.000= 110,33 Ohm

Parallel resistance

  • 500 Ohm
  • 1000:2= 500 Ohm
  • Omdat hij halveert
  • 333 Ohm
  • 1000:3= 333
  • Omdat hij halveert
  • 318 Ohm
  • Hij is lager omdat hij gedeeld wordt

Measuring Current

  • 11,38 A


Measuring voltage and current in a series circuit

  • 9V
  • 1e: 7,71 V 2e: 0,03 V 3e: 0,77 V
  • 1e: 7,74 V 2e: 0,08 V
  • De eerste kruising heeft meer Voltage als de tweede kruising
  • I= V:R
 I= 7,71:100.000=0,0000771
 I= 0,03:0,77=0,00009091
 I=0,77:10.000=0,000077

Lab 2

Bij dit lab experiment heb ik samen met een jongen uit de klas gewerkt. We hadden het de eerste keer niet helemaal goed vast gesoldeerd. De tweede keer maakte hij wel geluid en veranderde het led lichtje continue.

Eigen Project

Deconstructivisme

Het deconstructivisme is een eigentijdse stroming in de architectuur die ervan uitgaat dat de maatschappij verwarrend en onzeker is. Men probeert dat ook in haar bouwwerken tot uiting te laten komen. Ook vinden zij dat de functie de sfeer van het gebouw bepaalt.

Deconstructivisme is een verzamelnaam voor een chaotisch ogende architectuur waarvan de afzonderlijke gebouwdelen een onsamenhangend geheel lijken te vormen. Het achterliggende idee is om de verwarring en onzekerheid in de maatschappij te vertalen naar bouwkunst.


Oorsprong

De term deconstructivisme werd al in de jaren '60 al geïntroduceerd door de filosoof Jacques Derrida. In de architectuur kreeg het allereerst in indirecte zin fysieke navolging via de postmodernistische Staatsgalerie in Stuttgart en het werk van de Amerikaanse architectengroep Sculpture In The Environment (SITE) in de jaren zeventig.

De groep noemde haar werk 'de-architectuur' vanwege het fragiele karakter van bijvoorbeeld een aantal filialen van de BEST-supermarktketen in de Verenigde Staten. De gevels leken los te zitten of af te brokkelen. Extra dramatisch effect werd toegevoegd met de aanleg van stapels 'gevallen' bakstenen aan de voet van de muren. De architectengroep SITE wilde hiermee inspelen op de beleving van de consument, die naar zijn oordeel te veel werd blootgesteld aan eenvormigheid en perfectie.

Tentoonstelling

Het deconstructivisme kreeg pas echt erkenning in 1988, toen de architecten Philip Johnson en Peter Eisenman de tentoonstelling 'Deconstructivist Architecture' organiseerden in het Museum of Modern Art. Verschillende architecten die deconstructivistisch bezig waren of elementen uit die stijl hanteerden, mochten hun werk komen exposeren in New York.

Zeven architectenbureaus, die ook later nog - deels in strijd met hun eigen overtuiging - tot het deconstructivisme gerekend zouden worden, waren op de tentoonstelling vertegenwoordigd: Coop Himmelb(l)au, Peter Eisenman, Frank O. Gehry, Zaha Hadid, Rem Koolhaas, Daniel Libeskind en Bernard Tschumi.

Waarom?

Het deconstructivisme vind ik zelf de indrukwekkendste en interessantste stroming binnen mijn opleiding Ruimtelijk Ontwerpen. Het chaotische in de gebouwen zorgt meestal voor een adembenemend beeld die je juist rust geeft. Je blijft naar het gebouw kijken, en nieuwe detailles en perspectieven ontdekken. Door het deconstructivisme te gebruiken in dit project geeft het me ook een soort hou vast. Ik ben zelf totaal onbekend met digital craft. En op deze manier zet ik het naar me eigen hand. Mij lijkt het interessant om deze twee begrippen met elkaar te combineren en hiermee een ontregelend object te creëren die een soort rust creëert bij de beleving.

Routing

De routing in gebouwen is altijd erg belangrijk in gebouwen. De vorm en indeling van een gebouw duwt je in een bepaalde richting. Dit gebeurt meestal op een functionele manier. Bij het deconstructivisme die je vaak er een chaotische routing door de gebouwen heen is. Men gaat op een onnatuurlijke manier bewegen, en je wordt meestal expres alle kanten op gestuurd. Waarom? Omdat deze gebouwen continue bij beweging andere perspectieven heeft door de deconstructivistische bouwwijze. Dit geeft interessante standpunten aan een gebouw, en zo ziet elk stuk er anders uit. Door de onnatuurlijke manier van bewegen zie je dat mensen meer gaan leunen, steunen en struikelen om zichzelf te plaatsen.

website links

Kanebo Sensai Select Spa by Gwenael Nicolas

Ring Installation by Arnaud Lapierre

3D Projection Theater by Ron Arad

Sculpture de Lumiere by James Turrell

Passage of Wood folly by architect is Praise of Shadow

Architecture is Now by Coop Himmelblau

pinterest

https://nl.pinterest.com/nikkidepree/digital-craft/


Digital craft model

Voor het model voor Digital Craft ben ik ga nadenken wat ik graag zou willen leren, en hoe ik het deconstructivisme op een sterke manier zou kunnen weergeven.

Ik heb bij Iris station lessen in Processing gevolgd. Ik was hier niet mega goed in, maar vond het wel erg interessant. Ook is dit gaaf om te gebruiken binnen mijn studie. Ik ging bekijken hoe processing gebruikt wordt in de architectuur. Ik kwam erachter dat het vaak gebruikt wordt in combinatie met het hacken van een Kinect zodat je een interactieve installatie kan maken. Dit sprak me direct aan.

Ik kwam op het idee om een script te schrijven in processing, wanneer mensen voorbij de kinect lopen dat er een lijnenspel komt. Een lijnenspel werkt namelijk al snel ontregelend. En dit past goed bij het deconstructivisme. Dit lijnenspel wil ik projecteren op een model wat op schaal is gemaakt. Ik ga het namelijk niet voor elkaar krijgen om een 1:1 installatie op te bouwen. Het model wordt uit plexiglas gemaakt. Door het plexiglas krijg je verschillende kleuren en weerkaatsingen die nog ontregelender werken.

Ik heb veel moeite moeten stoppen in het maken van een script. Ik vond het erg moeilijk om te doen. Maar door goed door te onderzoeken, en hulp te vragen aan de juiste mensen is het me uiteindelijk gelukt.

Processing script: streep per persoon

Processing script: streep per persoon:

/* --------------------------------------------------------------------------
 * SimpleOpenNI User Test
 * --------------------------------------------------------------------------
 * Processing Wrapper for the OpenNI/Kinect 2 library
 * http://code.google.com/p/simple-openni
 * --------------------------------------------------------------------------
 * ----------------------------------------------------------------------------
 */

import SimpleOpenNI.*;

SimpleOpenNI  context;
color[]       userClr = new color[]{ color(255,0,0),
                                     color(0,255,0),
                                     color(0,0,255),
                                     color(255,255,0),
                                     color(255,0,255),
                                     color(0,255,255)
                                   };
PVector com = new PVector();                                   
PVector com2d = new PVector();                                   

void setup()
{
  size(640,480);
  
  context = new SimpleOpenNI(this);
  if(context.isInit() == false)
  {
     println("Can't init SimpleOpenNI, maybe the camera is not connected!"); 
     exit();
     return;  
  }
  
  // enable depthMap generation 
  context.enableDepth();
   
  // enable skeleton generation for all joints
  context.enableUser();
 
  background(255);
  smooth();  
}

void draw()
{
  
  background(255);
  // update the cam
  context.update();
  
  // draw depthImageMap
  //image(context.depthImage(),0,0);
  //image(context.userImage(),0,0);
  
  // draw the skeleton if it's available
  int[] userList = context.getUsers();
  for(int i=0;i<userList.length;i++)
  {
    /*
    if(context.isTrackingSkeleton(userList[i]))
    {
      stroke(userClr[ (userList[i] - 1) % userClr.length ] );
      drawSkeleton(userList[i]);
    } 
    */    
      
    // draw the center of mass
    if(context.getCoM(userList[i],com))
    {
      context.convertRealWorldToProjective(com,com2d);

      PVector jointPos = new PVector();

      println(jointPos);
      
      stroke(0,255,100);
      strokeWeight(1);
      //fill(constrain(i*100, 0, 255), random(0, 255), random(0, 255), random(0, 255));     
      if (i==0) fill(255,0,0);
      if (i==1) fill(255,11,91);
      if (i==2) fill(0,0,255);
      if (1==3) fill(0,255,0);
      if (1==4) fill(165,254,251);
      if (1==5) fill(52,248,52);
      if (1==6) fill(256,255,0);
      
      rect(com2d.x, 0, 10, 480);
      println(Integer.toString(userList[i]),com2d.x,com2d.y);
    }
  }    
}

// draw the skeleton with the selected joints
void drawSkeleton(int userId)
{
  // to get the 3d joint data
  
  context.drawLimb(userId, SimpleOpenNI.SKEL_HEAD, SimpleOpenNI.SKEL_NECK);

  context.drawLimb(userId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_LEFT_SHOULDER);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_LEFT_ELBOW);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_ELBOW, SimpleOpenNI.SKEL_LEFT_HAND);

  context.drawLimb(userId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_RIGHT_SHOULDER);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_RIGHT_ELBOW);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_ELBOW, SimpleOpenNI.SKEL_RIGHT_HAND);

  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_TORSO);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_TORSO);

  context.drawLimb(userId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_LEFT_HIP);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_HIP, SimpleOpenNI.SKEL_LEFT_KNEE);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_KNEE, SimpleOpenNI.SKEL_LEFT_FOOT);

  context.drawLimb(userId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_RIGHT_HIP);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_HIP, SimpleOpenNI.SKEL_RIGHT_KNEE);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_KNEE, SimpleOpenNI.SKEL_RIGHT_FOOT);  
}

// -----------------------------------------------------------------
// SimpleOpenNI events

void onNewUser(SimpleOpenNI curContext, int userId)
{
  println("onNewUser - userId: " + userId);
  println("\tstart tracking skeleton");
  
  curContext.startTrackingSkeleton(userId);
}

void onLostUser(SimpleOpenNI curContext, int userId)
{
  println("onLostUser - userId: " + userId);
}

void onVisibleUser(SimpleOpenNI curContext, int userId)
{
  //println("onVisibleUser - userId: " + userId);
}


void keyPressed()
{
  switch(key)
  {
  case ' ':
    context.setMirror(!context.mirror());
    break;
  }
}

Processing script meerdere strepen per persoon

/* --------------------------------------------------------------------------
 * SimpleOpenNI User Test
 * --------------------------------------------------------------------------
 * Processing Wrapper for the OpenNI/Kinect 2 library
 * http://code.google.com/p/simple-openni
 * --------------------------------------------------------------------------
 * ----------------------------------------------------------------------------
 */

import SimpleOpenNI.*;

SimpleOpenNI  context;
color[]       userClr = new color[]{ color(255,0,0),
                                     color(0,255,0),
                                     color(0,0,255),
                                     color(255,255,0),
                                     color(255,0,255),
                                     color(0,255,255)
                                   };
PVector com = new PVector();                                   
PVector com2d = new PVector();                                   

void setup()
{
  size(640,480);
  
  context = new SimpleOpenNI(this);
  if(context.isInit() == false)
  {
     println("Can't init SimpleOpenNI, maybe the camera is not connected!"); 
     exit();
     return;  
  }
  
  // enable depthMap generation 
  context.enableDepth();
   
  // enable skeleton generation for all joints
  context.enableUser();
 
  background(255);
  smooth();  
}

void draw()
{
  
  background(255);
  // update the cam
  context.update();
  
  // draw depthImageMap
  //image(context.depthImage(),0,0);
  //image(context.userImage(),0,0);
  
  // draw the skeleton if it's available
  int[] userList = context.getUsers();
  for(int i=0;i<userList.length;i++)
  {
    /*
    if(context.isTrackingSkeleton(userList[i]))
    {
      stroke(userClr[ (userList[i] - 1) % userClr.length ] );
      drawSkeleton(userList[i]);
    } 
    */    
      
    // draw the center of mass
    if(context.getCoM(userList[i],com))
    {
      context.convertRealWorldToProjective(com,com2d);

      PVector jointPos = new PVector();

      println(jointPos);
      
      stroke(constrain(1*100, 0, 255), random(255, 0));
      strokeWeight(1);
      //fill(constrain(i*100, 0, 255), random(255, 0), random(0, 255), random(0, 255));     
      if (i==0) fill(255,0,0);
      if (i==1) fill(0,255,0);
      if (i==2) fill(0,0,255);
      if (1==3) fill(255,11,91);
      if (1==4) fill(165,254,251);
      if (1==5) fill(52,248,52);
      if (1==6) fill(256,255,0);
      
      for (float x=com2d.x; x<width; x=x+200) {
        rect(x, 0, 1, 480);
      }
      for (float x=com2d.x; x>0; x=x-200) {
        rect(x, 0, 1, 480);
      }
      for (float x=com2d.x; x<width; x=x+80) {
        rect(x, 0, 5, 480);
      }  
      for (float x=com2d.x; x>0; x=x-80) {
        rect(x, 0, 5, 480);
           }
      for (float x=com2d.x; x<width; x=x+100) {
        rect(x, 0, 3, 480);
      }  
      for (float x=com2d.x; x>0; x=x-100) {
        rect(x, 0, 3, 480);
      }
      println(Integer.toString(userList[i]),com2d.x,com2d.y);
    }
  }    
}

// draw the skeleton with the selected joints
void drawSkeleton(int userId)
{
  // to get the 3d joint data
  
  context.drawLimb(userId, SimpleOpenNI.SKEL_HEAD, SimpleOpenNI.SKEL_NECK);

  context.drawLimb(userId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_LEFT_SHOULDER);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_LEFT_ELBOW);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_ELBOW, SimpleOpenNI.SKEL_LEFT_HAND);

  context.drawLimb(userId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_RIGHT_SHOULDER);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_RIGHT_ELBOW);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_ELBOW, SimpleOpenNI.SKEL_RIGHT_HAND);

  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_TORSO);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_TORSO);

  context.drawLimb(userId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_LEFT_HIP);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_HIP, SimpleOpenNI.SKEL_LEFT_KNEE);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_KNEE, SimpleOpenNI.SKEL_LEFT_FOOT);

  context.drawLimb(userId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_RIGHT_HIP);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_HIP, SimpleOpenNI.SKEL_RIGHT_KNEE);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_KNEE, SimpleOpenNI.SKEL_RIGHT_FOOT);  
}

// -----------------------------------------------------------------
// SimpleOpenNI events

void onNewUser(SimpleOpenNI curContext, int userId)
{
  println("onNewUser - userId: " + userId);
  println("\tstart tracking skeleton");
  
  curContext.startTrackingSkeleton(userId);
}

void onLostUser(SimpleOpenNI curContext, int userId)
{
  println("onLostUser - userId: " + userId);
}

void onVisibleUser(SimpleOpenNI curContext, int userId)
{
  //println("onVisibleUser - userId: " + userId);
}


void keyPressed()
{
  switch(key)
  {
  case ' ':
    context.setMirror(!context.mirror());
    break;
  }
}  

Processing script: opvullen met strepen random

/* --------------------------------------------------------------------------
 * SimpleOpenNI User Test
 * --------------------------------------------------------------------------
 * Processing Wrapper for the OpenNI/Kinect 2 library
 * http://code.google.com/p/simple-openni
 * --------------------------------------------------------------------------
 * ----------------------------------------------------------------------------
 */

import SimpleOpenNI.*;

SimpleOpenNI  context;
color[]       userClr = new color[]{ color(255,0,0),
                                     color(0,255,0),
                                     color(0,0,255),
                                     color(255,255,0),
                                     color(255,0,255),
                                     color(0,255,255)
                                   };
PVector com = new PVector();                                   
PVector com2d = new PVector();                                   

void setup()
{
  size(640,480);
  
  context = new SimpleOpenNI(this);
  if(context.isInit() == false)
  {
     println("Can't init SimpleOpenNI, maybe the camera is not connected!"); 
     exit();
     return;  
  }
  
  // enable depthMap generation 
  context.enableDepth();
   
  // enable skeleton generation for all joints
  context.enableUser();
 
  background(255);
  smooth();  
}

void draw()
{
  
  //background(255);
  // update the cam
  context.update();
  
  // draw depthImageMap
  //image(context.depthImage(),0,0);
  //image(context.userImage(),0,0);
  
  // draw the skeleton if it's available
  int[] userList = context.getUsers();
  for(int i=0;i<userList.length;i++)
  {
    /*
    if(context.isTrackingSkeleton(userList[i]))
    {
      stroke(userClr[ (userList[i] - 1) % userClr.length ] );
      drawSkeleton(userList[i]);
    } 
    */    
      
    // draw the center of mass
    if(context.getCoM(userList[i],com))
    {
      context.convertRealWorldToProjective(com,com2d);

      PVector jointPos = new PVector();

      println(jointPos);
      
      stroke(0,255,100);
      strokeWeight(1);
      fill(constrain(i*100, 0, 255), random(0, 255), random(0, 255), random(0, 255));     
      rect(com2d.x, 0, 10, 480);
      println(Integer.toString(userList[i]),com2d.x,com2d.y);
    }
  }    
}

// draw the skeleton with the selected joints
void drawSkeleton(int userId)
{
  // to get the 3d joint data
  
  context.drawLimb(userId, SimpleOpenNI.SKEL_HEAD, SimpleOpenNI.SKEL_NECK);

  context.drawLimb(userId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_LEFT_SHOULDER);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_LEFT_ELBOW);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_ELBOW, SimpleOpenNI.SKEL_LEFT_HAND);

  context.drawLimb(userId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_RIGHT_SHOULDER);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_RIGHT_ELBOW);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_ELBOW, SimpleOpenNI.SKEL_RIGHT_HAND);

  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_TORSO);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_TORSO);

  context.drawLimb(userId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_LEFT_HIP);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_HIP, SimpleOpenNI.SKEL_LEFT_KNEE);
  context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_KNEE, SimpleOpenNI.SKEL_LEFT_FOOT);

  context.drawLimb(userId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_RIGHT_HIP);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_HIP, SimpleOpenNI.SKEL_RIGHT_KNEE);
  context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_KNEE, SimpleOpenNI.SKEL_RIGHT_FOOT);  
}

// -----------------------------------------------------------------
// SimpleOpenNI events

void onNewUser(SimpleOpenNI curContext, int userId)
{
  println("onNewUser - userId: " + userId);
  println("\tstart tracking skeleton");
  
  curContext.startTrackingSkeleton(userId);
}

void onLostUser(SimpleOpenNI curContext, int userId)
{
  println("onLostUser - userId: " + userId);
}

void onVisibleUser(SimpleOpenNI curContext, int userId)
{
  //println("onVisibleUser - userId: " + userId);
}


void keyPressed()
{
  switch(key)
  {
  case ' ':
    context.setMirror(!context.mirror());
    break;
  }
}


Beweging

Om mijn model speelser te maken ben ik gaan kijken naar hoe men anders door de ruimte beweegt bij het deconstructivisme. Je ziet hierbij dat mensen sneller gaan leunen en steunen. Daarnaast zie je door de ontregeling ook dat mensen sneller struikelen. Deze houdingen heb ik geabstraheerd. Door middel van deze houdingen wou ik een model creëren. Zo worden dit een soort kernhoudingen in het model. Deze kernhoudingen wil ik goed terug laten komen in het model.

caption

Model maken

De geabstraheerde kernhoudingen heb ik uit plexiglas gelasercut. Dit heb ik gedaan door het model in rhino te maken en vervolgens in illustrator te zetten. Ik heb voor plexiglas gekozen omdat je dan verschillende kleuren en weerkaatsingen krijgt die nog ontregelender werken. Ook heb ik het plexiglas random geplaatst net als de processing bestanden, om zo ook weer het deconstructivisme terug te laten komen.

caption