iniciar sesión

Agregador de canales de noticias

Refactorización del código principal

nftable-gui - Mar, 03/31/2015 - 19:49

.

Se han cambiado todos los métodos que existían en main
a sus correspondientes ficheros .c y de cabecera .h
para una mejor lectura del código. Hecho en rama y testado
para luego mas tarde hacer el merge.

Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
src/prototypes.c
src/prototypes.h

Modified:
src/Makefile.am
src/Makefile.in
src/main.c

Deleted:

Commit:
Link

Repositorio

Port de FreeRTOS para ATMega328 y estructura del proyecto

OarMeter - Mar, 03/31/2015 - 17:24
Ya he completado el "port" de FreeRTOS para el ATMega328 (repo). Además he creado la estructura básica para el código del firmware y he configurado la compilación usando CMake.
FreeRTOS haciendo parpadear un LED en un ATMega328p Port FreeRTOSFreeRTOS es un sistema operativo de tiempo real de open source ligero que puede caber en microcontroladores pequeños, como es el caso del ATMega328. Como es lógico, el código de FreeRTOS no es independiente del hardware dónde se vaya a usar, adaptarlo a uno específico es lo que se suele llamar "port".

Portar FreeRTOS se reduce a implementar/modificar dos archivos:
  • port.c: Donde se implementan las funciones de cambio de contexto, gestión del stack y configuración del timer del sistema, entre otras.
  • portmacro.h: Aquí se defines algunas macros dependientes del hardware para la habilitación/desabilitación de las interrupciones y definición de tipos.
  • heap_#.c: Los archivos heap_1.c, heap_2.c, etc implementan las funcionalidades de reserva dinámica de memoria. FreeRTOS tiene varios sistemas de gestión de memoria, en nuestro caso hemos elegido el más simple por ser el más eficiente (heap_1.c).
En nuestro caso, FreeRTOS nos proporciona un port oficial para el ATMega323, que es un micro muy parecido al ATMega328, por lo que hemos partido de ese port. Con pocas modificaciones y usando de guía otro port para ATMega328 encontrado aquí, se ha conseguido portar sin mayor problema FreeRTOS.
 Estructura y CMakeSe ha optado por CMake como herramienta de compilación. Además de comprobar las si se disponen de las herramientas necesarias y generar el makefile para compilar, se ha creado un "target" para facilitar la programación de la placa. De forma que, al hacer make, se compila el firmware y se prepara el binario para programar el microcontrolador. Y al hacer make program grabamos este binario en el microcontrolador.

La programación del micro se puede hacer de distintas formas en función de la placa de desarrollo y el programador/depurador del que se disponga. Para establecer una configuración específica basta con modificar las variables en CMakeLists.txt dispuesta para ello.

Actualización del fichero README

nftable-gui - Mar, 03/31/2015 - 13:14

.

Actualización del fichero README.md con las instrucciones necesarias
para la correcta ejecución de nftables-gui

Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:

Modified:
README.md

Deleted:

Commit:
Link

Repositorio

Actualización del README

nftable-gui - Mar, 03/31/2015 - 13:11

.

Se actualiza el contenido del fichero README con las instrucciones
necesarias para la ejecución de nftables-gui

Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:

Modified:
README.md

Deleted:

Commit:
Link

Repositorio

Añadidos archivos para la correcta compilación del software

nftable-gui - Mar, 03/31/2015 - 12:42

.

Se añaden los archivos que faltaba la correcta construcción del
software.

Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
depcomp
missing

Modified:

Deleted:

Commit:
Link

Repositorio

Añadidos archivos para la correcta compilación

nftable-gui - Mar, 03/31/2015 - 12:40

.

Se añaden los archivos necesario para la correcta construcción del
software.

Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
src/Makefile.in

Modified:

Deleted:

Commit:
Link

Repositorio

Añadidos archivos de configuración que faltaban

nftable-gui - Mar, 03/31/2015 - 12:39

.

Se añaden los siguintes archivos que faltaban para la correcta
compilación del software.

Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Makefile
Makefile.in

Modified:

Deleted:

Commit:
Link

Repositorio

Añadido el fichero install-sh

nftable-gui - Mar, 03/31/2015 - 12:35

