RiceSheet Whale
Mijn naam is Liselotte Beijen en dit is een project voor de HKU.
Projectnaam: If this then that
Klas: 1B
Richting: Game Art
Inspiratie En Concept
---------
Inspiratie:
Voor dit project ben ik geïnspireerd geraakt door een filmpje van een walvis. Op 2.42 min is een korte scene waarbij de walvis onder water gaat en de reflectie van het water op de walvis weerkaatst. Hierdoor is het idee ontstaan om met de walvis en ledjes te werken.
---------
Concept:
Het concept is een soort interactieve lamp. Waarbij de walvis van kleur veranderd door middel van hand beweging. Deze worden gemeten door middel van een sensor (echo) die de afstand meet van de hand. De walvis veranderd van verschillende blauw, groen en paars tinten, maar wanneer je te dicht bij bent wordt deze rood, en speelt er een walvis geluid af.
Materiaal Experimentatie
---------
Ik moest ook gaan nadenken hoe ik mijn walvis wou gaan maken. Ik wil geen plastic gebruiken omdat ik dit dubbel op vindt in strijd met het afval/plastic wat in de zee beland. Ik heb overweegt om de volgende materialen te gebruiken:
- Bone clay (giet klei)
- Papier (Ook zelf maken)
- Worbla (is wel plastic)
- Nori (zeewier) vellen
- Rijst vellen
- 3D printer
Ik heb er voor gekozen om te experimenteren met de nori en rijstvellen. Deze zijn het meest toegankelijk en passen het beste bij mijn project.
Voor het prototype van de walvis heb ik een papercraft gebruikt, die moet je uitknippen en in elkaar vouwen en plakken. Zo had ik een idee hoe groot deze was. Vervolgens heb ik een ijzerdraad frame gemaakt. Deze was echter niet stabiel genoeg. (foto 1 & 2)
Hierna ben ik begonnen met het experimenteren van het materiaal. Direct zag ik dat de rijstvellen vrij transparant waren, waardoor je het ijzeren frame zou zien. Vervolgens ben ik met de nori vellen aan de slag gegaan, en heb ik een klein frame gemaakt om te kijken of dit zou werken. (foto 3 & 4) Ook heb ik de nori op papier geplakt, om te kijken welk effect dit gaf. Helaas liet de Nori vrijwel geen licht door, en heeft het uiteindelijk 2 dagen geduurd voordat deze helemaal droog was. De rijstvellen heb ik ook op papier geplakt, en in het begin werd dit ook zacht, maar na een halve dag is deze harder geworden, waardoor ik heb gekozen om de rijstvellen te gebruiken. (foto 5 & 6)
Ik heb uiteindelijk het papieren prototype gebruikt om te bedekken met de rijstvellen. (foto 7)
Voor de behuizing heb ik dezelfde gedaan; ik heb een doos met papier beplakt, en daarna met rijstvellen beplakt.
Arduino Leren Kennen
---------
Voor dit project heb ik verschillende kleine oefeningen gedaan met de Arduino. Hier heb ik geprobeerd om op verschillende manieren een ledje aan he krijgen.
Wat Heb Ik Geleerd?
---------
- Nori laat geen (bijna) geen licht door.
- Ik kan beter informatie/code opzoeken over de Arduino en dit toepassen in mijn project
- Ik heb geleerd om te coderen met Arduino
- trouble shooting, als iets niet werkt ga ik een rijtje af van wat er allemaal mis kan zijn. (bedrading checken, stroomtoevoer checken, Arduino port checken etc.)
Materialen
- Arduino Uno
- USB Cable
- 400 point breadboard
- Jumper wires
- HC-SR04 Ultrasonic distance sensor
- WS2813 Digitale 5050 RGB LED Strip - 90 LEDs 1m
Hoe Zit Mijn Arduino in Elkaar? + Code
---------
De code die ik gebruik voor mijn project. De "//" geven een uitleg aan
// De library voor de led verlichting
#include // De library voor de Sensor #include
// Hier geef ik aan welke aansluitingen ik gebruik op de Arduino en waarvoor ze zijn
int echopin = 5;
int triggerpin = 6;
NewPing sonar(echopin,triggerpin);
// Via deze pin zijn de led lichtjes verbonden met de Arduino
int LEDPIN = 3;
// Hoeveel lichtjes er worden aan gestuurd
int NUMPIXELS = 51; //onderste getal +1
// Vanuit de library vertellen we hoeveel ledjes, en welke pin gebruikt wordt om de informatie te verzenden Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, LEDPIN, NEO_GRB + NEO_KHZ800);
// Delay voor een halve seconde
int delayval = 500;
void setup() {
// Hiermee wordt de NeoPixel-bibliotheek geïnitialiseerd.
pixels.begin();
pinMode(LEDPIN,OUTPUT); }
void loop() {
// Hier geef ik de code voor de sendor aan
int distance = sonar.ping_cm ();
// hier geef ik aan, als de sensor iets ziet binnen 10 sec, dan worden de ledjes rood
if(distance < 10 ) {
pixels.setPixelColor(0, pixels.Color(255,0,0)); // pixels.setPixelColor(1, pixels.Color(255,0,0)); // pixels.setPixelColor(2, pixels.Color(255,0,0)); // pixels.setPixelColor(3, pixels.Color(255,0,0)); // pixels.setPixelColor(4, pixels.Color(255,0,0)); // pixels.setPixelColor(5, pixels.Color(255,0,0)); // pixels.setPixelColor(6, pixels.Color(255,0,0)); // pixels.setPixelColor(7, pixels.Color(255,0,0)); // pixels.setPixelColor(8, pixels.Color(255,0,0)); // pixels.setPixelColor(9, pixels.Color(255,0,0)); // pixels.setPixelColor(10, pixels.Color(255,0,0)); // pixels.setPixelColor(11, pixels.Color(255,0,0)); // pixels.setPixelColor(12, pixels.Color(255,0,0)); // pixels.setPixelColor(13, pixels.Color(255,0,0)); // pixels.setPixelColor(14, pixels.Color(255,0,0)); // pixels.setPixelColor(15, pixels.Color(255,0,0)); // pixels.setPixelColor(16, pixels.Color(255,0,0)); // pixels.setPixelColor(17, pixels.Color(255,0,0)); // pixels.setPixelColor(18, pixels.Color(255,0,0)); // pixels.setPixelColor(19, pixels.Color(255,0,0)); // pixels.setPixelColor(20, pixels.Color(255,0,0)); // pixels.setPixelColor(21, pixels.Color(255,0,0)); // pixels.setPixelColor(22, pixels.Color(255,0,0)); // pixels.setPixelColor(23, pixels.Color(255,0,0)); // pixels.setPixelColor(24, pixels.Color(255,0,0)); // pixels.setPixelColor(25, pixels.Color(255,0,0)); // pixels.setPixelColor(26, pixels.Color(255,0,0)); // pixels.setPixelColor(27, pixels.Color(255,0,0)); // pixels.setPixelColor(28, pixels.Color(255,0,0)); // pixels.setPixelColor(29, pixels.Color(255,0,0)); // pixels.setPixelColor(30, pixels.Color(255,0,0)); // pixels.setPixelColor(31, pixels.Color(255,0,0)); // pixels.setPixelColor(32, pixels.Color(255,0,0)); // pixels.setPixelColor(33, pixels.Color(255,0,0)); // pixels.setPixelColor(34, pixels.Color(255,0,0)); // pixels.setPixelColor(35, pixels.Color(255,0,0)); // pixels.setPixelColor(36, pixels.Color(255,0,0)); // pixels.setPixelColor(37, pixels.Color(255,0,0)); // pixels.setPixelColor(38, pixels.Color(255,0,0)); // pixels.setPixelColor(39, pixels.Color(255,0,0)); // pixels.setPixelColor(40, pixels.Color(255,0,0)); // pixels.setPixelColor(41, pixels.Color(255,0,0)); // pixels.setPixelColor(42, pixels.Color(255,0,0)); // pixels.setPixelColor(43, pixels.Color(255,0,0)); // pixels.setPixelColor(44, pixels.Color(255,0,0)); // pixels.setPixelColor(45, pixels.Color(255,0,0)); // pixels.setPixelColor(46, pixels.Color(255,0,0)); // pixels.setPixelColor(47, pixels.Color(255,0,0)); // pixels.setPixelColor(48, pixels.Color(255,0,0)); // pixels.setPixelColor(49, pixels.Color(255,0,0)); // pixels.setPixelColor(50, pixels.Color(255,0,0)); //
pixels.show();
} else {
// en anders blijven ze blauw
pixels.setPixelColor(0, pixels.Color(0,0,255)); // pixels.setPixelColor(1, pixels.Color(0,0,255)); // pixels.setPixelColor(2, pixels.Color(0,0,255)); // pixels.setPixelColor(3, pixels.Color(0,0,255)); // pixels.setPixelColor(4, pixels.Color(0,0,255)); // pixels.setPixelColor(5, pixels.Color(0,0,255)); // pixels.setPixelColor(6, pixels.Color(0,0,255)); // pixels.setPixelColor(7, pixels.Color(0,50,255)); // pixels.setPixelColor(8, pixels.Color(0,0,255)); // pixels.setPixelColor(9, pixels.Color(0,0,255)); // pixels.setPixelColor(10, pixels.Color(0,0,255)); // pixels.setPixelColor(11, pixels.Color(0,0,255)); // pixels.setPixelColor(12, pixels.Color(0,0,255)); // pixels.setPixelColor(13, pixels.Color(0,0,255)); // pixels.setPixelColor(14, pixels.Color(0,0,255)); // pixels.setPixelColor(15, pixels.Color(0,0,255)); // pixels.setPixelColor(16, pixels.Color(0,0,255)); // pixels.setPixelColor(17, pixels.Color(0,0,255)); // pixels.setPixelColor(18, pixels.Color(0,0,255)); // pixels.setPixelColor(19, pixels.Color(0,0,255)); // pixels.setPixelColor(20, pixels.Color(0,0,255)); // pixels.setPixelColor(21, pixels.Color(0,0,255)); // pixels.setPixelColor(22, pixels.Color(0,0,255)); // pixels.setPixelColor(23, pixels.Color(0,0,255)); // pixels.setPixelColor(24, pixels.Color(0,0,255)); // pixels.setPixelColor(25, pixels.Color(0,0,255)); // pixels.setPixelColor(26, pixels.Color(0,0,255)); // pixels.setPixelColor(27, pixels.Color(0,0,255)); // pixels.setPixelColor(28, pixels.Color(0,0,255)); // pixels.setPixelColor(29, pixels.Color(0,0,255)); // pixels.setPixelColor(30, pixels.Color(0,0,255)); // pixels.setPixelColor(31, pixels.Color(0,0,255)); // pixels.setPixelColor(32, pixels.Color(0,0,255)); // pixels.setPixelColor(33, pixels.Color(0,0,255)); // pixels.setPixelColor(34, pixels.Color(0,0,255)); // pixels.setPixelColor(35, pixels.Color(0,0,255)); // pixels.setPixelColor(36, pixels.Color(0,0,255)); // pixels.setPixelColor(37, pixels.Color(0,0,255)); // pixels.setPixelColor(38, pixels.Color(0,0,255)); // pixels.setPixelColor(39, pixels.Color(0,0,255)); // pixels.setPixelColor(40, pixels.Color(0,0,255)); // pixels.setPixelColor(41, pixels.Color(0,0,255)); // pixels.setPixelColor(42, pixels.Color(0,0,255)); // pixels.setPixelColor(43, pixels.Color(0,0,255)); // pixels.setPixelColor(44, pixels.Color(0,0,255)); // pixels.setPixelColor(45, pixels.Color(0,0,255)); // pixels.setPixelColor(46, pixels.Color(0,0,255)); // pixels.setPixelColor(47, pixels.Color(0,0,255)); // pixels.setPixelColor(48, pixels.Color(0,0,255)); // pixels.setPixelColor(49, pixels.Color(0,0,255)); // pixels.setPixelColor(50, pixels.Color(0,0,255)); //
// Dit laat de ledjes branden
pixels.show(); } }