Desplegando Matemáticas en tu blog de WordPress con MathJax

Muchos bloggers en algún momento se encuentran en la necesidad de desplegar Matematicas en su blog. Algúnos lo resuelven con Imagenes o algunos otros con texto puro y las matemáticas lineales.

Pero hay algo mejor.

En una conversación con @p3d40, él me contaba que para uno de los proyectos que está desarrollando en RedShiftMinds, una empresa que él fundó, necesitó desplegar matemáticas. Ese proyecto es Versa, Una plataforma interactiva para practicar Matemáticas, muy bueno por cierto.

Me comentó que para ello utilizaba MathJax, Una librería de Javascript que despliega LaTeX y MathML en el navegador, renderizandolo del lado del cliente.

logo

 

La librería es muy sencilla de usar, solo es de llamarla e inicializarla.

Originalmente planeaba hacer un plugin de WordPress para usarle en mi blog, pero como ya saben, Es mejor buscar si alguien ya lo hizo para no ocupar tu tiempo en algo ya hecho.

Me encontré con MathJax-LaTeX, un plugin de wordpress que permite llamarle simplemente escribiendo un shortcode de WordPress.

[latex] aquí el código LaTeX [/latex]

Entonces desplegaría el Latex algo así (Desplegado ya por el plugin):

\[H\quad =\quad \sqrt [ 3 ]{ -\frac { 9 }{ 2 } +\sqrt { \frac { { 9 }^{ 2 } }{ 4 } +\frac { { P }^{ 3 } }{ 27 }  }  } ,\quad K\quad =\quad \sqrt [ 3 ]{ -\frac { 9 }{ 2 } -\sqrt { \frac { { 9 }^{ 2 } }{ 4 } +\frac { { P }^{ 3 } }{ 27 }  }  } \]

Y eso es! desplegando matemáticas desde el navegador del cliente con LaTeX o MathML. Además de WordPress, también hay para otras plataformas tales como Drupal, Joomla, Concrete5, etc.

Emulando Arduino en tu Navegador, ¡Ya no hay Excusas para no aprender!

emulando

Comprar una Arduino solo para aprender a usarla es una inversión… muy buena. Pero cuando el dinero no alcanza o aún no encuentras donde comprar la Arduino y ya quieres aprender, que se puede hacer? Claro! Correr código de Arduino sin tener una Arduino es muy sencillo ahora.

Gracias a tremenda herramienta de Autodesk: 123D Circuits, puedes acceder a ella entrando a 123d.circuits.io

123D Circuits

Para empezar, Tienen que registrarse en el sitio e iniciar sesión. Una vez iniciada la sesión, para emular Arduino nos metemos a la primera opción “Breadboard Circuits + Simulation”

Breadboard Circuits + Simulation

Allí te encontrarás con la interface. Inicias con una galleta en el área de trabajo:

2014-11-04_19-05-57

La aplicación / el Simulador cuenta con variedad de “componentes” de electrónica. Leds, botones, switches, etc.

2014-11-04_19-06-09

2014-11-04_19-07-46

2014-11-04_19-08-24

Entre todos esos componentes… Encontramos la Arduino!

2014-11-04_19-08-46

Para agregar un elemento al área de trabajo, le damos click.

2014-11-04_19-09-48

 

Ahora para conectar elementos es tan simple como agregar componentes (de igual manera, dando click en la lista de componentes) y tomar los pines de la Arduino clickeandolos y arrastrando el cursor al punto a conectar.

Así armamos por ejemplo el Blink, Que es el primer código que casi todos hacemos al iniciar con Arduino.

2014-11-04_19-11-25

En ese esquema conectamos un led al pin 13.. ahora al dar click en la Arduino podemos programarla en el menú “Code Editor”

2014-11-04_19-12-14

 

Allí escribimos el código a grabar en la Arduino.

2014-11-04_19-12-42

Y para correr el código se presiona Upload and Run.

2014-11-04_19-13-01

Y listo! ahora nuestro código hace encender y apagar el LED :)

2014-11-04_19-14-202014-11-04_19-15-42

 

 

 

 

 

 

 

