Sistema Operativo 16F628 / 16F877


Proyecto 16F877 S.O.

Posted in Proyecto por webmaster en March 4th, 2007

PIC 16F877
El siguiente proyecto surge de la necesidad de una interface para conectar el PC al mundo exterior, pudiendo usar tanto sensores como actuadores en los programas desarollados en cualquier lenguaje de programación y en cualquier plataforma.

Esto abre un amplio abanico de posibilidades para cualquier persona que conozca algun lenguaje de programación, disponiendo de una herramienta potente y fácil de utilizar para llevar a cabo proyectos que interactuen con el medio exterior.

El Sistema Operativo de esta targeta consta basicamente de un interprete de comandos que ejecuta las ordenes con los parametros que recibe desde el PC y devuelve la información solicitada en cuestión de milisegundos. La lista de comandos permite el control total sobre el microcontrolador, además también cuenta con la posibilidad de añadir comandos propios del programador.

El software es capaz de medir magnitudes digitales y analogicas, gracias a sus 8 conversores A/D de 10 Bits integrados, también permite la modulación de señales de onda cuadrada (PWM) con los parametros que deseemos, otras muchas funciones implementadas mediante Software que se detallan en el dossier del proyecto.

Ejemplo de programa simple:

Programa Ejemplo

Con este programa realizado en C# podemos medir las distancias de 6 sensores ultrasonicos SRF08 y controlar 4 motores paso a paso, indicando los pasos que deseamos que realizen, la dirección y la velocidad.

Además nos sobran entradas y salidas para conectar otras cosas, como por ejemplo interruptores de final de carrera, o servos para mover los sensores ultrasonicos.

Con el software que permite implementar funciones de control o de adquisición de datos en cualquier programa, sistema operativo o lenguaje de programación, el programador puede implementar cualquier software para cualquier aplicación.
Simplemente enviando unos comandos standart por el puerto serie, el sistema Operativo de la targeta los interpretará i ejecutará las ordenes necessarias para controlar actuadores o devolver información de los sensores conectados a ella.

Además, en lenguajes de programación orientados a objetos, como JAVA o C# los perifericos externos de la targeta se pueden interpretar como objetos, con todas las ventajas que eso supone a la hora de realizar proyectos mas complicados, el programador dispondrá de librerias especiales para controlar cada tipo de periférico, o podrá desarollar las suyas propias solo utilizando los comandos de bajo nivel del S.O.16F877.

Por ejemplo, supongamos que se dispone de un motor, dentro del programa ese motor se convierte en un objeto, y podemos alterar los atributos de ese objeto, como el sentido de giro, la velocidad, etc… y al mismo tiempo vemos los resultados en el motor real.

Igualmente passa con los sensores, en el programa los sensores son objetos, por ejemplo un sensor de temperatura tiene un atributo: grados centigrados, el programador leera este valor (sensor1.temp) y en realidad lo que lee es la temperatura real del sensor conectado al 16F877.

Estas son algunas de las ventajas de utilizar programación orientada a objetos, pero igualmente con cualquier otro lenguaje de programación no orientado a objetos es relativamente fácil acceder a datos externos, como si de un archivo de texto se tratará, al estilo C.

Finalmente para ser un poco mas gráfico en la explicación del proyecto, adjunto algunos ejemplos de uso en proyectos reales, donde cualquier programador conociendo los comandos básicos del S.O.16F877 podria programar aplicaciones para el control de las siguientes aplicaciones:

Enlaces:
Hardware utilizado en el proyecto
Software (Firmware y librerias)

Comments are closed.