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.
|