"Mathematica" es un programa establecido en la comunidad universitaria y de investigación como una de las herramientas mas potentes para las matemáticas. Existen, de relevancia para esto, 2 tipos de matemáticas.
El uno se llama matemáticas numéricas y simplificando no es otra cosa que lo que conocemos de las calculadoras electrónicas, donde es posible dejar la calculadora crear por ejemplo un gráfico de una curva senoidal en el que su pantallita muestra los puntos de esa curva calculadas a lo largo del eje horizontal.

Por decirlo en otras palabras. Números se someten a un cómputo dado por cierta función dando como resultado números.
El otro se llama matemáticas simbólicas. aquí se manipulan ecuaciones donde no son números explícitos, sino variables como "x" e "y".
De allí el gráfico arriba en matemática simbólica sería:
"Y = sin(x)"
La cosa se volvería numérica si ponemos en vez de la "x" un "0" y como vemos en el gráfico arriba la curva corta el eje horizontal, lo que significa que
" y = 0 "
"x" e "y" también se llaman "variables! Ahora la intención de lo que quiero aprender, estudiar y experimentar es que pueda relacionar a tales variables información que extraigo de la hardware externa. Así cerramos el círculo con lo que todos que han programado un microcontrolador conocen. El valor de un "registro" se relaciona con una variable en el entorno de los 2 programas de Wolfram mencionados. Así, aplicando las matemáticas simbólicas creo un modelo de una parte del sistema. esta parte de un sistema se llama "objeto". Allí entra "SystemModeler". SystemModeler con el apoyo de todas las capacidades matemáticas avanzadas del program "Mathematica" puede crear funciones que describen el comportamiento de algún objeto en el SystemModeler.

Aquí vemos de forma gráfica el circuito con un Motor de escobillas. A la izquierda la fuente de alimentación, al centro abajo tierra o el polo negativo. Arriba en la horizontal vemos una resistencia y una bobina, también llamado inductor que permite modelar la parte eléctrica de un motor DC. Usando los valores apropiados para la resistencia y el inductor logramos creear un modelo donde el número de revoluciones de tal motor DC y el torque equivalen al motor físico. Pero estos sistemas de modelación permiten combinar en un objeto circuitos electrónicos y sistemas físicos. Aquí en el centro a la derecha vemos un modelo de la ta llamada "Fuerza Electromotriz" que genera un torque y así una cierta velocidad de giro. Al final a la derecha vemos un bloque que modela la inercia de las componentes físicas del motor que impactan el comportamiento mecánico del motor. Así por ejemplo si a tal modelo se le agrega una carga que resulte de algún "trabajo que el motor hace", un torque de dirección opuesta al torque generado en el motor logramos incluir el comportamiento del motor bajo carga. Lo muy especial que tienen estos objetos y que adquieren tal capacidad por ejemplo gracias a las capacidades del lenguaje de modelación "Modelica" son varios. Uno son esos puntos "azules" llamados conectores. esos tienen la capacidad de que se conecten bloques correspondientes a los mas diversos dominios tecnológicos. Aquí vemos que combinan por ejemplo elementos electrónicos entre si, tal cual lo conocemos de cualquier esquema electrónico. Pero esos mismos elementos llamados conectores también permiten unir de la misma forma elementos del dominio de las electrónicas con elementos rotativos físicos. Tambien sería posible aplicar otro conector para expresar el aspecto térmico de un motor DC y así poder simular el calentamiento del motor, etcétera, etcétera.
Pero el otro aspecto fantástico es la capacidad de crear objetos llamadas acausales como contrapunto a elementos causales. Para indicar que significa esto imaginémonos que del circuito arriba quitamos la bfuente de alimentación electrica y que pusieramos en vez de ello solo los 2 polos del circuito sin batería. Ahora en la simulación usando prácticamente el mismo modelo pero sin batería, aplicamos un torque que haga que el rotor del motor DC gire mecánicamente. Que es nuestro motor DC entonces? Un generador claro y por lo tanto veríamos que el circuito casi idéntico ahora es un circuito generador.
La capacidad de objetos en este modelo de poder ser definidos como modelos acausales significa que el flujo de dependencias que en el circuito arriba evidentemente es de la izquierda hacia la derecha, del aplicar una tensión y alimentar el circuito con cierto flujo de corriente lleva a crear un movimiento giratorio del motor DC y de crear un torque mecánico. Pero si aplicamos un torque que hace que el rotor del motor gire, entonces el flujo de eventos cambia de la izquierda hacia la derecha del circuito a desde el torque aplicado al rotor a la derecha a aplicar una tensión y crear un flujo de corriente que por ejemplo permitiría modelando la batería modelar como esa bateria sería cargada!
Pues bien, hasta muy recientemente cuando hablaba con el soporte técnico de Wolfram esa gente no entendía de que demonios hablaba. Ahora y gracias a la información reflejada en el sitio de internet de Wolfram finalmente puedo pasar el mensaje al apoyo técnico.
Bien, la información disponible indica que Wolfram a hecho disponible 2 cosas que son de vital importancia para mi, que requieren de gastos mínimos para poder estudiarlos, aprenderlos y experimentar. vayamos paso por paso!
1. Wolfram ha hecho disponible de forma gratuita "Mathematica" y algo que se llama "Wolfram Language" en la placa Raspberry Pi con cierto tipo de Linux. Linux es un sistema operacional gratuito, pero que también existe con funcionalidad adicional y apoyo técnico en productos comerciales. Cada tal "Tipo de Linux" se llama "distribución" y para la placa RaspBerry Pi existe una distribución llamada "Raspberian" que permite hacer disponible "Mathematica y Wolfram Language" en el raspBerry Pi. Yo me he comprado la placa RaspBerry Pi B+ como Bundle para tener disponible la placa mas potente y periferias adicionales como por ejemplo el WIFI.
Así lo que empezaré haciendo apenas llegue mi placa es aprender Linux. Gracias a Dios existen cantidades de tutoriales también para la distribución Raspian por ejemplo en YouTube! Una vez que tenga cierto nivel de aprendizaje empezaré a estudiar el software de Wolfram disponible allí para hacer por ejemplo el famoso y por algún ignorante en el foro descalificado, el "Hola Mundo" de sistemas embebidos, el blinquear de la LED, pero cambiando valores de variables en Mathematica. Así, usando una variable lógica puedo variar entre "verdadero" y falso" y así encender o apagar el LED y así lograr el primer paso en relacionar una variable simbólica en el programa "Mathematica" al estado de una componente electrónica física externa!

