Inicio

Inicio

Software

 

 

   ROBOZB

 

 

Software, información general.

 

Software MSP.

 

El software de la MSP,  es el encargado de setear los registros correspondientes del microcontrolador además de las siguientes funciones:

Espera por las instrucciones provenientes del PC.

Convierte la señal análoga entregada por el sonar a un número digital.

Recibe y envía la información a través del puerto de comunicación asíncrona UART.

Controla el movimiento de los servos a través de señales PWM.

Controla los motores de corriente continua a través de 4 puertos I/O.

 

Software PC.

 

El software del PC tiene las siguientes funciones:

 

Desplegar el menú interactivo con las opciones de: control movimiento, escaneo tridimensional, escaneo bidimensional (constante), término del programa.

En el caso de control del movimiento del robot, enviará las instrucciones entregadas por el usuario a través de la entrada estándar.

En los otros dos casos, el programa se quedará a la espera por los datos que provienen del robot, para luego ejecutar el Octave, el cual graficará la información sea en 3D o 2D.

 

Software, información en detalle y solución del problema.

 

 

La solución se basa en la comunicación entre dos programas, uno correspondiente al robot que se ejecuta en el microcontrolador y otro programa que se ejecuta en el PC.

Se presenta un diagrama de alto nivel en la siguiente figura, mostrando los principales componentes sea de software y hardware.

 

 

 

Diagrama de alto nivel.

 

Funcionamiento:

 

El programa del robot, contiene las funciones necesarias para el control del hardware, estas son:

- Funciones de movimiento, tales como gd(),gi(), etc., que setean las salidas de los puertos I/O.

- Funciones de escaneo, tales como Scan3D y Scan2D, que controlan los servos, realizan las lecturas del sonar y envían los datos en forma de un arreglo de caracteres.

-Función de transmisión TxComando que envía el string que recibe como argumento de entrada.

El programa del robot inicia seteando los registros necesarios para el correcto funcionamiento, posteriormente procede a entrar en un while iterativo que se queda a la espera  de instrucciones y dependiendo del carácter recibido llama a las funciones correspondientes.

 

El programa del PC inicia seteando la interfaz que sirve de controladora para el puerto USB, crea un proceso que abre el Octave, crea un hebra que despliega el menú, y posteriormente entra en un while iterativo que contiene las opciones del menú, entrará a una opción dependiendo del valor de la variable tipo string “opción”, que la modifica el usuario con el uso de la hebra.

 

Algunas de la funciones que tiene son STx() de las palabras Secure Tranmission, que se creo si es que surgía la necesidad de una transmisión segura de un string, esta función queda a la espera de ACK’s de respuesta, y todavía esta en desarrollo. Además tenemos las funciones Split y Split2D que dividen el búfer de entrada en tokens y almacenan estos datos en forma de enteros en las matrices matriz o matriz2D.

La lectura que se hace del puerto es de tipo canónica, o sea los datos son tratados como líneas siendo la lectura de tipo bloqueante hasta que reciba en este caso un CR (carrier return \r) como entrada.

Los datos recibidos vienen en coordenadas polares o esféricas dependiendo del caso, y es el Octave el encargado de transformar estos datos a coordenadas cartesianas y hacer los gráficos correspondientes.