.

Se añade el fichero install-sh que era necesario para la compilación.

Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
install-sh

Modified:

Deleted:

Commit:
Link

Repositorio

Añadidos los ficheros necesarios para la compilación con makefile

nftable-gui - Mar, 03/31/2015 - 12:31

.

A partir de ahora se pueden usar estos fichero para la correcta
construcción de este software usando make, los pasos son:

* ./configure

* make

Una vez ejecutados, se habrá creado el ejecutable nftables-gui en
/src

Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Makefile.am
configure
configure.ac
src/Makefile.am

Modified:

Deleted:

Commit:
Link

Repositorio

Actividades con vocales

nellodee - Lun, 03/30/2015 - 23:11
He añadido las primeras actividades de lectoescritura, para conocer las vocales.

En la primera actividad, el niño tiene que reconocer de forma auditiva la vocal inicial, señalando otra palabra que empiece por el mismo sonido:

A continuación, tiene que pulsar sobre la letra que comparten ambas palabras como primer carácter:



En la segunda actividad, el niño tiene comparar la palabra indicada con la de los dibujos, y arrastrarla hasta el dibujo que coincide:



En la tercera actividad, tiene que identificar la vocal inicial que falta:


Y en la cuarta actividad, tiene que reconocer la palabra del dibujo (basta con reconocer la vocal inicial), y arrastrarla al dibujo.


Biblioteca LCD

OarMeter - Lun, 03/30/2015 - 21:32
Como se expuso en la entrada anterior, se ha implementado una biblioteca para el control de la LCD de Nokia (controlador PCD8544). En esta entrada voy a explicar las principales características de esta biblioteca, el trabajo realizado y el que queda por hacer.

Interfaz con el LCDComenzamos describiendo cómo nos comunicamos con el LCD. Los dos pines más importantes son los de MOSI (o data) y D/C (Datos/Comandos). El es por dónde el LCD recibe los datos mediante un protocolo SPI, el segundo pin indica cuando el dato enviado es un valor de un pixel o un comando de control del LCD. La pantalla tiene un pequeño conjunto de comandos sencillos para seleccionar la posición del pixel a escribir, variar el contraste, invertir o borrar la pantalla, etc.

IndependenciaEsta biblioteca no depende del Hardware donde se utilice. Esto se consigue delegando la implementación de todas las funcionalidades dependientes del Hardware al usuario. Así, el uso de la biblioteca no está limitado a una Hardware en particular. Para adaptarlo a una u otra placa de desarrollo hay que implementar las funciones de la cabecera "lsd_bsp.h". Internamente, la biblioteca utilizará esta funciones para controlar la pantalla.

Las funciones principales que se delegan son las tres siguientes:
  • void LCD_BSP_send(uint8_t* data, uint16_t size): El envío de datos mediante protocolo SPI. Esta cabecera junto con las funciones de espera, permite al usuario una total libertad a al hora de elegir la forma de enviar los datos (SPI, SPI+DMA, bit banging...).
  • void LCD_BSP_waitUntilTXA(): Esperar hasta que se permita una nueva transmisión. Delegar las funciones de espera son el fundamento del soporte para RTOS.
  • void LCD_BSP_waitUntilTXC(): Esperar hasta que se haya completado la transmisión. Delegar las funciones de espera son el fundamento del soporte para RTOS.

También es necesario implementar las siguientes funciones para el manejo de pines e inicialización:
  • void LCD_BSP_init(): Permite al usuario inicializar los periféricos que vaya a necesitar: SPI, DMA, timer, etc
  • void LCD_BSP_RST(): Debido a que es necesario gernerar un pulso de una determinada duración, en un pin específico; se delega la implementación de esta acción.
  • void LCD_BSP_setCE(uint8_t state): Establecer el estado (voltaje alto o bajo) del pin CE es una acción dependiente del Hardware.
  • void LCD_BSP_setD_C(uint8_t state): Establecer el estado (voltaje alto o bajo) del pin D/C es una acción dependiente del Hardware.
  • void LCD_BSP_setLIGHT(uint8_t state): Muchas pantallas vienen con unos LEDs para iluminarla. Si se desea, se debe implementar el control de los mismos.
