5.9.16

Star Wars The Old Republic - Shae Vizla: Electrónica / Electronics

¡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.


Electronics! It’s one of my personal pending subjects and, well, I’m making progress little by little. At least with this costume my aim was to make it better than with the Commander Shepard one, so I started soldering and adding some basic components. This costume has, on one hand, several LED lights and, on the other, a servo controlled with 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.
I want to warn you: This post is going to be difficult for me and maybe I don’t explain myself correctly because I’m a newie in all this stuff.

Empezamos con la iluminación, que es lo más sencillo.
Let’s begin with the lighting because it’s the easy part.

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).

I used COB (chip on board) LEDs, that is a technology consisting in Multi LED chips packaged together as one lighting module. This kind of lights increases the light area so they shine brighter than the regular ones, they dissipate heat more efficiently and they use to work with 12V batteries. Besides that, these LEDs come in different formats, so I chose different shapes for different parts of my armor. I chose the ice blue color.



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.
According to my experience, you can find cheap COB LEDs on Deal Extreme and they work ok. As you may already know, shipping times are unpredictable, so you have to place your order, at least, one month in advance.

Para hacer los circuitos compré: / To make the circuits I bought:


Utilicé el pirograbador con la punta de soldadura y estaño para unirlo todo.
I used a soldering iron and tin to join everything together.

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.
This is the circuit we did. Each light goes in different parts of the armor, so I made one circuit per LED. As all of them work with 12V and the batteries have that power, I didn’t have to use any resistor.


Cosas a tener en cuenta / Things to have in mind:
-          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.
-          As every LED capsule has a different format, you have to pay attention and look for the correct place for the anode (+) and cathode (-). It’s very easy to distinguish, but the symbols sometimes are super tiny.

-          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.

-          When soldering the components you must know that:
o   The positive wire of the battery goes together with the middle pin of the switch.
o   The positive wire from the led goes to one of the lateral pins in the switch (any of them). This is what allows you to cut or let pass the current to the LED.
o   The negative of the LED goes soldered to the negative of the battery.

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!
This way you’ll have your circuit ready. I take this chance to thank Mac Cougar his help with the displays. I designed them in Photoshop and he laser carved them. Super nice detail!




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!
To have a moving rangefinder ,I used a little servo controlled by an Arduino board. Someday, when I feel more confident in this subject, I’ll talk deeper about Arduino, its laguange, simple programs, etc. By now, I barely know how to write a simple code from scratch. I just can recognize different parts of a code and I’m able to alter them to my needs. And that’s what I did: I found a code to activate the servo with a button, make it move to X degrees, push the button again and move it back to the initial position. So I changed the values  for it to turn 80 degrees in 20 milliseconds. I did nothing more!

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).
I looked for the code in so many webpages that right now I’ve been unable to find the one which I took it from. (If you’re the creator, please tell me and I’ll give you credit).

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:
I first tried the circuit in my starter pack Arduino Uno and then I made it in an Arduino Micro for it to fit into the helmet. This is the circuit scheme:
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.
And this is the code with some explanations of my own and of the original creator in the lines I understand in case you want to copy and alter it.


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



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

const int straight = 0;  //El motor parte de 0°/ servo starts in 0°

const int divergent =80; //El motor termina en 80°/ Servo moves 8°



// Constantes que controlarán los pins de la placa/ constant variables holding the ids of the pins we are using

const int buttonpin = 8; //Este pin recibe la información del botón al pulsarlo / This pin receives the button info when pressed.

const int servopin = 9; // Desde este pin le llega la información al servo / Servo receives information from this pin.



// Lo que tarda en realizarse el movimiento, en milisegundos/ servo movement step delay, in milliseconds

const int step_delay = 20; //20 miliseconds



//create a servo object

Servo myservo; 



// Variables en referencia a la posición del servo/ global variables to store servo position

int pos = straight; // actual/ current

int old_pos = pos; // anterior/ previous



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/ start each iteration of the loop by reading the button


 //Si se pulsa el botón (HIGH) el servo se mueve/ if the button is pressed (reads HIGH), move the servo

  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.
And that’s it! To upload the code to the board, you just have to connect it via USB to your PC, select the port and your specific Arduino board name, copy it to the software , compile, upload it and it should work.


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.
This has been my first Arduino Project. I know it’s quite simple and I still have a lot to learn, but it means a little personal success for me and I’m pretty proud. Hope I encouraged you to try it!
Ya sabéis, podéis comentar aquí abajo o escribirme por mis redes sociales. En este post en especial agradecería que me corrigiérais si viérais alguna barbaridad.
Feel free to comment anything down below or in my social media. I’d highly appreciate if you correct me in case you’ve seen something wrong in this entry.

¡Gracias por leer!

Thanks for Reading!

No hay comentarios:

Publicar un comentario