SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

90
UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ Instituto de Ingeniería y Tecnología Departamento de Ingeniería Eléctrica y Computación SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de Investigación presentado por: Ricardo Martínez Lozano 98665 Ricardo Hernández Lozano 98719 Requisito para la obtención del título de INGENIERO EN SISTEMAS COMPUTACIONALES Profesor Responsable: MC. Fernando Estrada Saldaña Junio del 2014

Transcript of SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

Page 1: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ

Instituto de Ingeniería y Tecnología

Departamento de Ingeniería Eléctrica y Computación

SISTEMA MULTIMEDIA RASPBERRY PI

Reporte Técnico de Investigación presentado por:

Ricardo Martínez Lozano 98665

Ricardo Hernández Lozano 98719

Requisito para la obtención del título de

INGENIERO EN SISTEMAS COMPUTACIONALES

Profesor Responsable: MC. Fernando Estrada Saldaña

Junio del 2014

Page 2: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

ii

Page 3: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

iii

Autorización de Impresión

Los abajo firmantes, miembros del comité evaluador autorizamos la

impresión del proyecto de titulación

SISTEMA MULTIMEDIA RASPBERRY PI

Elaborado por los alumnos:

Ricardo Martínez Lozano 98665

Ricardo Hernández Lozano 98719

Dr. Jorge Rodas

Profesor de la Materia

MC. Fernando Estrada Saldaña

Asesor Técnico

Page 4: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

iv

Declaración de Originalidad

Nosotros Ricardo Martínez Lozano, Ricardo Hernández Lozano declaramos que el

material contenido en esta publicación fue generado con la revisión de los

documentos que se mencionan en la sección de Referencias y que el Programa de

Cómputo (Software) desarrollado es original y no ha sido copiado de ninguna otra

fuente, ni ha sido usado para obtener otro título o reconocimiento en otra Institución

de Educación Superior.

Ricardo Martínez Lozano Ricardo Hernández Lozano

Page 5: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

v

Dedicatoria

Este trabajo de tesis está dedicado a nuestros padres que a lo largo de todos estos años

han estado apoyándonos y motivándonos, sencillamente ustedes son la base de nuestra

vida profesional.

Gracias por confiar en nosotros, este logro es de ustedes.

Page 6: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

vi

Agradecimientos

A nuestros profesores que durante toda la carrera nos apoyaron y transmitieron su

conocimiento para poder aplicarlo en la vida, no solo en el ámbito laboral y

estudiantil sino también en la vida diaria.

En especial al maestro Fernando Estrada Saldaña quien nos ayudó y oriento a realizar

este proyecto, aun cuando en el transcurso del proyecto nos encontramos con

tropiezos él nos ayudó a levantarnos y a seguir adelante.

También una especial mención al Doctor Jorge Rodas que nos guio en la elaboración

de este documento y nos prestó el tiempo necesario para culminar este documento.

Page 7: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

vii

Índice de contenido

Autorización de Impresión ........................................................................................... iii

Declaración de Originalidad ......................................................................................... iv

Dedicatoria ..................................................................................................................... v

Agradecimientos ........................................................................................................... vi

Índice de contenido ...................................................................................................... vii

Índice de Figuras ........................................................................................................... ix

Lista de Tablas .............................................................................................................. xi

Introducción ................................................................................................................... 1

Capítulo 1. Planteamiento del problema ........................................................................ 2

1.1 Antecedentes ................................................................................................... 2

1.2 Definición del problema ...................................................................................... 8

1.3 Objetivos de la investigación ............................................................................... 8

1.3.1 Objetivo General ............................................................................................... 9

1.3.2 Objetivos específicos ........................................................................................ 9

1.4 Preguntas de investigación ................................................................................... 9

1.5 Justificación de la investigación .......................................................................... 9

1.6 Limitaciones y delimitaciones de la investigación ........................................... 10

Capítulo 2. Marco Teórico ........................................................................................... 11

2.1 Estructura física de Raspberry Pi ....................................................................... 11

2.2 Estructura Lógica de Raspberry PI .................................................................... 12

2.3 Lenguajes de programación en Raspberry Pi ..................................................... 13

2.4 APIs (Application Programming Interface) ....................................................... 14

Capítulo 3. Materiales .................................................................................................. 20

3.2 Materiales ........................................................................................................... 20

3.2.1 Software ...................................................................................................... 20

3.2.2 Hardware ..................................................................................................... 22

3.3 Método ............................................................................................................... 23

Capítulo 4. Resultados de la investigación .................................................................. 29

4.1 Presentación de resultados ................................................................................. 29

Capítulo 5. Conclusiones ............................................................................................. 39

5.1 Aportaciones ...................................................................................................... 39

Page 8: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

viii

5.2 Trabajo futuro .................................................................................................... 40

Bibliografía .................................................................................................................. 42

Apéndices ..................................................................................................................... 46

Apéndice A. Especificaciones de Raspberry Pi ........................................................... 46

Especificaciones técnicas ......................................................................................... 46

Conectores y pines de Raspberry Pi. ........................................................................ 48

Apéndice B. Sistema operativo Raspbian .................................................................... 50

Apéndice C. Lenguaje de Programación PHP ............................................................. 51

Guardar una variable ................................................................................................ 52

Leer una variable guardada ...................................................................................... 53

Borrar una variable .................................................................................................. 53

Apéndice D. Configuraciones adicionales de Raspberry Pi ........................................ 56

Apéndice E. Técnica Overclock .................................................................................. 57

Apéndice F. Creación de aplicaciones para el sistema ................................................ 59

Apéndice G. Seguridad de los navegadores web ......................................................... 60

Apéndice H .Lenguajes de Programación .................................................................... 61

Ventajas de los lenguajes interpretados. .................................................................. 64

Desventajas de los lenguajes interpretados. ............................................................. 64

Apéndice I. Manual de Usuario .................................................................................. 65

Introducción ............................................................................................................. 65

Objetivo del manual ................................................................................................. 65

Configuración Inicial ............................................................................................... 65

Arranque del sistema................................................................................................ 65

Módulos del sistema ................................................................................................ 66

Módulo de medios locales. .................................................................................. 66

Módulos web ........................................................................................................ 70

Apéndice J. Manual Técnico ........................................................................................ 74

Introducción y objetivos .......................................................................................... 74

Lenguaje utilizado. ................................................................................................... 74

Aplicación ................................................................................................................ 74

Utilerías ................................................................................................................ 75

Agregar addons al sistema. ...................................................................................... 75

Page 9: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

ix

Índice de Figuras

Figura 1.1 Apple TV ............................................................................................................................... 3

Figura 1.2 Energy Android SmartTv Box ............................................................................................... 4

Figura 1.3 O!Play HD2 .......................................................................................................................... 4

Figura 1.4 PopCorn Hour A-300 ............................................................................................................. 5

Figura 1.5 Prototipo de Raspberry Pi año 2006 y 2008 ........................................................................... 6

Figura 2.1 Estructura de Hardware en Raspberry Pi modelo B ............................................................ 12

Figura 2.2 Raspberry Pi + Debian = Raspbian ...................................................................................... 13

Figura 2.3 Cantidad de APIs del año 2000 al 2011. .............................................................................. 16

Figura 3.1 Información de la imagen del sistema operativo Raspbian. ................................................ 23

Figura 3.2 Configuración inicial de Raspberry Pi ................................................................................. 24

Figura 4.1 Interfaz, medios locales ........................................................................................................ 30

Figura 4.2 Utilerías del sistema ............................................................................................................ 31

Figura 4.3 Addon tipo Java ................................................................................................................... 31

Figura 4.4 Interfaz ................................................................................................................................. 31

Figura 4.5 Configuración y eliminación del sistema. ............................................................................ 32

Figura 4.6 Problemas con Flash Player ................................................................................................. 33

Figura 4.7 Prueba de video HTML5 ...................................................................................................... 34

Figura 4.8 Prueba de video, reproductor de HTML5 de YouTube ........................................................ 34

Figura 4.9 Uso de CPU en VLC Media Player ...................................................................................... 35

Figura 4.10 Uso de CPU en OMXPLAYER ......................................................................................... 36

Figura 4.11 Rendimiento del radio por interne ...................................................................................... 36

Figura 4.12 Resultados de VLC Media Player y gráfica del procesador. .............................................. 37

Figura 4.13 Pruebas y grafica de rendimiento con OMXPLAYER....................................................... 38

Figura 4.14 Resultado de la reproducción en OMXPLAYER. .............................................................. 38

Figura A.1. Grafica comparativa entre el modelo A y B de Raspberry Pi............................................. 46

Figura A.2 Interfaces de Hardware de Raspberry Pi ............................................................................. 48

Figura A.3 Interfaces externas de Raspberry Pi .................................................................................... 49

Figura B.1 Raspbian ............................................................................................................................. 50

Figura D.1 Pantalla de configuración de Raspberry Pi .......................................................................... 56

Figura E.1 Configuración Overclock Raspberry Pi .............................................................................. 58

Figura F.1 Ejemplo creación de Addon ................................................................................................. 60

Figura I.1 Página principal del sistema. ................................................................................................ 66

Figura I.2 Encabezado de medios locales. ............................................................................................ 66

Figura I.3 Aplicaciones que reproducen medios locales ....................................................................... 67

Figura I.4. VLC Media Player ............................................................................................................... 67

Figura I.5 OMXPLAYER ..................................................................................................................... 68

Figura I .6. Visor de imágenes. ............................................................................................................. 68

Figura I.7. Utilerías cargadas dentro del sistema. ................................................................................. 69

Page 10: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

x

Figura I.8 Aplicación de YouTube ........................................................................................................ 69

Figura I.9. Botón PLAY del navegador. ................................................................................................ 70

Figura I.10. Página inicial Módulos web .............................................................................................. 71

Figura I.10. Sección de radio por internet. ............................................................................................ 71

Figura 1.11. Listado de aplicaciones agregadas por el usuario.............................................................. 72

Figura I.12. Configuración de los módulos web. .................................................................................. 72

Figura I.13. Configuración, cambio de color de fondo y color de letras. .............................................. 73

Figura J.1. Utilerías del sistema ............................................................................................................ 75

Figura J.2 Diagrama de flujo para la instalación de addons. ................................................................. 77

Figura J.3 Diagrama de flujo para la ejecución de un addon agregado por el usuario. ......................... 78

Figura J.4 Imagen de las diferentes carpetas utilizadas......................................................................... 78

Page 11: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

xi

Lista de Tablas

Tabla 3.1 Librerías adicionales de Minimal Kiosk Browser .................................................................. 26

Tabla A.1 Estados de los indicadores LED de Raspberry Pi. ................................................................. 47

Tabla I.1 Teclas para manipular YouTube. ........................................................................................... 70

Page 12: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

1

Introducción

En la actualidad los sistemas de información y comunicación han ido evolucionando al

grado de que se suelen utilizar de manera muy común y en muchas ocasiones sin que

los usuarios logren percibirlos.

Existen productos o dispositivos que son llamados inteligentes por la capacidad que

tienen de procesar, transmitir y compartir información. Uno de esos productos son los

televisores inteligentes, los cuales tienen más capacidades que las televisiones comunes.

Sin embargo, al ser nuevas en el mercado su costo de adquisición es elevado.

Existen por su parte algunos equipos o accesorios que permiten dotar de características

adicionales a un televisor inteligente. Entre estos se encuentran los reproductores

multimedia inteligentes, sin embargo cuentan con especificaciones técnicas/lógicas

limitadas o simplemente su costo es elevado para las funciones que nos ofrece.

Raspberry Pi es una microcomputadora económica, capaz de ser utilizada para muchas

cosas que una computadora normal puede hacer, desde navegar por internet hasta

reproducir videos en alta definición, todos éstos elementos brindan la oportunidad de

crear soluciones acorde a un presupuesto limitado.

Page 13: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

2

Capítulo 1. Planteamiento del problema

En el presente capítulo se hablará acerca de la importancia y la evolución de los

dispositivos multimedia en nuestros días, así como de las tecnologías y dispositivos

actuales, sus características y costos.

También se hablará acerca de Raspberry Pi algunas de sus características y de los

proyectos con los que han trabajado diferentes personas o comunidades.

De igual manera, se agrega el planteamiento general del proyecto, su definición, los

objetivos que se plantearon, así como sus delimitaciones y limitaciones del mismo.

1.1 Antecedentes

Desde que se creó la televisión a principios del siglo XX y a medida que ha ido

evolucionando, se ha buscado que la televisión tenga y brinde más contenido y calidad a

sus usuarios. La creación y globalización de la televisión trajo consigo competitividad

entre las empresas creadoras de contenido hasta las creadoras de los mismos equipos de

televisión [1]. Con esta ardua competencia surgió el VHS (Video Home System), el cual

es un sistema de grabación y reproducción analógico. Con un reproductor VHS se podía

visualizar el contenido e incluso grabar lo que se reproducía en la televisión, los

problemas eran la calidad con la que se reproducía el video, además que su tiempo de

grabación era limitado [2]. Después del VHS surgió el DVD (Digital Versatile Disc)

mismo que contiene una codificación digital aumentando la calidad del video y del

audio [3].

Paralelamente a estas tecnologías de video fue surgiendo y evolucionando la

computación, la cual fue tomando lo mejor de muchas tecnologías para crear y hacer

que las computadoras fueran utilizadas en cualquier ámbito de nuestras vidas. Desde el

punto de vista laboral hasta el entretenimiento, fueron surgiendo portales como

YouTube el cual es un sitio gratuito para la distribución de material multimedia en todo

el mundo. También surgieron tiendas en línea para obtener música y video,

principalmente, sin la necesidad de salir de casa.

Page 14: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

3

Toda esa tecnología que se fue desarrollando en la computación se fue aplicando en

otros dispositivos, como los reproductores multimedia, sintonizadores satelitales de

televisión y hasta en las televisiones. Dichas televisiones son llamadas SmartTv, las

cuales son capaces de procesar, recibir y transmitir información sin ningún dispositivo

externo.

En la actualidad existen tecnologías y elementos que brindan al usuario la capacidad de

tener en un equipo multimedia con múltiples servicios de entretenimiento en alta

definición, ya sea de video o audio. Todo en un solo dispositivo y a medida que las

necesidades de los usuarios aumentan, se van desarrollando nuevos dispositivos,

algunos ejemplos utilizados en la actualidad son:

a) Apple TV

Este centro de entretenimiento permite acceder a un amplio catálogo de archivos

multimedia, los cuales son ofrecidos por Apple. El Apple TV se puede conectar

con los dispositivos Apple para compartir música, videos y fotos; con una

resolución de 1080 Pixeles. El costo de este dispositivo es de 99 dólares [4].

(Ver figura 1.1).

Figura 1.1 Apple TV

Page 15: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

4

b) Energy Android SmartTv Box

Dispositivo multimedia que dota a la televisión del sistema operativo Android

permitiéndole acceder a los servicios y aplicaciones ofrecidas por Google y su

sistema operativo. Además de sintonizar y grabar en alta definición. Según su sitio

web [5] también tiene las funciones de Media Share y cuenta con la versión 4.0 de

Android (Ver figura 1.2.).

Figura 1.2 Energy Android SmartTv Box

c) O!play HD2 de Asus.

Este dispositivo es el primero en el mundo en ofrecer un centro multimedia con

USB 3.0 lo cual hace más rápido y sencillo el compartir elementos multimedia

por medio de una red local. Ofrece emisores de radio y canales de televisión.

Brinda aplicaciones como Picasa, Flickr, Podcast, noticias RSS. También cuenta

con sonido envolvente 7.1 [6] (Ver figura 1.3).

Figura 1.3 O!Play HD2

Page 16: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

5

d) Popcorn Hour A-300 de Cloudmedia

Centro de entretenimiento que ofrece a sus usuarios las características

multimedia de audio y video en alta definición, se puede tener acceso a una

variedad de tiendas digitales para la compra y venta de servicios multimedia.

Según su sitio web cuenta con soporte para MKV 3D, con el cual es posible ver

películas y secuencias en 3D. [7] (Ver figura 1.4).

Figura 1.4 PopCorn Hour A-300

Las soluciones mencionadas anteriormente tienen como objetivo brindar al usuario

comodidad y variedad de entretenimiento. Dichas soluciones cuentan sus respectivas

ventajas y desventajas. Una posible desventaja es la necesidad de contar con alguna

cuenta especial para poder tener acceso a los servicios ofrecidos. Otra posible

desventaja es el precio de adquisición, el cual oscila entre los 100 y 250 dólares.

Conforme ha pasado el tiempo los equipos informáticos han ido incrementando su

poder de procesamiento sin la necesidad de incrementar notoriamente sus costos. Con

estos avances han surgido nuevas tendencias al momento de producir nuevos equipos

para el mercado actual, una de estas tendencias son los equipos llamados SBC (Single

Board Computer) los cuales tienen como características principales su precio y su

tamaño. El precio de equipos de esta gama oscila entre los 30 y 70 dólares dependiendo

del equipo, y su tamaño es no mayor al de una tarjeta de crédito. Un ejemplo de este

tipo de equipos es el llamado Raspberry Pi.

Page 17: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

6

Raspberry Pi surge en al año 2006, basada en un proyecto realizado por la Universidad

de Cambridge dónde el objetivo principal era crear una computadora pequeña y

económica, ideal para que los niños entendieran y aprendieran la forma de pensar y

razonar en las ciencias computacionales. Conforme se desarrollaba el proyecto otras

tecnologías iban creciendo, una de esas tecnologías fue la tecnología móvil, la cual era

cada vez más popular en el mercado, surgiendo grandes cantidades de marcas y

empresas que producían diferente equipos y hardware. Esto trajo como consecuencia

mejoras en su desempeño y más accesibilidad para todo el mundo tecnológico. Así que

cada vez era más común el desarrollo de equipos pequeños capaces de ejecutar

cualquier tipo de tareas. Estas tendencias marcaron el camino de Raspberry Pi el cual

vio disminuido su tamaño sin disminuir su potencia. La figura 1.5 muestra el cambio de

uno de los primeros prototipos creado en el año 2006 a otro creado en el año 2008.

Figura 1.5 Prototipo de Raspberry Pi año 2006 y 2008

Conforme se ha ido desarrollando el proyecto de Raspberry Pi el cual data del año 2006,

pasando por su primera versión comercial llamado modelo A (febrero 2012) hasta llegar

a su versión más actual denominada versión B (Febrero 2013) se han ido agregando

características las cuales han causado gran impacto en sus usuarios, atrayendo el uso de

este equipo en diversas áreas de la sociedad. Desde instituciones escolares, empresas

privadas, dependencias públicas hasta el usuario común y corriente [8]. Algunos de los

Page 18: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

7

usos que se le dan a Raspberry Pi son: servidor web, clúster, radio, servidor VPN, entre

otros usos más básicos o complejos.

Algunos de los proyectos más conocidos donde han utilizado Raspberry Pi son:

a) Coder

Convierte Raspberry Pi en un servidor web, que permite crear contenido web

utilizando HTML, CSS y JavaScript. Este proyecto fue realizado por el equipo

de Google en Nueva York con la intensión de que sus usuarios aprendan

programar, codificar y pensar mientras se desarrollar contenido web [9].

b) RpiCluster

RpiCluster es una solución creada por Joshua Kiepert de la Universidad de

Boise State, donde se buscaba hacer pruebas en un Clúster Beowulf, el cual es

un grupo de computadoras generalmente idénticas, que están conectadas en red

con el fin de compartir el procesamiento de las tareas.

En Boise State ya se contaba con un Clúster Beowulf, pero Kiepert no confiaba

totalmente en él, principalmente por su disponibilidad y la dificultad al momento

de agregar algún software. Pensando en varias soluciones Kiepert llegó a la

conclusión que su única alternativa era crear un clúster que se adecuara a sus

necesidades. Esa solución incluía 32 equipos Raspberry los cuales

interconectados tenían la capacidad de procesamiento de 10 GFLOPS a un costo

menor comparado con equipos que ofrecían el mismo poder de procesamiento

[10].

c) Raspberry Pi Supercomputer

La Universidad de Southampton y su departamento de Computación liderados

por el Doctor Simón Cox, desarrollaron una supercomputadora de 64 núcleos y

1 TB de memoria, fue creada a partir de 64 equipos Raspberry Pi y con un costo

de 2 500 euros [11]. Esta supercomputadora ha sido como un clúster para toda

la universidad. La misma institución y su equipo de trabajo han puesto a

disposición del público la forma de crear la supercomputadora, apoyando el

objetivo de Raspberry Pi [12].

Page 19: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

8

Así como se han utilizado equipos Raspberry Pi para proyectos educativos o como

soluciones a problemas relacionados con tecnologías de información también han

surgido proyectos que pueden ser utilizados en la vida cotidiana y donde cualquier

persona tenga acceso a ello, uno de esos proyectos ha sido por parte la empresa XBMC,

la cual publicó en la página oficial de Raspberry Pi un artículo nombrado ‘XBMC

Running On Raspberry Pi’, donde se mostraban los pasos para montar el sistema

XBMC en la Raspberry [13]. Todo este proyecto fue realizado por el equipo XBMC el

mismo que es el encargado de desarrollar dicho sistema. XBMC es un reproductor de

medios y de entretenimiento de código abierto y libre (GPL), que se puede instalar en

Linux, OSX, Windows, iOS y ahora en Android [14].

Siguiendo las iniciativas de XBMC el equipo de OpenELEC elaboró un sistema

embebido construido para que Raspberry Pi pueda ejecutar correctamente XBMC [15].

OpenELEC es un sistema operativo diseñado para ejecutar XBM, dónde su idea

principal es permitir a la gente utilizar XBMC como cualquier dispositivo multimedia

(DVD, DVR), sin la necesidad de administra manualmente XBMC [16].

1.2 Definición del problema

Los televisores inteligentes han ido creciendo en el mercado actual pero no están al

alcance de gran parte de la población debido a su costo elevado y aun cuando

actualmente existen dispositivos externos que ofrecen la posibilidad de extender las

funciones de entretenimiento que poseen las televisiones actuales, el costo de dichos

dispositivos sigue siendo inaccesible para muchos usuarios. Además en ocasiones el

dispositivo adquirido cuenta con opciones limitadas de entretenimiento al usuario.

1.3 Objetivos de la investigación

Implementar un sistema multimedia con ayuda del equipo Raspberry Pi que ofrezca al

usuario una amplia variedad de entretenimiento en un solo dispositivo con un costo

reducido en comparación a otras soluciones.

Page 20: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

9

1.3.1 Objetivo General

Configurar el un sistema en Raspberry Pi ayudado de APIs convenientes para crear un

centro multimedia abierto que, conectado a la televisión, funcione como una SmartTV.

1.3.2 Objetivos específicos

Registrar el comportamiento del Raspberry Pi al trabajar como un centro de

entretenimiento. Describir cómo diferentes APIs se puedan integrar al sistema.

1.4 Preguntas de investigación

¿En qué podrá beneficiar la propuesta planteada a los usuarios y los posibles

desarrolladores?

¿Cómo se pueden integrar las diferentes APIs al sistema logrando que el usuario

tenga acceso a ellas?

¿Cómo se comportará el Raspberry Pi como sistema multimedia?

¿Qué ventajas tiene nuestro sistema multimedia con respecto a las alternativas

actuales?

1.5 Justificación de la investigación

El presente documento tiene como fin la creación de un sistema multimedia para

convertir un televisor común en uno inteligente, generando algunas de las siguientes

ventajas:

Evitar la compra de un nuevo televisor, alargando el tiempo de vida del mismo.

Variedad de APIs o aplicaciones de entretenimiento en el sistema, tratando de

agregar las más utilizadas en el mercado.

Basado en un sistema Linux el cual es de código abierto por lo consiguiente

tiene la oportunidad de poder agregar más APIs y actualizarse a los sistemas

más modernos.

Page 21: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

10

Los usuarios regularmente toman en cuenta el factor costo/rendimiento de los

productos en los que están interesados. El costo de Raspberry Pi es aproximado

de $35 dólares.

1.6 Limitaciones y delimitaciones de la investigación

Las limitaciones con las que se puede contar en este proyecto son:

Las librerías utilizadas en Raspberry Pi son pocas en este momento.

Permiso de utilizar APIs de terceros.

Aunque no se podría considerar como limitaciones las siguientes se deben tomar

como consideraciones:

1. Acceso a Internet, algunos de los APIs considerados necesitan

conectarse a Internet para poder actualizar y cargar los elementos

multimedia. Para visualizar los archivos locales no es necesario tener

acceso a internet.

2. Aunque se puede conectar a la televisión por componente y por HDMI,

es recomendable utilizar la conexión por HDMI, para poder lograr el

mejor rendimiento del dispositivo.

Delimitación

Por cuestiones de tiempo se implementarán solamente algunas de las APIs más

populares en la actualidad; navegador web, YouTube.

Page 22: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

11

Capítulo 2. Marco Teórico

El presente capítulo tratará la estructura del Raspberry Pi tanto la física como la lógica,

mediante las cuales podremos conocer algunas limitantes, lenguajes utilizados, sistemas

operativos, etc. Dicha información será necesaria para llevar a cabo la investigación y

el desarrollo del proyecto. De igual manera se investigará y se conocerá acerca de las

APIs existentes y populares.

2.1 Estructura física de Raspberry Pi

Al hablar de Raspberry Pi se puede pensar que su rendimiento tanto en software

como en hardware es limitado. Y esto puede ser cierto pero también se podría decir que

sus características son más parecidas a las de un dispositivo móvil, pero en esta sección

se mostrará que este dispositivo cuenta con características adicionales, a tal grado de

poder acercarse y competir con cualquier equipo de cómputo utilizado en la vida

cotidiana.

Raspberry Pi es un sistema SBC (Single Board Computer), lo cual indica que es un

equipo computacional elaborado en una tableta no más grande que una tarjeta de

crédito. Actualmente existen en el mercado dos versiones de Raspberry pi, el modelo A

y el modelo B, siendo el modelo B el más actual, algunas de las características de este

modelo son las siguientes [17]:

1. Procesador: ARM 700 MHz con memoria RAM de 512 MB

2. Conector HDMI

3. Puertos USB y Ethernet

4. Salida de audio y video por medio del conector análogo y de componente

respectivamente.

Estas características del modelo B se pueden visualizar en la imagen 2.1. Si se desea

saber más acerca de las especificaciones técnicas de hardware de Raspberry Pi ver el

apéndice correspondiente a las especificaciones técnicas de Raspberry Pi (Apéndice A).

Page 23: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

12

Figura 2.1 Estructura de Hardware en Raspberry Pi modelo B

2.2 Estructura Lógica de Raspberry PI

Raspberry Pi corre como sistema operativo Linux, pero Linux es solo el

KERNEL, ya que el sistema operativo es mucho más que eso, la colección de drivers,

servicios y aplicaciones hacen el sistema operativo, además que existen una gran

variedad de sabores y distribuciones de Linux. Algunos de los sabores más populares y

conocidos en ambientes de escritorio son Ubuntu, Debian, Fedora y Arch, cada uno con

sus capacidades y aplicaciones particulares.

Como Raspberry Pi cuenta con un chipset con características parecidas a las de un

dispositivo móvil, tiene diferentes requerimientos de software, así que necesita

distribuciones de Linux especiales, dichas distribuciones son [17]:

Raspbian: La distribución oficial recomendada por la Raspberry Pi Foundation.

Como su nombre lo indica es la distribución Debian optimizada para la

Raspberry Pi. Para más información acerca de Raspbian verificar el apéndice de

Raspbian (Apéndice B).

Page 24: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

13

Figura 2.2 Raspberry Pi + Debian = Raspbian

Arch Linux: Esta distribución esta optimizada para los chipset ARM, por lo

tanto soportan Raspberry Pi.

Xbian: Es una distribución basada en Raspbian para usuarios que quieran usar su

Raspberry Pi como centro de medios [18]

2.3 Lenguajes de programación en Raspberry Pi

Raspberry Pi puede compilar o interpretar una gran variedad de lenguajes de

programación, debido a la gran variedad de compiladores o interpretes disponibles para

sistemas operativos basados en Linux, algunos de los lenguajes más utilizados tanto en

Linux como en la actualidad son:

Python: Python es un lenguaje interpretado creado en 1999 por Guido van Rossum,

quien buscaba un lenguaje de programación fácil de entender para cualquier persona,

principalmente para aquellas personas que eran nuevas en este tipo de tecnologías. Al

ser un lenguaje interpretado, solo es cuestión de contar con el intérprete adecuado para

poder ejecutar algún script.

Según Richardson autor del libro Getting Started with Raspberry Pi, Python puede

llegar a ser un poco más rápido al ser un lenguaje interpretado y así poder tener algunos

beneficios. [17]

Los intérpretes de Python se pueden ejecutar de dos maneras:

Como un Shell interactivo, el cual ejecuta comandos.

Page 25: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

14

Como programa de líneas de comandos, para ejecutar secuencias.

Otras de las razones por las que Python es tan popular, es que existen una gran cantidad

de módulos que proporcionados por los usuarios.

C#. Raspberry Pi también puede compilar y programar en C# vía Mono el cual es un

compilador para C# en distribuciones Linux. C# puede llegar a tener problemas de

compatibilidad en su sintaxis en el paso de parámetros, el que se arregla con una

actualización del software Mono. Pero aún existen errores. Por lo tanto es muy poco el

uso de C# en Raspberry Pi [19].

Erlang. Erlang es un lenguaje de programación utilizado principalmente en servidores

web, Erlang fue diseñado en los laboratorios de computación de Ericsson, creado

originalmente para desarrollar aplicaciones distribuidas tolerantes a fallos. Este lenguaje

es común encontrarlo en temas relacionados a telecomunicaciones, transacciones

bancarias, comercio y telefonía [20].

Java. Oracle tiene poco tiempo de dar soporte de sus servicios a equipos con

arquitectura ARM, uno de esos servicios es la aplicación Java SE RUNTIME, la cual

permite la ejecución de aplicaciones JAVA mediante líneas de comandos. La ser

relativamente nuevo este servicio su documentación acerca de la instalación y de

resolución de problemas solo se puede encontrar en la página oficial de Oracle [21].

Pascal. También se pueden escribir programas desarrollados en Pascal en el Raspberry

Pi. De Pascal han surgido otros lenguajes como lo es Delphi y Oberon [22]. Una de las

ventajas de programar en Pascal es su portabilidad entre sistemas operativos, además de

soportar diferentes tipos de procesadores tanto procesadores Intel como ARM. [23].

2.4 APIs (Application Programming Interface)

API (Application Programming Interface) es un conjunto de funciones o

procedimientos que ofrecen ciertas bibliotecas para ser utilizadas por otro software

como una capa de abstracción.

Page 26: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

15

Un API define la interfaz por la cual una parte del software se comunica con otra fuente,

proporcionando un set estándar de interfaces, usualmente funciones, métodos o

procedimientos, las que se pueden llamar desde cualquier otra parte del software [18].

Las APIs proveen un método estructurado para desarrollar un programa que realice una

determinada tarea [24].dichos métodos pueden ser de gran ayuda para los

desarrolladores, ya que mediante ellas se puede acceder a datos y servicios que ofrecen

los proveedores de las APIs.

Las APIs se pueden dividir en dos:

Públicas. Están al alcance del que las necesite. Existe una gran cantidad de

información ya que entre los usuarios y desarrolladores existen en una gran

demanda para este tipo de aplicaciones, brindando una retroalimentación de una

gran cantidad de temas. Algunos de las limitantes de estas APIs son las

restricciones a cierta información o servicios, además de poder llegar a tener

problemas de copyright y en algunos casos tener problemas de seguridad. [25]

Privadas. Estas solo son vistas por cierta cantidad de desarrolladores,

principalmente asociados de la empresa desarrolladora. Las ventajas de utilizar

APIs privadas son el desarrollo más rápido y escalable de aplicaciones, sin la

necesidad de hacer cambios a su código [26].

Las APIs pueden ser vistas desde el punto de negocios, ya que puede ser utilizada como

una estrategia de negocio, abriendo un mundo de posibilidades para que su servicio sea

visto y consumido por diferentes usuarios y en diferentes dispositivos y plataformas

[26].

Page 27: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

16

La evolución y la utilización de APIs han venido en aumento conforme pasa el tiempo,

como se muestra en la figura 2.3. La cual indica la cantidad de APIs del año 2000 al año

2011 [26].

Figura 2.3 Cantidad de APIs del año 2000 al 2011.

Además de la cantidad de APIs se puede medir la utilización de las mismas mediante

los llamados que se le hacen. Con datos del año 2011 [25] se tienen las principales APIs

por su cantidad de llamados de dicho año:

Twitter: 1.5 billones de llamados por día.

Netflix: 1 billón de llamados por día.

Amazon: 260 billones de llamados en el mes de enero del 2011.

Google: 5 billones de llamados por día.

Facebook: 5 billones de llamados por día.

En la actualidad existen una gran variedad de APIs. Las APIs que se pueden encontrar

para los diferentes lenguajes de programación sin tomar en cuenta el sistema operativo,

ya que son abundantes; en este caso se harán énfasis a las APIs que están optimizadas

Page 28: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

17

para Linux y en algunos casos para trabajar en Raspberry Pi, a continuación, algunas de

las existentes:

XBMC. Funciona como reproductor de medios o HTPC (Home Theater PC), y funciona

en multi-plataformas. XBMC cuenta con una interfaz muy simple, y una biblioteca de

archivos multimedia. Utiliza una como base el OpenElec, el cual es una distribución

pequeña de Linux construida para que funcione XBMC. Para que funcionara con

Raspberry Pi la distribución se tuvo que adaptar el GPU con 128 MB de memoria

RAM, para garantizar un funcionamiento fluido del reproductor. En la actualidad esta

distribución funciona bastante bien, teniendo la capacidad de reproducir videos FULL

HD de manera correcta. Se puede conectar una unidad de almacenamiento USB y

utilizar el Raspberry Pi como un reproductor de medios dedicado [27].

Diagnóstico Automotriz. Se ha hablado sobre la posibilidad de poder utilizar el

Raspberry Pi como una unidad de OBD (On Board Diagnostic) incorporado en el

vehículo, en este caso se puede agregar una pantalla LCD para tener las lecturas en

tiempo real de las señales de diagnóstico y de ser necesario códigos de error, también

sería necesario contar con hardware que pueda leer y traducir las señales del protocolo

ODB-II [27].

Satélites. La idea de utilizar al Raspberry Pi como “el cerebro” para satélites de bajo

costo y tamaño reducido, al integrar algún módulo de cámara y otros tipos de sensores.

La NASA ya ha realizado esta idea pero utilizando teléfonos celulares como el Nexus

One, la idea es que estos dispositivos ya incluyen una gran variedad de sensores como

lo son el giroscopio, acelerómetro, cámara, etc. [27].

Dispositivos para estudio de meteoritos. Se ha considerado en un proyecto para

escanear el cielo nocturno [28] en busca de meteoritos, la idea principal es utilizar

webcams con el Raspberry Pi como dispositivo anfitrión para las cámaras, el cual

tendría como función grabar el cielo nocturno y mantener un timestamp en las

grabaciones, las cámaras estarían colocadas en el campo abierto con una batería y un

pequeño panel solar para alimentar a dicho dispositivo. Luego después de un tiempo se

cambiaría la memoria y se llevaría lo grabado por esta para ser analizado por

Page 29: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

18

computadoras más potentes y el Raspberry es un dispositivo ideal para esto, por su bajo

costo y muy baja necesidad de cómputo local [27].

Traductor universal. Es un proyecto que convierte el Raspberry Pi en un traductor

universal el cual es capaz de soportar 60 idiomas, todo esto reconociendo nuestra voz y

ofreciendo la traducción con un sintetizador de voz por software. Esto se debe gracias a

una combinación de software Open Source y del motor de traducción de Microsoft, el

cual logra que un usuario pueda hablarle a la Raspberry Pi, con ayuda de un micrófono

y de un sistema de reconocimiento de la voz, para que éste responda en el idioma

deseado con la traducción. El creador de este nuevo desarrollo para los Raspberry Pi es

Dave Conroy, uso unos auriculares USB de Logitech los que facilitaron el proceso de

puesta en marcha del sistema, pero en realidad cualquier periférico de este tipo que

tenga controladores para Linux podrá hacer que todo funcione. Este proyecto se basa en

la instalación de Raspbian como distribución para la Raspberry Pi y el uso del motor de

traducción de Microsoft [29].

NETFLIX: Es una empresa comercial dedicada al entretenimiento que vende el servicio

de streaming de video. En cuanto a la información de su API, se encontró que es

privada, por lo que se tiene que registrar para poder acceder. Y el registro esta

deshabilitado. Su API está basado en referencias mediante JavaScript, dicha API está

dividida en dos partes, la JAVASCRIPT API, la cual es la encargada de emular la

reproducción de los videos, y la NETFLIX REST API, la cual es la encargada de

realizar búsquedas y ver los catálogos de los videos [30].

YouTube: Sitio Web donde los usuarios pueden subir, compartir y ver videos. YouTube

cuenta con diferentes APIs la cuales son:

API de datos de YouTube: La cual permite que el usuario cambie y actualice

información, realice comentarios y respuestas de los videos.

API del reproductor de YouTube: Está permite controlar como se ven los videos

en la aplicación.

El llamado de ambas APIs se puede hacer mediante solicitud HTML, XML, Java,

.NET, PHP y Python [31].

Page 30: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

19

Minecraft Pi Edition: Minecraft es el popular juego de mundo abierto el cual permite

crear un mundo virtual y jugarlo. Esta API es especialmente optimizada para ejecutarse

en Raspberry Pi [32].

Page 31: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

20

Capítulo 3. Materiales

En este presente capítulo se explicará a detalle el método mediante el cual se

realizó la creación de la solución propuesta, así como los materiales que fueron

necesarios para el desarrollo de está.

3.2 Materiales

Los distintos materiales que se utilizaron, principalmente materiales de software dichos

materiales se explican a continuación:

3.2.1 Software:

Raspbian

Raspbian es uno de los tantos sistemas operativos con los que cuenta la organización

Raspberry, además de ser el sistema operativo recomendado y probado por dicha

organización para ser utilizado de una manera fácil y fluida [8].

Raspbian es un sabor de Debian modificado para su uso en el Raspberry y al ser

aprobado por sus usuarios y desarrolladores se ha ido incrementado la cantidad de

aplicaciones y paquetes para su uso en el sistema operativo para conocer más acerca de

Raspbian ver su apéndice (Apéndice B).

Para la instalación correcta del sistema operativo sin importar su distribución son

necesarias dos utilerías de software las cuales son:

Win32diskimager

Aplicación para guardar y restaurar imágenes en dispositivos de almacenamiento

externo. Convirtiéndose en un dispositivo de arranque [33].

SD Formatter

Programa para dar formato a los dispositivos externos que serán utilizados con

dispositivos de arranque. Desarrollada por la SD Association, la cual es la encargada de

llevar los estándares en las tarjetas de memoria [34].

Page 32: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

21

Apache Server

Apache Server es un servidor web HTTP desarrollado por Apache Software

Foundation. Servidor de código abierto y multiplataforma, además de contar con una

gran variedad de módulos para poder tener interacción y/o comunicación con lenguajes

de programación [35].

Minimal Kiosk Browser

Minimal Kiosk Browser es un navegador lite desarrollado en C y en Python. El

cual tiene como características principales el poder reproducir videos y audio dentro

del navegador, además de la ventaja de poder comunicarse con módulos y aplicaciones

locales. Para conocer más acerca de este navegador web, se puede descargar su manual

el cual se encuentra en idioma ingles desde la página web del desarrollador.

