mddmaxklaassen
Blog MDD Max Klaassen
53 posts
Don't wanna be here? Send us removal request.
mddmaxklaassen · 6 years ago
Text
Eindresultaat 3D Thinking
youtube
Tumblr media Tumblr media
We kwamen er achter dat met een extra licht bron de schaduw van ons object erg mooi is:
Tumblr media
Tido en ik zijn erg tevreden met het eindresultaat. Als wij zelf nog wat zouden mogen toevoegen zouden wij een constructie maken waardoor alles wat stiller hangt. Op dit moment moest Tido de projector vasthouden waardoor de projectie wat beweegt. Verder zouden we het tof  vinden om er eventueel extra data aan toe te kunnen voegen. Op dit moment is de gelaagdheid nog niet zo heel groot, maar daar zit nog zeker potentie in. 
0 notes
mddmaxklaassen · 6 years ago
Text
Touwtjes hangen
De data die onderaan komt te hangen hebben we gemaakt met touwtjes. Dit is volgens ons het gene wat het dichtste in de buurt komt bij regen. Hierbij hebben wij de data punten van de KNMI datasheet elk een touwtje gegeven. Hierop hebben wij een schaal toegepast. 
Tumblr media
0 notes
mddmaxklaassen · 6 years ago
Text
Ontwikkeling Map
We hebben de map laten laser snijden op 3mm opaal acrylaat. Hierin hebben we de provincies laten graveren. Uiteindelijk hebben we zelf gaten geboord zodat het opgehangen kan worden. 
Tumblr media
0 notes
mddmaxklaassen · 6 years ago
Text
Projectie ontwikkeling
Ons idee was om de water cirkels te projecteren door middel van een projector. We wisten alleen niet zo goed welk materiaal we het beste konden gebruiken om de project op te laten projecteren. Ik heb toen een snelle test gedaan met verschillende materialen die beschikbaar waren.
Tumblr media
Uiteindelijk hebben we hier de conclusie uit getrokken dat het witte kunststof het beste resultaat leverde. De projectie is zo duidelijk genoeg, en het is ook erg gaaf dat het aan de andere kant er een beetje doorheen schijnt. 
Tido heeft uiteindelijk de data omgezet naar de animatie. 
0 notes
mddmaxklaassen · 6 years ago
Text
Concept 2.0
Met dit prototype hebben we met Brenda een gesprek gehad. Zij gaf ons toen erg goede feedback. Ze zei dat het niet erg logisch is om de data als een grafiek te tonen. Het leek haar leuk als de data ook regen kon vertegenwoordigen. Dit waren wij met haar eens. Met dit idee in ons hoofd zijn wij verder gegaan. 
We wilden graag iets doen in deze richting:
Dus de combinatie van projecties en “water/regen” 
Tumblr media Tumblr media
Hierna kwamen we op het idee om de dat ook echt op water te laten lijken. Als er vanaf boven op de kaart gekeken werd lijkt het als er water op valt. En als er aan de onderkant gekeken wordt dan lijkt het op een regenbui die er onder hangt. Beide visualisaties zijn gebaseerd op de neerslag op die exacte locatie.
Het idee van boven af:
Tumblr media Tumblr media
Het idee voor de visualisatie aan de onderkant: 
Tumblr media
0 notes
mddmaxklaassen · 6 years ago
Text
Gekozen data - 3D thinking
Uiteindelijk hebben we gekozen voor de neerslag data. We hebben gekeken welke maand er het meeste verschil is in Nederland op verschillende locaties. We kwamen er achter dat juni 2018 een erg bijzondere maand was qua neerslag. Zie hieronder: 
Tumblr media
We kregen het idee om de data als volgt te laten zien; Het idee was om verschillende stroken van grafieken op de map van Nederland te zetten. Elk punt had dan de waarde van de neerslag op die locatie. 
Tumblr media
1e prototype: 
Tumblr media Tumblr media Tumblr media
Dit vonden wij een gaaf effect geven. Hierna zijn we een groter prototype gaan maken:
Tumblr media Tumblr media
0 notes
mddmaxklaassen · 6 years ago
Text
3D-Thinking 2e ideeën
We kregen het idee om verschillende lagen met informatie over elkaar te leggen. Zoals we hier gedaan hebben:
Tumblr media
Nadat we gingen zoeken naar informatie op het gebied van weer data vonden we de data van neerslag erg interessant. Dit omdat we zagen dat er in Nederland veel verschil is qua neerslag op verschillende locaties. 
Ons plan is om deze data toe te voegen op de vormgeving van hierboven. En hierna te kijken hoe wij hier een 3d object van kunnen maken. 
0 notes
mddmaxklaassen · 6 years ago
Text
3D-Thinking 1e ideeën
Tumblr media Tumblr media Tumblr media
Idee voor een armband met eigenschappen van de drager. Denk hierbij aan bloedgroep etc. :
Tumblr media
0 notes
mddmaxklaassen · 6 years ago
Text
Eind Expo - Eindresultaat
Tijdens de expo hebben we erg veel bezoekers gehad. Tot onze vreugd begreep iedereen wat onze bedoeling hier was, van jong tot oud. Het was erg leuk om te zien hoe iedereen zelf op onderzoek ging naar de verschillende combinaties van de filters. Zie hieronder voor verschillende foto’s van de expo met het eindresultaat.
Gebruik video:
youtube
Afbeeldingen:
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Stef en ik zijn erg tevreden met het eindresultaat. Het idee dat wij beide aan het begin hadden is volledig tot werkelijkheid gekomen. We hebben vanuit ons originele idee geen concessies hoeven doen. We hebben een hoop geleerd door onze verschillende tegenslagen. Zo kwamen we er achter dat niet alle neopixel strip te programmeren zijn op de manier die wij wilden. Ook is het fijn om wat onderzoek te doen naar wat er mogelijk is met het programmeren van arduino, ipv gewoon beginnen met een concept.
0 notes
mddmaxklaassen · 6 years ago
Text
Wrap Zuil
Ik heb een “wrap” ontworpen voor op de zuil waar de filterbox op staat. 
Tumblr media
0 notes
mddmaxklaassen · 6 years ago
Text
Programmeren
Voordat we begonnen met programmeren hadden Stef en ik een goed beeld van hoe wij alles wilden laten werken. Als basis principe waren er 10 schakelaars, alle 10 deze schakelaars zouden staan voor 10 verschillende filters. De 21 karakters zouden reageren op de filters die aangezet zouden worden. Zo zal er bijvoorbeeld bij de filter van de mannen alleen de neopixel onder de mannelijke karakters licht geven. Wij hadden alleen geen idee hoe we hiermee moesten beginnen 
De basis hebben we zelf geprogrammeerd, Stef heeft een stuk code geschreven waarin we doormiddel van verschillende knopjes de neopixels verschillende kleuren konden aangeven. Dit is de code:
#include <Adafruit_NeoPixel.h>      #define PIN 2
//int led = 13; // the pin the LED is connected to int knop1 = 8; int knop2 = 3; int buttonState1 = 0; int buttonState2 = 0;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800); void setup() {  //pinMode(led, OUTPUT); // Declare the LED as an output  pinMode(knop1, INPUT);  pinMode(knop2, INPUT);  Serial.begin(9600);  strip.begin(); } void loop(){    buttonState1 = digitalRead(knop1);    //buttonState2 = digitalRead(knop2);    Serial.println(buttonState1);    //digitalWrite(led, HIGH);
 if (buttonState1 == HIGH) {    strip.setPixelColor(0, 0, 0, 30);    strip.setPixelColor(1,0,0,30);    strip.setPixelColor(2,0,0,30);    strip.show();
//  }if (buttonState2 == HIGH) { //  //  strip.setPixelColor(0,0,0,0); //    strip.setPixelColor(2, 0,0,0); //     //    strip.show(); //     }else{    //digitalWrite(led, LOW);    strip.setPixelColor(0,0,0,0);    strip.setPixelColor(1, 0, 0, 0);    strip.setPixelColor(2,0,0,0);    strip.show();  } }
We vonden het erg lastig om elke neopixel aan een karakter te koppelen. Gelukkig heeft een medestudent ons daarmee kunnen helpen. Hij heeft ons laten zien hoe we deze code konden maken. Hij heeft een begin voor ons geschreven. Hierna heb ik alles verder uitgebreid en alle data er in gezet. 
Code:
#include <Adafruit_NeoPixel.h> #define PIN 12
#include "Arduino.h" #include "character.h"
int knop1 = 2; int knop2 = 3; int knop3 = 5; int knop4 = 4; int knop5 = 6; int knop6 = 7; int knop7 = 8; int knop8 = 9; int knop9 = 11; int knop10 = 10;
int house1State; int house2State; int house3State; int house4State; int manState; int womanState; int deadState; int aliveState; int isKillerState; int isKilledState;
//De waardes van alle characters // Character(int _index,          bool _house1,   bool _house2,   bool _house3,   bool _house4,   bool _man,   bool _woman,   bool _dead,   bool _alive,   bool _isKiller,   bool _isKilled //Neutral Characters Character PersonA = Character(2,  true,           false,          false,          false,          true,        false,         false,        true,          false,            false); Character PersonB = Character(1,  true,           false,          false,          false,          true,        false,         false,        true,          false,            false); Character PersonC = Character(0,  true,           false,          false,          false,          true,        false,         false,        true,          false,            false); //House of Montague Character PersonD = Character(8,  false,          false,          true,           false,          true,        false,         true,         false,         true,             false); Character PersonE = Character(7,  false,          false,          true,           false,          true,        false,         false,        true,          false,            false); Character PersonF = Character(6,  false,          false,          true,           false,          true,        false,         false,        true,          false,            false); Character PersonG = Character(5,  false,          false,          true,           false,          true,        false,         false,        true,          false,            false); Character PersonH = Character(4,  false,          false,          true,           false,          true,        false,         false,        true,          false,            false); Character PersonI = Character(3,  false,          false,          true,           false,          false,       true,          true,         false,         false,            false); //House of Escalus Character PersonJ = Character(12,  false,          true,           false,          false,          true,        false,         true,         false,         false,            true); Character PersonK = Character(11, false,          true,           false,          false,          true,        false,         true,         false,         false,            true); Character PersonL = Character(10, false,          true,           false,          false,          true,        false,         false,        true,          false,            false); Character PersonM = Character(9, false,          true,           false,          false,          true,        false,         false,        true,          false,            false); //House of Capulet Character PersonN = Character(20, false,          false,          false,          true,           false,       true,          true,         false,         false,            false); Character PersonO = Character(19, false,          false,          false,          true,           false,       true,          false,        true,          false,            false); Character PersonP = Character(18, false,          false,          false,          true,           true,        false,         false,        true,          false,            false); Character PersonQ = Character(17, false,          false,          false,          true,           false,       true,          false,        true,          false,            false); Character PersonR = Character(16, false,          false,          false,          true,           true,        false,         false,        true,          false,            false); Character PersonS = Character(15, false,          false,          false,          true,           true,        false,         true,         false,         true,             true); Character PersonT = Character(14, false,          false,          false,          true,           true,        false,         false,        true,          false,            false); Character PersonU = Character(13, false,          false,          false,          true,           false,       true,          false,        true,          false,            false);
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);
void setup() {  pinMode(knop1, INPUT_PULLUP);  pinMode(knop2, INPUT_PULLUP);  pinMode(knop3, INPUT_PULLUP);  pinMode(knop4, INPUT_PULLUP);  pinMode(knop5, INPUT_PULLUP);  pinMode(knop6, INPUT_PULLUP);  pinMode(knop7, INPUT_PULLUP);  pinMode(knop8, INPUT_PULLUP);  pinMode(knop9, INPUT_PULLUP);  pinMode(knop10, INPUT_PULLUP);
 Serial.begin(9600);  strip.begin(); } void loop() {  house1State = digitalRead(knop1);  house2State = digitalRead(knop2);  house3State = digitalRead(knop3);  house4State = digitalRead(knop4);  manState = digitalRead(knop5);  womanState = digitalRead(knop6);  deadState = digitalRead(knop7);  aliveState = digitalRead(knop8);  isKillerState = digitalRead(knop9);  isKilledState = digitalRead(knop10);
Serial.println(house2State);
 PersonA.updateChar();  PersonB.updateChar();  PersonC.updateChar();  PersonD.updateChar();  PersonE.updateChar();  PersonF.updateChar();  PersonG.updateChar();  PersonH.updateChar();  PersonI.updateChar();  PersonJ.updateChar();  PersonK.updateChar();  PersonL.updateChar();  PersonM.updateChar();  PersonN.updateChar();  PersonO.updateChar();  PersonP.updateChar();  PersonQ.updateChar();  PersonR.updateChar();  PersonS.updateChar();  PersonT.updateChar();  PersonU.updateChar();
 strip.show();  delay(1); }