RTOS friendlyComo ya se ha comentado, esta biblioteca se puede integrar adecuadamente con un RTOS. Esto se consigue delegando la implementación de las funciones de espera. En ellas, el usuario podrá elegir qué hacer mientras espera utilizando las funcionalidades del RTOS (semáforos, mensajes, etc). Así se posibilita realizar un cambio de tarea durante las esperas, en lugar de hacer una espera activa.
FuncionalidadesLa biblioteca no está completa y las funcionalidades que implementa ahora mismo son solamente de inicialización y control del LCD, y escritura y envío de un buffer a la pantalla. Ya se está trabajando en la implementación de una "biblioteca gráfica" con algoritmos para dibujar líneas, círculos, rectángulos y demás figuras geométricas.
¡Colabora!Esta biblioteca es  libre con licencia GPL. Si estás interesado te animo a colaborar creando un fork del repositorio y haciendo un pull-request, o enviándome un parche a carlosfg <arroba> riseup <punto> net

LCD NOKIA

OarMeter - Lun, 03/30/2015 - 19:37
Este proyecto usa la popular LCD de los antiguos Nokia 3310 y 5110. Estas pantallitas son muy baratas, fáciles de usar, con muy bajo consumo y una resolución bastante aceptable (84x48). Son precisamente estas características por las que se ha seleccionado para el proyecto.
BibliotecasAl ser tan populares existen varias bibliotecas para facilitar el uso de esta pantalla. Entonces, ¿por qué desarrollar otra nueva? La mayoría de las bibliotecas que encontramos están desarrolladas para una placa de desarrollo o microcontrolador específico (Arduino principalmente). Y las que no lo están, tienen ciertas carencias (desde mi punto de vista) que he querido solverntar.

La principal de estas carencias es una compatibilidad  100% con un sistema operativo en tiempo real (RTOS). Cuando usamos un RTOS vamos a querer evitar las esperas activas, ya que la tarea que las utilice va a consumir tiempo de CPU tóntamente, robándoselo potencialmente al resto de tareas.

Otra de las mejoras realizadas es proporcionar una mayor flexibilidad para la implementación de las funciones de envío de datos al LCD. Esto quiere decir que permite al usuario utilizar todo el potencial de su microcontrolador. Por ejemplo, en el caso de no disponer de un bus SPI podrá utilizar la técnica del bit banging, y si su µC dispone de un bus SPI con DMA podrá utilizarlo también, implementando las mismas funciones.

Esto no quiere decir que haya descartado todo el gran trabajo que podemos encontrar en las otras bibliotecas. De ellas he tomado muchas ideas, estructuras y algoritmos, adaptándolos a mi gusto en algunos casos y mejorándolos (a mi parecer) en otros. Esto es uno de los aspectos más bonitos del software libre. Por esto mismo, termino esta entrada agradeciendo el magnífico trabajo a los autores de las dos principales bibliotecas en las que he inspirado mi trabajo:
Repositorio de mi biblioteca: https://github.com/FarK/LCD-5110-PCD8544_RTOS

Añadida vista para crear reglas

nftable-gui - Lun, 03/30/2015 - 10:50

.

Se añade la fista de crear una regla (sin funcionalidad aún)

Cuando se crea una tabla y una cadena, una vez dentro de la regla
se pueden crear las reglas en esa cadena dando lugar a la siguiente
vista:

Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:

Modified:
src/main.c

Deleted:

Commit:
Link

Repositorio

Comenzamos

TuRed - Dom, 03/29/2015 - 23:49

Después de trabajar sobre la parte interna de la web, ya estoy creando la interfaz web para poder probarla antes de que acabe la semana próxima. Y próximamente la conexión con la aplicación móvil!

Añadida funcionalidad de borrar una cadena

nftable-gui - Dom, 03/29/2015 - 21:16

Añadida funcionalidad de borrar una cadena.

A partir de ahora desde la lista de cadenas se pueden borrar
las cadenas, cuando selecciona una cadena, se puede borrar esta:

En nuestra lista de cadenas:

Seleccionamos borrar la cadena:

Al volver a listar las cadenas no nos dejará puesto que la hemos
borrado:

Commit

Repositorio

