Componentes Software Maxk'ax II Mask'ax I Introduccion Documentos Inicio
Mask'ax I

Mask'ax I anteriormente conocido como Voyaguer I, fue el primer vehiculo construido como proyecto para un concurso que se celebro en el 2º congreso Internacional de Ingenieria de Computacion y Sistemas en la Universidad Privada Antenor Orrego, en el cual obtuvo el primer puesto.

Si bien este vehiculo no permitia la comunicacion bidireccional, nos ayudo mucho a entender el funcionamiento de la transmision, y como elaborar software que comunicara al vehiculo con el PC de control. Maskax I, es controlado atraves de un software desarrollado por alumnos de la UPAO, al igual que el codigo de programa que esta en la memoria del microcontrolador del propio vehiculo.

La electronica de Mask'ax es un electronica muy simple, ya que nuestro proposito es el de demostrar que el desarrollo de un software puede aprobechar al maximo e incluso aumentar las capacidades de un aparato electronico, por lo que resulta muy importante la continua revision de los codigos de los programas sun constante depuracion y actualizacion usando nuevos algoritmos o tecnicas de programacion y es que un robot puede ser diseñado y contruido en pocas semanas o meses, pero ya sea un automata o controlado, su programacion puede llegar a durar varios años.



Como Sistema de comunicaciones se utilizan radio ondas a una frecuencia de 433 Mhz que dan la posibilidad de enviar datos hasta unos 100 metros en espacios abiertos y entre 30 y 50 metros en espacios cerrados, a una velocidad máxima de 4800 bps.

 




Características:


• frecuencia : 433MHz
• MODULACION : AM
• RF output : 8mW
• Alimentación: 1.5- 7 V DC.

 





Características:


• alimentación: 3.5 a 6VDC.
• Alcance: 140 metros al aire libre y hasta 30m en interiores.
• Alta frecuencia AM (303.92/315/418/433.92 MHZ).
• Rata de datos 4800 bps.
• Trabaja con el transmisor TX433.

Estos dos dispositivos que funcionan la frecuencia de 433 Mhz me permiten enviar datos en serie de una forma sencilla a las distancias ya mencionadas, por ser una frecuencia de muy corto alcance, no es necesario el uso de licencias para su funcionamiento, por lo que no infringimos ningún tipo de norma legal.

El PIC16F84a

El Pic 16F84a es un microcontrolador elaborado por MICROCHIP, de gama media/baja, dispone de dos puertos de entrada y salida, el PORTA de 5 bits, y el PORTB de 8 bits, en su memoria estara el programa encargado de interpretar las ordenes enviadas por el PC de control a traves del TWS433.

Los pines 17,18,1,2,3, corresponden al PORTA.
Los pines 6,7,8,9,10,11,12,13, corresponden al PORTB.
Los pines 5 y 14 corresponden a Tierra y Corriente respectivamente.
El pin 4 hace las veces de RESET.
Los pines 15 y 16 son las entradas y salidas del Oscilador.

El Oscilador indica a que velocidad trabajara el Micro controlador, que en este caso será a 4 MHZ, internamente la velocidad se divide entre 4 por lo que cada instrucción del programa se ejecuta cada microsegundo.

 

 

Este circuito realmente, no tiene un propósito especifico, ya que según se programe se comportara de la forma que nosotros queramos, puede ser un reloj, una alarma, un videojuego, un servidor de paginas Web, etc. Para esta ocasión este dispositivo se encargara de rececibir e interpretar los comandos enviados en forma serial a través de el transmisor.

 

El lenguaje elegido para programar estos dos PIC, ha sido PIC BASIC PRO, ya que es un lenguaje sencillo el cual incluye comandos y sentencias especificas para comunicación en serie y otras capacidades del microcontrolador.

A continuación explicaremos parte del código fuente del programa utilizado en el PIC.