extern int house1State; extern int house2State; extern int house3State; extern int house4State; extern int manState; extern int womanState; extern int deadState; extern int aliveState; extern int isKillerState; extern int isKilledState;
extern Adafruit_NeoPixel strip;
class Character {
 public:    Character(int _index, bool _house1, bool _house2, bool _house3, bool _house4, bool _man, bool _woman, bool _dead, bool _alive, bool _isKiller, bool _isKilled) {      index = _index;      house1 = _house1;      house2 = _house2;      house3 = _house3;      house4 = _house4;      man = _man;      woman = _woman;      dead = _dead;      alive = _alive;      isKiller = _isKiller;      isKilled = _isKilled;    };
   int index;    bool house1;    bool house2;    bool house3;    bool house4;    bool man;    bool woman;    bool dead;    bool alive;    bool isKiller;    bool isKilled;
   void updateChar() {      int R = 0;      int G = 0;      int B = 0;
//Welke kleuren bij welke filters      if (house1 && house1State) {        R += 50;        G += 50;        B += 50;      }
     if (house2 && house2State) {        R += 50;        G += 50;        B += 0;      }
     if (house3 && house3State) {        R += 22;        G += 0;        B += 30;      }
     if (house4 && house4State) {        R += 0;        G += 50;        B += 0;      }
     if (man && manState) {        R += 0;        G += 0;        B += 50;      }
     if (woman && womanState) {        R += 50;        G += 0;        B += 40;      }
     if (dead && deadState) {        R += 30;        G += 22;        B += 5;      }
     if (alive && aliveState) {        R += 0;        G += 40;        B += 20;      }
     if (isKiller && isKillerState) {        R += 50;        G += 0;        B += 0;      }
     if (isKilled && isKilledState) {        R += 40;        G += 22;        B += 20;      }      strip.setPixelColor(index, R, G, B);    }
};
Data voor de karakters:
Tumblr media
0 notes
mddmaxklaassen · 6 years ago
Text
Programmeren
codeee!!!!!!!!!!!!
0 notes
mddmaxklaassen · 6 years ago
Text
Ledstrip
Ons plan was om een ledstrip te gebruiken. Als eerst hebben we een “RGB Led Strip Licht 2835 DC12V 60 Leds” gekocht. 
Tumblr media
Deze bleek helaas niet goed te zijn omdat de kleuren niet goed genoeg voor ons waren. Omdat rood, groen en blauw apart zijn worden de kleuren niet goed gemengd. Hierna zijn wij opzoek gegaan naar een echte neopixel ledstrip die echte RGB neopixels op de strip heeft zitten. 
Hierna kwamen we uit op de  “ LED strip 5050 IP30 black PCB 60 Watt (5m, RGB)”. Deze leek aan al onze wensen te voldoen. 
Tumblr media
Helaas kwamen we er tijdens het programmeren achter dat deze ledstrip alleen de programmeren is alts complete strip. De neopixels zijn dus niet apart aan te sturen. Omdat wij de neopixels onder elk karakter apart willen aansturen is dit dus niet te gebruiken. 
We zijn hierna wat extra onderzoek gaan doen naar verschillende neopixel ledstrips. We kwamen uiteindelijk uit op de “ WS2812B Digitale 5050 RGB LED Strip - 30 LEDs 1m ”. Deze ledstrip voldeed aan al onze wensen. Het was wel aan de korte kant maar ons plan was om alle neopixels los te knippen en precies op de goede afstand aan elkaar te solderen. Op deze manier zal er onder elk karakter één neopixel zitten.
Tumblr media
0 notes
mddmaxklaassen · 6 years ago
Text
Kunststof platen
We hebben de platen besteld op https://www.kunststofplatendeal.nl/. Hier waren de prijzen een stuk beter vergeleken met de prijzen op school. Ook konden we hier de platen al meteen op maat laten snijden. 
Tumblr media
Na dat we de platen binnen kregen hebben we in illustrator de lasercut plannen gemaakt. 
Neutrale karakters 34x30cm:
Tumblr media
House of Escalus karakters 43x30cm:
Tumblr media
House of Montague karakters 61x30cm:
Tumblr media
House of Capulet karakters 79x30cm:
Tumblr media
0 notes
mddmaxklaassen · 6 years ago
Text
Frame bouwen
Het frame die Stef en ik gemaakt hebben bestaat uit houten balken van 2,7 x 2,7 cm. De hoogte hebben wij bepaald door er zelf naast te staan en te meten tot ongeveer onze heup/middel hoogte. Hierna hebben we de poten verstevigd met wat houten latjes. Aan de voorste zijde hebben we besloten geen versteviging te maken zodat hier een zuil onder kon staan met de filterbox er op. 
Uiteindelijk hebben we het frame afgemaakt door een u-vormige goot aan te brengen. De breedte van deze goot is 1cm, hierdoor past hier precies de ledstrip in. Hierna kunnen we de kunststofplaten hier op zetten. 
Tumblr media Tumblr media
Kunststof platen passen in het frame:
Tumblr media Tumblr media Tumblr media
0 notes
mddmaxklaassen · 6 years ago
Text
Constructie
De vraag was nu hoe we alles in elkaar wilden gaan zetten. We wilden sowieso de zijdes van een transparant kunststof maken zodat er van elke zijde in gekeken kan worden. Hierdoor kan de gebruiker de connecties zien tussen de karakters die met touwtjes zijn aangegeven. De karakters worden aangegeven met gaten in de zijdes. 
We zijn ook veranderd op de manier van de filters aangegeven. We wilden het eerst op de grond laten schijnen. Maar dit zou niet duidelijk genoeg zijn omdat het licht zich verspreid over de grond. Daarom is het idee veranderd, het idee is nu om een ledstrip naar boven te laten schijnen hierdoor zullen de gaten in de zijdes oplichten. 
Er moest ook een frame gemaakt worden, dit wilden wij graag stevig maken zodat het het gewicht van het kunststof en de elektronica kon houden. Hier wilden we hout voor gebruiken. De hoogte hebben we op ongeveer heup hoogte gedaan zodat er door de gemiddelde bezoeker vanaf boven af en vanaf de zijkant ingekeken kan worden. 
0 notes
mddmaxklaassen · 6 years ago
Text
Iteratieslag 4
We zijn nog eens gaan nadenken over hoe we de installatie konden verbeteren. We kwamen er achter dat de bedeltjes aan de touwtjes niet zo’n goed idee was. Dit was ten eerste slecht te lezen omdat het erg klein was. Maar ook zou het voor extra verwarring zorgen tussen alle touwtjes door. 
Omdat we nu een extra informatielaag weg haalden wilden we graag een nieuwe toevoegen. We kwamen er achter dat we de plekken van de personages geen betekenis hadden gegeven, die waren om dit moment gewoon geheel random. We hebben toen wat onderzoek gedaan naar wat interessant zou zijn. We hadden nog niet veel gedaan met de tekst zelf van het stuk. Daarom hebben we er voor gekozen om daar iets mee te doen. We vonden het best lastig om met code bepaalde data te verkrijgen. We vonden toen een manier om te vinden hoe vaak een karakter in het stuk spreekt. Dit is data waar je normaal niet over nadenkt maar hierdoor is wel te zien welke karakters een grote rol hebben in het stuk. 
Hierdoor zullen de personen er zo uitzien op de zijdes van de installatie, de schaal staat aan de linker kant aangegeven. 0 keer gesproken tot 200 keer gesproken. 
Tumblr media
De data:
Tumblr media Tumblr media
0 notes