Ivan Capdeville
DIY
Librerias en Arduino – Como y por donde
20 nov
Llegara un momento en que al usar Arduino tengamos que echar mano a las famosas librerias, esos pedazos de software que programaron unos super geeks y nos permiten a los mortales usar facilmente hardware especializado.
Digamos que queremos usar un control infrarrojo, ya sea que tenemos la súper idea de controlar nuestra tele con el Arduino o que queremos manejar la cámara, todo es valido para usar un aparato de 40 usd (el Arduino) hecho por nosotros en vez de usar un control infrarrojo de 5 usd para la cámara; no importa el que lo hayamos fabricado y programado es mas importante, o no?
Pues si usamos una Mac para correr el buen Arduino IDE 1 la cosa se complica un poco, no tenemos esa carpeta fea llena de carpetas como los de Windows, así que donde ponemos nuestra librería?
Hay 2 opciones, podemos abrir el Arduino.app y copiar la librería en el folder libraries, para eso vamos a Aplicaciones y con el botón derecho (o haciendo control + clic) y seleccionamos Mostrar contenido del paquete

O bien un método menos laborioso, vamos al folder donde tengamos nuestros sketches (usualmente ~/Documents/Arduino/ ) y creamos un folder llamado libraries ahí copiamos la librería, nada difícil.
Ya que tenemos nuestra librería viene otro pequeño problema: Si usamos la versión 1 del Arduino IDE, al tratar de compilar el sketch nos sale error, que no puede encontrar el WProgram.h

Y es que a los del Arduino team les dio por cambiar algunas cosas para el lanzamiento de la versión 1 del IDE, entre ellas renombrar la librería WProgram.h a Arduino.h
La solución es obvia, vamos a abrir el archivo .h de nuestra librería, buscamos WProgram.h y lo sustituimos por Arduino.h y listo.
Un post muy sin chiste, pero siempre es bueno tener este tip a mano
Proyecto de Ocio – LM35 otro sensor de temperatura
9 nov
En un post anterior hablaba del Dallas DS18B20 un sensor de temperatura que podemos usar con Arduino, pues ahora me acaba de llegar mi nuevo National LM35 DZ, un sensor muy parecido pero mucho mas simple de usar, sin protocolos ni nada, simplemente conectamos un pin a la entrada análoga del Arduino y listo estamos leyendo temperatura en grados centígrados.
En mi gran elefante blanco aka LED Headlight necesitaba algo para controlar la temperatura de mi pila LiPo (viendo vídeos de como explotan estas pilas ni loco las uso sin triple precaución). Asi que el LM35 me viene genial, no usa una entrada digital (que empieza a ser un factor en mi proyecto).
Pero veamos como funciona.
Los 3 pins del LM35 son muy simples: tierra, voltaje de entrada y voltaje de salida, justo como esta gráfica.

Para conectarlo al Arduino pues solo necesitamos una entrada análoga y alimentarlo con unos 5v.

El código no podía ser mas simple, solo damos de alta los pines, leemos la entrada análoga y listo.
//
float temp;
int tempPin = A0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
temp = analogRead(tempPin);
temp = (5.0 * temp * 100.0)/1024.0; // pasamos de 8 bits a Volts
Serial.println(temp);
delay(1000);
}
Bastante mas simple que el Dallas, en cuanto a precisión tendré que hacer un mano a mano
74HC595 shift register para controlar display de 7 elementos
26 sep