Recuerdan este diagrama de mi sistema de control de escotas? Pues bien, para mis primeros experimentos en el ordenador tendré una licencia de Mathematica andando que se comunicará, por ejemplo por WIFI con la placa RaspBerry Pi B+. El receptor en este diagrama será el ordenador que se comunica por WIFi con la placa raspBerry Pi B+ que en esta temprana fase cumplirá la función de central. Así me será posible, si Dios quiere, mi capacidad mental y de salud no lo impide, crear un moelo donde en el Programa "Mathematica" se generan los impulsos del receptor y se controla la versión de "Mathematica" que estimo comparativamente muy limitada en sus capacidades andando en el RaspBerry Pi B+. Esta placa en ese entorno debe comunicarse con la placa LPCXpresso1769 y así modelar y simular y verificar contra los datos extraídos de las placas físicas externas al ordenador, que mi modelación de cada parte del sistema de control de escotas es equivalente en los datos que computa en la simulación con los datos que se ganan del hardware externo. Eso se llama "Hardware-in-the-Loop". mathematica tiene funcionalidades llamadas "Solver" que son capaces de generar funciones que aproximan con el comportamiento de los datos provenientes de sistemas físicos externos. así ser capaz de verificar que los modelos que voy desarrollando mientras voy estudiando las matemáticas, la física y la electrónica de los diversos cursos universitarios. Claro que, tomando en consideración las limitadas capacidades de la placa Raspberry Pi B+ la ruta que tomaré será partiendo del "Hola Mundo" con el blinquéo del LED estudiar y aprender lo requerido. Ademas espero que para mediados de marzo tendré los pesitos para comprar la licencia de "Mathematica".
Bien la segunda placa que compré se llama "Teensy 3.1". Esa placa con un ARM Cortex M4 es apoyada por el software "SystemModeler" usando un protocolo llamado "Firmata" que tiene sus orígenes en los protocolos MIDI. En esa placa también instalaré Linux y como extensión del sistema de desarrollo para las placas Arduino se llama "Teensyduino" y dentro de ese entorno existe el protocolo "Firmata" y el SystemModeler apoya esta placa Teensy 3.1 con el protocolo Firmata que también apoya SystemModeler! Bien, porqué este protocola "Firmata" es de importancia e interés?
Bien para esto es útil entender un poco de la comunicación por redes y existe para ello un modelo de descripción estandardizado y denominado "OSI 7 Layer Model".