
Adjunto imagen de patillaje del MR-3024
La primera parte de la mañana el trabajo ha consistido fundamentalmente en adaptar el movimiento por defecto consistente en dar un único paso (mover las dos piernas) para que pudiera caminar de forma continuada e inicialmente indefinida. Para ello se ha eliminado el movimiento de reposo tras cada paso y se ha implementado un bucle para permitir la continuidad. No obstante el movimiento final parece no estar muy depurado, como trabajo para próximas sesiones se piensa en intentar adaptar el movimiento correr.
Seguidamente se procedió a probar los distintos módulos de comunicación del MR-3024, estos módulos son:
Módulo de Tx en serie. La prueba consiste en enviar una señal (carácter “a”) por el puerto de tx mediante el comando ETX [Velocidad],[Dato]. La ventaja de este comando frente a TX[escala de velocidad], [Dato] es que mientras el primero permite seleccionar una velocidad concreta dentro de una tabla, el segundo simplemente te permite fijar la velocidad con un número del 1 (más lento) al 4 (rápido). La señal transmitida fue recibida por el osciloscopio con un resultado positivo.- Módulo PWM. Las pruebas sobre este módulo consistieron en enviar una señal periódica y recibirla con el osciloscopio. La señal fue generada mediante el comando PWM [nº de puerto],[Rango Duty Cycle]. Donde nº de puerto permite seleccionar uno de los 3 puertos PWM (del 0 al 2) mientras que fijando un valor entre 0 y 255 seleccionaremos el duty cycle de la señal. Existe otra función para controlar esto, FPWM [port],[frecuencia],[duty cycle] cuya ventaja es que permite adicionalmente controlar la frecuencia con un valor del 1 (baja frecuencia) al 5. Como conclusiones de esta prueba cabe citar la capacidad del puerto PWM para generar pulsos en segundo plano mientras el procesador hace otras cosas, no obstante la incompatibilidad se presenta cuando se intenta ejecutar un movimiento de servos ya que según el manual esto es incompatible. Las consecuencias de esto pueden ser motivo de estudio en próximos días.
- Módulo AD. El módulo conversor de señal analógica a digital fue probado de la siguiente forma. Se genera una señal desde el tx en serie y se recibe por el módulo AD, si la recepción es correcta ( se recibe algo distinto a 0) se producirá un pitido. El problema que surge es que la tx por el puerto en serie, a diferencia del puerto PWM, no permite trabajar en segundo plano, por lo que cuando se procedía a la recepción ya había concluido la transmisión y por tanto no había “nada” que recibir. Para solucionar este problema se optó por utilizar el puerto PWM, que sí incorpora esa funcionalidad, como generador de señal. La señal se recibe con el comando AD([nº puerto]) donde nº puerto debe ser un número comprendido entre 0 y 7.
- Módulo externo de ultrasonidos. La prueba ha consistido en un primer momento en generar la señal de control del módulo ultrasonidos y captarla con el osciloscopio. Un problema que ha surgido ha sido la ambigüedad en la definición de entrada y salida en el manual, desde el que se define recepción como la entrada de datos dirección MR-3024 a Ultrasonidos. Posteriormente se ha comprobado la generación de respuesta por parte del módulo de ultrasonidos mediante la conexión del osciloscopio al puerto Tx del módulo. Finalmente se ha conectado totalmente el módulo y se ha comprobado mediante un programa que genera pitidos la correcta adquisición de distancias. Esto se realiza mediante la orden SONAR (nºpuerto) que generará un valor del 0 (en caso de error) al 3000 (distancia máxima medible).
- Respecto al puerto I2C no se ha encontrado información por el momento.
Finalmente se ha intentado realizar una pequeña rutina que emplease el módulo de ultrasonidos. El programa consistía en que el robot caminase hasta llegar a las proximidades de un obstáculo momento en el cual se debía parar. Este primer intento se puede considerar fallido ya que se para casi aleatoriamente, consecuencia, ésta, que puede estar motivada por:
Ruido en el laboratorio que interfiere en el sensor.
Movimiento excesivo del módulo mientras efectúa la medida debido al caminar del robot.- Falta batería, se ha comprobado que cuando la batería empieza a agotarse el robot comienza a hacer movimientos imprevistos, y pierde fuerza en los servos.
Una solución preparada y que falta por probar es repetir varias medidas antes de tomar la decisión.
Como cuestión para próximas sesiones, convendría investigar el por qué a la hora de ejecutar sonidos los servos se desconectan provocando la caída del robot.
Adjunto link del manual de comandos
Si no abre, buscarlo desde google y abrirlo como html.
4 comentarios:
Tx serie: hay que tener cuidado, en la tarjeta, los pines ETX y ERXestán marcados al revés ; donde está bien es en el esquema incluido en la documentación
¿podríais incluir las rutinas de prueba exitosas que comentáis?
Gracias.
El problema para publicar las rutinas es que necesitamos el programa robobasic para leer el código asi que hay q hacerlo en el laboratorio.
Para la transmision serie se han empleado las siguiente lineas de código:
DIM AS BYTE
I = "A"
ETX 9600,I
A la funcion "ETX" hay que pasarle dos comandos, el primero de ellos hace referencia a la configuracion del puerto, en este caso 9600 significa la velocidad de transmision en bps con 8 bits de datos, sin paridad y un bit de parada. El segundo parametro corresponde con el valor que vamos a enviar, en este caso es la variable "I" que tiene asignado el valor ASCII "A".
Tambien se puede usar para esta labor el comando "TX". (Para ver las semejanzas y las diferencias ver la entrada del blog).
Para el modulador por ancho de pulso:
PWM 0,120
(Para explicacion del comando leer post del blog)
Para el conversor Analogico Digital:
PWM 0,120
DIM A AS BYTE
A=AD(1)
IF A NOT 0 THEN
MUSIC "A"
ENDIF
(Para explicacion del comando leer post del blog)
Publicar un comentario