Star Wars The Old Republic – Shae Vizla: Electrónica

¡Electrónica! Es una de mis asignaturas pendientes y, bueno,
poco a poco voy haciendo cosillas. Para el cosplay de Shae Vizla quise hacerlo
un poco mejor que con Shepard y me lancé al mundo de la soldadura y los
componentes. Este cosplay lleva, por un lado, unos cuantos LEDs
  y, por otro,  un servomotor controlado por Arduino.

Os aviso de que este post va a ser difícil de hacer y quizás
no me explique correctamente porque soy muy novata en estos temas.

Empezamos con la iluminación, que es lo más sencillo.

Utilicé LEDs de tipo COB (chip on board), que consisten en
un encapsulado con multitud de LEDs insertados en el mismo. Este tipo de LEDs
tienen mucha más intensidad lumínica que los LEDs comunes, disipan muy bien el
calor y suelen requerir una pila de 12V. Además, estos LEDs vienen en distintos
formatos
 entre los cuales escogí los que más me
convenían según el lugar de la armadura en que los iba a montar. Elegí el color
azul hielo (ice blue).

Brillan que te cagas/ Shiny AF

Según mi experiencia, los podéis encontrar muy baratos en
Deal Extreme y funcionan bien. Ya sabéis que los tiempos de entrega desde ese
sitio son un tanto impredecibles, así que pedid los vuestros con, por lo menos,
un mes de antelación.

Para hacer
los circuitos compré:

         Portapilas para baterías de 12V modelo A23.


Las pilas de 12V. (Modelo A23) 


Interruptores de palanca pequeños 


Cables rojos y negros para distinguir el positivo del negativo (podéis escoger los colores que queráis en realidad).


Los LEDs propiamente dichos. 

Utilicé el pirograbador con la punta de soldadura y estaño
para unirlo todo.

Y este es el diagrama del circuito que montamos. Las luces
en este traje van cada una en un sitio distinto, así que hice un circuito para
cada LED. Como los mismos son de 12V y las baterías también, no hizo falta
hacer ningún cálculo para añadir resistencias ni nada.

Cosas a
tener en cuenta:


Como cada cápsula de LED tiene un formato
distinto, hay que fijarse bien y buscar el ánodo (+) y el cátodo (-) para
soldar correctamente el cableado. Es muy fácil y no tiene pérdida, aunque los
símbolos suelen ser bastante minúsculos.


A la hora de soldar los componentes al
interruptor (de palanca en este caso), hay que tener en cuenta que:

o
El polo positivo de la batería va soldado a la
patilla de en medio.

o
El polo positivo del LED va soldado a una de las
patillas laterales (cualquiera de las dos). Esto es lo que hace que, cuando
accionemos la palanca hacia ese lado, se encienda la luz.

o
El polo negativo del LED se suelda al polo
negativo de la batería.

Y con esto ya tendríamos las luces listas. Aprovecho para agradecerle a Mac Cougar su ayuda con los displays. Yo hice los diseños con Photoshop y él me los grabó a láser sobre metacrilato. ¡Un detallazo!

Para hacer que se moviera el “rangefinder”, utilicé un pequeño
servomotor controlado por una placa de Arduino. Algún día, cuando me sienta
suficientemente segura, me gustaría escribir sobre las placas de Arduino, su
lenguaje de programación, códigos para crear pequeños programas, etc; pero por
ahora no sé programar desde cero. Lo único que conozco es el funcionamiento
básico un programa de forma que puedo reconocer las distintas partes de un
código previamente escrito y modificarlas según mis necesidades. Y eso es lo
que hice: encontré un programa para mover un servomotor X grados al pulsar un
botón y que volviera a su posición original al volverlo a pulsar. Lo modifiqué
para que girase a 80º con una duración del movimiento de 20ms. ¡Nada más!

Hurgué en muchísimas páginas y tutoriales hasta que di con
el código que se adaptaba a mis requisitos y no he sido capaz de volver a
encontrar el sitio de donde saqué el que usé finalmente. Pido perdón a su
creador (si lo ves, escríbeme y te doy crédito).

Primero hice pruebas en el Arduino Uno (el del kit de iniciación) y luego para que entrase mejor en el casco, lo pasé a un Arduino Micro. Este es el diagrama para montar el circuito:

Arduino UNO

Arduino Micro

Y este es el código. Os lo dejo con una mezcla de explicaciones de cosecha
propia y del autor original  en las líneas que entiendo por si lo queréis copiar y modificar vosotros.

#include
<Servo.h> //Incluir la librería servo.

// constant
variables used to set servo angles, in degrees

const int straight = 0;  //El motor parte de 0°.

const int divergent =80; //El motor termina en 80°.

// Constantes que controlarán los pins de la placa.

const int
buttonpin = 8; //Este pin recibe la información del botón al pulsarlo .

const int
servopin = 9; // Desde este pin le llega la información al servo .

// Lo que tarda en realizarse el movimiento, en milisegundos.

const int step_delay = 20; //20 miliseconds

//create a
servo object

Servo
myservo; 

// Variables en referencia a la posición del servo.

int pos =
straight; // actual.

int old_pos
= pos; // anterior.

void
setup()

{

  // set the mode for the digital pins in use

  pinMode(buttonpin, INPUT);

  

  // setup the servo

  myservo.attach(servopin); // attach to the servo on pin 9

  myservo.write(pos); // set the initial servo
position

}

void loop()

{

 //Comenzar la interacción cuando se accione el botón.

 //Si se pulsa el botón (HIGH) el servo se mueve.

  int button_state = digitalRead(buttonpin);

  if(button_state == HIGH){

   

    old_pos = pos;   // save the current position

   

    // Toggle the position to the opposite
value

    pos = pos == straight ? divergent:
straight;

      

    // Move the servo to its new position

    if(old_pos < pos){   // if the new angle is higher

      // increment the servo position from
oldpos to pos

      for(int i = old_pos + 1; i <= pos;
i++){ 

        myservo.write(i); // write the next
position to the servo

        delay(step_delay); // wait

      }

    } else {
// otherwise the new angle is equal or lower

      // decrement the servo position from
oldpos to pos

      for(int i = old_pos – 1; i >= pos;
i–){

        myservo.write(i); // write the next
position to the servo

        delay(step_delay); // wait

      }

    }

   

  }

}// end of
loop

Y ya está. Para cargar el código en la placa sólo hay que
conectarlo por USB al PC, seleccionar el puerto y el tipo de Arduino y que
estamos utilizando, copiarlo en el programita, compilar, subirlo y debería
funcionar.

Este ha sido mi primer proyecto de Arduino. Ya sé que es muy
simple y que me queda mucho por aprender, pero ha sido un pequeño éxito
personal y estoy muy orgullosa. Espero que vosotros también os animéis a
probar.

Ya sabéis, podéis comentar aquí abajo o escribirme por mis
redes sociales. En este post en especial agradecería que me corrigierais si
vierais alguna barbaridad.

¡Gracias por leer!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio