Tarea corta 5: Raspberry Pi + Wiring Pi

Tarea corta 5:
Raspberry Pi + Wiring Pi
Aurelio Sanabria
Estructuras de datos
II semestre, 2015
————————————————————————————————————————————-
1 Descripción
C es un lenguaje conocido por estar muy cerca de la circuitería (close to the metal).
Entre sus principales usos estan:
Sistemas de misión crítica que necesitan ser muy rápidos.
Controladores de dispositivo.
Sistemas operativos.
Herramientas del sistema.
Es por esto que para poder entender cómo funciona realmente esto de estar cerca
de la circuitería esta tarea pretende relacionarse con el uso de C en otras plataformas
cómo la Raspberry Pi, la cuál tiene un procesador de arquitectura ARM y una
serie de pines conocidos cómo GPIO (General Pin Input Output ) que se pueden
acceder desde el lenguaje C, en nuestro caso a travez de la biblioteca wiringPi
(http://wiringpi.com)
2 Funcionalidad
Para esta tarea se debe implementar en C un árbol binario de búsqueda, el cuál va
a mostrar de forma permanente el valor de su altura mediante el uso de 4 LEDs.
Carga inicial de datos
El árbol binario debe inicializarse mediante la carga de valores desde un archivo de
texto, el cual contendrá un valor por línea.
Introducción de nuevos valores
El programa debe permitirle al usuario el ingresar manualmente nuevos valores.
Página | 1 de 4
Despliegue del estado
Luego de la inicialización se debe mostrar el resultado del árbol mediante el mecanismo que el grupo escoja; así mismo, luego de cada inserción manual que se
ejecute.
Despliegue de la altura
Para el despligue de la información de la altura del árbol, se debe utilizar un arreglo
de 4 LEDs, en el cual se mostrará el valor (en binario) de la áltura.
+------------------+
|
Pines |
|
·· ----|
·· ----| Raspberry Pi ·· ----|
·· ----|
·· |
|
|
+------------------+
LED
LED
LED
LED
1
2
3
4
Luego de cada inserción en el árbol, se debe actualizar el despligue de la altura en
el arreglo de leds.
3 Documentación
La documentación se dividirá en tres secciones:
Análisis del problema
Descripción de cómo se plantea la solución y explicación de que se esta haciendo.
Bitácora
Para este proyecto debe llevar una bitácora detallada del proceso de desarrolo de
la tarea.
Esta documentación se entregará en un PDF con una tabla de dos columnas similar
a la mostrada en el siguiente ejemplo:
Página | 2 de 4
+--------------+------------------------------------+
| Fecha y hora | Actividad realizada
|
+--------------+------------------------------------+
|
|
|
|
|
|
|
|
|
+--------------+------------------------------------+
|
|
|
|
|
|
|
|
|
+--------------+------------------------------------+
Conclusiones y recomendaciones
Conclusiones obtenidas del proyecto y recomendaciónes a tomar en cuenta para
cuando se deba volver a realizar una tarea similar
4 Raspberry Pi
Para el uso de la raspberry Pi se debe:
- Instalar el Sistema Operativo Rasbian en la SD del proyecto.
- Instalar la biblioteca WiringPi en la Raspberry Pi.
- Reservar el uso de la raspberry (solo hay dos monitores con HDMI).
- La reserva de espacio va a estar donde Ingrid en la puerta del área de
trabajo grupal 3.
5 Notas
El árbol binario se puede desarrollar en cualquier computadora y sistema operativo, al pasarlo a la raspberry pi solo se debe recompilar.
En todos los aspectos de la tarea se calificará creatividad.
Si se decide agregar funcionalidad adicional se conceden puntos extra.
Para convertir del valor de la altura a los pines de la raspberry utilice los operadores de bits de C.
Si no entregan la SD pierden el valor de la tarea y el curso.
Página | 3 de 4
6 Fecha de entrega
La tarea se entrega a más tardar: el 27 de noviembre 9 a.m. (GMT -6).
7 Aspectos administrativos
1. La tarea se debe entregar en formato digital en un archivo compreso en formato
tar.gz con el nombre: nombre_apellido.tar.gz
2. El archivo debe descomprimirse a una carpeta que con el siguiente formato:
nombre_apellido y debe contener un archivo makefile y los archivos de código
(.c) y de encabezados (.h) que el estudiante considere necesario.
3. La tarea se debe entregar a la dirección [email protected]
4. Es reponsabilidad del estudiante asegurarse de que la tarea llegue a la dirección indicada, si la tarea no llega antes de la fecha límite se asigna nota de
0.
5. El asunto del correo debe ser el siguiente: [2015][Datos][Tarea 5] nombre grupo
(parentesis cuadrados. . . aunque no lo parezcan)
6. Cualquier correo con un asunto distinto no se revisará.
7. El código se revisa en la computadora del profesor (Debian GNU/Linux testing),
si programa bajo Güindou$ hágalo bajo su propio riesgo (despúes de todo es
su nota la que usted se esta jugando).
Página | 4 de 4