(http://steinerdatenbank.de/software/kweb_manual.pdf).

OMXPLAYER

OMXPLAYER es un reproductor de medios por comandos para Raspberry Pi, el

cual fue desarrollado principalmente para XMBC, pero puede ser utilizado fuera de ese

sistema operativo [36].

Al ser un reproductor que solo funciona por medio de comandos es necesario contar

con una interfaz gráfica para que la interacción del reproductor con el usuario sea fácil.

Esta interfaz se llama tboplayer la cual muestra al usuario una interfaz gráfica que

permite al usuario reproducir los medios de una manera más fácil.

VLC Player

VLC es un reproductor multimedia libre y de código abierto multiplataforma, el

cual reproduce la mayoría de los archivos multimedia. Y en algunos casos capaz de

reproducir elementos en la web [37] .

Page 33: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

22

YouTube –dl

Es un programa por medio de línea de comandos que permite descargar videos

de youtube.com y algunos otros sitios [38].

PHP

PHP es un lenguaje de programación para uso general basado en scripts usado

principalmente en desarrollo web. Lenguaje rápido y flexible. Lenguaje creado en 1995

y actualmente regido por la organización PHP [39]. Para leer más acerca del lenguaje de

programación PHP ver el apéndice de PHP (Apéndice C).

3.2.2 Hardware

Raspberry PI

Es una microcomputadora del tamaño de una tarjeta de crédito, la cual puede

realizar las mismas tareas que cualquier otra computadora. Teniendo como un extra la

opción de poder reproducir videos y gráficos en alta definición ya que cuenta con salida

HDMI.

Esta microcomputadora además de contar con la salida HDMI también cuenta con dos

puertos USB, un puerto ethernet, salida de video por componente, salida de audio

análoga 3.5, además de contar con puertos de entrada y salida especiales para algunos

sensores como lo son cámaras especiales para el Raspberry Pi. Para más información

acerca de este equipo se puede ver el apéndice de especificaciones técnicas Raspberry

Pi (Apéndice A).

Tarjeta SD

Tarjeta SD para poder almacenar el sistema operativo y demás programas que

serán utilizados en el sistema. Según la página oficial de Raspberry.org el tamaño

recomendado a utilizar es cualquier memoria mayor a 2GB.

Page 34: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

23

3.3 Método

3.3.1 Adquisición de componentes

Una vez adquiridos los componentes necesarios, se procede a la configuración inicial de

dichos componentes.

Configuración

Antes de iniciar las configuraciones del sistema se debe iniciar adquiriendo los

componentes, uno de ellos es el sistema operativo el cual es Raspbian el cual se obtiene

en la página de Raspberry Pi dentro de la sección de descargas como se puede ver en la

figura 3.1 [40].

Figura 3.1 Información de la imagen del sistema operativo Raspbian.

Dar formato y preparación de tarjeta SD.

Una vez obtenido el sistema operativo se debe preparar la memoria SD primeramente

dándole formato correspondiente para que el sistema operativo pueda ser copiado de

forma correcta. Para esto se debe ejecutar el programa SDFormatter el cual se debe

Page 35: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

24

ejecutar en otro dispositivo (el programa se puede encontrar en Windows, Mac, Linux).

Una vez formateada la memoria SD se debe cargar la imagen del sistema operativo en la

memoria, esto se realiza a través del programa Win32DiskImager, dentro de este

programa solo se debe seleccionar la ubicación de la imagen del sistema operativo y

elegir la opción de Write (el tiempo de ejecución de este proceso puede variar).

Configuración de Raspberry Pi

Una vez configurada la tarjeta SD, se debe iniciar por primera vez el dispositivo

Raspberry Pi. Para esto solo se debe colocar la tarjeta SD en la ranura del dispositivo y

encenderlo. El primer arranque del dispositivo mostrará una pantalla similar a la figura

3.2 la cual indica las configuraciones iniciales del dispositivo. Por lo tanto lo primero

que se debe hacer es expandir el sistema operativo en la memoria SD, para esto se debe

seleccionar la opción 1. Expand filesystem. Una vez extendido el sistema operativo, se

debe configurar el sistema para que inicie la computadora desde la interfaz gráfica,

eligiendo la opción 3.- Enable Boot to Desktop, eligiendo como opción Desktop.

Para realizar configuraciones extras verificar el apéndice correspondientes a

configuraciones adicionales de Raspberry Pi (Apéndice D).

Figura 3.2 Configuración inicial de Raspberry Pi

Page 36: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

25

Una vez terminadas estas configuraciones se verá en la pantalla una interfaz similar a la

de una terminal, por única vez lo que se debe hacer es teclear el comando startx para

arrancar la interfaz gráfica.

Configuración Apache y PHP5

Debido a que el sistema fue creado en PHP se deben instalar las librerías y servicios de

PHP al Raspberry Pi. El proceso de instalación se lleva a cabo la ejecución de los

siguientes comandos:

1. Actualizar todas las librerías del sistema, con el comando:

sudo apt-get update

2. Instalar PHP5 y apache server por medio del comando:

sudo apt-get install apache2 php5

3. Una vez instalados los servicios se debe configurar los servicios de Apache

para poder tener permisos sobre la carpeta del servidor Apache. Esto se

realiza con el siguiente comando:

sudo nano /etc/apache2/sites-enabled/000-default

a. Al escribir este comando se mostrará el contenido del archivo el cual

debe quedar como se muestra a continuación:

AllowOverride None por AllowOverride ALL

b. Presionar Control + X y guardar

4. Resetear el servidor con el comando:

sudo /etc/init.d/apache2 restart

5. Dar permisos de escritura a los usuarios con el comando:

sudo chmod 777 /var/www

Page 37: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

26

Instalación del navegador Minimal Kiosk Browser

Para instalar el navegador Minimal Kiosk Browser se deben descargar el código fuente

del navegador mediante el siguiente comando:

wget http://steinerdatenbank.de/software/kweb_1.4.tar.gz

Una vez descargado el archivo se debe descomprimir su contenido con ayuda del

siguiente comando

tar –xcf kweb_1.4.tar.gz

Después de descomprimir el archivo se debe acceder a la carpeta y ejecutar el comando

sudo ./install.sh

Este comando le indica al sistema que compile y ejecute dicho script el cual deja

instalado el navegador en el sistema.

El siguiente paso es instalar los componentes necesarios para que el navegador funcione

correctamente. Para verificar que librerías hacen falta ser instaladas se ejecuta el script

check.py mediante el comando ./check.py. Las librerías que son necesarias y su

respectivo comando de instalación se muestran en la tabla 3.1.

Aplicación Comando para instalar

VLC Media player Sudo apt-get install vlc

Omxplayer Sudo apt-get install omxplayer

Youtube –dl Sudo apt-get install youtube -dl

Zip Sudo apt-get zip unzip

Tabla 3.1 Librerías adicionales de Minimal Kiosk Browser

Page 38: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

27

Interfaz Gráfica de OMXPLAYER

La interfaz gráfica de OMXPLAYER permite que el usuario tenga una comunicación

amigable con el usuario, permitiendo agregar y enlistar archivos multimedia para su

reproducción. Para poder visualizar correctamente esta aplicación se debe instalar

PEXPECT ejecutando los siguientes comandos.

1. wget http://pexpect.sourceforge.net/pexpect-2.3.tar.gz

2. tar xzf pexpect-2.3.tar.gz

3. cd pexpect-2.3

4. sudo python ./setup.py install

Una vez instalada esta dependencia se debe descargar el script de Python que muestra la

interfaz, dicho script se descarga mediante el siguiente comando:

wget https://github.com/KenT2/tboplayer/tarball/master -O -~| tar xz

El comando anterior crea una carpeta llamada tboplayer la cual contiene el script del

programa, dicho script se ejecuta mediante el siguiente comando:

python tboplayer.py

Desarrollo de aplicación

Para el desarrollo de la aplicación se tomaron varias decisiones partiendo inicialmente

por el lenguaje de programación, los cuales fueron finalmente un conjunto de lenguajes

Web (PHP, HTML, JavaScript, XML).Estos lenguajes pertenecen al grupo de los

lenguajes de programación interpretados. Esta decisión se tomó a partir de una

investigación realizada.

Dicha investigación incluyó las características y necesidades del proyecto y las del

dispositivo donde se desarrollaría el sistema. Los resultados de la investigación fue que

los lenguajes de programación interpretados eran los que más se ajustaban al proyecto

debido a su poca necesidad de procesamiento y de consumo de recursos. Para más

detalles sobre esta investigación ver el apéndice correspondiente a los tipos de lenguajes

de programación (Apéndice H).

Page 39: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

28

Variables

Para poder crear parte de la interface de configuración fue necesario utilizar las sesiones

de PHP que son variables globales puesto que estas se quedan en el servidor aun si se

cierra el navegador o se apaga el equipo con lo cual permitió conseguir un aspecto

necesario en la configuración. Es necesario manejarlo por este tipo de variables, puesto

que los cookies no duran tanto los datos y se pueden borrar (Apéndice C), tampoco se

procedió a guardarlos en una base de datos porque esto le quitaría rendimiento al

Raspberry Pi. Por lo tanto esta fue una de las alternativas que se optó por utilizar para

que estas variables no fueran volátiles y sin quitar rendimiento.

Page 40: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

29

Capítulo 4. Resultados de la investigación

A continuación se mostrarán los resultados dados por la investigación propuesta.

4.1 Presentación de resultados

Aplicaciones

El sistema creado tienen la peculiaridad de poder agregar diferentes aplicaciones, estas

aplicaciones funcionan mediante la utilización de APIs. Dentro la variedad de APIs

probadas se encontraron diferentes empresas desarrolladoras y diferentes lenguajes de

programación entre ellos PHP, JAVA y PYTHON los cuales cuentan con sus

respectivas características y singularidades.

En la mayoría de las APIs es indispensable contar con los permisos necesarios y con las

librerías que contienen todas las funciones y procedimientos para poder comunicarse

con el servicio requerido, estas librerías en ocasiones dependen de otros módulos los

cuales deben ser instalados para el correcto funcionamiento del API.

El pensar en diferentes tipos de APIs fue con la intensión de mejorar el sistema y

dotarlo de otras características, esto desde el punto de vista del usuario, si se ve desde el

lado del desarrollador se le brinda la oportunidad de poder desarrollar aplicaciones en el

lenguaje al que más se adapten.

Para poder agregar aplicaciones al sistema es necesario que cumplan con los siguientes

requisitos: que es este desarrollado en alguno de los lenguajes de programación que

están permitidos en el sistema, contar con un archivo llamado addon.xml, contar con

dos imágenes tipo JPG. Estos archivos deben estar contenidos en un carpeta la cual debe

ser nombrada con el nombre de la aplicación y dicha carpeta debe ser comprimida en

formato .ZIP. Para más información ver el apéndice de creación de APIs para el sistema

(Apéndice F)

Page 41: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

30

Interfaz

Se implementó la una interfaz gráfica para el que el usuario tenga fácil acceso al

sistema. La interfaz está dividida básicamente en dos partes, dichas partes serán

descritas a continuación:

Medios Locales: esta parte de la interfaz permite al usuario manipular todo tipo de

archivos locales (videos, audios e imágenes). Esto mediante aplicaciones del sistema o

de terceros como lo son VLC Media Player y OXMPLAYER (Figura 4.1).

Figura 4.1 Interfaz, medios locales

Teniendo en cuenta que la aplicación se desarrolló en HTML y PHP y por medidas de

seguridad es imposible mandar llamar y ejecutar aplicaciones locales (Apéndice G); por

consiguiente, se recorrió a utilizar el navegador Minimal Kiosk Browser, el cual permite

ejecutar comandos del sistema por medio de este navegador.

Partiendo de la oportunidad que ofrece Minimal Kiosk Browser de poder ejecutar

comandos y aplicaciones locales se decidió explotar dicha característica agregando un

área exclusiva para aplicaciones y utilerías locales, donde se pueden encuentran

aplicaciones del sistema como lo son el editor de texto, calculadora, administrador de

archivos y un administrador de tareas. (Figura 4.2)

Page 42: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

31

Figura 4.2 Utilerías del sistema

En esta parte de la interfaz también se ejecutan los addons que fueron desarrollados en

Java y en Python, mediante la ejecución de Scripts del sistema. Ver figura 4.3

Figura 4.3 Addon tipo Java

En la segunda parte de la interfaz del sistema está dedicada a los módulos Web, dentro

de esta parte están todo lo relacionado con addons PHP instaladas por el usuario, radio

por Internet y páginas web almacenadas en el sistema. Ver figura 4.4

Figura 4.4 Interfaz

Page 43: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

32

Como en esta sección el usuario es quien alimenta al sistema de aplicaciones, se cuenta

con la opción de administrar las aplicaciones agregadas por el usuario. (Ver figura 4.5)

Figura 4.5 Configuración y eliminación del sistema.

4.2 Análisis e interpretación de resultados

Algunos beneficios obtenidos para el usuario fue la interfaz con la que el usuario

se ve beneficiado al poder personalizar el centro multimedia y al permitirle al usuario

acceder a las APIs, también utilizar herramientas que brinda el sistema y acceder a

páginas web. En cuanto a los desarrolladores, el beneficio de que puedan trabar con el

lenguaje con el que más se adapten y la facilidad de implementarlas al sistema.

Uno de los resultados que se obtuvo fue el de integrar diferentes tipos de APIs de

lenguajes diferentes como JAVA, PHP, HTML mediante el desarrollo e instalación de

APIs al sistema.

Un análisis que se llevó a cabo del dispositivo como sistema multimedia dio como

resultado que se comportaba en algunos aspectos mejor que los sistemas multimedia

actuales pero también en otros puntos contrastaba por ejemplo en la facilidad de

desarrollar para este fue relativamente sencillo pero el rendimiento no fue el mismo en

todas esto variaba de acuerdo a las aplicaciones dependiendo de los recursos que

utilizaba cada API. Una de las mayores ventajas fue la simplicidad de crear una API o

para hacer la importación de una API al sistema multimedia porque son lenguajes muy

utilizados. Uno de los puntos negativos con los que se encontraron fue la falta de

Page 44: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

33

implementación de aplicaciones que cuenten con Flash Media Player (ver figura 4.6),

que aun estando en declive o transición, aún existen una gran variedad de usuarios que

lo utilizan. Uno de ellos son algunos servidores media como los son Youtube. Netflix,

Crackle, etc. Por lo tanto es una gran limitante para el sistema.

Figura 4.6 Problemas con Flash Player

Hablando del rendimiento del sistema se realizaron pruebas ya con el sistema

funcionando, las pruebas fueron las siguientes:

Eventos de video en HTML5. Con esta prueba se buscó demostrar las capacidades del

reproductor en cuanto a eventos de video con tags de HTML5, las pruebas se realizaron

en la página oficial del consorcio de la World Wide Web en la sección de eventos de

HTML5, si se desea consultar más acerca de esta prueba se puede dirigir a la siguiente

página de internet http://www.w3.org/2010/05/video/mediaevents.html, los resultados

se muestran en la figura 4.7, la cual indica que el reproductor no soporta elementos

HTML5, con esta prueba todo indicaría que no se podría reproducir ningún elemento de

video con el tag HTML5

Page 45: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

34

Figura 4.7 Prueba de video HTML5

Reproductor de HTML5 de YouTube. Con esta prueba se buscaba conocer el posible

comportamiento del dispositivo contaba con otra forma de reproducir videos de

YouTube, esto por medio del reproductor HTML5, debido a que YouTube cuenta con la

posibilidad de elegir el reproductor que se adecue a las necesidades del navegador web,

los resultados se muestran en la figura 4.8. Los cuales indican que el navegador podría

soportar el video en html5. Sin embargo no se garantiza la reproducción. Si se desea

conocer más acerca del reproductor HTML5 de YouTube se puede dirigir a la siguiente

página de internet www.youtube.com/html5.

Figura 4.8 Prueba de video, reproductor de HTML5 de YouTube

Page 46: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

35

Pruebas con el sistema

Pruebas de audio. Se realizaron pruebas de rendimiento del dispositivo

reproduciendo una pista MP3, las pruebas se hicieron en las aplicaciones VLC Media

Player y en OMXPLAYER, los resultados fueron los siguientes:

Tanto en VLC Media Player como en OMXPLAYER el uso del CPU aumento, pero no

lo suficiente para considerar problemas de rendimiento, en ambas aplicaciones se

mostró fluido el audio. La gráfica del uso del CPU se muestra en la figura 4.9 y el de

OMXPLAYER se muestra en la figura 4.10.

Figura 4.9 Uso de CPU en VLC Media Player

Page 47: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

36

Figura 4.10 Uso de CPU en OMXPLAYER

Siguiendo con las pruebas de audio la siguiente fue la de radio por internet, los

resultados mostraron que el uso del CPU es similar al de la reproducción local de

archivos de audio, por lo tanto no es mucho el poder de procesamiento que se necesita,

la gráfica se muestra en la figura 4.11 :

Figura 4.11 Rendimiento del radio por internet.

Page 48: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

37

Las siguientes pruebas fueron las del rendimiento al reproducir videos, para esto se

hicieron pruebas con las aplicaciones VLC Media Player y OMXPLAYER ambas

reproduciendo un video MP4.

Los resultados con la aplicación VLC Media Player demostraron que el CPU utiliza

todo su poder para reproducir un archivo MP4, aun contando con todo el poder del

procesamiento para reproducir un video, la reproducción fue poco fluida e inestable en

algunos momentos, la gráfica del procesador se muestra en la figura 4.12.

Figura 4.12 Resultados de VLC Media Player y gráfica del procesador.

A diferencia de VLC Media Player, la aplicación OMXPLAYER se comportó de una

forma muy fluida aun cuando el video automáticamente se reproduce en pantalla

completa. El uso del CPU no aumento demasiado a comparación de VLC. (Ver figura

4.13 y figura 4.14).

Page 49: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

38

Figura 4.13 Pruebas y grafica de rendimiento con OMXPLAYER.

Figura 4.14 Resultado de la reproducción en OMXPLAYER.

Page 50: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

39

Capítulo 5. Conclusiones

Se presentaron algunas fallas; entre las cuales fueron, no poder hacer funcionar algunas

aplicaciones, la interfaz y la parte local. Una de estas fallas se debió a la seguridad de

los navegadores; ya que, no permite usar comandos de ficheros locales. Otra se debió a

las librerías y también por no soportar flash. Lo mencionado anteriormente hizo que se

optará a realizarlo de la manera en que está documentado.

5.1 Aportaciones

Todas las preguntas de investigación fueron contestadas mientras se avanzaba en

el proyecto del sistema multimedia. Algunas no fueron fáciles de contestar puesto que

en algunos puntos se tuvieron fallas y se tenía que volver a hacer de otra manera para

así poder llegar a una respuesta esperada a la pregunta en específico. Las preguntas a

contestar fueron las siguientes:

¿En qué podrá beneficiar la propuesta planteada a los usuarios y posibles

desarrolladores?

Algunos beneficios obtenidos para el usuario fue la interfaz, acceder a las APIs,

también utilizar herramientas que brinda el sistema y acceder a páginas web por

parte de los desarrolladores fue que puedan trabar con el lenguaje con el que más

se adapten y la facilidad de implementarlas al sistema.

¿Cómo se puede integrar las diferentes APIs al sistema logrando que el usuario

tenga acceso a ellas?

Se integraron mediante una interfaz en la cual permite agregar las APIs y

empleando diferentes lenguajes para hacer esta integración más sencilla.

¿Cómo se comportará el Raspberry Pi como sistema multimedia?

Se comporta de una forma correcta nos permite hacer la mayoría de funciones

que otros sistemas multimedia pueden como la reproducción de contenido

multimedia, acceso a Internet entre otras; por ejemplo en la facilidad de

Page 51: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

40

desarrollar para este fue relativamente sencillo pero el rendimiento no fue el

mismo en todas, esto variaba de acuerdo a las aplicaciones dependiendo de los

recursos que utilizaba cada API.

¿Qué ventajas tiene nuestro sistema multimedia con respecto a las alternativas

actuales?

Algunas de estas ventajas es el costo, la facilidad de importar aplicaciones o

agregar nuevas.

En la parte científica aporto una forma diferente de usar al Raspberry Pi como un

sistema multimedia diferente y formas de hacer funcionar aplicaciones de una forma

diferente.

El objetivo de investigación fue satisfactorio se llegó al resultado buscado el cual era

poder hacer que el Raspberry Pi se convirtiera en un centro multimedia el cual fuera de

bajo costo y así no tener la necesidad de cambiar de televisión y alargar el tiempo de la

misma el cual se consiguió al ser este un sistema que podemos actualizar y no dejar que

solamente quede obsoleto.

5.2 Trabajo futuro

Dentro de proyecciones futuras en relación al sistema se espera poder agregar el

soporte para más lenguajes en cuanto al desarrollo de aplicaciones externas que se

puedan agregar al sistema.

Con respecto de las aplicaciones externas se buscará la manera de poder contar con

servicios de video y/o audio en demanda como lo podría ser Netflix,ClaroVideo,Cracke,

Google Movies, Google Music, Spotify. Ya sea encontrando alguna solución factible

para que Raspberry Pi soporte Flash media Player, contactarse con las empresas para

buscar posibles soluciones, esperar a que estas firmas liberen alguna versión soportada

para Raspberry Pi o una versión estable para HTML5.

Así como se mencionó en este capítulo acerca del rendimiento del dispositivo

Raspberry Pi en su actuar como un sistema multimedia, una opción sería migrar o

Page 52: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

41

expandirse a otro dispositivo, ya sea del mismo rango de precio o elegir algún

dispositivo de mayor precio pero que brinde mejor rendimiento.

Page 53: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

42

Bibliografía

[1] TREVOR I. WILLIAMS, "La Televisión," in Historia de la Tecnología Desde

1900 a 1950(II). Madrid: Siglo Veintiuno de España editores S.A, 1987, pp.

461:469.

[2] Fréderic Barbier and Catherine Bertho Lavenir, "Los sinuosos caminos de la

innovación ," in Historia de los medios. De Diderot a Internet. Buenos Aires,

Argentina: Signos y Cultura, 2007, pp. 380:386.

[3] Amit Dhir, "Digital Video/Versatile Disc (DVD)," in The digital consumer

thecnology handbook. Burlington, MA,USA: Xilinx, 2004, pp. 94,95.

[4] Apple - Apple TV - Disfruta tu contenido HD preferido en tu TV HD. [Online].

http://www.apple.com/mx/appletv/what-is/

[5] Energy Sistem - Comprar - Energy Android TV Box. [Online].

http://www.energysistem.com/es/products/home_video/serie_android_tv/38313-

energy_android_tv_box/

[6] O!Play HD2 - Multimedia - ASUS. [Online].

http://www.asus.com/Multimedia/OPlay_HD2/#overview

[7] Popcorn Hour : Popcorn Hour A-300. [Online].

http://www.cloudmedia.com/products/popcornhour/store-a-300

[8] The Raspberry Pi Foundation. About us | Raspberry Pi. [Online].

http://www.raspberrypi.org/about

[9] Coder for Raspberry Pi. [Online]. http://googlecreativelab.github.io/coder/

[10

]

Raspberry Pi - Department of Electrical & Computer Engineering. [Online].

http://coen.boisestate.edu/ece/raspberry-pi/

[11

]

Southampton engineers a Raspberry Pi Supercomputer : University of

Southampton. [Online].

http://www.southampton.ac.uk/mediacentre/features/raspberry_pi_supercomputer.s

html.

[12

]

Raspberry Pi at Southampton. [Online].

http://www.southampton.ac.uk/~sjc/raspberrypi/

[13 XBMC running on Raspberry Pi | Raspberry Pi. [Online].

Page 54: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

43

] http://www.raspberrypi.org/archives/571

[14

]

XBMC. [Online]. http://xbmc.org/about/

[15

]

OpenELEC for Raspberry Pi | Raspberry Pi. [Online].

http://www.raspberrypi.org/archives/810

[16

]

OpenELEC Mediacenter - Home. [Online]. http://openelec.tv/

[17

]

Shawn Wallace Matt Richardson, Getting Started with Raspberry Pi. Sebaspatol,

California: O'REILLY, 2013.

[18

]

Robert Love, LINUX SYSTEM PROGRAMMING. Sebastopol: O'REILLY, 2013.

[19

]

eLinux.org. CSharp on RPi - eLinux.org. [Online].

http://elinux.org/CSharp_on_RPi

[20

]

Erlang org. Erlang Programming Language. [Online]. http://www.erlang.org/

[21

]

ORACLE. Introducción a Java® SE Embedded en Raspberry Pi. [Online].

http://www.oracle.com/technetwork/es/articles/java/java-se-embedded-raspberry-

pi-1940405-esa.html

[22

]

Pedro Garcia Rafael Berlanga, "Introducción a los lenguajes de programación," in

Introducción a la programación con Pascal. 3: Universitat Jaume I, 2000, p. 31.

[23

]

eLinux.org. Lazarus on RPi - eLinux.org. [Online].

http://elinux.org/Lazarus_on_RPi

[24

]

Christopher Negus, Programming in Linux the Linux Bible: Boot Up to Ubuntu,

Fedora, KNOPPIX, Debian, openSUSE, and 11 Other Distributions. Indianapolis,

Indiana`: Wiley Publishing Inc, 2008.

[25

]

Daniel Jacobson, APIs a strategy guide. Sebastopol, CA: O'REILLY, 2012.

[26

]

Daniel Jacobson, APIs a strategy guide. Sebastopol, CA: O'REILLY, 2012.

[27

]

Edgar Javier Machuca Martinez, "Raspberry Pi y sus Aplicaciones," Asuncion

Paraguay,.

Page 55: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

44

[28

]

Brian Crosse. (2011, Dec.) http://www.raspberrypi.org/. [Online].

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=9&%20t=1852

[29

]

Javier Pastor. XATANA. [Online]. http://www.xataka.com/otros/convierte-tu-

raspberry-pi-en-un-traductor-universal

[30

]

Netflix, Inc. Netflix API - Welcome to the Netflix Developer Network. [Online].

http://developer.netflix.com/

[31

]

Google. YouTube — Google Developers. [Online].

https://developers.google.com/youtube/?hl=es

[32

]

DOCTORSERONE. (2013, June) Raspberry Pi Comunidad en Español. [Online].

http://www.raspberrypi-es.com/author/doctorserone/

[33

]

Ubuntu ORG. Ubuntu Wiki. [Online]. https://wiki.ubuntu.com/Win32DiskImager

[34

]

SD Association. SD Association. [Online]. https://www.sdcard.org/home

[35

]

The Apache Software Foundation. The Apache Software Foundation. [Online].

http://www.apache.org/

[36

]

OMXPLAYER Builds. [Online]. http://omxplayer.sconde.net/

[37

]

VideoLAN Organization. VideoLAN - Página oficial del Reproductor multimedia

VLC, el «framework» de código abierto de vídeo! [Online].

http://www.videolan.org/vlc/

[38

]

GitHub. [Online]. https://github.com/rg3/youtube-dl

[39

]

The PHP Group. PHP: Hypertext Preprocessor. [Online]. http://mx1.php.net/

[40

]

Raspberry Org. Downloads | Raspberry Pi. [Online].

http://www.raspberrypi.org/downloads/

[41

]

Ing. Susana Marta Canel. (2007, Nov.) Microcontroladores ARM de 32 bits.

[Online]. http://www.electron.frba.utn.edu.ar/materias/95-

0429/archivos/Cap10_2009_ARM7_apunte.pdf

[42 Raspberry Foundation. Raspbian Release Notes. [Online].

Page 56: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

45

] http://downloads.raspberrypi.org/raspbian/release_notes.txt

[43

]

The Raspberry Foundation. (2014, Apr.) Raspbian. [Online].

http://www.raspbian.org/

[44

]

Instituto Nacional de Tecnología en la comunicaciones. Manual de Securización de

Navegadores. [Online].

https://www.caja3.es/cajatresFiles/UserFiles/File/INTECO(1).pdf

[45

]

Justin.tv Inc. 2013. Twitch Developers Program. [Online]. http://dev.twitch.tv/

Page 57: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

46

Apéndices

Apéndice A. Especificaciones de Raspberry Pi

Especificaciones técnicas

El modelo B de Raspberry Pi es la última versión de Raspberry Pi en el mercado

donde algunas diferencias con su predecesor son la cantidad de memoria RAM que

maneja, su poder de procesamiento entre otras características, la comparación más

detallada se muestra en la figura A.1.

Figura A.1. Grafica comparativa entre el modelo A y B de Raspberry Pi

Las características y propiedades específicas del modelo B se explican más

detalladamente a continuación:

A. Procesador: El corazón de Raspberry Pi es un chipset de 32 bits, a una

frecuencia de 700 MHz y está construido con la arquitectura ARM [17].

Contando con una memoria RAM de 512 MB.

Page 58: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

47

B. Módulo SD: El dispositivo cuenta con un módulo para una memoria SD (Secure

Digital), ya que no cuenta con algún espacio para un disco duro, por lo tanto

todo se almacena en la memoria SD [41].

C. Puertos USB: Cuenta con dos puertos USB 2.0.

D. Puerto Ethernet: Cuenta con un puerto Ethernet con el estándar RJ-45. El

acceso a la red también puede ofrecerse por medio de un cable USB Ethernet.

E. Conector HDMI (High-Definition Multimedia Interface): El cual dota al

usuario de salida de audio y video en formato digital. Raspberry Pi soporta 14

tipos de resolución diferentes. La señal de video puede ser convertida a DVI,

video Compuesto y a SCART (Estándar europeo para conectar audio y video a

equipos electrónicos). Para realizar estas conversiones de video es necesario un

dispositivo o adaptador externo.

F. Tablero de LEDs. Raspberry Pi cuenta con un tablero de estados, el que indica

el estatus de algunas operaciones básicas del equipo. Dichos estados están

descritos en la tabla A1.

Nombre del LED Color Descripción

ACT Verde Se ilumina cuando se accede a la memoria SD

PWD Rojo Indica que la fuente está a 3.3 V de potencia

FDX Verde Se enciende si el adaptador de red es Full Duplex

LNK Verde Indica actividad de la red.

100 Amarillo La conexión de red es de 100 Mbps.

Tabla A.1 Estados de los indicadores LED de Raspberry Pi.

G. Salida análoga de Audio: Salida de audio análoga con el estándar de 3.5 mm, la

cual ayuda a conducir cargas de gran impedancia utilizadas en bocinas o

audífonos. (Alternativa usada en caso de no utilizar la salida HDMI)

H. Salida de video: Este componente maneja el tipo de conector RCA el que

provee señales NTSC o PAL. Estos tipos de señales son de menor calidad en

Page 59: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

48

comparación de la que provee HDMI. (Alternativa usada en caso de no utilizar

la salida HDMI)

I. Entrada de poder: Raspberry Pi no cuenta con un botón de encendido o

apagado. Y utiliza un puerto micro USB como entrada de la fuente de poder.

Los puntos explicados anteriormente son descritos y señalados gráficamente en la figura

A.2.

Figura A.2 Interfaces de Hardware de Raspberry Pi

Conectores y pines de Raspberry Pi.

Raspberry Pi está en constante desarrollo y evolución tanto en software como en

hardware y al ser una computadora de costo reducido, el hardware complementario para

el equipo es vendido y desarrollado por The Raspberry Pi Foundation o por empresas

externas, así que se pueden adquirir otro tipo de hardware especializado para ciertas

Page 60: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

49

funciones, aquí se explicará alguno de esos módulos con los que cuenta Raspberry Pi

[17].

A. Entradas y salidas para propósitos generales (GPIO): módulo que

permite integrar hardware que acepte la captura de botones físicos,

switches y controles (LEDs, motores).

B. Conector DSI (Display Serial Interface): Interfaz para conectar

pantallas o monitores OLED o LCD con entradas de 15 pines.

C. Interfaz CSI (Camera Serial Interface): Esta interfaz permite conectar

un módulo para conectar una cámara directamente a Raspberry Pi.

D. Header P2 y P3: Estas interfaces son módulos para pruebas de chipset

para procesamiento y para red, las cuales están siendo desarrolladas por

Broadcom, mismas que son hardware propietario.

En la figura 1.2 se muestra la distribución de las interfaces para hardware externo de

Raspberry Pi. (Ver figura A.3)

Figura A.3 Interfaces externas de Raspberry Pi

Page 61: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

50

Apéndice B. Sistema operativo Raspbian

Raspbian es un sistema operativo GNU/Linux basado en Debian Wheezy

(Debian 7.0) optimizado para Raspberry Pi. Raspbian fue desarrollado partiendo del

sistema operativo Debian, por lo que ha tratado de mantener la mayoría de los rasgos

de Debian, esto con la finalidad de reutilizar el material de apoyo y documentación con

el que actualmente cuenta Debian.

Uno de los puntos que diferencian a Raspbian de Debian es la capacidad de producir,

compilar y ejecutar código con punto flotante ABI (Application Binari Iinterface) lo

cual es de gran importancia debido que Raspberry Pi trabaja con una arquitectura ARM.

ABI hace referencia al conjunto de reglas que se utilizan para configurar los registros y

las formas en que las funciones o procedimientos muestran o retorna sus resultados.

La primera versión de este sistema operativo fue liberada en Junio de 2012, teniendo

constantes actualizaciones desde esa primera versión. Su última versión fue liberada en

Enero de 2014. El log de las todas sus versiones se puede encontrar en la página de

Raspberry Pi [42].

Raspbian es uno de los sistemas operativos oficiales y recomendados por The

Raspberry Foundation, por lo que su distribución se hace por medio de la página oficial

de Raspberry Pi, como se puede observar en la figura B.1, mientras que su

documentación y soporte lo realizan por medio de la página oficial de Raspbian [43].

Figura B.1 Raspbian

Page 62: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

51

Apéndice C. Lenguaje de Programación PHP

PHP (Hypertext Pre-processor) es un lenguaje de programación de uso general

utilizado desde el lado del servidor. Este lenguaje esta originalmente diseñado para el

desarrollo web, por lo cual se puede incorporar a un documento HTML. Este tipo de

lenguaje es del tipo interpretado, donde el interpretador es el servidor. Este lenguaje fue

creado por Rasmus Lerdorf en 1995, actualmente el lenguaje es manejado por el Grupo

PHP Org.

Una de las grandes ventajas de PHP es que puede ser desplegado en la mayoría de los

servidores y en casi todos los sistemas operativos. PHP tiene influencias de lenguajes de

programación como los son C, Pearl, Python y Java. Por consecuente existen módulos

para poder trabajar con otros lenguajes, algunos de ellos son los módulos gestores de

bases de datos (Mysql, Oracle, ODBC, SQL server, Firebird, SQLITE).

Sin importar la gran cantidad de módulos externos con los que puede contar PHP, la

página oficial cuenta con la gran mayoría de estos módulos bien documentados.

PHP es un lenguaje de programación interpretado de código abierto orientado a

desarrollar aplicaciones Web de contenido dinámico. PHP puede trabajar y

comunicarse de manera sencilla con otros lenguajes orientados a Web y con algunos

manejadores de bases de datos.

Al ser un lenguaje de código abierto tiene algunas ventajas y desventajas, como

ventajas se puede encontrar la versatilidad, sencillez en sintaxis, costo, documentación y

su seguridad. Además de las ventajas mencionadas anteriormente se tiene como

agregado la gran comunidad con la que cuentan, haciendo que su contenido este

constantemente renovado y retroalimentado.

Hablando de lenguajes interpretados, estos cuentan con algunas características las

cuales son:

• Velocidad: La rapidez en su ejecución debido a que no requiere (en la mayoría

de sus casos) demasiados recursos.

• Estabilidad: PHP utiliza su propio sistema de administración de recursos y

dispone de un sofisticado método de manejo de variables, conformado de un

sistema robusto y estable.

Page 63: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

52

• Seguridad. Debido a que es un lenguaje orientado a WEB el punto de seguridad

es muy importante.

PHP puede ser ejecutado en casi todas las plataformas existentes, utilizando el mismo

código fuente, por lo que se considera como un lenguaje multiplataforma. Desde Linux,

Windows y Mac además de esto puede interactuar con muchos motores de bases de

datos, se le pueden integrar módulos externos desarrollados por otras empresas lo cual

le brindan utilidades al lenguaje.

La instalación de PHP no es nada complicada, existiendo paquetes e instaladores para

cada sistema operativo [39].

PHP maneja variables de sesión las cuales utilizamos para almacenar una serie

de variables en el servidor relacionándolas (gracias a una variable pasada por cookie o

por URL) con un usuario concreto para que estén disponibles en diferentes páginas de

nuestro sitio web.

Una vez almacenada una variable de sesión, podremos leerla desde todas las páginas de

nuestra web mientras la sesión no se destruya. A continuación se muestra cómo usar las

sesiones:

Guardar una variable

El soporte para sesiones de PHP permite iniciar fácilmente una sesión utilizándola

función session_start y gracias al vector superglobal $_SESSION, se puede trabajar con

sesiones como si de cualquier otro vector se tratara:

000

001

002

003

004

<?php

// inicio sesión

session_start();

// Se guarda una variable

$_SESSION['nombre'] = 'Fernando Díaz';

?>

Lo único que se debe tomar en cuenta, es que si se utiliza cookies no se podrá haber

enviado ni un solo carácter (ni siquiera un espacio) al navegador antes del que la sesión

Page 64: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

53

inicie (session_start), el siguiente ejemplo mostrará un error por el espacio de la línea

0:

000

001

002

<?php

// inicio de sesión

session_start();

?>

Leer una variable guardada

Si se ha guardado una sesión, se podrá acceder a sus variables desde todas las

páginas. Esto se hace simplemente con el inicio de la sesión y con el mismo vector

$_SESSION, para ver si existe una variable de sesión determinada se utilizara la función

isset cómo con cualquier otra variable:

000

001

002

003

004

005

006

007

008

009

<?php

// inicio de sesión

session_start();

// comprobar si existe la variable .

if ( isset ( $_SESSION['nombre'] ) ) {

// Si existe

echo $_SESSION['nombre'];

} else {

// Si no existe

echo 'desconocido';

}

?>

Borrar una variable

Se puede borrar una variable de sesión usando la función unset, pero además se

puede s eliminar la sesión con session_destroy:

Page 65: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

54

000

001

002

003

004

005

006

<?php

// Inicio de sesión

session_start();

// se borra la variable .

unset ( $_SESSION['nombre'] );

// se borra toda la sesión .

session_destroy();

?>

PHP también maneja cookies cada vez que el navegador pida una página a un servidor,

este realiza una conexión nueva con el servidor, por lo cual, el servidor no tiene

conocimiento de las anteriores acciones del visitante. Para resolver esto, nació un tipo

de archivo, llamado cookie, que se almacena en el navegador del visitante y puede

contener información sobre las actividades o movimientos del usuario.

Para esto se utiliza un procedimiento el cual le asigna un tiempo de vida a la Cookie,

desde JavaScript, el proceso de escritura y borrado de una cookie es muy sencillo,

continuación el ejemplo:

000 document.cookie="NOMBRE = VALOR; expires = FECHA"

En cambio para leer una cookie se debe crear una función como se muestra a

continuación:

000

001

002

003

004

function leerCookie(nombre) {

a = document.cookie.substring(document.cookie.indexOf(nombre + '=') +

nombre.length + 1,document.cookie.length);

if(a.indexOf(';') != -1)a = a.substring(0,a.indexOf(';'))

return a;

}

Page 66: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

55

Esta función se puede mandar llamar desde un botón o una alerta, continuación el

ejemplo desde una alerta:

000 alert(leerCookie('ID')) , document.write(leerCookie('ID'))...

Para usar cookies en PHP, se debe tener en cuenta que la cookie se envía antes de

enviar el resultado de la página al usuario, es decir, se envía la cookie al navegador

antes de enviar ningún carácter de la página o se recibirá un error.

La función que se utiliza para enviar una cookie lleva el nombre de setcookie, que

funciona de la siguiente manera:

000

001

002

<?php

setcookie (nombre,valor,fecha);

?>

Donde 'nombre', será un identificador de la cookie que contendrá el texto indicado por

'valor' y que tendrá vigencia hasta 'fecha'.

el ejemplo de la función setcookie se muestra a continuación:

000

001

002

003

<?php

$visitas = $_COOKIE["visitas"]+1;

setcookie ("visitas", $visitas, time () + 7*24*60*60);

echo "Nos has visitado $visitas veces";

?>

Page 67: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

56

Apéndice D. Configuraciones adicionales de Raspberry Pi

Raspberry Pi cuenta con configuraciones adicionales, para poder acceder a ellas se debe

ejecutar el comando “raspi-config” el cual se ejecuta desde alguna terminal, al ejecutar

dicho comando el sistema mostrara una ventana similar al de la figura D.1

Figura D.1 Pantalla de configuración de Raspberry Pi

Dentro de las configuraciones están las siguientes:

1. Expandir la imagen del sistema operativo en la tarjeta SD.

2. Cambiar la contraseña del usuario principal (Change User Passsword).

Esta opción permite cambiar la contraseña que esta por default en el

sistema operativo. En Raspbian el usuario es Raspberry y la contraseña

es Pi.

3. Cambiar la pantalla de arranque. En esta configuración se puede elegir

entre las diferentes formas de arranque de Raspberry Pi, existen las

siguientes opciones, arrancar el sistema en terminal de comandos y desde

la interfaz gráfica.

4. Cambiar la configuración de zona horaria, lenguaje (Internationalization

Options).

Page 68: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

57

5. Configurar la cámara. Raspberry Pi OrgFoundation, cuenta con módulos

de hardware externos especiales para la tarjeta. Con esta configuración se

activan los puertos para la cámara.

6. Agregar el dispositivo al rastreador ofrecido por la Raspberry Pi

Foundation, esto para llevar un seguimiento de la cantidad de

dispositivos en el mundo.

7. Configuración Overclock. Con esta configuración se puede aumentar la

velocidad del reloj del procesador para poder realizar más operaciones

por segundo. (ver Apéndice E).

8. Configuraciones adicionales (8 Advanced Options). En este punto

podemos configurar los módulos SSH, actualizar el sistema, dividir la

memoria.

Con todas estas configuraciones se puede mejorar el rendimiento del sistema,

mantenerlo actualizado, agregarle módulos, cambiarle el lenguaje, zona horaria entre

otras opciones. El comando de configuración se puede ejecutar en cualquier momento y

las configuraciones surgen efecto inmediatamente.

Apéndice E. Técnica Overclock

Overclock es una técnica computacional la cual consiste en aumentar la

velocidad del reloj de algunas de las partes de las computadoras, la técnica más común

es realizar el overclock del procesador. Con esta técnica el equipo es capaz de realizar

más operaciones por segundo.

Esta operación puede traer algunas consecuencias negativas, una de ellas son que el

procesador consume el doble de potencia, por lo consiguiente tiende a producir más

calor. Llegando a afectar el rendimiento y estado de otros componentes.

Page 69: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

58

Para poder realizar el overclocking se debe considerar algún método de enfriamiento

para disipar el calor producido por el componente. Algunos de los métodos más

utilizados son: agregar ventiladores más potentes, cambiar los disipadores y hasta

agregar un sistema nuevo de refrigeración como lo es la refrigeración líquida.

En el caso de Raspberry Pi se cuenta con 4 niveles de overclocking desde 800 MHz

hasta 1000 MHz. Como se muestra en la figura E.1. Si se realiza esta operación en el

Raspberry Pi se debe tener en cuenta que el equipo no cuenta con algún disipador o con

algún ventilador que disminuya la temperatura producida.

Figura E.1 Configuración Overclock Raspberry Pi

Page 70: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

59

Apéndice F. Creación de aplicaciones para el sistema

Para poder desarrollar un addon para el sistema es necesario que cuente con las

siguientes características:

1. Debe ser en PHP, Python o Java

a. El código fuente debe contar con enlaces relativos y debe contar con

una forma o página principal. Esto para que el sistema se comunique

con dicha forma principal.

2. Debe contar con dos imágenes o logos relativos al addon. Las características

de estas imágenes deben ser las siguientes:

a. El formato de ambas imágenes debe ser JPG

b. El nombre debe ser icon.jpg e icon2.jpg, donde:

i. Icon.jpg es la una imagen de 950 por 400 pixeles

ii. Icon2.jpg es una imagen de 200 por 70 pixeles

El tamaño puede variar, la única consecuencia seria que la imagen saliera

distorsionada al momento de mostrarse.

3. Contar con una archivo XML, el cual debe llevar el nombre de addon.xml,

este debe llevar el siguiente formato: Nombre: es el nombre que con el que el

sistema identificara al addon

a. Ppal: Es el archivo principal que hará el enlace entre el sistema y el

addon.

b. Tipo: es el lenguaje de programación en el que está desarrollado el

Addon.

c. Desc: esta es una descripción informativa para el usuario del sistema.

d. Autor: nombre del creador o creadores del Addon.

e. Versión: versión del addon.

Por ultimo todos estos requisitos deben ser incluidos en una carpeta la cual

será nombrada como la nombre del addon, y esta carpeta debe ser

comprimida en formato ZIP.

Para ejemplificar este proceso se tiene lo siguiente:

Se desea agregar un addon PHP al sistema, actualmente solo se cuenta con un archivo

.PHP el cual contiene el código fuente para realizar consultas a una página web. Lo

siguiente es agregar los archivos necesarios: los archivos quedan acomodados según

muestra la figura F.1:

Page 71: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

60

Figura F.1 Ejemplo creación de Addon

El archivo addon.xml queda de la siguiente manera:

<info>

<addon>

<nombre>clima</nombre>

<ppal>index.php</ppal>

<tipo>PHP</tipo>

<desc>Aplicacion Weather Channel</desc>

<autor>The Weather Channel</autor>

<version>v1.0.0.1</version>

</addon>

</info>

Dichos archivos deben ser agregados a una carpeta que llevara el nombre de clima y

dicha carpeta se comprimida en formato ZIP. Una vez comprimida este archivo .ZIP

podrá ser agregado al sistema.

Apéndice G. Seguridad de los navegadores web

El navegador web es un programa que solicita y muestra en pantalla documentos

que residen en servidores remotos en toda la Web o que residen dentro de la maquina

local. El navegador debe interactuar con los equipos y programas de acceso al

ordenador que este tenga instalados.

En la actualidad existe una gran variedad de navegadores disponibles para todo tipo de

gustos y necesidades, ya sean detalles estéticos como lo son tamaños de letras, estilos;

Page 72: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

61

detalles de accesibilidad como navegar mediante comandos de voz o por medio de

combinación de teclas.

Pero sin importar la plataforma y el tipo de navegador que se utilice todos los

navegadores deben contar con conceptos de seguridad básicos algunos de ellos son:

• Protección frente ataques. Este concepto permite que el usuario del navegador

este protegido contra ataques como lo son la suplantación de identidades, elementos

emergentes, ejecución no deseada de Java o JavaScript, carga automática de imágenes

no deseadas, entre otros.

• Gestión de la información privada: con este concepto el navegador permite que

el usuario tenga la confianza que su información personal o privada está protegida. Esto

se realiza mediante certificados de páginas web, sesiones, cifrado de datos. Pero así

como existen estos métodos que protegen la información el navegador dota al usuario

de características para tratar con información delicada, estas características son:

navegación privada o incognito, borrar historial cada determinado tiempo, bloqueo de

descargas y una principal el bloqueo de sesiones remotas.

Otra medida de seguridad importante son las tareas que puede ejecutar un navegador

web, en concepto un navegador web es solo un intérprete que muestra un resultado, por

lo tanto un navegador no tiene la habilidad de mandar llamar tareas o aplicaciones. Poco

a poco se han desarrollado alternativas para poder mostrar información del sistema

como lo podría ser su nombre o el directorio en el que se encuentra, pero no llamar una

aplicación externa mediante el navegador [44].

Apéndice H .Lenguajes de Programación

Un lenguaje de programación permite a un programador especificar de manera

precisa: sobre qué datos una computadora debe operar, cómo deben ser estos

almacenados y transmitidos y qué acciones debe tomar bajo una variada gama de

circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente

próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico.

Page 73: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

62

Los procesadores usados en las computadoras son capaces de entender y actuar según lo

indican programas escritos en un lenguaje fijo llamado lenguaje de máquina. Todo

programa escrito en otro lenguaje puede ser ejecutado de dos maneras:

• Mediante un programa que va adaptando las instrucciones conforme son encontradas.

A este proceso se lo llama interpretar y a los programas que lo hacen se los conoce

como intérpretes.

• Traduciendo este programa al programa equivalente escrito en lenguaje de máquina. A

ese proceso se lo llama compilar y al traductor se lo conoce como compilador.

También existen niveles en los lenguajes que se mostraran a continuación:

Lenguajes de bajo nivel: Los lenguajes de bajo nivel son lenguajes de programación que

se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel es, por

excelencia, el código máquina. A éste le sigue el lenguaje ensamblador, ya que al

programar en ensamblador se trabajan con los registros de memoria de la computadora

de forma directa.

Lenguajes de medio nivel: Hay lenguajes de programación que son considerados por

algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C) al

tener ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo,

al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y,

por tanto, de alto nivel.

Lenguajes de alto nivel: Los lenguajes de alto nivel son normalmente fáciles de

aprender porque están formados por elementos de lenguajes naturales, como el inglés.

En BASIC, el lenguaje de alto nivel más conocido, los comandos como "IF

CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que

pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de

trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen

comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática.

Los lenguajes compilados son lenguajes de alto nivel en los que las instrucciones se

traducen del lenguaje utilizado a código máquina para una ejecución rápida. Por el

Page 74: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

63

contrario un lenguaje interpretado es aquel en el que las instrucciones se traducen o

interpretan una a una siendo típicamente más lentos que los programas compilados.

Es teóricamente posible escribir un compilador o un intérprete para cualquier lenguaje,

sin embargo en algunos lenguajes una u otra implementación es más sencilla porque se

diseñaron con una implementación en particular en mente.

• Lenguajes compilados es un lenguaje de programación que se implementa

mediante un compilador. Esto implica que una vez escrito el programa, éste se traduce a

partir de su código fuente por medio de un compilador en un archivo ejecutable para

una determinada plataforma.

• Lenguajes interpretados es un lenguaje de programación que está diseñado para

ser ejecutado por medio de un intérprete, en contraste con los lenguajes compilados.

Teóricamente, cualquier lenguaje puede ser compilado o ser interpretado, así que esta

elección es aplicada debido a la práctica común y no a alguna característica subyacente

de un lenguaje en particular. Sin embargo, hay lenguajes que son diseñados para ser

básicamente interpretativos, por lo tanto un compilador causará una carencia de la

eficacia. A continuación se muestran algunas diferencias entre lenguajes compilados e

interpretados:

• Los lenguajes compilados se compilan una vez y se utilizan cuantas veces se

quiera sin la necesidad de volver a compilarlo. Los lenguajes interpretados son

interpretados, valga la redundancia, cada vez que se ejecutan y necesitan siempre del

intérprete.

• Los compiladores analizan todo el programa y no generan resultados si todo el

código no es correcto. Los intérpretes analizan las instrucciones según las van

necesitando y estos pueden ejecutar un programa con errores e incluso pueden terminar

correctamente la ejecución del programa con errores siempre que no haga uso de las

instrucciones que contienen los errores.

• Un compilador traduce cada instrucción una sola vez. Un intérprete debe

traducir una instrucción cada vez que la encuentra.

• Los binarios son compilados para una arquitectura específica y no pueden ser

utilizados en otras arquitecturas no compatibles (aunque pueden existir distintos

compiladores para generar binarios para diferentes arquitecturas). Un lenguaje

Page 75: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

64

interpretado puede ser utilizado en cualquier arquitectura que disponga de un intérprete

sin necesidad de cambios.

• Los lenguajes compilados son más eficientes que los interpretados y además

permiten distribuir el programa en forma confidencial mediante binarios.

• Es más sencillo empaquetar lenguajes interpretados dentro de otros lenguajes,

como JavaScript dentro de HTML.

Ventajas de los lenguajes interpretados.

• Portabilidad: Esta es la principal ventaja que presenta este tipo de lenguajes,

porque puede ser compilado en y para cualquier plataforma o sistema operativo.

• Compatibilidad: al ser interpretado por el sistema operativo, es la máquina

virtual o framework el que se encarga de que las instrucciones sean ejecutadas por el

software y el hardware.

Desventajas de los lenguajes interpretados.

• Velocidad: Es el aspecto más notable y el cual se debe evaluar a fondo al crear

software con este tipo lenguajes, pues se debe equilibrar la portabilidad con la velocidad

que se está sacrificando. A menos que las prestaciones de los equipos informáticos sean

bastante altas, en el caso cual, se podría despreciar este aspecto.

• Portabilidad: Es una desventaja también. El problema radica en que en la

actualidad, así todos los lenguajes compilados, existen para todas las plataformas, no así

las máquinas virtuales o frameworks, aunque en el caso de Java, se ha hecho un

excelente trabajo, existe para casi todas las plataformas, por no decir todas.

Page 76: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

65

Apéndice I. Manual de Usuario

Introducción

En este documento se describirán los objetivos e información clara de cómo

utilizar el sistema multimedia.

El sistema multimedia fue creado con el objetivo de brindar a los usuarios una variedad

de entretenimiento brindándole la oportunidad de poder agregar más aplicaciones,

mediante un sistema de addons externas.

Es de mucha importancia consultar este manual antes y/o durante la ejecución del

sistema para poder entender todas las funcionalidades que incluye el sistema.

Objetivo del manual

El objetivo de este manual es ayudar y guiar al usuario en la utilización del

sistema multimedia. Y se comprende de las siguientes partes.

Explicación de los módulos con los que cuenta el sistema, incluyendo los

pasos para agregar nuevos addons al sistema.

Configuración del sistema

Problemas y/ errores

Configuración Inicial

Para poder iniciar el sistema es necesario que el dispositivo Raspberry Pi es

necesario:

1. Conectar el dispositivo al televisor, ya sea mediante HDMI o por medio de

los cables RCA.

2. Conectar el o los dispositivos de Teclado y ratón.

3. Conectar el cable de corriente de Raspberry Pi.

Arranque del sistema

Una vez conectado correctamente el dispositivo Raspberry Pi, se comenzará a

cargar el sistema y mostrara una pantalla como la mostrada en la figura I.1. La cual es

la página principal del sistema.

Page 77: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

66

Figura I.1 Página principal del sistema.

Módulos del sistema

El sistema multimedia maneja dos módulos de servicios descritos a

continuación:

Módulo de medios locales.

En este módulo se encuentran las aplicaciones que están cargadas en el sistema

por default y los addons con formato Java y Python agregadas por el usuario. Todo este

módulo cuenta con un encabezado (ver figura I.2) que le permite al usuario navegar por

todo el sistema de una forma rápida y sencilla.

Figura I.2 Encabezado de medios locales.

El encabezado mencionado anteriormente cuenta con las siguientes características

Apagar y reiniciar el sistema. Para apagar o reiniciar el sistema solo es cuestión de

presionar alguno de los dos botones.

Módulos web. Esta opción le muestra al usuario la sección de módulos web, explicados

más adelante en este manual.

Page 78: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

67

Medios locales. En esta sección están alojadas las aplicaciones encargadas de

reproducir los archivos locales (audio, video, imágenes). Dichas aplicaciones son VLC

Media Player, OMXPLAYER y Pictures view (ver Figura I.3)

Figura I.3 Aplicaciones que reproducen medios locales

VLC Media Player

VLC es un reproductor capaz de reproducir casi cualquier formato de video sin

necesidad de instalar códecs externos. Al oprimir el botón de VLC aparecerá una

pantalla como la que se muestra en la figura (ver figura I.4). Esta figura le muestra al

usuario la pantalla de inicio de VLC. Dentro de esa ventana se puede elegir el archivo

que se busque reproducir (audio, video).

Figura I.4. VLC Media Player

Page 79: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

68

OMXPLAYER

Dentro del sistema existe otra opción para reproducir audio y video esta opción es

OMXPLAYER. Al abrir esta aplicación aparecerá una ventana (ver figura I.5) la cual

permite agregar archivos multimedia a un listado y así estos se puedan reproducir uno

tras otro.

Figura I.5 OMXPLAYER

Visor de imágenes

El visor de imágenes es sencillo de manejar solo se necesita seleccionar el archivo o la

carpeta que contenga imágenes que se quiera visualizar y el programa cargara las

imágenes a pantalla (ver figura I.6).

Figura I .6. Visor de imágenes.

Page 80: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

69

APPS/UTILERIAS

Dentro de esta sección se encuentran las aplicaciones cargadas en el sistema por default

(no se pueden quitar del sistema) y dentro de esta sección se direcciona a las

aplicaciones (Python y Java) agregadas por el usuario.

Primeramente se explicaran las aplicaciones cargadas en el sistema por default las

cuales son llamadas utilerías.

Estas utilerías son un valor agregado para el sistema debido a que no

necesariamente están relacionadas con la reproducción multimedia. Dentro de las

aplicaciones precargadas en el sistema se encuentran: un editor de texto, editor de

Python, administrador de archivos, calculador, terminal y un administrador de tareas.

(Ver figura I.7).

Figura I.7. Utilerías cargadas dentro del sistema.

Dentro de estas utilerías existe una en especial que hace referencia a YouTube debido a

algunos problemas con el dispositivo Raspberry Pi con Flash Media Player, pero esto no

significa que no se pueda reproducir YouTube en el sistema. Para reproducir YouTube

se debe realizar lo siguiente: abrir la aplicación de YouTube está dentro de utilerías (ver

figura I.8). Esto dirigirá al sistema a la página www.youtube.com dentro de la página

web se navega hasta encontrar el video que se busca reproducir, una vez elegido el

video lo que se debe realizar es seleccionar el botón de Play que se encuentra en la

barra de navegación tal como se muestra en la figura I.9 y en un lapso no mayor a 10

segundos el video comenzará a reproducirse.

Figura I.8 Aplicación de YouTube

Page 81: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

70

Figura I.9. Botón PLAY del navegador.

Se debe tomar en cuenta que el video se reproducirá en pantalla completa sin ninguna

barra o botón dentro del video, para poder manipular la reproducción del video se deben

tomar en cuenta la información mostrada en la tabla I.1

Tecla Acción

1 Aumentar la velocidad de reproducción

2 Disminuir la velocidad de reproducción

Q /ESC Quitar la pantalla completa

Barra espaciadora / P Pausar el video

- Disminuir el volumen

+ Incrementar el volumen

Flecha Izquierda retroceder -30

Flecha derecha avanzar +30

Flecha Abajo retroceder -600

Flecha Arriba avanzar +600

Tabla I.1 Teclas para manipular YouTube.

Para regresar al sistema solo es necesario elegir el botón con forma de casa, este botón

redirigirá al usuario a la página principal del sistema.

Módulos web

La segunda parte del sistema se basa en aplicaciones web, las cuales pueden ser

agregadas al sistema por el usuario (solo los addons PHP aparecerán dentro de esta

sección) y aquellas aplicaciones que tengan contacto con internet. La página principal

Page 82: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

71

de esta sección mostrar al usuario un galería dinámica de las aplicaciones instaladas en

el sistema. Tal como se muestra en la figura I.10.

Figura I.10. Página inicial Módulos web

Radio

Esta sección del sistema tiene como intensión reproducir música que está siendo

transmitida por internet, para poder reproducir dicha música solo es cuestión de

seleccionar el género y presionar el botón de reproducir. Al realizar esto se abrirá un

mini reproductor como el que se muestra en la figura I.11.

Figura I.10. Sección de radio por internet.

Page 83: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

72

Listado de aplicaciones PHP y URL

Dentro de esta página se encontrará el listado de aplicaciones o direcciones web

agregadas por el usuario. Desde el listado se puede mandar llamar a la aplicación o abrir

la página web seleccionada.

Figura 1.11. Listado de aplicaciones agregadas por el usuario.

Configuración

Dentro de esta sección se podrán agregar o eliminar addons, cambiar el color de

fondo (solo dentro de este módulo) o agregar una página web al sistema. (Ver figura

1.12).

Figura I.12. Configuración de los módulos web.

Page 84: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

73

Agregar un Addon al sistema. Para agregar un addon al sistema solo es necesario

seleccionar el archivo ZIP que contenga el Addon y automáticamente se agregara al

sistema.

Eliminar un addon o página web del sistema. Solo es cuestión de elegir el addon que

se quiere eliminar y seleccionar borrar.

Agregar una página web al sistema. Para agregar una página web al sistema solo es

necesario teclear un nombre para identificar a la página y teclear la dirección web.

Si la página web se teclea mal o no existe, el sistema no la agregara.

Cambiar color de fondo y letras. El sistema puede cambiar el color de fondo y el color

de las letras (solo en la sección módulos web). Seleccionando solo el color de fondo y el

color de las letras tal como se muestra en la figura I.13.

Figura I.13. Configuración, cambio de color de fondo y color de letras.

Page 85: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

74

Apéndice J. Manual Técnico

Introducción y objetivos

El objetivo del presente manual es mostrar los detalles técnicos en cuanto al sistema

desarrollado, esto con la intensión de facilitar la modificación o actualización del

sistema en caso de ser necesario. O bien para su mantenimiento posterior.

El objetivo general del sistema está enfocado a crear un centro multimedia que

conectado a un televisor funcione como una SmartTV.

El objetivo del sistema es brindarle al usuario una fácil interacción entre las

aplicaciones que se encuentran en el sistema con el usuario. Además la oportunidad de

agregar más aplicaciones al sistema de una forma fácil y sencilla.

Lenguaje utilizado.

El lenguaje utilizado para el desarrollo de esta aplicación fue HTML y PHP debido a

unas investigaciones realizadas en cuanto a los lenguajes de programación. Los

resultados de dicha investigación fueron que los lenguajes de programación HTML y

PHP, los cuales pertenecen a los tipos de lenguajes interpretados, eran los que más se

ajustaban al proyecto debido a su poca necesidad de procesamiento y de consumo de

recursos.

Una desventaja de estos tipos de lenguajes son sus medidas de seguridad para poder

comunicarse con las aplicaciones locales, para cubrir esta desventaja se utiliza el

navegador web Minimal Kiosk Browser el cual está desarrollado en Python y brinda la

oportunidad de comunicarse con el sistema operativo mediante comandos.

Aplicación

Para hablar acerca de la aplicación desarrollada se tiene que hacer la división de los dos

módulos principales, el de medios locales y el modulo web.

Primeramente se hará mención de cómo se mandan ejecutar las utilerías cargadas en el

sistema por default. Las cuales aparecen dentro del sistema como se muestra en la figura

J.1.

Page 86: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

75

Figura J.1. Utilerías del sistema

Utilerías

Estas aplicaciones son llamadas mediante un URL local, haciendo referencia a la

página inicial del sistema, la cual es homepage.html. Con esta página se pueden mandar

ejecutar comandos del sistema, por ejemplo

file:///homepage.html?cmd=idle

Dónde: ?cmd= le indica al navegador que debe ejecutar los comandos después del signo

igual (=), en el caso del ejemplo abrirá la aplicación Python IDLE, la cual es un editor e

intérprete de Python. Si se necesita ejecutar un comando que necesite dos o más

palabras y estas son separadas por un espacio, se necesita cambiar el espacio por los

caracteres %20, estos caracteres le indican al navegador el carácter espacio en HTML.

Un ejemplo seria tratar de reiniciar el sistema, para esto se necesita ejecutar el comando

Sudo reboot pero en términos del sistema quedaría de la siguiente manera

sudo%20reboot, con este último comando bastaría para reiniciar el sistema. Quedando

el URL completo de la siguiente manera:

file:///homepage.html?cmd=sudo%20reboot

Cabe recordar que para realizar y ejecutar estos comandos lo recomendable es agregarlo

a un enlace mediante el TAG <a href> de HTML

Agregar addons al sistema.

El procedimiento que sigue el sistema para agregar addons varía de acuerdo al

tipo de addon que se agregue:

Page 87: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

76

PHP: El sistema lee el archivo addon.xml y agrega la información de la aplicación en

otro archivo XML llamado apps.xml.

Para poder ejecutar dicha aplicación el sistema lee el archivo XML donde se encuentra

almacenada la información de las aplicaciones del sistema y toma la ubicación y el

nombre del archivo principal de la aplicación.

JAVA. El sistema lee el archivo addon.xml y genera un script el cual se encarga de

hacer la ejecución de la aplicación.

El script generado recibe el nombre de la aplicación para que el usuario lo identifique

fácilmente, el contenido del script es parecido al siguiente:

Java <nombre del script>

Python El sistema lee el archivo addon.xml y genera un script el cual se encarga de

hacer la ejecución de la aplicación.

El script generado recibe el nombre de la aplicación para que el usuario lo identifique

fácilmente, el contenido del script es parecido al siguiente:

Python <nombre del script>

En cualquiera de los tres casos el sistema primeramente descomprime el archivo ZIP

dentro de la carpeta /addons.

Para ilustrar correctamente el proceso de instalación se puede visualizar la figura J.2 la

cual muestra un diagrama de flujo del proceso.

Page 88: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

77

Figura J.2 Diagrama de flujo para la instalación de addons.

Igualmente se ilustra en la imagen J.3 el proceso de ejecución de los addons agregados

por el usuario.

Page 89: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

78

Figura J.3 Diagrama de flujo para la ejecución de un addon agregado por el usuario.

Cada carpeta que se maneja aquí tiene una función distinta las carpetas se ilustra en la

imagen J.4:

Figura J.4 Imagen de las diferentes carpetas utilizadas.

Page 90: SISTEMA MULTIMEDIA RASPBERRY PI Reporte Técnico de ...

79

En la carpeta addons se manejan todos los archivos de cada una de las APIs agregadas

al sistema A todas estas APIs al instalarse se crea su respectivo folder con nombre el

cual contiene todos los archivos de la API.

En la carpeta de HTML se maneja los archivos de la interfaz del sistema multimedia en

este es donde se pueden hacer cambios a la interfaz o también agregar más

características al mismo como lo son: las configuraciones, integrar nuevas

características y cambiar si es necesario el estilo de toda la interfaz.

En la capeta de java se encuentra un script el cual es el encargado de mandar ejecutar

las aplicaciones JAVA y PYTHON, este script inicializa la aplicación para que el

usuario la pueda visualizar.

Los otros archivos son parte de los módulos locales, estos archivos se deben encontrar

en la carpeta /local/pi.