Daniela Murillo - Proyecto Final I&P

De Casiopea


TítuloDaniela Murillo - Proyecto Final I&P
Tipo de ProyectoProyecto de Curso
Palabras Clavetinkercad, arduino
Período2020-2020
AsignaturaInteracción y Performatividad
Del CursoInteracción y Performatividad 2020
CarrerasDiseño, Diseño Gráfico, Diseño Industrial
Alumno(s)Daniela Murillo
ProfesorRenzo Varela

Proyecto

Casco luminoso

Objeto pensado para eventos, vídeos o fotografías en ambientes nocturnos que no sigue un patrón específico Casco con tiras de 8 neopixel con encendido aleatorio en las que 2 de las tiras exteriores se comportan de manera igual y la tira central se comporta de manera independiente.

Prototipo en Tinkercad

Materiales

  1. Alusa plast
  2. Masking tape
  3. Papel de diario
  4. Cola
  5. Yeso
  6. lija
  7. Taladro
  8. Acrílico(oscuro o polarizado) o plástico
  9. Arduino UNO
  10. Fuente de energía
  11. 3 tiras de 8 NeoPixel
  12. rosca
  13. Pintura para auto(brillante) o pintura metálica

Casco con tiras de 8 neopixel con encendido aleatorio en las que 2 de las tiras exteriores se comportan de manera igual y la tira central se comporta de manera independiente.

DMI 1.png

Cubrir la cabeza con papel alusa plast y fijar, puedes ayudarte con masking tape para mantenerla en su lugar

DMI 2.png

Cubrir con dos capas de papel mache y finalizar con una fina capa de yeso, lijar las imperfecciones

DMI 3.png

crear un agujero en el cual se encajará una rosca

DMI 4.png

Utilizando acrílico el cual se doblará al aplicarle calor para llegar a la forma de unos anteojos, deberás medirtelo a tu rostro hasta que estés satisfecho, o de forma más económica utilizando plástico de botella, pero este es más delgado. Debes crear dos siendo el exterior 0,5 cm más grande por cada lado. el visor debe quedar superpuesto al casco general para que al levantar el visor puedas retirarlo.

DMI 5.png

Prueba ambos visores y asegura que no choquen el uno con el otro y dejen un espacio suficiente para no dañar el circuito interior.

DMI 6.png

Prueba el circuito y colócalo entre los visores asegura los circuitos para que no se muevan al visor interior. Deja salir el cable por una orilla del casco pero sin fijarlo.

DMI 8.png

Procede a pintar el casco del color que gustes, de preferencia oscuro.Cuando este seco asegura con una rosca los visores y el casco.

DMI 7.png

Conecta el circuito a una fuente de energía usb y apaga la luz, podrás divertirte tomando buenas fotos del resultado!


Código y circuito

Circuito Casconeopixel.gif Código para Arduino desde tinkercad

#include <Adafruit_NeoPixel.h>
// numero de filas y columnas matriz de 8x8 aplicada a 3x8
#define NUM_COLS  8
#define NUM_ROWS  8
// pin de inicio 
// Top row starts at START_PIN
#define START_PIN 9
#define PIN_INC   -1
// Set to 1 to wrap pixels  
#define ALLOW_WRAP 1
Adafruit_NeoPixel rows[NUM_ROWS] = {0};
// pxel buffer
int pixels[NUM_ROWS][NUM_COLS];
// tiempo que se demora
// wait between frames
int frameDelayMs = 500;


void setup() {
 int pin = START_PIN;
 for (int r = 0; r < NUM_ROWS; ++r, pin += PIN_INC)
 {
   rows[r] = Adafruit_NeoPixel(NUM_COLS, pin, NEO_GRB + NEO_KHZ800);
 }
}
// loop de prendido y apagado
void loop() {
 clear();
 drawFilledRect(random(1, 8), random(3, 8),
                random(5, 8), random(5, 6), randomColor());
 
 drawRect(random(1, 7), random(4, 8),
          random(5, 7), random(6, 8), randomColor());
 refreshDisplay();
 delay(frameDelayMs);
}
void drawRect(int x, int y, int w, int h, int color)
{
 int x2 = x + (w - 1);
 int y2 = y + (h - 1);
 
 for(int c = x; c <= x2; c++){
     setPixel(c, y, color);
     setPixel(c, y2, color);
 }
 for(int r = y; r <= y2; r++){
     setPixel(x, r, color);
     setPixel(x2, r, color);
 }
}


void drawFilledRect(int x, int y, int w, int h, int color)
{
 int x2 = x + (w - 1);
 int y2 = y + (h - 1);
 
 for(int c = x; c <= x2; c++)
 {

for(int r = y; r <= y2; r++)

     {
     	setPixel(c, r, color);

}

 }
}
void clear() {
 memset(pixels, 0, sizeof(pixels));
}
void fill(int color)
{
 for(int r = 0; r < NUM_ROWS; ++r){
   for(int c = 0; c < NUM_COLS; ++c){
     setPixel(c, r, color);
   }
 }
}
void setPixel(int x, int y, int color)
{
#if ALLOW_WRAP
 x = x % NUM_COLS;
 y = y % NUM_ROWS;
#else
 if (y < 0 || y >= NUM_ROWS ||
     x < 0 || x >= NUM_COLS)
 {
   return;
 }
#endif
 
 pixels[y][x] = color;
}
void refreshDisplay()
{
 for(int r = 0; r < NUM_ROWS; ++r)
 {
 	for(int c = 0; c < NUM_COLS; ++c)
   {
   	rows[r].setPixelColor(c, pixels[r][c]);
 	}
       rows[r].show();
 }
}
//seleccionador de colores azules y verdes
int randomColor(){
 int redColor = random(0, 50);
 int greenColor = random(0, 20);
 int blueColor = random (0, 80);
 return Adafruit_NeoPixel::Color(redColor, greenColor, blueColor);
}