01 INCLUDE "modedefs.bas"
02
03 TRISB=%0000000
04 TRISA=%01000
05
06 D2 VAR BYTE
07 D2=0
08
09 Loop
10
11 SerIn PORTA.1,N9600,["C"],D2
12 PORTB=D2
13
14 GoTo Loop
15
16 End


La línea 01 incluye las definiciones de velocidad y características de la trasmisión serie, que serán utilizadas mas adelante.

La línea 03 indica que en el PORTB, sus ocho bits serán utilizados como salidas.

La línea 04 indica que el PORTA, de sus cinco bits serán utilizados como salidas cuatro,
y uno será usado como entrada de datos.

La línea 06 y 07 define e inicializa la variable utilizada, asignándole el valor 0.

La línea 09 indica una etiqueta, a la cual se regresará para crear un bucle infinito.

En la línea 11 mediante la sentencia SerIn asignamos a la variable D2, el byte recibido desde el primer PIC, siempre que antes hayamos recibido el byte que indica la llegada de un dato, en este caso “C”.

Seguidamente en la línea 12 asignamos el valor de la variable D2 al PORTB.

La línea 15 vuelve a la etiqueta loop creando el bucle infinito que recibirá continuamente los datos del primer PIC.

La sentencia SERIN, funciona de la siguiente forma:

SERIN X,Y,Z

X: Es el pin del circuito por donde se ingresara la información en serie.
Y: Son las características, como Velocidad, Paridad, sincronía a la que saldrá la información.
Z: Es la variable donde se almacenara el byte recibido.

La sentencia SerIn, solo recibe un byte cada vez , en nuestro caso solo necesitamos recibir un byte por lo que no nos extenderemos mas en la forma en la que trabaja esta sentencia.

 

Como se comunica el Mask'ax

PCM 1.0 ( Protocolo de Comunicación Mask'ax1.0 )

El protocolo es muy simple, en cada ciclo de envió de datos, se envía un byte, como ya sabemos el byte esta compuesto de 8 bits, cada bit indica al circuito del vehículo que hacer según se le envíen los comandos.



El MSB es el Bit A, y el LSB es el Bit H

Los Bis A y B indican el sentido de giro de las ruedas de la línea izquierda, en el caso de que el bit A sea 1 y el bit B sea 0, la línea Izquierda girara hacia delante, en el caso de que el bit A sea 0 y el Bit B sea 1, la línea Izquierda girara hacia atrás, si los 2 bits son iguales, las ruedas no giraran en ningún sentido

De la misma manera funciona los bits C y D pero con la línea derecha de ruedas.

El bit E indica el encendido de las luces principales del vehiculo, 1 encendido, y 0 apagado.

El bit F indica el encendido de las luces Nocturnas del vehiculo, 1 encendido, y 0 apagado.

Los dos Bits restantes, no son utilizados aun en este vehículo, pero serán de utilidad en una futura extensión del protocolo a una versión mas avanzada del VOYAGER.

Antes del Byte de Datos Emitimos un Byte de basura, para iniciar la comunicación, una vez estabilizada la transmisión enviamos un byte con el caracter “C”, que es la indicación de que el próximo byte que se enviara es el byte de datos, el cual debe alojarse en la variable especificada en el programa receptor del PIC.



Para controlar el sentido de giro de las ruedas utilizamos 4 Relays de 6v, estos relays tienen una de sus patas de activacion conectadas a una fuente de 9v, y su otra pata de activacion conectada a una de las salidas del 74HC245, de tal forma que cuando las patas del 74HC245 son 1 (Logica TTL, 5v) el Relay esta desactivado, y cuando es 0 (Logica TTL 0v), la corriente circula por la bobina del relay activandolo y dejando pasar vcc o gnd segun sea la orden que se este ejecutando.

 



click para aumentar



Click para aumentar

 

En la seccion de Software encontraras el programa que utilizo para enviar las ordenes a traves del transmisor/receptor asi como el codigo fuente en Visual Basic 6.0.

UPAONipleSoft