En un post anterior hablaba de como usar 8 puertos del Arduino para controlar un display de 7 elementos, es una manera rápida pero poco practica de controlar estos elementos.
Y es ocupar 8 salidas en el Arduino nos reduce la posibilidad de hacer otras cosas, nos deja 6 salidas libres.
Podemos usar un chip 74HC595 que nos sirve para controlar 8 salidas digitales mediante 3 salidas del Arduino, ademas se puede encadenar, por lo que podemos controlar bastantes salidas y tener libres 11 salidas del Arduino para agregarle cosas.
Antes de seguir, he de aclarar que este post y los demás relacionados son los menos técnicos, los menos formales y son solamente mis descubrimientos (no estudie nada relacionado a la electrónica o programación), pero hay que compartír lo que uno aprende, quizá haya personas como yo que no queremos ser ingenieros en algo para hacer algún aparato útil.
Hay una guía muy interesante aquí sobre como usar un 74HC595 con un Arduino para controlar LEDs, de hecho hay muchos otros tipos de shift register, pero usemos este (y aprovechando que me hice de 25 de estos a un súper precio).
El chip 74HC595 tiene 16 pins, 8 de ellos para controlar mismo numero de salidas, 3 para control 1 salida de datos (para conectar otros 74HC595)
Para conectarlo seguimos la recomendación de la pagina de Arduino
| Pin | Conectar a |
|---|---|
| 15, 1-7 | salidas digitales, leds, display |
| 8, 13 | GND |
| 9 | al pin 14 del segundo 74HC595 |
| 10, 16 | 5V |
| 11 | Arduino D12 |
| 12 | Arduino D8 |
| 14 | Arduino D11 |
Y aquí esta la imagen de dos 74HC595 conectados a 2 displays de 7 segmentos, el orden de los pins es sencillo, el pin-disp quedaria: 15-A, 1-B, 2-C, 3-D, 4-Dp, 5-E, 6-F, 7-G