Genial, no? Ahora ya no puedes decir que por no tener una Arduino no te has incursionado a aprenderla.

Algunas de las otras cosas geniales es que también tiene Lector serial, simulando que tuvieras la Arduino conectada a tu pc!

Que harías con este simulador? Comenta!

Controlando Tiras LED con drivers de acceso individual. (TM1809)

tiras led accesibles

Tuve la oportunidad de conseguir unas tiras LED RGB (Red Green Blue) Gracias Steve French! que tienen drivers LED para así poder controlar cada LED individualmente.

Específicamente la tira LED que tengo usa el driver TM1809 El cual está en parte ya obsoleto (de acuerdo a https://github.com/FastLED/FastLED/wiki/Chipset-reference).

Mi idea es controlarlo con Arduino para poder accesar individualmente a cada LED RGB.

Un ejemplo de lo que se puede hacer:

Lo interesante es la forma en que recibe la información. La recibe en BITS que los recibe por pulsos.

Pulsos recibe TM1809

Cada Chip TM1809 controla 3 LEDs (En la imagen DOUT1,  DOUT2, DOUT3) y para cada uno maneja cada canal R, G y B.

TM1809

Y tiene un Digital IN o DIN. Este recibe los pulsos anteriormente dichos. Los pulsos tal como en la imagen el Chip dependiendo del tiempo, los va a leer como 0 o 1.

Tiempo Pulsos TM1809

Como cada Chip controla 3 leds. y Cada LED está conformado de RGB necesita saber cuanto de pulsos le va a dar a cada R, G y B de cada led. Es decir:

R – 255. G – 255. B-0 (Rojo y Verde a full capacidad y azul apagado).

R – 255. G – 0. B-0 (Rojo full capacidad. Verde y azul apagado).

Etcétera.

Pero como recibir estos datos para todos los LEDs?

Simple. El TM1809 lo resuelve recibiendo pulsos. Cada chip recibe 72 pulsos y por el terminal Digital Out o DOUT deja pasar todos los pulsos restantes media vez ya haya recibido 72.

Pero porqué 72 pulsos? Porque Tiene 3 LEDs. cada pulso es 0 ó 1. necesitamos saber cuanto de 255 necesita cada R, G y B. Usamos binario para saberlo.

Es decir:

128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1      1    1     1    1   1   1    1

Así que en el caso de la tabla anterior, cuánto nos da? 128+64+32+16+8+4+2+1 = 255!

Video de referencia:

Listo! Si mandamos 8 pulsos que signifiquen 1 (Ver imagen anterior referente a los pulsos.) Le estamos diciendo que prenda X LED (ya sea R, G, o B) a 255 de potencia.

 

En sí los 72 pulsos que el chip recibiría ser verían así:
72 bits recibidos por 3 leds por el TM1809
Y como ven. Primero mandas 8 pulsos para controlar el R1, luego otros 8 para el G1 y otros 8 para el B1 (es decir la parte Roja, Verde y Azul del primer LED) Y repites el mismo proceso para los otros 2 LEDs.

 

Si tienes una tira LED que tiene 10 Chips, serían 720 pulsos para controlar los 30 LEDs (3 LEDs  por 1 chip).

Recordando que cada chip utilizaría 72 pulsos y dejaría pasar los demás.

Modo filtro de TM1809

Si quieres cambiar los colores o “actualizar” Mandas un pulso de RESET (ver imagen referente a los pulsos.) y repites el ciclo.

 

Es muy interesante, la forma que utilizan este tipo de chips para controlar los LEDs Ahora solo nos queda controlarlo con el Arduino, cómo lo harías tu?

Recursos

Datasheet del TM1809: http://www.deskontrol.net/descargas/datasheets/TM1809.pdf

Librería Fastled para Arduino: http://fastled.io/

Referencia de algunos otros Chips para uso en fastled: https://github.com/FastLED/FastLED/wiki/Chipset-reference

Instructable manejando otro driver: http://www.instructables.com/id/Bitbanging-step-by-step-Arduino-control-of-WS2811-/?ALLSTEPS