Wolfram y Mathematica en Raspberry Pi

Entre las cosas que probamos en este Blog  está el uso de nuevo software, de esta manera vamos descubriendo más capacidades para los distintos equipos con que trabajamos y mas formas de interactuar con el hardware externo. En esta oportunidad instalamos Mathematica y el lenguaje de Wolfram para la Raspberry Pi, los resultados son muy prometedores.

wolfram-language-and-mathematica-free-on-every-raspberry-pi

Tras el salto, los detalles de como lo hicimos

Materiales

Los materiales son muy simples

  • Raspberry Pi rev B
  • Micros SD 4GB (solo para demo) con Linux Occidentalis
  • Fuente de poder
  • Cable de Red
  • Acceso Internet
  • PC para hacer SSH

Procedimiento

Las instruccciones están en este post y no digamos que son muy extensas

Se debe ejecutar el siguiente comando,

sudo apt-get update && sudo apt-get install wolfram-engine

Dos consideraciones,

  1. Los packages se bajan desde la página de la fundación raspberry, que es muy lento. En nuestro caso bajar los dos packages, de 70.7 y 207MB respectivamente, tomó como 3 horas y media.
  2. Al final de la instalación se debe aceptar el acuerdo de software con esto finaliza la instalación. ver foto

agree

 

Lo que sigue es un ejemplo donde ingresamos una expresión de tres maneras distintas, notar que la última obtendremos como salida el código MathML

pi@raspberrypi ~ $ wolfram
Wolfram Language (Raspberry Pi Pilot Release)
Copyright 1988-2013 Wolfram Research
Information & help: wolfram.com/raspi
In[1]:= x^2 + Sqrt[y]

2
Out[1]= x + Sqrt[y]

In[2]:= Plus[Power[x,2],Sqrt[y]]

2
Out[2]= x + Sqrt[y]

In[3]:= MathMLForm[x^2 + Sqrt[y]]

Out[3]//MathMLForm=
O_10

In[4]:= Exit[]
pi@raspberrypi ~ $

Ahora veamos un ejemplo sacado de la página oficial de Wolfram;

pi@raspberrypi ~ $ wolfram
Wolfram Language (Raspberry Pi Pilot Release)
Copyright 1988-2013 Wolfram Research
Information & help: wolfram.com/raspi

In[1]:= FindDevices["GPIO"]

Out[1]= {DeviceObject[{GPIO, 1}]}

In[2]:= DeviceConfigure["GPIO",{4->"Output",17 ->"Input"}]

In[3]:= DeviceRead["GPIO",17]

Out[3]= {17 -> -1}

In[4]:= DeviceWrite["GPIO",4->1]

In[5]:= DeviceRead["GPIO",17]

Out[5]= {17 -> -1}

In[6]:= DeviceClose["GPIO"]

In[7]:= Exit[]

 

En esta sesión habilitamos las puertas GPIO de la raspberry Pi y definimos la puerta 4 como escritura y la 17 como lectura. Luego leemos el valor de la puerta 17 y cambiamos a 1 el valor de la puerta 4, finalmente cerramos el objeto GPIO para dejar los valores por default.

Si instalamos un escritorio remoto, ver por ejemplo aquí o aquí , ademas podremos interactuar con las aplcaciones desde el escritorio

VNC_mathematica

Bien, con esto iniciamos el lenguaje Wolfram y vemos que hay multiples opciones de utilizar, incluyendo la lectura/escritura de las puertas en la Raspberry Pi y el uso desde el escritorio.
Personalmente pienso que con estos programas la Raspberry Pi  se convierte en una herramienta de enseñanza muy poderosa en informática educativa y para fomentar el razonamiento lógico.

 

Bibliografía

Pagina de Wolfram para la Raspberry Pi

Author: manuel

Ingeniero Eléctrico, Institutano, instructor certificado Cisco, en twitter @mcarrasco con comentarios y opiniones personales.

4 thoughts

  1. Hola como estas, antes que nada quiero fecilicitarte y agradecerte por estas entregan las cuales me han ayudado mucho en el aprendizaje de la raspberry pi. Entrando en tema quisiera saber si conoces alguna posivilidad que desde un scrip de matemhatica pueda leer el puerto serie (UART) de la raspi y asi hacer un tratamiento a valores adquiridos por un micro

    1. Estimado Oscar:

      Muchas gracias por tu comentario, ante todo se trata de formar comunidad, gente que quiera probar y aprender un poco mas.

      Con respecto a la pregunta encontré esta referencia, aunque no lo hemos probado, de un artículo sobre como conectar un arduino a la Raspberry Pi, http://community.wolfram.com/groups/-/m/t/158717?p_p_auth=XRjV7XvK en ese artículo se hace uso del comando DeviceOpen sobre el objeto Serial http://reference.wolfram.com/language/ref/device/Serial.html

      Saludos

      @mcarrasco

  2. Estoy actualizando ahora mismo mi raspberry a Debian Jessie y va por el 77% del total. Lleva casi una hora para bajar el condenado paquete de Wolfram que pesa 182mb.
    De vez en cuando la terminal me muestra la velocidad actual y ronda unos misérrimos 2800 b/s; esto es demasiado, se han pasado con esto.
    A esta hora ya tendría todo el sistema actualizado, ya que los otros paquetes bajan como un tiro.

    Me pregunto que pasaría si interrumpo la actualización y continuo unas horas más tarde.
    Antes se me fué el wifi un momento y el proceso se canceló; pero al volver a lanzar el comando continuó bajando el wolfran por donde estaba. Aunque no se debería hacer.

    Entran unas ganas locas de hacer un Control + C y echarse a dormir…

    1. Hola, el sistema de actualizacion de todos los Linux, incluyendo la version de Debian que corre en una Raspberry Pi es bastante estable y es capaz de reanudar desde donde quedo en caso de presionar Control + C, si esta muy lenta la conexion, hazlo, no deberias tener problemas. Saludos

Deja un comentario

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