Hasta aquí todo bien, pero empezamos con los problemas
Mis display son de Anodo común, lo que significa que un segmento se enciende al apagarse un pin del 74HC595, cual es el problema? pues tenemos que cambiar el modo en que enviamos los datos
para desplegar un 0 usando un display de cátodo común enviaríamos un byte 01101111 desde arduino, este encendería esos segmentos y tenemos un lindo 0; pero en uno de ánodo común tendríamos que enviar un byte 10010000 para que deje apagados (y por ende enciendan en el AC)
Ademas, claro, el byte depende de como hayamos hecho la conexión entre display y el 74HC595; así que si elegimos otro orden en los pins pues habrá que cambiar el byte de control. Lo que hace esto en poco standard y no podemos robarnos usar código de otras personas que hayan publicado.
Ya estando en el IDE de Arduino controlar el shift register es de lo mas fácil, muy pocas lineas de programación, ya que hay una instrucción que hace todo el trabajo por nosotros: shiftOut
/* Ejemplo de uso de un display de 7 segmentos ánodo común
usando un shift register 74HC595
Ivan Capdeville - ivan@darkapple.org
*/
const int latchPin = 8;
const int clockPin = 12;
const int dataPin = 11;
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void loop() {
digitalWrite(latchPin,LOW);
shiftOut(dataPin, clockPin, LSBFIRST, *); // * caracter del segundo display
shiftOut(dataPin, clockPin, LSBFIRST, *); // * caracter del primer display
digitalWrite(latchPin, HIGH);
el código es simple, declaramos las salidas del arduino que conectamos al 74HC595, las configuramos como salidas digitales y vamos a usar esta secuencia para activar los caracteres
digitalWrite(latchPin,LOW);
cuando el latchPin se apaga el shift register se prepara para recibir nuevos datos
shiftOut(dataPin, clockPin, LSBFIRST, *);
Esta parte es quizá la mas interesante y complicada de dominar al inicio, hay que elegir como va leer el byte de entrada, si de derecha a izquierda (LSBFIRST) o de izquierda a derecha (MSBFIRST) y en que nos afecta esto? pues determina como vamos a confeccionar los caracteres, si usamos MSBFIRST usaremos el byte 10010000 para mostrar un 0, si usamos LSBFIRST usaremos el byte 00001001
ya que elegimos que segmentos vamos a querer, ponemos una linea por cada display (en orden inverso) ponemos esta linea para prender el latchPin y que se genere la instrucción
digitalWrite(latchPin,HIGH);
Afortunadamente para los que no queremos meternos tanto en rollos técnicos, resulta que podemos usar caracteres decimales para mostrar segmentos (aquí viene la rechifla después de leer tanto sobre números binarios)
Podemos usar números del 0 al 255 para controlar los segmentos a desplegar, pero no es tan sencillo como poner un 5 para desplegar un 5, pues no, tienen su representación, así que usamos, por ejemplo, el 14 para desplegar el numero 3 y el 156 para el numero 4. Aquí es donde usar binarios se vuelve mas simple (8 caracteres fijos y un 1 o un 0 para elegir si se muestra o no el segmento, así que todos los segmentos prendidos en un display de ánodo común seria un byte 00000000 (0) todos apagados 11111111 (256))
Esto hace mucho mas fácil el elegir que segmentos se prenderán (o en una matriz de leds lo mismo) se vuelve mas gráfico el elegir, usando números decimales aun no veo una relación o secuencia (quizá la haya pero ya después buscare)
Al final de tanto rollo, mi recomendación es usar LSBFIRST si usamos un display de anodo comun y byte binario, si usamos numeros decimales y el anodo comun hay que usar MSBFIRST y la conversion a decimal del byte
| Digito en display | Byte binario | Decimal |
|---|---|---|
| 0 | 10010000 | 9 |
| 1 | 11111001 | 159 |
| 2 | 01010100 | 42 |
| 3 | 01110000 | 14 |
| 4 | 00111001 | 156 |
| 5 | 00110010 | 76 |
| 6 | 00010010 | 72 |
| 7 | 01111000 | 31 |
| 8 | 00010000 | 8 |
| 9 | 00110000 | 12 |
| . | 00010000 | 247 |
Y sigue el vicio – Arduino con termómetro Dallas DS18B20
24 sep
Este es un post rápido
Mis camaradas del foro Infojardin me preguntaron como diablos se podría usar el Arduino para controlar humedad, temperatura y demás cuestiones en los invernaderos
Asi que aprovechando que llego mi termómetro Dallas DS18B20 (parece un transistor normal pero esta interesante, hasta protocolo de comunicación propietario tiene, el OneWire de Dallas (ahora Maxim)), vamos armando algo para leer temperatura y de acuerdo a un rango emita alguna señal, puede ser activando un ventilador y con eso bajando temperatura en el invernadero, que se yo.
Pero empecemos por lo fácil y sencillo, ponerlo a trabajar y obtener mediciones.
Aquí esta el cableado, muy sencillo pero con un cambio respecto a otros sensores, la lectura no se realiza a través de un puerto análogo, mas bien un puerto digital y la resistencia de 4.7K ohms va del pin 3 al 2.

El código para iniciarlo esta bastante complejo, trate de usar la librería OneWire para Arduino pero en mi Mac no funciona muy bien, me salen errores al compilar (ademas que según leí en la versión 1 del IDE de Arduino cambiaron nombres de librerías que hacen referencia otras, todo un relajo).
Me encontré este código que no usa la librería, así que ahí le echan un ojo.
#define TEMP_PIN 7
void OneWireReset(int Pin);
void OneWireOutByte(int Pin, byte d);
byte OneWireInByte(int Pin);
void setup() {
digitalWrite(TEMP_PIN, LOW);
pinMode(TEMP_PIN, INPUT);
Serial.begin(9600);
delay(100);
Serial.print("temperatura:\n");
}
void loop(){
int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract;
OneWireReset(TEMP_PIN);
OneWireOutByte(TEMP_PIN, 0xcc);
OneWireOutByte(TEMP_PIN, 0x44);
OneWireReset(TEMP_PIN);
OneWireOutByte(TEMP_PIN, 0xcc);
OneWireOutByte(TEMP_PIN, 0xbe);
LowByte = OneWireInByte(TEMP_PIN);
HighByte = OneWireInByte(TEMP_PIN);
TReading = (HighByte << 8 ) + LowByte;
SignBit = TReading & 0x8000; // test most sig bit
if (SignBit) // negative
{
TReading = (TReading ^ 0xffff) + 1; // 2's comp
}
Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25
Whole = Tc_100 / 100; // separate off the whole and fractional portions
Fract = Tc_100 % 100;
if (SignBit) // If its negative
{
Serial.print("-");
}
Serial.print(Whole);
Serial.print(".");
if (Fract < 10)
{
Serial.print("0");
}
Serial.print(Fract);
Serial.print("\n");
delay(5000); // 5 second delay. Adjust as necessary
}
void OneWireReset(int Pin) // reset. Should improve to act as a presence pulse
{
digitalWrite(Pin, LOW);
pinMode(Pin, OUTPUT); // bring low for 500 us
delayMicroseconds(500);
pinMode(Pin, INPUT);
delayMicroseconds(500);
}
void OneWireOutByte(int Pin, byte d) // output byte d (least sig bit first).
{
byte n;
for(n=8; n!=0; n--)
{
if ((d & 0x01) == 1) // test least sig bit
{
digitalWrite(Pin, LOW);
pinMode(Pin, OUTPUT);
delayMicroseconds(5);
pinMode(Pin, INPUT);
delayMicroseconds(60);
}
else
{
digitalWrite(Pin, LOW);
pinMode(Pin, OUTPUT);
delayMicroseconds(60);
pinMode(Pin, INPUT);
}
d=d>>1; // now the next bit is in the least sig bit position.
}
}
byte OneWireInByte(int Pin) // read byte, least sig byte first
{
byte d, n, b;
for (n=0; n<8; n++)
{
digitalWrite(Pin, LOW);
pinMode(Pin, OUTPUT);
delayMicroseconds(5);
pinMode(Pin, INPUT);
delayMicroseconds(5);
b = digitalRead(Pin);
delayMicroseconds(50);
d = (d >> 1) | (b<<7); // shift d to right and insert b in most sig bit position
}
return(d);
}
El dia que termine mi headlight quiza inicie un proyecto para controlar cosas de estas, ya sea una pecera o algun invernadero o plantas con riego programado
Proyecto de ocio – LED Headlight – LDR o photodiode ?
20 sep

El otro día me encontré los restos de un flash YN-460 (son tan buenos hasta que truenan), al desarmarlo para quitarle los LEDs SMD para un experimento que tengo en mente para luces (ingenuo que pensé que podía desoldar componentes SMD sin problema) me tope con algo muy interesante, un photodiode, un foto diodo? bueno no conozco el nombre en español, así que espero los insultos comentarios de los entendidos.
Asi que se me ocurrió comparar el funcionamiento de mi LDR (foto resistencia) contra el photodiodo del yn460, el juez? obviamente mi tullido Arduino (tiene malas soldaduras y demás).
Cuales serian los puntos a comparar? rango de sensibilidad, velocidad de captura (refresco?) y algo muy importante, compatibilidad con el headlight que ando armando.
El funcionamiento es radicalmente diferente, como comparar una resistencia con un diodo si funcionan muy diferente; pues simplemente viendo como afectan la respuesta del Arduino con mis LEDs.
Un LDR es una resistencia sensible a la luz, entre menos luz mas resistencia presenta al paso de corriente, si hay mucha luz casi es un circuito abierto (casi).
Un foto diodo es una compuerta de corriente (esa imaginación mía) que dependiendo de sus características deja pasar corriente al otro lado (en este caso dependiendo de la luz recibida)
Claro esto muy a grosso modo, para información mas precisa vayan a san Google.
Nuestro buen Arduino tiene una sensibilidad de 10 bits, lo que es lo mismo a 1024 niveles de entrada análoga (del 0 al 1023) mas que suficientes para armar un bonito rango de aplicaciones (luz de día, luz de tarde, penumbra, amanecer, etc etc).
El LDR (fotoresistencia) no es consistente, cosa que no esta mal ya que la luz no es continua, nuestros ojos se adaptan increíble, pero hay muchas variaciones en la luz; al probar su respuesta con diferentes fuentes de luz, no hubo ningún rango estable, pasaba de 300 a 400 con el mismo tipo de luz, lo que nos obliga a programar con mas cuidado estos umbrales.
El fotodiodo en cambio, parece que toma como referencia la luz que incide sobre el sensor al recibir corriente y de ahí empieza a medir los cambios, así que el nivel 0 en el fotodiodo siempre será la luz ambiente que tengamos al iniciar la aplicación y de ahí pa arriba.
El ganador?
El fotodiodo, parece estar diseñado para fotografía, seleccionamos un umbral (midiendo la luz de un flash externo) y con eso tenemos asegurado su funcionamiento adecuado para activar lo que queramos en nuestro Arduino.
El LDR no es malo, podemos usarlo en otros proyectos y es mucho mas accesible (por mas que he buscado no he encontrado donde vendan foto diodos como el del YN 460)
Arduino – Conectando un display de 7 segmentos
18 sep

Hace unos días me compré en Steren un display de 7 segmentos, el vendedor no tenia idea de si era ánodo común o cátodo común y menos el color del led y ya ni hablar de como conectarlo
Asi que hay que dar un poco de luz a los que como yo compran en Steren un display y no saben como conectarlo.
Lo primero, unos diagramas para saber como es el display, dimensiones y demás cosas que son útiles a la hora de hacer circuitos impresos, aquí viene algo muy importante: cada segmento se le asigna una letra y sigue un orden según las manecillas del reloj.

A pesar de que el display en Steren lo manejan como DA03 (aunque hay DA04 y nunca me supieron decir la diferencia, capaz es el color, capaz me compro uno para averiguar) en internet el modelo lo llaman LD3011A o LD3011B dependiendo si es catado común o ánodo común. (el A es cátodo común y el B es para el ánodo común).
El orden de los pins es importantísimo, el 1 (el que esta junto al punto decimal en el display) es el ánodo común (en el LD3011B) y el pin 6 también, estos los mandamos a corriente a través de una resistencia de 110 ohm (para 5V)
Ya dependiendo si usamos un shift register o un arduino o transistores o lo que queramos va a ser el orden de los pins, siempre respetando las letras (segmentos) y el sentido de manecillas de reloj.

Listo de cosas técnicas [sic], vamos a conectarlo al Arduino, tomando los puertos digitales del 2 al 9 (siempre que se pueda hay que reservar el 0 y el 1 para tx y rx)

Y ponemos un poco de código en el IDE, para probar que todas las conexiones están bien, vamos a prender todos los segmentos al mismo tiempo, así que tenemos un código como este
// Prueba de display 7 segmentos DA03 de Steren
// Ivan Capdeville - ivan@darkapple.org
int F = 2;
int G = 3;
int E = 4;
int D = 5;
int Dp = 6;
int C = 7;
int B = 8;
int A = 9;
void setup()
{
pinMode (F, OUTPUT);
pinMode (G, OUTPUT);
pinMode (E, OUTPUT);
pinMode (D, OUTPUT);
pinMode (Dp, OUTPUT);
pinMode (C, OUTPUT);
pinMode (B, OUTPUT);
pinMode (A, OUTPUT);
}
void loop()
{
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(E, LOW);
digitalWrite(D, LOW);
digitalWrite(Dp, LOW);
digitalWrite(C, LOW);
digitalWrite(B, LOW);
digitalWrite(A, LOW);
}
si todo sale bien, tenemos un 8 y un punto decimal, ya después podemos hacer cosas mas interesantes con los dígitos o incluso letras (siempre que podamos representarlas con 7 segmentos)
Actualizacion
Se me olvido mencionar un detalle importante:
Al ser ánodo común el display tenemos la ventaja de usar menos resistencias (solo 2 para los pin 1 y 6) y a nivel Arduino, vamos a activar el segmento al poner nuestra salida digital como LOW en vez de HIGH, o sea, activamos con LOW y apagamos con HIGH ya que las salidas digitales deben cerrar el circuito proporcionando tierra (ground).
Pase al mismo Steren y ahora si ya entendí la diferencia entre sus display de 7 segmentos
Tienen la descripcion en el codigo:
DA = Display Anodo comun
03 = tamaño del segmento
Asi que hay tamaños 03,04 y 05 (con variaciones en la distribución de los pin)
y hay DA y DC (DC es por catodo comun)
Me compre un DA05 y en ese los pin para el ánodo común son el 3 y el 8
Al final me parece mas como el usar el display con ánodo común (por aquello de simplificar las conexiones con menos resistencias).
Software del dia – Fritzing
4 sep

Nuevo vicio, nuevas herramientas…
Esto del mundo del Arduino esta súper bueno, tantas posibilidades y tan sencillas de hacer, basta con acomodar unos circuitos, darles corriente y a jugar se ha dicho.
Pero una cosa es armar las cosas y otras hacer los diagramas, esas lineas con símbolos que parecen tan imposibles de entender para los no iniciados. Para que queremos diagramas? bueno, primero la documentación de nuestros proyectos y después el compartirlos; no soy de la idea de aprender algo e inmediatamente ponerle signo de $ y esconder toda evidencia de como se realiza para así encarecerlo. El conocimiento se comparte, he dicho.
Pero como compartir algo si no eres un técnico electrónico, ingeniero en electrónica o yerbas similares? que tal que eres un carnicero que quiere montarse un letrerito de LEDs (súper de moda) y tienes la curiosidad de armarlo tu mismo (y no pagar miles de pesos por algo complicado y genérico), que tal que eres un taxista que quiere súper iluminar la unidad LEDs por acá, LEDs por alla, todo un juego increíble de luces pero te pasan cotización de miles de pesos; para unos 500 tristes LEDS y unos chips?. Bueno, te vas a foros y puedes encontrar diseños hechos en un programa llamado Fritzing de una comunidad del mismo nombre dedicada a compartir proyectos electrónicos (y de paso hacer un dinerito haciendo PCB vía el software, nada mal)
Fritzing es un programa multiplataforma (para los no entendidos, significa que sirve en Mac, Linux y esa cosa de las cavernas llamada Windows), la interfaz es realmente amigable, en exceso, tan fácil como arrastrar componentes a una pantalla donde tendremos un Protoboard también llamado Breadboard o varios nombres del estilo; una ventana con iconos de los componentes y sus descripciones, así como un Inspector para modificar las características de dichos componentes

Controlando la intensidad de un LED RGB
Que mejor que poner el ejemplo, así que muy al estilo del genial Bob Ross, comenzamos colocando un Arduino feliz junto a un protoboard feliz, un LED RGB y sus resistencias felices, vamos a colocar los cables de corriente y un potenciometro normal (quiero investigar sobre los encoder pero eso ya será después)

Aquí empieza lo interesante, 3 salidas PWM del Arduino vamos a conectarlas a los ánodos del LED RGB, al ser PWM vamos a poder variar la corriente que entregaremos a cada ánodo (con eso el LED varia la intensidad de color), el potenciometro será nuestro dispositivo de entrada, con él variamos la intensidad, así que la salida del potenciometro va a una de las entradas análogas del Arduino.

Y así se ve al final, claro que mis cableados son un asco, pero era cosa de demostrar las posibilidades de Fritzing, aun faltaría la parte de la programación usando Wiring para Arduino, pero esa parte ya vendrá en un post dedicado al Arduino (y claro cuando llegue mi Arduino UNO SMD
Y que paso con los diagramas esquemáticos de nuestro proyecto? bueno, con fritzing solo oprimimos un botón y estamos en la vista de diagrama, acomodamos los símbolos, corregimos las conexiones y ya tenemos un bonito diagrama para sentirnos todos unos expertos en electrónica.

Y aun hay mas, Fritzing puede crear el diseño de los circuitos impresos (PCB), darnos la posibilidad de imprimirlos para hacerlos nosotros mismos (mi próxima quemadura con químicos será cortesía de estos químicos para tabletas) con este diseño ya tenemos un Shield que podemos montar encima de nuestro Arduino UNO (y arduino con nombre de años anteriores en italiano, no lo escribo porque me arde y que?)

Hay otras herramientas, no se si mejores o peores, como la famosa Eagle de CADSoft, que esta muy interesante, pero le falta ese toque informal que a esta le sobra.
Proyecto de ocio – Ring Light con LED’s
22 ago
La luz artificial en fotografía es la onda, muy divertida, se pueden lograr efectos muy buenos en cualquier condición, eso de solo usar luz de día es aburrido.
Podemos usar flashes circulares (ring light o ring flash depende del funcionamiento, si es luz continua o flash) para foto macro, dandole una iluminación genial a esas pequeñas cosas, sin sombras laterales.

El único problema, es que los flashes circulares son caros, podemos comprarnos en Amazon un Fotodiox Pro LED Ring Light 352A por unos 240 usd, casi nada para varios pudientes burgueses, pero para el resto de nosotros, lo mejor es irnos por la vía artesanal.
Con unos 100 LEDs de 20,000mcd (potencia lumínica en candelas) sus respectivas resistencias, algo de pegamento acrílico, soldadura y materiales varios podemos empezar a crear nuestro propia fuente de luz circular con unos cientos de pesos

Es el inicio, quiero armar algo interesante y divertido, quizá meterle algo mas de tecnología, onda un arduino para controlar intensidad, cantidad y quizá hasta duración de la luz (sincronizarla con el disparo de la cámara)
Ya con tanta cosa, quizá la lampara terminara costando mas, pero seria mas completo, controlando mas cosas vía el arduino
Truco DIY del día – Reducir ruido parasito en bocinas alimentadas por USB
22 ago
Como las bocinas que vienen con la macbook son una cosa realmente mala (bueno no tanto como las de las pcs) todo mundo siempre busca el poner unas bocinas externas, hay muchas formas, los mas fresas y burgueses usan audio inalámbrico mediante airplay (airport express), pero para el resto siempre están las buenas bocinas con su conector jack 3.5mm
Hace tiempo me compre unas bocinas Altec Lansing BXR1220 2.0, bastante interesantes, muy pequeñas, buen sonido, se alimentan mediante USB, así que puedes usarlas en cualquier lado, en el parque, en las trajinares, el unico problema? La falta de puertos USB en una macbook (cualquier portatil mac solo trae 2 puertos USB)
Asi que lo mas normal es usar un Hub USB para conectar mas aparatos a la mac mientras trabajas, ya que un disco externo (en mi caso 2) una tableta Wacom, mouse usb, el ipod, bocinas, el lector de tarjetas; bueno esos 2 ches puertos de la macbook son insuficientes.
Pero aquí viene lo malo, cuando conecto mis bocinas al hub USB (de muy bajo presupuesto, capaz los mas elevados no tengan este problema) un ruido en las bocinas, bastante agudo, bastante molesto, así que a buscar la solución bien DIY.
Echando ojo encontré una solución interesante, meterle unos capacitares a la entrada usb de las bocinas, así estos capacitares al mantener una corriente constante hacia las bocinas pues reducirá los picos de corriente (usamos un mismo puerto usb de la mac así que hay picos de voltaje segurísimo)

Asi que manos a la obra, visitar la tienda de electrónica de su preferencia y hacerse de algunos capacitares electrolitos, de 10uf y unas resistencias (para mantener constante la corriente)
Manos a la obra: hay que abrir las bocinas Altec Lansing, cosa que no me cuesta ya que desde que me llegaron las tuve que abrir para repararlas (un transformador desoldado, después un cable con corto, estas bocinas están saldas).
Usando un protoboard (tableta para prototipos? no se como se diga acá, mis clases de electrónica nunca llegaron a ese tema) vamos a probar los componentes para ver si es suficiente.

Aquí es un ensayo y error, hay que variar en valores de resistencia y capacitares dependiendo del ruido, ya que esta controlado (sin tener nada reproduciendo, que no haya ningún sonido de las bocinas es una súper ganancia), vamos a armar un circuito y acoplarlo a las bocinas

Y viene lo divertido, el hacer que las bocinas cierren de nuevo (siempre es todo un ritual de promesas si la tapa cierra de nuevo y no nos sobran tornillos), la forma mas rupestre de aislar el circuito nuevo es con silicona caliente, lo mío no es lo estético definitivamente.

Y listo, como buen representante de las personas con problemas de atención, hice esta reparación en vez de continuar con mi ringlight de LEDs, bueno ya ira saliendo el otro.
ATENCION: al estar soldando los componentes y los cables de corriente, hay que recordar desconectar todos los cables USB del hub y de la computadora, yo casi reviento el puerto USB de mi macbook por no desconectarlo y estar soldando de lo mas tranquilo (como conectarle la corriente AC a un puerto USB) afortunadamente fue en el cable de tierra y MAc OSX al detectar esa corriente desactivo el puerto (ese aviso como lo he apreciado)
Reflector para flash – Pero de Barrio
31 ago
Que haces si te encuentran un colador de pintura abandonado y tienes a la mano un dremel, un omni bouncer para flash y algo de silicon?
Claro, armas un reflector !
La inspiracion
Echandole un ojo a los flashes Alien Bee me llamó la atencion el reflector que tienen integrado, asi que hay que tener algo similar pero de barrio, por que no?

Como siempre, la primer fuente de materiales debe ser algo que este a la mano en la casa, asi que un colador de pintura es perfecto, tiene la forma ideal, el material que refleja la luz muy bien.

Lo primero será adaptarlo al tamaño de la cabeza del flash, con ayuda del cortador del dremel, un martillo de goma y muchos rayones despues, queda algo asi

Para proteger el flash forré con foamie el interior del colador y por fuera igual (asi no quedan las partes cortadas expuestas), adaptamos el omni bouncer dentro y listo (esto nos servira para que la luz sea rebotada hacia las paredes del reflector, asi aprovechamos mas luz.

Ya armado con foamie y todo, queda asi

Ahora si la primer prueba, aprovechando el sensor optico en el flash, lo podemos disparar directo usando el flash de la LX2, esas partes negras es el foamie, debo trabajar un poco en eso, seguro usare un poco de cinta metalica y asi no perdere tanta luz.


Ahora a buscar una voluntaria para probar este reflector
Actualizacion
A falta de un sujeto de pruebas bipedo, tuve que recurrir al buen gato deprimido para hacer unas pruebas
Primero, foto sin flash, con luz de ventana (cerrada juar)

Ahora foto con el flash de la camara (se nota el pequeño punto en los ojos del gato) el cambio de temperatura de color es evidente.

Y ahora con el recien bautizado Xochi Bee

Aunque para ser sinceros, me gusta la iluminacion de la primera foto (en toda la escena una genial luz cenital) quiza habiendo usado un snoot para iluminar solo la cara del gato hubiera salido algo mas nice. Pero claro, se trataba de probar mi Xochi Bee
Actualizacion 2
Consegui un papel metalico cortesia de mi hermano, asi que a forrar por dentro, queda maso asi

Aqui la comparacion
Asi se veia al inicio el flash disparando

y asi se ve ahora, logramos mas uniformidad, aun tiene una pequeña zona donde se nota sombra, pero no creo que importe mucho.