Comienza la cuenta atras

Saving Granny - Dom, 03/29/2015 - 21:06

Las cartas ya están sobre la mesa. Tengo hasta el 31 para añadir/mejorar todo lo que pueda antes de la evaluación, por lo que en la próxima entrega habrá nuevo ejecutable y otro proyecto en Github. ¿Cuáles son las novedades de esta semana?

– Pantalla Historia: Habrá una pequeña introducción en la que se cuenta la historia y pone al jugador en situación en el juego.

– Juego bilingüe: Idiomas en Español e Inglés, habrá que elegirlo al principio dando lugar a la historia y después al menú.

– Nuevo enemigo: Jabalí.

– Fases más largas y con dificultad progresiva.

– Nuevos terrenos, escenarios y fondos más realistas, de fuentes externas. Me habría gustado haberlos hecho yo, pero ni he tenido tiempo y siendo honesta no me habrían quedado ni la mitad de bien de lo que están.

Nada más por hoy, que hay que seguir trabajando aunque solo sea un ratito más.

Lucra.


Discriminación de tamaños

nellodee - Dom, 03/29/2015 - 19:03
He añadido dos actividades de discriminación de tamaños. En la primera hay que elegir a qué hueco llevar la figura:


Y en la segunda hay que elegir qué figura llevar al hueco:

Un clon, por si las moscas

ColorSharp - Dom, 03/29/2015 - 08:15

Que ciertas empresas pueden traicionar (o defraudar) a la comunidad sin previo aviso es algo que muchos sabemos desde hace mucho tiempo. Desgraciadamente, aun sabiéndolo, solemos olvidarlo o restarle importancia.

Uno de los ejemplos históricos más claros fue el de Sun Microsystems, que aunque impulsó fuertemente el software libre, también hizo lo contrario en los últimos años antes de ser fagocitada por Oracle. Y Oracle, claro está, fue peor aún. Otro ejemplo no tan recordado fue EyeOS, de mi “queridísimo” Pau García Milà (me robaba la comida en la oficina, aparte de programar como un chimpancé y enseñarnos el culo cuando se dignaba a pasar por las oficinas de Bananity).

Recientemente ha habido otro caso muy sonado, en el que Apple ha hecho desaparecer sin previo aviso los repositorios completos de FoundationDB en Github. Este no será nunca el caso de ColorSharp, ni el código es tan apetecible para una macrocorporación, ni yo permitiría que algo así sucediera. Sin embargo, visto lo visto, es mejor tomar precauciones: Github podría perder sus datos por un accidente, cerrar por algún problema económico (aunque no es creíble a corto plazo), censurar algunos repositorios (como de hecho sucedió, por tener que aplicar ciertas leyes estadounidenses)…

Por eso mismo he decidido mantener un mirror del proyecto en Gitlab: https://gitlab.com/Litipk/ColorSharp . Puntualizo, aunque el código de Gitlab es libre (a diferencia del de Github), me fío tanto de ellos como de los primeros. Que el código sea libre no los hace menos vulnerables a los problemas que he mencionado. Este clon no es para saltar de Github a Gitlab, sinó mas bien asegurar que habrá como mínimo un mirror. Y me estoy planteando crear otro en Bitbucket.


NumberDance pushed to master at NumberDance/InformaT

InformaT - Dom, 03/29/2015 - 01:33
Mar 29, 2015 NumberDance pushed to master at NumberDance/InformaT
  • e18f92b Interfaz gráfica y base de datos en construcción.

NumberDance pushed to master at NumberDance/InformaT

InformaT - Dom, 03/29/2015 - 01:21
Mar 29, 2015 NumberDance pushed to master at NumberDance/InformaT
  • 65abd17 Interfaz gráfica y base de datos en construcción.

Páginas

Suscribirse a IX Concurso Universitario de Software Libre 2014-2015 sindicador

Patrocinan

Principal:

Plata:


Bronce:

Silicio:


Organizan


Colaboran


Medios Oficiales

2006/2007 - 2007/2008 - 2008/2009 - 2009/2010 - 2010/2011 - 2011/2012 - 2012/2013 - 2013/2014
Algunos derechos reservados RSS Powered by Drupal Get Firefox!