Académique Documents
Professionnel Documents
Culture Documents
DE MOWAY
www.moway-robot.com
ndice
ndice ................................................................................................................................ 3
1. Introduccin .............................................................................................................. 6
2. Qu es mOway? ...................................................................................................... 7
3. Robot mOway ........................................................................................................... 8
3.1 Procesador .......................................................................................................... 8
3.2 Sistema motriz .................................................................................................... 9
3.3 Grupo de sensores e indicadores ...................................................................... 11
3.3.1
Sensor de lnea ............................................................................................. 12
3.3.2
Sensores detectores de obstculos ............................................................... 14
3.3.3
Sensor de luz ................................................................................................ 15
3.3.4
Conector de expansin ................................................................................. 16
3.3.5
Sensor de temperatura.................................................................................. 17
3.3.6
Speaker ........................................................................................................ 17
3.3.7
Micrfono .................................................................................................... 17
3.3.8
Acelermetro ............................................................................................... 18
3.3.9
Nivel de batera ............................................................................................ 18
3.3.10 LED frontal .................................................................................................. 18
3.3.11 LED superior bicolor ................................................................................... 19
3.3.12 LED de freno ............................................................................................... 19
3.3.13 Pad libre ....................................................................................................... 20
3.4 Sistema de alimentacin ................................................................................... 20
3.5 Mdulo RF y RFUSB ....................................................................................... 21
3.5.1
Especificaciones tcnicas............................................................................. 22
3.6 Mdulo de cmara ............................................................................................ 24
3.6.1
Especificaciones tcnicas............................................................................. 25
3.7 mOway Camera Board ..................................................................................... 26
3.7.1
Especificaciones tcnicas............................................................................. 27
3.4 Mdulo Wifi ..................................................................................................... 28
3.4.2
Conexin al robot ........................................................................................ 28
3.4.3
Pila TCP/IP .................................................................................................. 29
3.4.4
Comunicacin SPI ....................................................................................... 29
3.4.5
Caractersticas tcnicas ................................................................................ 30
4. Primeros pasos ........................................................................................................ 32
4.1 Instalacin pack ................................................................................................ 32
4.2 Grabacin del robot .......................................................................................... 33
4.3 Instalacin RFUSB ........................................................................................... 33
4.4 Instalacin drivers mOway Camera Board ...................................................... 35
5. Programacin ensamblador .................................................................................... 36
Creacin de un proyecto ............................................................................................. 36
5.1 Primer programa en ensamblador..................................................................... 40
5.2 Libreras............................................................................................................ 44
5.2.2
Librera sensores mOway ensamblador ....................................................... 44
5.2.2.1 Descripcin .................................................................................................. 45
www.moway-robot.com
7.3.5
Expansin .................................................................................................. 136
7.4 Variables ......................................................................................................... 141
7.5 Funciones / Subrutinas ................................................................................... 142
8. Aplicaciones ......................................................................................................... 144
8.1 Ventana de comunicaciones ........................................................................... 144
8.2 MowayCam .................................................................................................... 145
8.3 MowayRC ...................................................................................................... 147
8.3.1
Configuracin ............................................................................................ 148
8.3.2
Movimiento................................................................................................ 148
8.3.3
Luces .......................................................................................................... 149
8.3.4
Sonido ........................................................................................................ 149
8.3.5
Estado de sensores ..................................................................................... 149
8.3.6
Cmara ....................................................................................................... 149
8.4 MowayServer ................................................................................................. 149
9. Simulador ............................................................................................................. 152
9.1 Introduccin.................................................................................................... 152
9.2 Funcionamiento .............................................................................................. 153
9.3 Ejemplo de simulacin ................................................................................... 157
10.
mOway Scratch .............................................................................................. 159
10.1
Introduccin ............................................................................................... 159
10.2
Funcionamiento ......................................................................................... 159
10.3
Paso a paso ................................................................................................. 160
10.4
Comandos y Sensores ................................................................................ 164
10.5
Prcticas ..................................................................................................... 168
10.5.1 Movimiento por radiocontrol..................................................................... 168
10.5.2 LEDs por radiocontrol ............................................................................... 169
10.5.3 Sigue la lnea.............................................................................................. 170
Anexo I. mOway Scratch en euskera............................................................................ 172
11.1
Introduccin ............................................................................................... 172
11.2
Comandos y Sensores ................................................................................ 173
www.moway-robot.com
1. Introduccin
Comienza una nueva era, la de los minirobots. Cada vez son ms las aplicaciones
de la robtica mvil en nuestra vida cotidiana. Actualmente podemos ver robots que nos
ayudan en tareas sencillas como limpiar el suelo de casa, segar el csped o mantener
limpia la piscina. A medida que avanza la tecnologa estos pequeos artilugios, mezcla
de mecnica, electrnica y software, van asumiendo tareas ms complejas. Poco a poco
se van abriendo camino hacia nosotros sindonos cada vez ms tiles y descargndonos
de los trabajos menos gratificantes.
No es ningn disparate pensar que la revolucin que se dio en la informtica o en
las telecomunicaciones se va a repetir en la robtica durante la prxima dcada.
Actualmente disponemos de la tecnologa suficiente para fabricar estos dispositivos y la
sociedad est cada vez ms preparada para recibirlos en el mercado.
Hasta ahora los procesadores no se movan. Las cosas han cambiado. Uno de los
elementos fundamentales en el mundo de la robtica mvil es el software. La principal
diferencia a la hora de desarrollar programas para estos robots con respecto a hacerlo
para ejecutarlos en un ordenador personal estriba en la interaccin con el entorno. En las
aplicaciones para PC el entorno no cambia aleatoriamente, con la que la toma de
decisiones se simplifica y con ello los programas. Por otro lado, en la ejecucin de
comandos dentro de una aplicacin para un minirobot lo habitual es que se desconozca
de antemano cul va a ser el resultado, por lo que los algoritmos deben contemplar
situaciones con un abanico mucho ms amplio de posibilidades, algunas incluso
inesperadas.
Los mOways son herramientas diseadas especficamente para la docencia e
investigacin. Su objetivo es acercar el mundo de la robtica autnoma a los centros
docentes.
El objetivo principal de mOway es ser una herramienta til tanto para quienes se
introducen por primera vez en el mundo de la robtica como para quienes ya tienen
experiencia y desean realizar aplicaciones complejas de robtica colaborativa.
www.moway-robot.com
2. Qu es mOway?
mOway es un pequeo robot autnomo programable diseado principalmente
para realizar aplicaciones prcticas de robtica mvil. Con l se ha conseguido una
plataforma hardware perfecta tanto para quien quiere dar sus primeros pasos en el
mundo de los robots mviles como para quien ya ha trabajado con robots y desea
realizar aplicaciones ms complejas.
El robot mOway est dotado de una serie de sensores que le ayudarn a
desenvolverse en un entorno real. A su vez cuenta con un grupo motor que le permitir
desplazarse sobre el terreno. Todos estos perifricos estn conectados a un
microcontrolador que ser el encargado de gobernar el robot.
Este pequeo robot cuenta adems con opciones de ampliacin a travs de un bus
de expansin. En l se puede conectar, por ejemplo, un mdulo de comunicaciones
inalmbricas, una cmara de video, una tarjeta de prototipos o cualquier otro dispositivo
que se considere interesante para el desempeo de una tarea. En la pgina web del
producto encontrar prcticas para realizar en el bus de expansin.
El diseo exterior de mOway es muy compacto, diseado para que pueda moverse
con agilidad y elegancia sin opcin a quedarse enganchado en ninguna esquina. Tan
pequeo como un mvil se ha ganado la denominacin de robot de bolsillo.
mOway es una herramienta perfecta para quien quiere aprender y para quien
quiere ensear qu es la robtica. El usuario se ver sorprendido con la rapidez que
comienza a cosechar logros incluso si ste es su primer contacto con los robots mviles.
www.moway-robot.com
3. Robot mOway
En el interior de un mOway tenemos los siguientes elementos:
Procesador
Sistema motriz
Grupo de sensores e indicadores
Sistema de alimentacin
Engrane
Encoder
IR_
LINE_RX_R
RX
_R
MEDIDOR
BATERA
TEMP
MIC
IR_R
LED_
BRAKE
PIC16F687
X_ R
LINE_RX_R
FRON
T_LED
LINE_TX
LINE_RX_L
IR_R
IR_
PIC18f86j50
LED_
GREEN
LIGHT_
SEN
LED_
RED
X_ L
RX
LINE_TX
ACELE
M
O
T
O
R
FREE
PAD
E
X
P
A
N
S
I
Puente H
LED_
BRAKE
_L
SPEAKER
LINE_RX_R
LINE_TX
M
O
T
O
R
Encoder
Engrane
3.1
Procesador
Pin PIC
PORTA
RA0
RA1
RA2
RA3
RA5
PORTB
RB1
I/O
Sensor
I
I
I
I
I
Luz
Receptor central infrarrojo izquierdo
Receptor sensor lnea derecho
Receptor lateral infrarrojo izquierdo
Receptor sensor lnea izquierdo
www.moway-robot.com
RB2
RB3
RB5
RB6
PORTC
RC7
PORTD
RD1
RD4
RD5
RD6
RD7
PORTE
RE5
PORTF
RF5
RF6
PORTH
RH5
RH6
RH7
PORTJ
RJ6
RJ7
3.2
I
O
O
O
LED frontal
O
I
O
O
I
LED de freno
I
I
I
I
I
Sensor de temperatura
Medidor de batera
Micrfono
O
I/O
Transmisor infrarrojo
Pad libre
Sistema motriz
LINE_RX_R
LINE_TX
M
O
T
O
R
PIC16F687
PUENTE H
LINE_RX_R
LINE_TX
M
O
T
O
R
Encoder
Engrane
www.moway-robot.com
Vcc=2.8V
Moway created by:
Iigo Sobradillo
Daniel del Rio
Javi Galvez
Juan Gil
Estibaliz Otero
Julen Gutierrez
PIC16F687
PWM
Puente H
Seal encoder
Vcc=2.8V
Moway created by:
Iigo Sobradillo
Daniel del Rio
Javi Galvez
Juan Gil
Estibaliz Otero
Julen Gutierrez
Encoder
Bloque electrnica
Bloque mecnico
Sistema Motriz
Imagen 3. Control de motores
www.moway-robot.com
Pin PIC
I/O
Sensor
PORTE
RE0
I2C
RE1
I2C
RE7
I
3.3
IR_
RX
_R
MEDIDOR
BATERA
TEMP
MIC
IR_R
LINE_RX_R
FRON
T_LED
LINE_TX
LINE_RX_L
IR_R
IR_
PIC18f86j50
X_ R
LED_
GREEN
LIGHT_
SEN
LED_
RED
X_ L
RX
ACELE
LED_
BRAKE
FREE
PAD
E
X
P
A
N
S
I
LED_
BRAKE
_L
SPEAKER
www.moway-robot.com
www.moway-robot.com
Hay que tener en cuenta que debido a la tolerancia de los sensores CNY70, puede que en la
misma superficie los dos sensores den diferente valor para un mismo color.
www.moway-robot.com
Pin PIC
PORTA
RA2
RA5
PORTD
RD1
I/O
Sensor
I
I
Debido a tolerancias en el montaje de los componentes electrnicos, habr diferencias entre los
sensores en la deteccin de objetos a una misma distancia.
www.moway-robot.com
Pin PIC
I/O
PORTA
RA1
RA3
PORTF
RF5
RF6
PORTJ
RJ7
Sensor
I
I
I
I
Transmisor infrarrojo
Pin PIC
PORTA
RA0
I/O
Sensor
I
Luz
Es fundamental apagar el LED bicolor en el momento que se desee hacer una lectura de la
intensidad de luz.
www.moway-robot.com
Pin Expa
Pin1
Pin2
Pin3
Pin4
Pin5
Pin6
Pin7
Pin8
I/O
PIC
O
O
I/O /PMD3/AN12/P3C
/C2INC
I/O/PMA5/AN7/C2INB
I/O /SCK1/SCL1
I/O /SDO1/C2OUT
I/O /SDI1/SDA1
I/O/INT
Vcc 3.3v
GND
RH4
RF2
RC3
RC5
RC4
RB0
www.moway-robot.com
Pin PIC
I/O
PORTH
RH5
Sensor
I
Sensor de temperatura
3.3.6 Speaker
El altavoz CMT-1102 de CUI INC conectado al microcontrolador del robot, es
capaz de reproducir tonos desde 250 Hz hasta 5,6 kHz en intervalos pares de 100 ms.
Se trata de un altavoz piezoelctrico. En estos altavoces el motor es un material
piezoelctrico, que al recibir una diferencia de tensin entre sus superficies metalizadas
experimenta alargamientos y compresiones.
Tabla 8. Conexin PIC-speaker
Pin PIC
I/O
PORTB
RB3
Sensor
O
Altavoz
3.3.7 Micrfono
El micrfono CMC-5042PF-AC de CUI INC permite al robot detectar sonidos
desde 100 Hz hasta 20 KHZ.
La salida del micrfono est conectado a una entrada analgica del
microcontrolador de forma que no slo es capaz de detectar si hay sonido o no (modo
digital), sino que con una simple lectura del ADC, es capaz de detectar la intensidad con
la que est llegando ese sonido (modo analgico).
Tabla 9. Conexin PIC-Micrfono
Pin PIC
PORTH
RH7
I/O
Sensor
I
Micrfono
La temperatura indicada por este sensor se corresponde al interior del robot que puede diferir en
unos 5C con la temperatura exterior.
www.moway-robot.com
3.3.8 Acelermetro
Un acelermetro es un dispositivo que mide la aceleracin y las fuerzas inducidas
por la gravedad: el movimiento y el giro. Midiendo las coordenadas X, Y, Z, el
acelermetro MMA7455L de Freescale Semiconductor permite conocer si mOway est
en posicin correcta, invertido o ladeado. Adems, permite conocer si el robot se ha
golpeado o cado.
Pin Acce
I/O
Pin7
Pin8
Pin9
Pin12
Pin13
Pin14
PIC
I
I
I
I
O
O
RD7
RB1
RB2
RD4
RD5
RD6
Pin PIC
I/O
PORTH
RH6
3.3.10
Sensor
I
Medidor de batera
LED frontal
El led frontal es un LED blanco que est situado en la parte delantera del robot. El
LED LW A6SG de OSRAM est conectado a una salida digital del microcontrolador.
Pin PIC
PORTC
RC7
I/O
Sensor
O
LED frontal
www.moway-robot.com
3.3.11
Este indicador doble comparte la misma apertura en la parte superior del robot que
el sensor de luz. Estn conectados a dos salidas digitales del microcontrolador. Cabe
destacar que al compartir la misma apertura que el sensor de luz5.
Tabla 13. Conexin PIC-Led superior
Pin PIC
I/O
PORTA
RA4
PORTB
RB6
Sensor
O
Imagen 15. Robot con LED frontal blanco y superior rojo encendidos
3.3.12
LED de freno
El LED de freno es un indicador que est conectado a una salida digital del
microcontrolador y est situado en la parte trasera del robot tras el filtro rojo.
Pin PIC
PORTE
RE5
I/O
Sensor
O
LED de freno
Es fundamental apagar el LED bicolor en el momento que se desee hacer una lectura de la
intensidad de luz.
www.moway-robot.com
Imagen 16. Posicin LED de freno en rojo. LED verde de encendido no controlable
3.3.13
Pad libre
Pin PIC
PORTJ
RJ7
3.4
I/O
Sensor
I/O
Pad libre
Sistema de alimentacin
En el proceso de carga puede que el LED rojo se apague cuando la batera est completamente
cargada y al de un tiempo se encienda otra vez. Esto es debido a que el robot sigue encendido y la batera
pierde carga al estar el cargador apagado.
9
Disponible segn pack
www.moway-robot.com
Bajo consumo.
Frecuencia de trabajo de 2.4GHz,
Potencia de emisin entre -18 y 0 dBm,
Velocidad de transmisin entre 1 y 2 Mbps,
128 canales de transmisin seleccionables por el bus SPI,
Parmetro
Vdd
Vss
Tensin de entrada datos
Min
-0.3
-0.3
www.moway-robot.com
Max
3.6
0
5.25
Unidad
V
V
V
Vss-Vdd Vss-Vdd
60
-40
+85
-40
+125
V
mW
C
C
Parmetro
Tensin mnima de alimentacin
Tensin mxima de alimentacin
Potencia mxima de salida
Velocidad mxima de transmisin
Corriente en modo transmisin @ 0dbm potencia de salida
Corriente en modo recepcin @ 2000kbps
Corriente en modo Power Down
Frecuencia mxima del bus SPI
Rango de temperatura
Valor
1.9
3.6
0
2000
11.3
12.3
900
8
-40 a +85
Pines
Vcc
Vss
CE
CSN
SCK
SDI
SDO
IRQ
Descripcin
Tensin de alimentacin del mdulo
GND
Chip Enable
Chip Select del SPI (Negado)
Reloj del bus SPI
Entrada de datos al mdulo RF del bus SPI (MOSI)
Salida de datos del mdulo RF del bus SPI (MISO)
Salida interrupcin (negado)
www.moway-robot.com
Unidad
V
V
dBm
Kbps
mA
mA
nA
Mhz
C
Parmetro
Tensin mnima de alimentacin
Tensin mxima de alimentacin
Corriente en modo Power Down
Frecuencia mxima del bus SPI
Rango de temperatura
Tecnologa
Valor
1.9
3.6
1
10
-40 a +85
CMOS
Unidad
V
V
uA
Mhz
C
-
Max
5.5
0
125
700
+85
+125
Unidad
V
V
mA
mW
C
C
Parmetro
Vdd
Vss
Intensidad
Potencia disipada
Temperatura de operacin
Temperatura de almacenaje
Min
-0.3
-40
-40
Pines
Vcc
Vss
CE
CS
SCK
SDI
SDO
IRQ
Descripcin
Tensin de alimentacin del mdulo
GND
Chip Enable
Chip Select del SPI
Reloj del bus SPI
Entrada de datos SPI (MOSI)
Salida de datos SPI (MISO)
Interrupcin SPI
www.moway-robot.com
www.moway-robot.com
Decodificador multiestndar
o PAL
o NTSC
o SECAM
o Filtro anti-aliasing
www.moway-robot.com
www.moway-robot.com
Patilla
1
2
3
4
5
6
7
8
Nombre
+VCC
GND
RESET
CS
SCK
SDI
SDO
INT
www.moway-robot.com
Funcin
Alimentacin
Masa
Reset
SPI Chip Select
SPI Clock
SPI Data Input
SPI Data Output
SPI Interrupcin
WEP
WPA-PSK
WPA-2-PSK.
Parmetros
Temperatura ambiente
Vdd
www.moway-robot.com
Unidades
C
Voltios
Parmetros
Frecuencia
Potencia de salida media
Variacin media de la potencia
Mximo
2484
-4
-4
www.moway-robot.com
Unidades
mA
dBm
dBm
Unidades
mA
dB
dB
4. Primeros pasos
4.1 Instalacin pack
Bien en el CD de instalacin del producto o en la pgina web de mOway:
(http://www.moway-robot.com), se podr encontrar el pack de instalacin que contiene
el software para mOway, las libreras para manejar el robot, los programas de prueba y
la documentacin.
Basta con seguir los pasos del instalador para tener todos los recursos de mOway:
El software MowayWorld.
o Es el software donde se puede controlar todos los aspectos del robot:
programacin, control de carga, control por radio control, control de
RFUSB12 y grabacin proyectos escritos en C o en ensamblador.
12
13
14
Conectar robot mediante cable USB. No hace falta instalar ningn driver.
Abrir MowayWorld.
Apertura o creacin de proyecto en MowayWorld o importar un archivo
.hex de alguno de los proyectos en C o ensamblador.
Clicar en el botn Programar mOway.
Si el proyecto es correcto el robot ser programado.
Desconectar y encender el robot.
Comenzar la instalacin.
www.moway-robot.com
15
Comenzar la instalacin.
5. Programacin ensamblador
El MPLAB IDE de Microchip es el entorno de programacin ms utilizado para
los microcontroladores PIC (ya que Microchip tambin es el fabricante de dichos
microcontroladores). En principio el lenguaje que utiliza es el ensamblador, aunque se
le pueden aadir otros lenguajes. Gracias a l se puede compilar el cdigo fuente y
generar los ficheros hexadecimales (.HEX). Este compilador se puede descargar
gratuitamente desde la pgina web de Microchip.
En el pack de mOway encontrar libreras para el manejo de los sensores, motores
y mdulo RF escritas para ensamblador MPLAB.
En resumen:
Muy interesante para aprender a programar en ensamblador (lenguaje de bajo
nivel).
Recomendable si el programa a realizar va a ser largo (en cuanto a cdigo se
refiere).
Imprescindible si el tiempo de respuesta es crtico.
Creacin de un proyecto
Para crear el primer proyecto utilizaremos el Project Wizard de MPLAB IDE que
permite crear proyectos rpidamente.
www.moway-robot.com
www.moway-robot.com
www.moway-robot.com
5. Siguiendo estos pasos el proyecto se crear, pero faltar todava la creacin del
fichero .ASM donde se inserta el cdigo fuente.
www.moway-robot.com
www.moway-robot.com
www.moway-robot.com
www.moway-robot.com
15. Cuando encuentra obstculo se manda un comando para que realice una rotacin
de 180 y enciende el LED frontal. El robot esperar hasta que el comando
termine y continuar en un movimiento recto.
www.moway-robot.com
5.2 Libreras
5.2.2 Librera sensores mOway ensamblador
Existen dos libreras en ensamblador que pueden ser incluidas en cualquier
proyecto de mOway que permiten al usuario controlar los sensores con gran facilidad.
Ambas son idnticas salvo el hecho de que una de ellas tiene la posibilidad de reubicar
www.moway-robot.com
tanto el cdigo como las variables (utilizando proyectos del MPLAB IDE).
Es importante saber que cada llamada a cualquier funcin de la librera utiliza un
nivel adicional de la pila de llamadas. Esto es, antes de llamar a una de estas funciones
debe de haber al menos tres niveles libres de la pila de llamadas para que no haya
errores.
5.2.2.1 Descripcin
La librera contiene una serie de funciones encargadas de leer los datos que
proporcionan los sensores del robot. Ellas son las encargadas de configurar los puertos
de entrada y salida adecuadamente, el ADC del microcontrolador y los indicadores
luminosos.
5.2.2.2 Variables
SEN_STATUS
Esta variable de slo lectura informa de la validez de los datos obtenidos por la
lectura de los sensores.
Bit7
Sin uso
-
Bit6
Sin uso
-
Bit5
Sin uso
-
Bit4
Sin uso
-
Bit3
Sin uso
-
Bit2
Sin uso
-
Bit1
Bit0
DWRONG SENOK
Bit 7-2:
Sin uso
Bit 1:
Bit 0:
SEN_ACCE_TAP
Esta variable de lectura que indica si la funcin SEN_CHECK_ACCE_TAP ha
detectado toque o doble toque.
Bit7
Sin uso
-
Bit6
Sin uso
-
Bit5
Sin uso
-
Bit4
Sin uso
-
Bit3
Sin uso
-
Bit2
Sin uso
-
www.moway-robot.com
Bit1
Bit0
TAP_TAP TAP
Bit 7-2:
Sin uso
Bit 1:
Bit 0:
Esta variable de escritura que indica que sensor deben de leer las funciones que
controlan el sensor de obstculos. En la siguiente tabla se muestra los valores que puede
coger esta variable.
Tabla 27. Valores admitidos para SEN_CHECK_OBS
Define
OBS_CENTER_L
OBS_SIDE_L
OBS_CENTER_R
OBS_SIDE_R
Valor
0
1
2
3
SEN_CHECK_ACCE
Esta variable de escritura que indica que eje debe de leer la funciones
SEN_ACCE_XYZ_READ. En la siguiente tabla se muestra los valores que puede coger
esta variable.
Tabla 28. Valores admitidos para SEN_CHECK_ACCE
Define
ACCE_CHECK_X
ACCE_CHECK_Y
ACCE_CHECK_Z
Valor
0
1
2
SEN_CHECK_LINE
Esta variable de escritura que indica que sensor deben de leer las funciones que
controlan el sensor de lnea. En la siguiente tabla se muestra los valores que puede coger
esta variable.
Tabla 29. Valores admitidos para SEN_CHECK_LINE
Define
LINE_L
LINE_R
Valor
0
1
www.moway-robot.com
SEN_SPEAKER_ON_OFF
Esta variable de escritura que indica que si el usuario quiere encender, apagar o
mantener durante un tiempo el speaker.
Tabla 30. Valores admitidos para SEN_SPEAKER_ON_OFF
Define
SPEAKER_OFF
SPEAKER_ON
SPEAKER_TIME
Valor
0
1
2
SEN_LIGHT_P
En esta variable de lectura se guarda el porcentaje de la luz incidente en el
sensor de luz. Se actualiza cada vez que se llama a la funcin SEN_LIGHT.
SEN_BATTERY_P
En esta variable se guarda el porcentaje del nivel de batera que queda en el
robot. Se actualiza cada vez que se llama a la funcin SEN_BATTERY.
SEN_TEMPERATURE_C
En esta variable se guarda el valor en C de la temperatura que se ha captado. Se
actualiza cada vez que se llama a la funcin SEN_TEMPERATURE.
SEN_MIC
En esta variable se guarda el valor captado por el micrfono, siendo este dato
digital o analgico dependiendo de la funcin que se encarga de actualizarla:
SEN_MIC_DIG y SEN_MIC_ANALOG.
SEN_SPEAKER_FREQ
En esta variable se guarda el valor de la frecuencia, comprendida entre 250 Hz y
65KHz, con la que queremos crear el tono.
SEN_SPEAKER_TIME
En esta variable se guarda el tiempo que queremos que el altavoz emita el tono.
Este valor slo tiene validez si la variable SEN_SPEAKER_ON_OFF tiene valor de
SPEAKER_TIME (valor decimal: 2).
www.moway-robot.com
SEN_OBS
En esta variable se guarda el valor del sensor indicado por SEN_CHECK_OBS,
siendo este dato digital o analgico dependiendo de la funcin que se encarga de
actualizarla: SEN_OBS_DIG y SEN_OBS_ANALOG.
SEN_ACCE
En esta variable se guarda la posicin del eje indicado por SEN_CHECK_ACCE
del robot. Se actualiza cada vez que se llama a la funcin SEN_ACCE_XYZ_READ.
SEN_ACCE_TAP
En esta variable se guarda si el robot se ha chocado o le han dado uno o dos
toques. Se actualiza cada vez que se llama a la funcin SEN_ACCE_CHECK_TAP.
SEN_LINE
En esta variable se guarda el valor del sensor de lnea indicado en
SEN_CHECK_LINE, siendo este dato digital o analgico dependiendo de la funcin
que se encarga de actualizarla: SEN_LINE_DIG y SEN_LINE_ANALOG.
5.2.2.3 Funciones
En las libreras lib_sen_moway y lib_re_sen_moway existen una serie de
funciones que estn orientadas al control de los sensores y de los diodos LED de
mOway.
A continuacin se dar una breve descripcin de cada una de ellas:
Tabla 31. Resumen de funciones en ensamblador
Nombre
Variable entrada
SEN_CONFIG
Variable salida
-
SEN_LIGHT
SEN_LIGHT_P
SEN_BATTERY
SEN_BATTERY_P
SEN_TEMPERATURE
SEN_TEMPERATURE_C
SEN_MIC_ANALOG
SEN_MIC
SEN_MIC_DIG
SEN_MIC
SEN_SPEAKER
SEN_SPEAKER_FREQ
SEN_SPEAKER_TIME
SEN_SPEAKER_ON_OFF
SEN_OBS_DIG
SEN_CHECK_OBS
SEN_OBS
SEN_STATUS
www.moway-robot.com
Descripcin
Configura para utilizar los
sensores.
Lee el valor del sensor de
luz .
Devuelve el nivel de
batera.
Detecta la temperatura en
C.
Detecta la intensidad con
la que le llega el sonido
Detecta si le llega sonido
o no.
Emite un tono de una
frecuencia comprendida
entre 250 Hz y 65 KHz,
con intervalos de 100 ms
Detecta la presencia de
obstculos.
SEN_OBS_ANALOG
SEN_CHECK_OBS
SEN_OBS
SEN_STATUS
SEN_ACCE_XYZ_READ
SEN_CHECK_ACCE
SEN_ACCE
SEN_STATUS
LED_BRAKE_ON
SEN_ACCE_TAP
SEN_STATUS
SEN_LINE
SEN_STATUS
SEN_LINE
SEN_STATUS
-
LED_FRONT_ON
LED_TOP_RED_ON
LED_TOP_GREEN_ON
LED_BRAKE _OFF
LED_FRONT_OFF
LED_TOP_RED_OFF
LED_TOP_GREEN_OFF
LED_BRAKE _ON_OFF
LED_FRONT_ON_OFF
LED_TOP_RED_ON_OFF
LED_TOP_GREEN_ON_OFF
SEN_ACCE_CHECK_TAP
SEN_LINE_DIG
SEN_CHECK_LINE
SEN_LINE_ANALOG
SEN_CHECK_LINE
Detecta la presencia de
obstculos, y la distancia
a los mismos.
Indica la aceleracin
sufrida en los ejes x,y,z
del robot.
Comprueba si el robot se
ha golpeado.
Detecta zona oscura
(lnea negra).
Detecta tonalidades en la
superficie.
Encendido del diodo LED
de freno.
Encendido del diodo LED
frontal.
Encendido del diodo LED
superior rojo.
Encendido del diodo LED
superior verde.
Apagado del diodo LED
de freno.
Apagado del diodo LED
frontal.
Apagado del diodo LED
superior rojo.
Apagado del diodo LED
superior verde.
Parpadeo del diodo LED
de freno.
Parpadeo del diodo LED
frontal.
Parpadeo del diodo LED
superior rojo.
Parpadeo del diodo LED
superior verde.
SEN_CONFIG
Esta funcin configura las entradas y salidas para poder manejar los sensores e
inicializa las variables.
Tabla 32. Conexiones PIC-sensores
Pin PIC
PORTA
RA0
RA1
RA2
RA3
RA5
PORTB
RB1
RB2
RB3
RB5
RB6
PORTC
RC7
PORTD
I/O
Sensor
I
I
I
I
I
Luz
Receptor central infrarrojo izquierdo
Receptor sensor lnea derecho
Receptor lateral infrarrojo izquierdo
Receptor sensor lnea izquierdo
I
I
O
O
O
LED frontal
www.moway-robot.com
RD1
RD4
RD5
RD6
RD7
PORTE
RE5
PORTF
RF5
RF6
PORTH
RH5
RH6
RH7
PORTJ
RJ6
RJ7
O
I
O
O
I
LED de freno
I
I
I
I
I
Sensor de temperatura
Medidor de batera
Micrfono
O
I/O
Transmisor infrarrojo
Pad libre
SEN_LIGHT
Variables de salida
SEN_LIGHT_P
Activar el ADC.
Esperar el tiempo de adquisicin de datos (100us).
Leer el valor analgico.
Con el voltaje analgico medido se calcula el porcentaje de la luz incidente.
Se copia el dato en la variable SEN_LIGHT_P.
SEN_BATTERY
Variables de salida
SEN_BATTERY_P
Activar el ADC.
Esperar el tiempo de adquisicin de datos (100us).
Leer el valor analgico.
Con el voltaje analgico medido se calcula el porcentaje del nivel de batera.
16
El porcentaje puede diferir del dato proporcionado por MowayWorld puesto que hay diferencias
en la lectura cuando la batera se est cargando o se est utilizando.
www.moway-robot.com
SEN_TEMPERATURE
Variables de salida
SEN_TEMPERATURE_C
Temperatura en C
Activar el ADC.
Esperar el tiempo de adquisicin de datos (100us).
Leer el valor analgico.
Con el voltaje analgico medido se calcula la temperatura en C.
Se copia el dato en la variable SEN_TEMPERATURE_C.
SEN_MIC_ANALOG
Variables de salida
SEN_MIC
Activar el ADC.
Esperar el tiempo de adquisicin de datos (100us).
Leer el valor analgico.
Con el voltaje analgico medido se calcula la intensidad de la seal de audio.
Se copia el dato en la variable SEN_MIC.
SEN_MIC_DIG
Variables de salida
SEN_MIC
La funcin SEN_MIC indica si hay sonido o no. Para ello se deben seguir los
siguientes pasos:
La temperatura indicada por este sensor difiere de la de fuera en unos 5C porque recoge la
temperatura interna del robot.
www.moway-robot.com
SEN_SPEAKER
Variables de entrada
SEN_SPEAKER_FREQ
SEN_SPEAKER_TIME
SEN_SPEAKER_ON_OFF
Define
SPEAKER_OFF
SPEAKER_ON
SPEAKER_TIME
Valor
0
1
2
0
10
20
30
40
50
60
70
80
90
100
110
120
130
140
www.moway-robot.com
150
160
170
180
190
200
210
220
230
240
250
255
413,9072848
388,1987578
365,4970760
345,3038674
327,2251309
310,9452736
296,2085308
282,8054299
270,5627706
259,3360996
249,0039841
244,1406250
SEN_OBS_DIG
Variables de entrada
SEN_CHECK_OBS
Variables de salida
SEN_OBS
Salida
SEN_STATUS: SENOK
DWRONG
Esta funcin indica si un obstculo en la parte del sensor que se le indique a travs
de la variable SEN_CHECK_OBS. Para ello se han de seguir los siguientes pasos:
Se comprueba que sensor hay que mirar. Si no se corresponde con ningn valor
vlido de la variable se activa el flag DWRONG y la funcin termina.
Antes de mandar el pulso de luz infrarroja asegurarse de que no exista ninguna
fuente de ruido que interfiera.
Se manda pulso de luz infrarroja para la deteccin del obstculo. Si hay algn
obstculo la luz rebotar y esta seal ser captada por el receptor infrarrojo.
Se comprueba si se presenta alguna seal en los cuatro receptores IR en modo
digital.
Se copia el valor del receptor digital en la variable de salida.
Se desactiva el LED infrarrojo.
Se comprueba que no haya ninguna seal interferente.
Si no se presenta ninguna seal interferente y el proceso se ejecuta sin
problemas el flag SENOK es activado.
www.moway-robot.com
Define
OBS_CENTER_L
OBS_SIDE_L
OBS_CENTER_R
OBS_SIDE_R
Valor
0
1
2
3
SEN_OBS_ANALOG
Variables de entrada
SEN_CHECK_OBS
Variables de salida
SEN_OBS
Salida
SEN_STATUS: SENOK
DWRONG
Esta funcin indica si un obstculo en la parte del sensor que se le indique a travs
de la variable SEN_CHECK_OBS. Para ello se han de seguir los siguientes pasos:
Se comprueba que sensor hay que mirar. Si no se corresponde con ningn valor
vlido de la variable se activa el flag DWRONG y la funcin termina.
Antes de mandar el pulso de luz infrarroja asegurarse de que no exista ninguna
fuente de ruido que interfiera.
Se manda pulso de luz infrarroja para la deteccin del obstculo.
Se activa el ADC.
Se comprueba si se presenta alguna seal en los cuatro receptores IR.
Se copia el valor del receptor analgico en las variables de salida. Cuanto mayor
sea este valor ms cerca se encontrar el obstculo.
Se desactiva LED infrarrojo.
Se comprueba que no haya ninguna seal interferente.
Si no se presenta seal interferente y el proceso se ejecuta sin problemas el flag
SENOK es activado.
Tabla 36. Valores de la variable de entrada SEN_CHECK_OBS
Define
OBS_CENTER_L
OBS_SIDE_L
OBS_CENTER_R
OBS_SIDE_R
Valor
0
1
2
3
www.moway-robot.com
SEN_ACCE_XYZ_READ
Variables de entrada
SEN_CHECK_ACCE
Variables de salida
SEN_ACCE
Salida
SEN_STATUS: SENOK
DWRONG
Define
ACCE_CHECK_X
ACCE_CHECK_Y
ACCE_CHECK_Z
Valor
0
1
2
SEN_ACCE_CHECK_TAP
Variables de salida
SEN_ACCE_TAP
Salida
SEN_STATUS: SENOK
DWRONG
www.moway-robot.com
Bit7
Sin uso
-
Bit5
Sin uso
-
Bit4
Sin uso
-
Bit3
Sin uso
-
Bit2
Sin uso
-
Bit1
Bit0
TAP_TAP TAP
SEN_LINE_DIG
Variables de entrada
SEN_CHECK_LINE
Variables de salida
SEN_LINE
Salida
SEN_STATUS: SENOK
DWRONG
Se comprueba que sensor hay que mirar. Si no se corresponde con ningn valor
vlido de la variable se activa el flag DWRONG y la funcin termina.
Se manda pulso de luz infrarroja para la deteccin de la lnea. Si se detecta, la
luz rebotar y esta seal ser captada por el receptor infrarrojo.
Esperar el tiempo de adquisicin de datos (900us).
Se lee el sensor requerido.
Se mueve el dato a la variable SEN_LINE. Si la superficie es oscura (la luz no
se refleja) obtendremos un 1 en la variable.
Define
LINE_L
LINE_R
www.moway-robot.com
Valor
0
1
SEN_LINE_ANALOG
Variables de entrada
SEN_CHECK_LINE
Variables de salida
SEN_LINE
Salida
SEN_STATUS: SENOK
DWRONG
Se comprueba que sensor hay que mirar. Si no se corresponde con ningn valor
vlido de la variable se activa el flag DWRONG y la funcin termina.
Se manda pulso de luz infrarroja para la deteccin de la lnea. Si se detecta, la
luz rebotar y esta seal ser captada por el receptor infrarrojo.
Esperar el tiempo de adquisicin de datos (900us).
Se activa el ADC.
Se lee el sensor requerido.
Mover ese dato a la variable SEN_LINE. Cuanto ms alto sea este valor ms
oscura ser la superficie.
Define
LINE_L
LINE_R
Valor
0
1
LED_BRAKE_ON
Enciende el diodo LED de freno.
LED_FRONT_ON
Enciende el diodo LED frontal.
LED_TOP_RED_ON
Enciende el diodo LED superior rojo.
LED_TOP_GREEN_ON
Enciende el diodo LED superior verde.
18
El valor del sensor analgico variar de un sensor a otro debido a la tolerancia del componente
electrnico.
www.moway-robot.com
LED_BRAKE _OFF
Apaga el diodo LED de freno.
LED_FRONT_OFF
Apaga el diodo LED frontal.
LED_TOP_RED_OFF
Apaga el diodo LED superior rojo.
LED_TOP_GREEN_OFF
Apaga el diodo LED superior verde.
LED_BRAKE_ON_OFF
Parpadeo del diodo LED de ruptura.
LED_FRONT_ON_OFF
Parpadeo del diodo LED frontal.
LED_TOP_RED_ON_OFF
Parpadeo del diodo LED superior rojo.
LED_TOP_GREEN_ON_OFF
Parpadeo del diodo LED superior verde.
www.moway-robot.com
5.2.3.1 Descripcin
La librera contiene una serie de funciones encargadas de mandar comandos por
I2C al Sistema Motriz, que ser el encargado de controlar los motores dejando libre de
carga de trabajo al microcontrolador principal, pudiendo ste realizar otras tareas.
La comunicacin con el mdulo motor se realiza mediante el protocolo I2C. El
formato de las tramas I2C del Sistema Motriz se puede observar en las siguientes
figuras. Cada una de estas tramas tiene una duracin de 350us.
S
T
A
R
T
_
W
MOT_DIR
MOT_
COMAND
T
Y
P
E
R
L
MOT_VEL
S
E
N
T_DIST_ANG
S
T
O
P
S
T
A
R
T
_
W
MOT_DIR
MOT_
COMAND
T
Y
P
E
R
L
MOT_VEL
S
E
N
RAD/
CENWHEEL
T_DIST_ANG
S
T
A
R
T
MOT_DIR
_
W
S
T
O
P
COM_STOP/
RST_COM
S
T
A
R
T
MOT_DIR
MOT_STATUS_DATA_
0
MOT_STATUS_DATA_
1
S
T
O
P
5.2.3.2 Variables
MOT_STATUS
Registro que indica el estado del comando.
Bit7
Sin uso
-
Bit6
Sin uso
-
Bit5
Sin uso
-
Bit4
Sin uso
-
Bit3
Sin uso
-
Bit2
Sin uso
-
www.moway-robot.com
Bit1
Bit0
DMWRONG COMOK
S
T
O
P
Bit 7-2:
Sin uso
Bit 1:
Bit 0:
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Sin uso Sin uso Sin uso Sin uso Sin uso COMTYPE RL
Bit 7-3:
Sin uso
Bit 2:
Bit 1:
Bit 0:
Bit0
FWDBACK
MOT_VEL
Velocidad deseada en el comando.
MOT_T_DIST_ANG
Segn el valor de COMTYPE y del comando, esta variable ser el tiempo,
distancia o el ngulo.
MOT_CENWHEEL
Rotacin sobre el centro o sobre una de las ruedas del robot.
MOT_RAD
Radio para el comando MOT_CUR.
www.moway-robot.com
MOT_RST_COM
Tipo de reset que se desea.
MOT_STATUS_COM
Tipo de dato que se quiere leer del motor.
MOT_STATUS_DATA_0-1
En estas dos variables se almacena el valor del dato requerido por la funcin
MOT_FDBCK.
5.2.3.3 Funciones
En la librera lib_mot_moway y lib_re_mot_moway existen una serie de
funciones que estn orientadas al control del sistema de motores de mOway.
A continuacin se dar una breve descripcin de cada una de ellas.
Tabla 40. Resumen de funciones en ensamblador de lib_mot_moway
Nombre
Entrada
Retorno
MOT_CONFIG
MOT_STR
MOT_CHA_VEL
MOT_ROT
MOT_CUR
MOT_CHECK_END
MOT_VEL
MOT_T_DIST
MOT_CON
FWDBACK
COMTYPE
MOT_VEL
MOT_T_DIT
MOT_STATUS
COMOK
DWRONG
Descripcin
Configuracin
para
la
comunicacin
con
los
motores
Comando para movimiento
en lnea recta
MOT_STATUS
COMOK
DWRONG
MOT_CON
FWDBACK
COMTYPE
RL
MOT_VEL
MOT_CENWHEEL
MOT_T_ANG
MOT_STATUS
COMOK
DWRONG
MOT_CON
FWDBACK
COMTYPE
RL
MOT_VEL
MOT_RAD
MOT_T_DIST
MOT_STATUS
COMOK
DWRONG
MOT_CON
FWDBACK
COMTYPE
RL
-
www.moway-robot.com
MOT_STOP
MOT_RST
MOT_RST_COM
MOT_FDBCK
STATUS_COM
MOT_STATUS
COMOK
DWRONG
MOT_STATUS
COMOK
DWRONG
MOT_STATUS_
DATA_0
MOT_STATUS_
DATA_1
MOT_STATUS
COMOK
DWRONG
MOT_CONFIG
Esta funcin configura las entradas y salidas para que el microcontrolador pueda
comunicarse con el Sistema Motriz.
Tabla 41. Conexiones PIC-motores
Pin PIC
PORTE
RE7
RE0
RE1
I/O
Sensor
I Indica cundo el motor termina el comando
O SCL del protocolo I2C
O SDA del protocolo I2C
www.moway-robot.com
MOT_STR
Entrada
MOT_VEL
MOT_CON, FWDBACK
MOT_CON, COMTYPE
MOT_T_DIST
Velocidad deseada
Sentido de la marcha
Tipo de comando
El valor de Tiempo
Distancia
0
1-FWD
1-TIME
0
0
100
0-BACK
0-DIST
255
255
Variables de salida
FLAGS MOT_STATUS: COMOK y DWRONG
MOT_CHA_VEL
Entrada
MOT_VEL
MOT_CON, FWDBACK
MOT_CON, RL
MOT_CON, COMTYPE
MOT_T_DIST
Velocidad deseada
Sentido de la marcha
Izquierda o derecha
Tipo de comando
El valor de Tiempo
Distancia
Variables de salida
FLAGS MOT_STATUS: COMOK y DWRONG
www.moway-robot.com
0
1-FWD
1-RIGHT
1-TIME
0
0
100
0-BACK
0-LEFT
0-DIST
255
255
Ejemplo:
;Cambiar velocidad (80% adelante) al motor derecho durante 10 segundos
;(100ms x 100)
movlw
.80
movwf
MOT_VEL
movlw
.100
movwf
MOT_T_DIST_ANG
bsf
MOT_CON,FWDBACK
bsf
MOT_CON,COMTYPE
bsf
MOT_CON,RL
call
MOT_CHA_VEL
;Cambiar velocidad (20% atrs) al motor izquierdo y hacer una distancia de 100
;mm (1mm x 100)
movlw
.20
movwf
MOT_VEL
movlw
.100
movwf
MOT_T_DIST_ANG
bcf
MOT_CON,FWDBACK
bcf
MOT_CON,COMTYPE
bcf
MOT_CON,RL
call
MOT_CHA_VEL
MOT_ROT
Entrada
MOT_VEL
MOT_CON, FWDBACK
MOT_CENWHEEL
MOT_CON, RL
MOT_CON, COMTYPE
MOT_T_ANG
Velocidad deseada
Sentido de la marcha
Sobre centro o rueda
Derecha o izquierda
Tipo de comando
El valor de Tiempo
ngulo
0
1-FWD
0x01-CE
1-RIGHT
1-TIME
0
0
100
0-BACK
0x00-WH
0-LEFT
0-ANG
255
100
Variables de salida
FLAGS MOT_STATUS: COMOK y DWRONG
ngulo 3.33
Ejemplo:
;Rotacin respecto al centro a la derecha al 80% de velocidad durante 10 segundos
;(100ms x 100)
movlw
.80
movwf
MOT_VEL
movlw
.100
movwf
MOT_T_DIST_ANG
movlw
0x01
movwf
MOT_CENWHEEL
bsf
MOT_CON,FWDBACK
bsf
MOT_CON,COMTYPE
bsf
MOT_CON,RL
call
MOT_ROT
;Rotacin respecto la rueda izquierda adelante al 20% de velocidad 180
movlw
.20
movwf
MOT_VEL
movlw
.50
movwf
MOT_T_DIST_ANG
movlw
0x00
movwf
MOT_CENWHEEL
bsf
MOT_CON,FWDBACK
bcf
MOT_CON,COMTYPE
bcf
MOT_CON,RL
call
MOT_ROT
MOT_CUR
Entrada
MOT_VEL
MOT_CON, FWDBACK
MOT_RAD
MOT_CON, RL
MOT_CON, COMTYPE
MOT_T_DIST
Velocidad deseada
Sentido de la marcha
Radio
Derecha o izquierda
Tipo de comando
El valor de Tiempo
Distancia
www.moway-robot.com
0
1-FWD
0
1-RIGHT
1-TIME
0
0
100
0-BACK
100
0-LEFT
0-DIST
255
255
Variables de salida
FLAGS MOT_STATUS: COMOK y DWRONG
Comando para dar una curva. Es necesario especificar velocidad, sentido, radio,
direccin, tipo de comando y el tiempo o la distancia a recorrer. El radio es la velocidad
que se restar o se sumar a la velocidad global del robot. Esto es, si la velocidad
especificada es 50 y el radio 10, uno de los motores tendr 60 de velocidad y el otro 40.
Por lo tanto el radio tiene que cumplir la siguiente restriccin:
Ecuacin 2. Condicin 1 MOT_RAD
bcf
bcf
bcf
call
MOT_CON,FWDBACK
MOT_CON,COMTYPE
MOT_CON,RL
MOT_CUR
MOT_CHECK_END
Comando para esperar a la finalizacin del comando. Una vez mandado el
comando el programa contina con su ejecucin. Si al usuario le interesa esperar hasta
que el robot termine un comando se puede llamar a esta funcin donde no finalizar
hasta que el comando termine.
Ejemplo:
;Esperar fin de comando
call
MOT_CHECK_END
MOT_STOP
Variables de salida
FLAGS MOT_STATUS: COMOK
MOT_RST
Entrada
MOT_RST_COM
RST_T
RST_DIST
RST_KM
Variables de salida
FLAGS MOT_STATUS: COMOK
www.moway-robot.com
MOT_FDBCK
Entrada
STATUS_COM
STATUS_T
STATUS_A
STATUS_V_R
STATUS_V_L
STATUS_D_R
STATUS_D_L
STATUS_KM
Variables de salida
MOT_STATUS_DATA_0
Parmetro
STATUS_T
STATUS_A
STATUS_V_R
STATUS_V_L
STATUS_D_R
STATUS_D_L
STATUS_KM
Resolucin
100ms/bit
3.6/bit
1%/bit
1%/bit
1mm/bit
1mm/bit
1mm/bit
www.moway-robot.com
Ejemplo:
;Peticin de tiempo transcurrido desde el ltimo comando
movlw
STATUS_T
movwf
MOT_STATUS_COM
call
MOT_FDBCK
;Ej. Salida:
;MOT_STATUS_DATA_0=0x7F => Han transcurrido 12.7 segundos desde el
;ltimo comando
;MOT_STATUS_DATA_1=0xFF; => Dato no vlido
;Peticin de distancia recorrida por el motor derecho desde el ltimo comando
movlw
STATUS_KM
movwf
MOT_STATUS_COM
byte 1
byte 0
call
MOT_FDBCK
0x01
0x08
;Ej. Salida:
0000 0001 0000 0100
;MOT_STATUS_DATA_0=0x08
264
;MOT_STATUS_DATA_1=0x01;
Distancia:
264*1mm
264mm
5.2.4.2 Variables
RF_STATUS
Esta variable de solo lectura informa de la situacin de la comunicacin por el
mdulo de radio.
Bit7
Sin uso
-
Bit6
Bit5
CONFIGOK OFFOK
Bit4
ONOK
Bit3
Bit2
Bit1
RCVNW RCVOK ACK
www.moway-robot.com
Bit0
SNDOK
Bit 7:
Sin uso
Bit 6:
Bit 5:
Bit 4:
Bit 3:
Bit 2:
Bit 1:
Bit 0:
www.moway-robot.com
5.2.4.3 Funciones
La librera consta de nueve funciones que facilitarn bastante el trabajo a la hora
de desarrollar una aplicacin de comunicacin con los mdulos BZI-RF2GH4. A
continuacin se dar una breve descripcin de cada una de ellas.
Tabla 43. Resumen de las funciones en ensamblador.
19
20
El usuario puede cambiar estos pines modificando la librera donde se define el patillaje
dem.
www.moway-robot.com
RF_CONFIG_SPI
La velocidad del SPI no debe superar los 8 Mhz. En la funcin se configuran los
diferentes parmetros del mdulo SPI y los pines del PIC.
PIN RF
SCK
SDI
SDO
PIN PIC
RC3
RC5
RC4
RF_CONFIG
Variables de entrada
RF_DIR
RF_CHN
Variables de salida
FLAGS: CONFIGOK
PIN PIC
RB0
RF2
RH4
El canal debe ser comn a todos los mdulos que van a participar en la
comunicacin. El usuario puede elegir cualquier canal de los 128 disponibles. Sin
embargo, si en el entorno existe ms de una comunicacin entre mdulos en diferentes
canales, hay que dejar un espaciamiento de 2 entre los canales a utilizar para evitar
interferencias dejando as 32 canales tiles. Otra cuestin a tener en cuenta es la
existencia de otras tecnologas que utilizan la banda ISM 2.4GHz (Wifi, Bluetooth,etc.)
y que tambin pueden causar interferencias en alguno de los canales.
www.moway-robot.com
Canal
0x01
Canal
0x04
...
2.4Ghz
2.401Ghz
2.402Ghz
2.403Ghz
2.404Ghz
2.405Ghz
2.525Ghz
Imagen 50 Canales RF
La direccin que se asigna a cada dispositivo debe ser unvoca dentro de cada
canal.
Si la comunicacin SPI del PIC est mal configurada, el conexionado se ha
realizado incorrectamente o en ausencia del mdulo, el bit CONFIGOK de
RF_STATUS permanecer a 0.
RF_ON
Variables de salida
FLAGS: ONOK
Esta rutina activa el mdulo de radio en modo escucha para poder recibir datos
y/o realizar envos de datos.
Es importante tener en cuenta que tras la llamada a esta rutina el mdulo necesita
2,5ms para estar listo.
Si la comunicacin SPI del PIC est mal configurada, el conexionado se ha
realizado incorrectamente o en ausencia del mdulo, el bit ONOK de RF_STATUS
permanecer a 0.
Ejemplo:
;--[Rutina de configuracin sin interrupcin y activacin]----;Configurar mdulos SPI del PIC
call
RF_CONFIG_SPI
;Configurar mdulo RF (canal y direccin propias)
movlw
0x01
;Direccin propia
movwf
RF_DIR
movlw
movwf
0x40
RF_CHN
;Canal
call
btfss
nop
RF_CONFIG
RF_STATUS,CONFIGOK
;Mdulo no configurado
www.moway-robot.com
;Activar el mdulo RF
call
RF_ON
btfss
RF_STATUS,ONOK
nop
;Mdulo no inicializado
;-----------------------------------------------------------------------------
RF_OFF
Variables de salida
FLAGS: OFFOK
Variables de salida
FLAGS: SNDOK y ACK
0x02
RF_DIR_OUT
clrf
RF_DATA_OUT_0
;Datos a enviar
www.moway-robot.com
clrf
clrf
clrf
clrf
clrf
clrf
clrf
RF_DATA_OUT_1
RF_DATA_OUT_2
RF_DATA_OUT_3
RF_DATA_OUT_4
RF_DATA_OUT_5
RF_DATA_OUT_6
RF_DATA_OUT_7
call
RF_SEND
;Enviar trama
btfss
RF_STATUS,SNDOK
nop
;No enviado
btfss
RF_STATUS,ACK
nop
;No ACK
;-----------------------------------------------------------------------------
RF_RECEIVE
Variables de salida
RF_DIR_IN
RF_DATA_IN_0
RF_DATA_IN_7
RCVOK y RCVNW
btfsc
RF_STATUS,RCVNW
goto
RECIBIR
;-----------------------------------------------------------------------------
RF_RECEIVE_INT
Variables de salida
RF_DIR_IN
RF_DATA_IN_0
RF_DATA_IN_7
RCVOK, RCVNW
RF_INT_EN
Esta rutina se encarga de habilitar la interrupcin externa del microcontrolador
(RB0) que utiliza el mdulo de RF en la recepcin de datos. Para ello se configura como
entrada el pin RB0. Aunque se puede manejar el mdulo sin interrupciones no se
garantiza el mnimo tiempo de respuesta.
;--[Rutina de configuracin con interrupcin y activacin]----;Habilitar interrupciones
call
RF_INT_EN
www.moway-robot.com
0x40
RF_CHN
;Canal
call
btfss
nop
RF_CONFIG
RF_STATUS,CONFIGOK
;Mdulo no configurado
;Activar el mdulo RF
call
RF_ON
btfss
RF_STATUS,ONOK
nop
;Mdulo no inicializado
;-------------------------------------------------------------------------
www.moway-robot.com
Definir
RF_DIR
IRQ=1
RF_RECEIVE
RF_RECEIVE
_INT
Definir
RF_DATA
IRQ=0
RCVOK
RCVOK
RF_SEND
SNDOK
Envio no realizado
ACK no recibido
Tratar datos
Tratar datos
RCVNW
ACK
Envio realizado y
AKC recibido
Salir interrupcin
www.moway-robot.com
RCVNW
Salir recepcin
5.2.5.2 Variables
Las siguientes variables ocupan un byte.
COMMAND_CAM
Esta variable contiene el tipo de comando que se enviar al controlador de la
cmara. COM_WR si el comando es de escritura y COM_RD si es de lectura. Las
funciones de esta librera slo envan comandos de escritura (activar o desactivar
cmara y seleccin de canal).
ADDRESS_CAM
Esta variable contiene la direccin del registro del controlador de la cmara a leer
o escribir. Para configurar los puertos de entrada/salida del controlador de la cmara, se
asignar IODIR_ADD. Para cambiar el estado de los puertos de salida, se asignar
OLAT_ADD.
DATA_CAM
Esta variable contiene los datos a enviar al registro del controlador de la cmara
especificado en la variable ADDRESS_CAM.
CAM_STAT
Esta variable indica el estado de la cmara. Si est encendida su valor es 1, si
est apagada su valor es 0.
CAM_CHANNEL
Esta variable define el canal de transmisin de la cmara.
www.moway-robot.com
5.2.5.3 Funciones
La librera incluye las funciones necesarias para manejar el mdulo de cmara. A
continuacin se dar una breve descripcin de cada una de ellas.
Tabla 46. Resumen de las funciones en ensamblador.
CAM_CONFIG
En la funcin se configuran los diferentes parmetros del mdulo SPI y los pines
del PIC. Tambin configura el puerto de entradas/salidas del controlador de la cmara.
Nota: la velocidad del SPI no debe superar los 8MHz.
PIN SPI
PIN PIC
SCK
RC3
SDI
RC5
SDO
RC4
IRQ
RB0
CSN
RF2
CE
RH4
Tabla 47. Configuracin SPI puertos PIC
CAM_SEND_COM
Esta rutina enva un comando por SPI al controlador de la cmara. El formato del
comando consiste en tres bytes que especifican el tipo de comando (lectura o escritura),
el registro a leer o escribir, y los datos a escribir en dicho registro.
COMANDOS
COMMAND_CAM
ADDRESS_CAM
www.moway-robot.com
DATA_CAM
CAM_ON
Esta rutina enva por SPI el comando de activacin de la cmara al controlador. Es
un comando de escritura en el registro de las salidas del puerto del controlador. Los tres
bytes a enviar son:
BYTES
COMMAND_CAM
ADDRESS_CAM
DATA_CAM
COM_WR
OLAT_ADD
0x22
CAM_OFF
Esta rutina enva por SPI el comando de desactivacin de la cmara al
controlador. Es un comando de escritura en el registro de las salidas del puerto del
controlador. Los tres bytes a enviar son:
BYTES
COMMAND_CAM
ADDRESS_CAM
DATA_CAM
COM_WR
OLAT_ADD
0x00
CAM_CHN_SEL
Esta rutina enva por SPI el comando de cambio de canal de transmisin al
controlador. Es un comando de escritura en el registro de configuracin de
entrada/salida del puerto del controlador.
Variables de entrada
CAM_CHANNEL
BYTES
COMMAND_CAM
ADDRESS_CAM
DATA_CAM
COM_WR
IODIR_ADD
Canal 1: 0xD8
Canal 2: 0xD4
Canal 3: 0xCC
Canal 4: 0xDC
www.moway-robot.com
CAM_SPI_WRITE
Realiza las operaciones de lectura y escritura del puerto SPI del microcontrolador
en una sola funcin. Primero enva un byte al puerto SPI del microcontrolador. Despus
lee el buffer SPI del microcontrolador si se ha recibido algn dato.
Variables de entrada
BYTE_OUT
Variables de salida
BYTE_IN
www.moway-robot.com
6. Programacin C
C18, de MPLAB, es un compilador que se sirve para la familia de
microcontrolador PIC18. Existe una evaluacin de este compilador que se puede
descargar gratuitamente desde la pgina web de Microchip.
En la web de mOway y en el pack de instalacin encontrar libreras para el
manejo de los sensores, motores y mdulo RF escritas para el compilador.
La gran ventaja que tiene es que el lenguaje que compila es C. El manejo de
variables numricas (char, int, etc.) y de estructuras de control de flujo (if, for, etc.) es
muy sencillo y contienen gran cantidad de funciones pre-compiladas que facilitan
enormemente la tarea de programacin (I2C, SPI). Sin embargo, los programas
generados son ms grandes en cuanto a tamao que en ensamblador.
En resumen:
Muy interesante para comenzar a trabajar con mOway rpidamente.
Muy interesante para realizar tareas sencillas o de complejidad media.
No recomendable si el tiempo de respuesta es crtico.
www.moway-robot.com
www.moway-robot.com
www.moway-robot.com
5. Siguiendo estos pasos el proyecto se crear, pero faltar todava la creacin del
fichero .C donde se inserta el cdigo fuente.
www.moway-robot.com
www.moway-robot.com
www.moway-robot.com
www.moway-robot.com
www.moway-robot.com
6.3 Libreras
6.3.2 Librera sensores mOway en C para C18
Esta librera en C18 puede ser incluida en cualquier proyecto de mOway que
permite al usuario controlar los sensores.
6.3.2.1 Descripcin
La librera contiene una serie de funciones encargadas de leer los datos que
proporcionan los sensores del robot. Ellas son las encargadas de configurar los puertos
de entrada y salida adecuadamente, el ADC del microcontrolador y los indicadores
luminosos.
www.moway-robot.com
6.3.2.2 Funciones
En la librera lib_sen_moway existen una serie de funciones que estn orientadas
al control de los sensores y de los diodos LED de mOway.
Tabla 48. Resumen de funciones en C
Nombre
Constantes
entrada
void SEN_CONFIGURAR(void)
unsigned char SEN_LIGHT(void)
unsigned char SEN_BATTERY(void)
unsigned char SEN_TEMPERATURE (void)
unsigned char SEN_MIC_ANALOG (void)
unsigned char SEN_MIC_DIG (void)
unsigned
char
SEN_SPEAKER(unsigned
unsigned char, unsigned char)
char,
Descripcin
SPEAKER_OFF
SPEAKER_ON
SPEAKER_TIME
ACCE_CHECK_X
ACCE_CHECK_Y
ACCE_CHECK_Z
-
Controla el speaker.
OBS_SIDE_L
OBS_CENTER_L
OBS_CENTER_R
OBS_SIDE_R
OBS_SIDE_L
OBS_CENTER_L
OBS_CENTER_R
OBS_SIDE_R
LINE_R
LINE_L
LINE_R
LINE_L
-
Esta funcin configura las entradas y salidas para poder manejar los sensores e
inicializa las variables.
www.moway-robot.com
Pin PIC
PORTA
RA0
RA1
RA2
RA3
RA5
PORTB
RB1
RB2
RB3
RB5
RB6
PORTC
RC7
PORTD
RD1
RD4
RD5
RD6
RD7
PORTE
RE5
PORTF
RF5
RF6
PORTH
RH5
RH6
RH7
PORTJ
RJ6
RJ7
I/O
Sensor
I
I
I
I
I
Luz
Receptor central infrarrojo izquierdo
Receptor sensor lnea derecho
Receptor lateral infrarrojo izquierdo
Receptor sensor lnea izquierdo
I
I
O
O
O
LED frontal
O
I
O
O
I
LED de freno
I
I
I
I
I
Sensor de temperatura
Medidor de batera
Micrfono
O
I/O
Transmisor infrarrojo
Pad libre
Activar el ADC.
Esperar el tiempo de adquisicin de datos (100us).
Leer el valor analgico.
Con el voltaje analgico medido se calcula el porcentaje de la luz incidente.
Retorna el porcentaje de luz incidente.
www.moway-robot.com
Activar el ADC.
Esperar el tiempo de adquisicin de datos (100us).
Leer el valor analgico.
Con el voltaje analgico medido se calcula el porcentaje del nivel de batera.
Retorna el porcentaje de batera.
Activar el ADC.
Esperar el tiempo de adquisicin de datos (100us).
Leer el valor analgico.
Con el voltaje analgico medido se calcula la temperatura en C.
Retorna la temperatura en C.
Activar el ADC.
Esperar el tiempo de adquisicin de datos (100us).
Leer el valor analgico.
21
El porcentaje puede diferir del dato proporcionado por MowayWorld porque hay diferencias en
la lectura cuando la batera se est cargando o se est utilizando.
22
La temperatura indicada por este sensor difiere de la de fuera en unos 5C porque recoge la
temperatura interna del robot.
www.moway-robot.com
La funcin SEN_MIC indica si hay sonido o no. Para ello se deben seguir los
siguientes pasos:
Se comprueba si se presenta alguna seal en el micrfono.
Retorna un 1 si hay sonido y un 0 si no lo hay.
unsigned
char
Variables de entrada
SEN_SPEAKER_FREQ
SEN_SPEAKER_TIME
SEN_SPEAKER_ON_OFF
Define
SPEAKER_OFF
SPEAKER_ON
SPEAKER_TIME
Valor
0
1
2
0
10
www.moway-robot.com
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250,
255
2976,1904762
2016,1290323
1524,3902439
1225,4901961
1024,5901639
880,2816901
771,6049383
686,8131868
618,8118812
563,0630631
516,5289256
477,0992366
443,2624113
413,9072848
388,1987578
365,4970760
345,3038674
327,2251309
310,9452736
296,2085308
282,8054299
270,5627706
259,3360996
249,0039841
244,1406250
Salida
Indica si existe o no objeto en el sensor deseado
Esta funcin indica si un obstculo en la parte del sensor que se le indique a travs
de la variable SEN_CHECK_OBS. Para ello se han de seguir los siguientes pasos:
Se comprueba que sensor hay que mirar. Si no se corresponde con ningn valor
vlido de la variable la funcin termina con un 0.
Antes de mandar el pulso de luz infrarroja asegurarse de que no exista ninguna
fuente de ruido que interfiera.
Se manda pulso de luz infrarroja para la deteccin del obstculo. Si hay algn
obstculo la luz rebotar y esta seal ser captada por el receptor infrarrojo.
www.moway-robot.com
Define
OBS_CENTER_L
OBS_SIDE_L
OBS_CENTER_R
OBS_SIDE_R
Valor
0
1
2
3
Salida
Indica el valor analgico del sensor
Esta funcin indica si un obstculo en la parte del sensor que se le indique a travs
de la variable SEN_CHECK_OBS. Para ello se han de seguir los siguientes pasos:
Se comprueba que sensor hay que mirar. Si no se corresponde con ningn valor
vlido de la variable la funcin termina con un 0.
Antes de mandar el pulso de luz infrarroja asegurarse de que no exista ninguna
fuente de ruido que interfiera.
Se manda pulso de luz infrarroja para la deteccin del obstculo.
Se activa el ADC.
Se comprueba si se presenta alguna seal en los cuatro receptores IR.
Se copia el valor del receptor analgico en las variables de salida. Cuanto mayor
sea este valor ms cerca se encontrar el obstculo.
Se desactiva LED infrarrojo.
Se comprueba que no haya ninguna seal interferente.
Define
OBS_CENTER_L
OBS_SIDE_L
OBS_CENTER_R
OBS_SIDE_R
Valor
0
1
2
3
www.moway-robot.com
Salida
Aceleracin que sufre el robot en el eje indicado
Define
ACCE_CHECK_X
ACCE_CHECK_Y
ACCE_CHECK_Z
Valor
0
1
2
Salida
1: Un toque
2: Dos toques
www.moway-robot.com
Salida
Indica el valor digital del sensor
Define
LINE_L
LINE_R
Valor
0
1
Salida
Indica el valor digital del sensor
Se comprueba que sensor hay que mirar. Si no se corresponde con ningn valor
vlido de la variable la funcin termina con un 0.
Se manda pulso de luz infrarroja para la deteccin de la lnea. Si se detecta, la
luz rebotar y esta seal ser captada por el receptor infrarrojo.
Esperar el tiempo de adquisicin de datos (900us).
Se activa el ADC.
Se lee el sensor requerido.
Mover ese dato a la variable SEN_LINE. Cuanto ms alto sea este valor ms
oscura ser la superficie.
23
El valor del sensor analgico variar de un sensor a otro debido a la tolerancia del componente
electrnico.
www.moway-robot.com
Define
LINE_L
LINE_R
void LED_BRAKE_ON(void)
Enciende el diodo LED de freno.
void LED_FRONT_ON(void)
Enciende el diodo LED frontal.
void LED_TOP_RED_ON(void)
Enciende el diodo LED superior rojo.
void LED_TOP_GREEN_ON(void)
Enciende el diodo LED superior verde.
void LED_BRAKE_OFF(void)
Apaga el diodo LED de freno.
void LED_FRONT_OFF(void)
Apaga el diodo LED frontal.
void LED_TOP_RED_OFF(void)
Apaga el diodo LED superior rojo.
void LED_TOP_GREEN_OFF(void)
Apaga el diodo LED superior verde.
void LED_BRAKE_ON_OFF(void)
Parpadeo del diodo LED de freno.
void LED_FRONT_ON_OFF(void)
Parpadeo del diodo LED frontal.
www.moway-robot.com
Valor
0
1
void LED_TOP_RED_ON_OFF(void)
Parpadeo del diodo LED superior rojo.
void LED_TOP_GREEN_ON_OFF(void)
Parpadeo del diodo LED superior verde.
MOT_DIR
_
W
MOT_
COMAND
T
Y
P
E
R
L
MOT_VEL
S
E
N
T_DIST_ANG
S
T
O
P
S
T
A
R
T
MOT_DIR
_
W
MOT_
COMAND
T
Y
P
E
R
L
MOT_VEL
S
E
N
RAD/
CENWHEEL
S
T
A
R
T
MOT_DIR
_
W
S
T
O
P
COM_STOP/
RST_COM
S
T
A
R
T
MOT_DIR
MOT_STATUS_DATA_
0
MOT_STATUS_DATA_
1
S
T
O
P
www.moway-robot.com
T_DIST_ANG
S
T
O
P
6.4.2.2 Funciones
En la librera lib_mot_moway existen una serie de funciones que estn orientadas
al control del sistema de motores de mOway.
A continuacin se dar una breve descripcin de cada una de ellas.
Tabla 57. Resumen de funciones en ensamblador de lib_mot_moway
Nombre
Entrada
Retorno
void MOT_CONFIG(void)
Descripcin
Configuracin
para
la
comunicacin
con
los
motores
Comando para movimiento
en lnea recta
MOT_VEL
FWDBACK
COMTYPE
MOT_T_DIST
0: Envo correcto
1: Envo incorrecto
2: Datos incorrectos
MOT_VEL
FWDBACK
RL
COMTYPE
MOT_T_DIST
0: Envo correcto
1: Envo incorrecto
2: Datos incorrectos
MOT_VEL
FWDBACK
MOT_CENWHEEL
RL
COMTYPE
MOT_T_ANG
0: Envo correcto
1: Envo incorrecto
2: Datos incorrectos
MOT_VEL
FWDBACK
MOT_RAD
RL
COMTYPE
MOT_T_DIST
0: Envo correcto
1: Envo incorrecto
2: Datos incorrectos
0:Envo correcto
1: Envo incorrecto
0: Envo correcto
1: Envo incorrecto
0: Envo correcto
1: Envo incorrecto
void MOT_CONFIG(void)
Esta funcin configura las entradas y salidas para que el microcontrolador pueda
comunicarse con el Sistema Motriz.
Tabla 58. Conexiones PIC-motores
Pin PIC
PORTE
RE7
RE0
RE1
I/O
Sensor
I Indica cundo el motor termina el comando
O SCL del protocolo I2C
O SDA del protocolo I2C
www.moway-robot.com
char
Entrada
MOT_VEL
FWDBACK
COMTYPE
MOT_T_DIST
Velocidad deseada
Sentido de la marcha
Tipo de comando
El valor de Tiempo
Distancia
0
1-FWD
1-TIME
0
0
100
0-BACK
0-DIST
255
255
Salida
0: Envo correcto
2: Datos incorrectos
1: Envo incorrecto
Velocidad deseada
Sentido de la marcha
Izquierda o derecha
Tipo de comando
El valor de Tiempo
Distancia
Salida
0: Envo correcto
2: Datos incorrectos
1: Envo incorrecto
www.moway-robot.com
0
1-FWD
1-RIGHT
1-TIME
0
0
100
0-BACK
0-LEFT
0-DIST
255
255
Velocidad deseada
Sentido de la marcha
Sobre centro o rueda
Derecha o izquierda
Tipo de comando
El valor de Tiempo
ngulo
0
1-FWD
1-CENT
1-RIGHT
1-TIME
0
0
100
0-BACK
0-WHEEL
0-LEFT
0-ANG
255
100
Salida
0: Envo correcto
2: Datos incorrectos
1: Envo incorrecto
ngulo 3.33
www.moway-robot.com
Ejemplo:
//Rotacin respecto al centro a la derecha al 80% de velocidad durante 10
// segundos (100ms x 100)
MOT_ROT(80, FWD, CENTER, RIGHT, TIME, 100) ;
//Rotacin respecto la rueda izquierda al 20% de velocidad 180
MOT_ROT(20, BACK, WHEEL, LEFT, ANGLE, 50) ;
char
char
Entrada
MOT_VEL
FWDBACK
MOT_RAD
RL
COMTYPE
MOT_T_DIST
Velocidad deseada
Sentido de la marcha
Radio
Derecha o izquierda
Tipo de comando
El valor de Tiempo
Distancia
0
1-FWD
0
1-RIGHT
1-TIME
0
0
100
0-BACK
100
0-LEFT
0-DIST
255
255
Salida
0: Envo correcto
2: Datos incorrectos
1: Envo incorrecto
Comando para dar una curva. Es necesario especificar velocidad, sentido, radio,
direccin, tipo de comando y el tiempo o la distancia a recorrer. El radio es la velocidad
que se restar o se sumar a la velocidad global del robot. Esto es, si la velocidad
especificada es 50 y el radio 10, uno de los motores tendr 60 de velocidad y el otro 40.
Por lo tanto el radio tiene que cumplir la siguiente restriccin:
Ecuacin 5. Condicin 1 MOT_RAD
www.moway-robot.com
//(1mm x 100)
//VEL_I=95
//VEL_D=65
MOT_CUR(80, BACK, 15, LEFT, DISTANCE, 100) ;
1: Envo incorrecto
RST_T
RST_DIST
RST_KM
Salida
0: Envo correcto
1: Envo incorrecto
www.moway-robot.com
STATUS_T
STATUS_A
STATUS_V_R
STATUS_V_L
STATUS_D_R
STATUS_D_L
STATUS_KM
Salida
Puntero a vector de dos bytes.
Parmetro
STATUS_T
STATUS_A
STATUS_V_R
STATUS_V_L
STATUS_D_R
STATUS_D_L
STATUS_KM
Resolucin
100ms/bit
3.6/bit
1%/bit
1%/bit
1mm/bit
1mm/bit
1mm/bit
Ejemplo:
//Peticin de tiempo transcurrido desde el ltimo comando
char command_time;
command_time =MOT_FDBCK(STATUS_T)[0];
//Ej. Salida:
//MOT_FDBCK(STATUS_T)[0]=0x7F
=> Han transcurrido 12.7 segundos
//desde el ltimo comando
// MOT_FDBCK(STATUS_T)[1]=0xFF; => Dato no vlido
www.moway-robot.com
byte 0
0x08
0000 0100
//Ej. Salida:
// mOway_km[0]=0x08
// mOway_km[1]=0x01;
Distancia: 264*1mm
264mm
6.4.3.2 Funciones
La librera consta de nueve funciones que facilitarn bastante el trabajo a la hora
de desarrollar una aplicacin de comunicacin con los mdulos BZI-RF2GH4. A
continuacin se dar una breve descripcin de cada una de ellas.
Nombre
void RF_CONFIG_SPI(void)
void RF_INT_EN(void)
Entrada
Retorno
CHANNEL
ADDRESS
1: Configuracin
correcta
0: No configurado
0: No conectado
1: Conectado
0: No desconectado
1: Desconectado
RF_DIR_OUT
RF_DATA_OUT[]
RF_DIR_IN
RF_DATA_IN[]
0:Envo correcto
1:Ack no recibido
2: No enviado
0: Recepcin correcta
y nica
1: Recepcin correcta
y mltiple
2:No recepcin
www.moway-robot.com
Descripcin
Configura las entradas y
salidas del microcontrolador
as
como
parmetros
necesarios para utilizar el
bus SPI.
Esta rutina habilita en el
microcontrolador
la
interrupcin externa para el
mdulo de radio.
Configura las entradas y
salidas del microcontrolador
as como parmetros del
mdulo de radio.
Activa el mdulo de
radiofrecuencia en modo
escucha.
Desactiva el mdulo de
radiofrecuencia y lo deja en
modo de bajo consumo
void RF_CONFIG_SPI(void)
La velocidad del SPI no debe superar los 8 Mhz. En la funcin se configuran los
diferentes parmetros del mdulo SPI y los pines del PIC.
PIN RF
SCK
SDI
SDO
PIN PIC
RC3
RC5
RC4
Ejemplo:
//Configurar mdulos SPI del PIC
RF_CONFIG_SPI();
Salida
0: No configurado
1:Configurado correctamente
PIN PIC
RB0
RF2
RH4
El canal debe ser comn a todos los mdulos que van a participar en la
comunicacin. El usuario puede elegir cualquier canal de los 128 disponibles. Sin
embargo, si en el entorno existe ms de una comunicacin entre mdulos en diferentes
canales, hay que dejar un espaciamiento de 2 entre los canales a utilizar para evitar
interferencias dejando as 32 canales tiles. Otra cuestin a tener en cuenta es la
existencia de otras tecnologas que utilizan la banda ISM 2.4GHz (Wifi, Bluetooth,etc.)
y que tambin pueden causar interferencias en alguno de los canales.
www.moway-robot.com
Canal
0x01
Canal
0x04
...
2.4Ghz
2.401Ghz
2.402Ghz
2.403Ghz
2.404Ghz
2.405Ghz
2.525Ghz
Imagen 68 Canales RF
La direccin que se asigna a cada dispositivo debe ser unvoca dentro de cada
canal.
Si la comunicacin SPI del PIC est mal configurada, el conexionado se ha
realizado incorrectamente o en ausencia del mdulo, la salida de la funcin ser 0.
Ejemplo:
//Configurar mdulo RF (canal y direccin)
if(RF_CONFIG(0x40,0x01)==0){
//Mdulo no configurado
}
unsigned char RF_ON(void)
Salida
0: No configurado
1:Configurado correctamente
Esta rutina activa el mdulo de radio en modo escucha para poder recibir datos
y/o realizar envos de datos.
Es importante tener en cuenta que tras la llamada a esta rutina el mdulo necesita
2,5ms para estar listo.
Si la comunicacin SPI del PIC est mal configurada, el conexionado se ha
realizado incorrectamente o en ausencia del mdulo, la salida ser 0.
Ejemplo:
//Activar el mdulo RF
if(RF_ON()==0){
//Mdulo no inicializado
}
www.moway-robot.com
Variables de salida
0:Envo correcto
1:Ack no recibido
2: No enviado
www.moway-robot.com
www.moway-robot.com
void RF_INT_EN(void)
Esta rutina se encarga de habilitar la interrupcin externa del microcontrolador
(RB0) que utiliza el mdulo de RF en la recepcin de datos. Para ello se configura como
entrada el pin RB0. Aunque se puede manejar el mdulo sin interrupciones no se
garantiza el mnimo tiempo de respuesta.
Ejemplo:
//-----------[Rutina de configuracin y activacin con interrupcin]---------//Habilitar interrupciones
RF_INT_EN();
Definir
RF_DIR
RF_RECEIVE()
Definir
RF_DATA
Retorno
RF_SEND()
Retorno
Tratar datos
Tratar datos
1
Envio realizado y
AKC recibido
Envio realizado y
AKC no recibido
Salir interrupcin
Envio no realizado
y AKC no recibido
www.moway-robot.com
RF_RECEIVE()
Retorno
Tratar datos
Tratar datos
Salir recepcin
www.moway-robot.com
6.4.4.2 Funciones
La librera incluye las funciones necesarias para manejar el mdulo de cmara. A
continuacin se dar una breve descripcin de cada una de ellas.
Nombre
void CAM_CONFIG(void)
Entrada
Retorno
COMMAND
ADDRESS
DATA
Descripcin
Configura los parmetros del
mdulo SPI y los pines del
PIC, as como el controlador
de la cmara.
Enva un comando por SPI al
controlador de la cmara. Se
compone de 3 bytes.
Activa la cmara.
Desactiva la cmara.
CHANNEL
DATA
CAM_CONFIG
En la funcin se configuran los diferentes parmetros del mdulo SPI y los pines
del PIC. Tambin configura el puerto de entradas/salidas del controlador de la cmara.
Nota: la velocidad del SPI no debe superar los 8MHz.
PIN SPI
SCK
SDI
SDO
IRQ
CSN
CE
PIN PIC
RC3
RC5
RC4
RB0
RF2
RH4
www.moway-robot.com
CAM_SEND_COM
Esta rutina enva un comando por SPI al controlador de la cmara. El formato del
comando consiste en tres bytes que especifican el tipo de comando (lectura o escritura),
el registro a leer o escribir, y los datos a escribir en dicho registro.
COMANDOS
COMMAND_CAM
ADDRESS_CAM
DATA_CAM
CAM_ON
Esta rutina enva por SPI el comando de activacin de la cmara al controlador. Es
un comando de escritura en el registro de las salidas del puerto del controlador. Los tres
bytes a enviar son:
BYTES
COMMAND_CAM
ADDRESS_CAM
DATA_CAM
COM_WR
OLAT_ADD
0x22
CAM_OFF
Esta rutina enva por SPI el comando de desactivacin de la cmara al
controlador. Es un comando de escritura en el registro de las salidas del puerto del
controlador. Los tres bytes a enviar son:
BYTES
COMMAND_CAM
ADDRESS_CAM
DATA_CAM
COM_WR
OLAT_ADD
0x00
CAM_CHN_SEL
Esta rutina enva por SPI el comando de cambio de canal de transmisin al
controlador. Es un comando de escritura en el registro de configuracin de
entrada/salida del puerto del controlador.
www.moway-robot.com
Variables de entrada
CAM_CHANNEL
BYTES
COMMAND_CAM
ADDRESS_CAM
DATA_CAM
COM_WR
IODIR_ADD
Canal 1: 0xD8
Canal 2: 0xD4
Canal 3: 0xCC
Canal 4: 0xDC
CAM_SPI_WRITE
Enva un byte por SPI desde el microcontrolador.
Variables de entrada
DATA
www.moway-robot.com
7. Programacin MowayWorld
La aplicacin MowayWorld permite disear programas por medio de diagramas
de flujo, con lo que se consigue programar el robot mOway de forma muy intuitiva.
Diferentes bloques o mdulos representan las funciones que controlan los sensores y
actuadores del robot. Estos mdulos son conectados mediante flechas para crear as el
programa deseado.
La mxima ventaja es que no se necesita ninguna nocin de programacin para
crear una aplicacin.
En resumen:
La mejor manera para comenzar a trabajar con mOway rpidamente.
La mejor manera para realizar tareas sencillas o de complejidad media.
Cdigo generado optimizado en espacio y rendimiento.
www.moway-robot.com
7.1.3 Acciones
El men de Acciones permite elegir el mdulo para insertar en el diagrama de
flujo. Estn clasificados por el tipo de funcin que realizan.
www.moway-robot.com
7.1.4 Propiedades
Cuando se selecciona un bloque del diagrama, aparecer en la zona derecha del
espacio de trabajo una ventana de propiedades, que nos permitir cambiar la
configuracin de dicho mdulo de forma rpida.
www.moway-robot.com
7.1.6 Flechas
El orden de ejecucin de los diferentes mdulos se define por medio de flechas.
Para unir dos bloques mediante una flecha hay que realizar los pasos siguientes:
Se coloca el cursor sobre el primer bloque hasta que aparezcan las marcas
rojas.
Se pincha sobre una de estas marcas.
Despus se pincha sobre una de las marcas del bloque siguiente.
Todos los bloques del diagrama tienen que tener al menos una flecha de entrada.
Adems tienen que tener una flecha de salida (dos flechas de salida si el bloque es
condicional).
Los bloques condicionales (de forma ovalada) tienen dos flechas de salida: una de
ellas es el camino que seguir el programa si la condicin del bloque es verdadera, y la
otra ser el camino del programa cuando la condicin del bloque sea falsa.
Al trazar las dos flechas de salida, la primera de ellas ser automticamente el
camino de la condicin verdadera (marca verde). La flecha restante ser el camino de la
condicin falsa (marca roja).
www.moway-robot.com
El trazado de las flechas puede ser modificado arrastrando los puntos que
aparecen al situar el cursor sobre ellas.
www.moway-robot.com
www.moway-robot.com
7. Los mdulos de condicin tienen una salida verdadera y otra falsa. Si se detecta
el obstculo, la condicin es verdadera (marca verde) y el LED correspondiente
debe encenderse. Si no hay obstculo, la condicin es falsa (marca roja) el LED
se apagara. El encendido y apagado debe realizarse con los mdulos Luces.
8. Probar el programa y comprobar que los LED delanteros se encienden cuando se
detecta un obstculo.
www.moway-robot.com
www.moway-robot.com
www.moway-robot.com
7.3 Mdulos
Los mdulos son las acciones o funciones que puede realizar el robot mOway:
moverse, leer los sensores, encender los LEDs, transmitir mensajes por radiofrecuencia,
etc. Estos mdulos estn agrupados dependiendo del tipo de funcin que realizan y
pueden ser configurados de diversas formas.
A continuacin se describe cada uno de los mdulos incluidos en MowayWorld.
www.moway-robot.com
Movimiento Libre
El movimiento libre es similar al anterior, con la diferencia de que
permite controlar las velocidades individuales de cada motor.
Movimiento Curva
Con el mdulo de giro, el programa calcular la velocidad de los
motores para poder describir una curva sealando la velocidad y la curvatura
de giro.
Tambin podemos hacer uso de las limitaciones en tiempo y distancia.
www.moway-robot.com
Movimiento Rotacin
El mdulo de rotacin hace que mOway rote bien sobre su centro o
sobre alguna de las dos ruedas. Podemos configurar el sentido de giro y la
velocidad de rotacin.
Movimiento Parar
El mdulo de parar movimiento detiene los motores de mOway.
Sonido Empezar
Esta funcin permite a mOway emitir sonidos desde 244 Hz hasta
16 KHz, al activar el altavoz interno del robot. Es posible elegir si estar
activo durante un tiempo determinado, o bien indefinido.
www.moway-robot.com
Sonido Parar
Detiene el sonido del altavoz
Luces
Este mdulo permite controlar los LEDs de mOway, de forma que
se puede encender, apagar o hacer parpadear. Se puede actuar sobre todos
los LEDs que el usuario necesite de forma simultnea.
www.moway-robot.com
www.moway-robot.com
Lnea
Este mdulo comprueba el valor digital de los sensores de lnea. Esta funcin se
emplea para hacer que mOway siga una lnea (negra o blanca) en el suelo, detectar
lmites de terreno, etc.
Cada sensor permite cumplir alguna de las tres condiciones siguientes:
o deteccin de lnea negra
o deteccin de lnea blanca
o no lectura de sensor
Del mismo modo que el bloque anterior (Lectura de sensores de obstculos),
permite las opciones AND y OR.
Ruido
Este mdulo tiene un resultado verdadero si detecta un sonido
fuerte. No tiene ventana de configuracin.
Golpe
Este mdulo tiene un resultado verdadero si detecta un golpe sobre
mOway. No tiene ventana de configuracin.
www.moway-robot.com
7.3.3 Datos
Con este grupo de funciones es posible leer, escribir y modificar los datos que
proporciona el robot mOway. Estos datos pueden provenir de la lectura de los sensores
o de variables creadas por el usuario y almacenadas en la memoria de mOway.
Estos datos se almacenan en variables, las cuales son definidas por el usuario.
Para crear una nueva variable, se elige el men Variables de la barra de herramientas
y se selecciona Nueva variable. Se asigna un nombre y un valor inicial para ella.
Algunos de los bloques permiten crear estas variables directamente desde su
ventana de configuracin, para valores que puedan variar a lo largo del programa.
NOTA: Cada variable se almacena en un byte de memoria, por lo que su rango de
valores es de 0 como mnimo a 255 como mximo.
Calcular
Se emplea para realizar operaciones aritmticas de sumar (+=) o
restar (-=) sobre una variable. El primer parmetro debe ser siempre una
variable y en l se almacenar el resultado de la operacin. El segundo
operando puede ser una constante o una variable.
Reiniciar Datos de mOway
Este mdulo pone a cero los contadores almacenados de tiempo y
distancia. Permite seleccionar qu datos en concreto queremos reiniciar.
Asignar variable
Este grupo de mdulos permiten asignar un valor a una variable creada por el
usuario. Este valor puede ser constante o bien el valor analgico de alguno de los
sensores.
o Valor: asigna a la variable un valor constante.
o Tiempo: asigna a la variable el tiempo transcurrido. El valor
tiene un rango de 0 a 255 dcimas de segundo.
o Velocidad: asigna a la variable la velocidad de uno de los
motores. El valor tiene un rango de 0 (motor parado) a 100
(velocidad mxima).
o Distancia: asigna a la variable la distancia recorrida por el
robot. El valor tiene un rango de 0 a 255 centmetros.
o ngulo: asigna a la variable el valor del ngulo girado por el
robot. El valor tiene un rango de 0 (correspondiente a 0
www.moway-robot.com
www.moway-robot.com
7.3.5 Expansin
Este grupo de funciones permiten usar el conector de expansin de mOway, bien
sea para usar el mdulo RF u otros mdulos de expansin.
ATENCIN!
Slo los usuarios avanzados pueden usar la configuracin del mdulo IO. La
incorrecta conexin de elementos electrnicos en el conector de expansin puede causar
daos irreversibles en el robot.
Mdulo IO Configurar
Este mdulo configura los terminales del conector de expansin
como entradas (Input) o salidas (Output), y les asigna un valor inicial en
caso de que sean salidas.
Mdulo IO Salida
Este mdulo activa (On), desactiva (Off) o conmuta los terminales configurados
como salidas del conector de expansin.
ATENCIN!
Slo se puede asignar un valor a los terminales configurados como
salida. Si se asignase un valor a los terminales configurados como
entradas, el circuito electrnico podra daarse.
www.moway-robot.com
Mdulo IO Entrada
Este mdulo comprueba el valor digital de uno de los 6 terminales
de entrada del conector de expansin. Compara si el estado de dicho
terminal es igual (==) o diferente (<>) a encendido (1) o apagado (0).
Cmara Activar
Este mdulo activa la cmara de mOway y permite seleccionar el
canal de transmisin. Este canal debe ser el mismo que el del receptor
de vdeo.
Cmara Detener
Este mdulo apaga la cmara.
Comunicacin Empezar
Este mdulo configura el robot para establecer una comunicacin
por radiofrecuencia (RF). A la hora de activarlo debemos seleccionar qu
identificador usar el robot y en qu canal queremos que opere. Para que
dos mOways puedan comunicarse entre s deben estar funcionando en el
mismo canal y normalmente, cada uno tendr un identificador diferente.
Si la configuracin es correcta, la salida de este mdulo es verdadera. En la
imagen del lateral se muestra cmo colocar las flechas en este mdulo en el diagrama.
www.moway-robot.com
Comunicacin Parar
Este mdulo detiene la comunicacin por RF. No tiene ventana de
configuracin.
Comunicacin Enviar
Con este mdulo se puede transmitir una trama a una direccin
concreta. En la trama hay que indicar la direccin del receptor y los datos
a enviar, que pueden ser constantes o variables. Si el mensaje ha sido
recibido por el receptor, la salida es verdadera. De otro modo, la salida
es falsa.
Hay que recordar que previamente a este condicional, se tiene que configurar el
mdulo Comunicacin - Empezar. Los robots participantes en la comunicacin RF
tienen que tener el mismo canal y direcciones diferentes.
www.moway-robot.com
Comunicacin Recibir
Con este mdulo se puede recibir una trama desde una direccin
concreta. Hay que indicar por lo menos dos variables: una para recoger la
direccin de emisor y la otra para el dato. Si el mensaje enviado por el
transmisor ha sido recibido correctamente, la salida es verdadera. Si el
mensaje no ha sido recibido, la salida es falsa.
Hay que recordar que previamente a este condicional, se tiene que configurar el
mdulo Comunicacin - Empezar. Los robots participantes en la comunicacin RF
tienen que tener el mismo canal y direcciones diferentes.
www.moway-robot.com
www.moway-robot.com
7.4 Variables
Una variable contiene un valor que puede cambiar a lo largo del programa, y es
almacenada en la memoria interna de mOway. Las variables permiten manejar datos del
programa, lo cual proporciona una mayor flexibilidad a la hora de desarrollar el
programa. Estos datos pueden ser los valores de los sensores del robot, mensajes
recibidos por radiofrecuencia, etc.
Estas variables pueden ser creadas desde ciertos mdulos, o tambin desde la
barra de tareas. Para crear una nueva variable, se elige el men Variables de la barra
de herramientas y se selecciona Nueva variable.
Se asigna un nombre y un valor inicial para ella. El nombre debe comenzar por
al menos una letra y no debe tener ms de 14 caracteres.
www.moway-robot.com
www.moway-robot.com
www.moway-robot.com
8. Aplicaciones
8.1 Ventana de comunicaciones
La ventana de comunicaciones permite enviar y recibir comandos RF utilizando el
RFUSB conectado al ordenador. Para lanzar esta ventana hay que pulsar el icono
Comunicaciones.
www.moway-robot.com
8.2 MowayCam
La aplicacin MowayCam permite mostrar en el PC las imgenes enviadas por el
mdulo de cmara Moway Camera Board y guardar capturas de dichas imgenes en
cualquier dispositivo de almacenamiento conectado al PC. Esta aplicacin se lanza
desde la pestaa Ver -> mOway Cam o desde el icono indicado:
www.moway-robot.com
www.moway-robot.com
8.3 MowayRC
MowayRC es una aplicacin que permite controlar a mOway como si fuera un
dispositivo de radio control y monitorizar todos los sensores del robot. Es una
herramienta que se vale de los mdulos de RF BZI-RF2GH4 y del RFUSB muy til
para todos aquellos usuarios que quieran explorar el campo donde se desenvolver el
microbot.
El concepto de funcionamiento es el siguiente: la aplicacin transmite comandos
por USB al RFUSB y sta los transmite a mOway, que previamente ha sido grabado con
un programa que interpreta esos comandos (mOway_RC_Client incluido en mOway
Pack).
R
F
PC
MOT_DIR
Moway_RC
Center.exe
Moway
USB
RFUsb
Moway_RC
_Client .hex
Esta aplicacin se lanza desde la pestaa MowayRC -> Abrir o desde el icono
indicado:
www.moway-robot.com
8.3.1 Configuracin
En esta parte se configura el mdulo RFUSB de mOway con la direccin por
defecto 2 y el canal de comunicaciones 0 (canal por defecto del programa de RC de
mOway).
Para evitar interferencias por WIFI, Bluetooth, Microondas, u otros mOways, se
puede cambiar el canal con el botn Cambiar canal. Para realizar el cambio de canal el
robot tiene que estar encendido y comunicndose con el RFUSB. Cada vez que se
desconecta el RFUSB el canal por defecto ser el 0.
El procedimiento recomendado a seguir es el siguiente:
1) Encender el robot
2) Conectar el RFUSB.
3) Probar el canal mandado comandos a mOway
4) Si el robot no responde bien cambiar el canal y probar de nuevo
En caso de que el robot no haya sido cargado con el mOway_RC_Client, se
puede reprogramar con el botn Programar mOway.
8.3.2 Movimiento
Una vez conectado el RFUSB podemos mandar comandos a mOway. Mediante
los botones podemos controlar los movimientos del robot, o desde el teclado (teclas W,
S, A, D). Tambin existen dos barras donde definir la velocidad y la curvatura de giro.
Se muestra la distancia recorrida por el robot, la cual puede ser reseteada al pulsar el
botn Resetear distancia.
www.moway-robot.com
8.3.3 Luces
En este apartado se controla el encendido y apagado de los cuatro LEDs de
mOway.
8.3.4 Sonido
En este apartado se puede encender, apagar el speaker del robot a una
determinada frecuencia, as como realizar un pitido. Tambin es posible reproducir
notas musicales.
8.3.6 Cmara
Permite activar la cmara de mOway en el canal seleccionado durante un mximo
de 15 segundos. Durante el tiempo de activacin de la cmara se detiene la
comunicacin con mOway, para evitar interferencias. Una vez finalizado este tiempo, la
comunicacin se restablece automticamente.
Para ver las imgenes de la cmara es necesario lanzar el panel de Cmara.
8.4 MowayServer
Gracias a esta aplicacin, el robot Moway puede ser controlado desde un telfono
mvil, una tableta o un ordenador, a travs de comunicacin WiFi. Estos dispositivos
pueden conectarse a la red creada por el robot Moway, al que previamente se ha
conectado el Mdulo Wifi24. Una vez conectados, el robot puede ser controlado desde
el explorador web del dispositivo.
La aplicacin se lanza desde la barra de herramientas.
24
www.moway-robot.com
www.moway-robot.com
9. Simulador
9.1 Introduccin
El simulador de MowayWorld permite probar el funcionamiento de un programa
antes de grabarlo en el robot mOway. De esta forma se puede detectar los posibles
errores que haya en el programa y solucionarlos rpidamente.
El simulador se abre desde la barra de herramientas:
www.moway-robot.com
9.2 Funcionamiento
En el simulador, el usuario puede variar el valor de los sensores del mOway y ver
cmo esto afecta al funcionamiento del robot, en funcin del programa que est siendo
simulado.
Los apartados del robot que pueden visualizarse y controlarse en la simulacin
son los siguientes:
www.moway-robot.com
Valor del
sensor
Blanca
De 0 a 20
Gris
De 21 a 229
Negra
De 230 a 255
Sensores de obstculos
Obstculo a
simular
Valor del
sensor
Obstculo no
detectado
De 0 a 127
Obstculo
detectado
De 128 a 255
www.moway-robot.com
Oscuridad total
Luminosidad intensa
100
Sensor de ruido
Entorno a simular
Silencio
Ruido intenso
100
Acelermetro
Eje del acelermetro
Valor del
acelermetro (g)
Eje X
Eje Y
Eje Z
1.00
www.moway-robot.com
www.moway-robot.com
www.moway-robot.com
Una vez que el bloque Recta ha terminado (el robot habra recorrido 12 cm), el
simulador ejecuta el bloque Luces, en el que se enciende el LED frontal. Una vez
hecho esto, el simulador termina.
www.moway-robot.com
10.
mOway Scratch
10.1 Introduccin
Ahora mOway es tambin compatible con Scratch. La comunicacin entre Scratch
y mOway es bidireccional, de modo que Scratch recibe el valor de los sensores de
mOway y a su vez mOway recibe comandos provenientes de Scratch. Para implementar
esta funcionalidad se hace uso de las conexiones mediante sockets de Scratch para
obtener datos de sensores remotos y de los comandos enviar a todos para enviar
rdenes a mOway. La aplicacin mOway Scratch acta de pasarela de datos entre
Scratch y mOway.
mOway Scratch
Scratch
Robot mOway
10.2 Funcionamiento
La comunicacin mOway Scratch se activa por medio de la aplicacin mOway
Scratch.
www.moway-robot.com
www.moway-robot.com
www.moway-robot.com
9. Pulsar OK.
11. Volviendo a la ventana de Scratch se ver cmo varan los valores de los
sensores de mOway. Al pulsar los cursores del teclado (flechas), el robot
mOway se desplazar.
www.moway-robot.com
2. Asignar un canal diferente a cada robot (en este caso, se elige el canal 4):
www.moway-robot.com
Comando
adelante
atras
izquierda
derecha
mediavuelta
parar
reset(distancia)
adelante(recto)
Descripcin
mOway avanaza recto de forma indefinida,
con una velocidad del 50%.
mOway retrocede recto de forma indefinida,
con una velocidad del 50%.
mOway realiza un giro de 90 hacia la
izquierda.
mOway realiza un giro de 90 hacia la
derecha.
mOway gira media vuelta.
mOway se detiene.
Resetea el contador de distancia total de los
motores.
mOway avanza recto a una velocidad
determinada durante la distancia distancia o
el tiempo tiempo. Si tiempo y distancia
son iguales a cero, mOway avanzar
indefinidamente.
atras(recto)
adelante(izquierda)
Variables
empleadas
-
adelante(derecha)
atras(izquierda)
atras(derecha)
giro(izquierda)
giro(derecha)
ledfrontal(on)
ledfrontal(off)
ledfrontal(parpadeo)
ledfreno(on)
ledfreno(off)
ledfreno(parpadeo)
ledverde(on)
ledverde(off)
ledverde(parpadeo)
ledrojo(on)
ledrojo(off)
ledrojo(parpadeo)
leds(on)
leds(off)
leds(parpadeo)
sonido(on)
sonido(off)
melodia(carga)
melodia(fallo)
encerrado
En la siguiente tabla se muestran la relacin de variables con los valores que pueden
tomar para la correcta ejecucin de los comandos:
Variable
Descripcin
Rango de Valores
distancia
Distancia a recorrer en mm
0 255 mm ( 0 25,5 cm )
frecuencia
0 16000 Hz
radio
Radio de curvatura
rotacion
0 360
eje-rotacion
Eje de rotacin
velocidad
Velocidad de movimiento
30 -100 %
tiempo
Tiempo de movimiento
dcimas de segundos
www.moway-robot.com
En la siguiente tabla se muestran las variables de mOway que podemos leer en Scratch
utilizando el bloque valor del sensor. Por ejemplo, este bloque indicara el valor del
sensor de lnea derecho del robot:
Variable
Descripcin
Rango de Valores
Obstaculos lateral
izquierdo
0 (sin obstculo)
100 (obstculo muy cerca)
Obstaculos central
izquierdo
0 (sin obstculo)
100 (obstculo muy cerca)
Obstaculos central
derecho
0 (sin obstculo)
100 (obstculo muy cerca)
Obstaculos lateral
derecho
0 (sin obstculo)
100 (obstculo muy cerca)
Linea izquierdo
Linea derecho
Luz(R)
0 100%
Distancia
Contador de km en mm
Microfono
Eje-X g
Aceleracin en g en el eje X
-2.0 2.0 g
Eje-Y g
Aceleracin en g en el eje Y
-2.0 2.0 g
Eje-Z g
Aceleracin en g en el eje Z
-2.0 2.0 g
Motor Fin
www.moway-robot.com
0- 100%
0-1
10.5 Prcticas
Para entender mejor la integracin con mOway, dentro del instalador
MowayWorld se incluyen cinco prcticas de ejemplo. Por defecto se encuentran en la
carpeta de proyectos de Scratch: Mis Proyectos -> mOway Robot -> Spanish.
Tambin puede accederse desde el men Inicio -> Todos los programas -> mOway
Pack v3 -> mOway Scratch projects.
10.5.1
Cada vez que pulsamos una de las flechas del teclado, Scratch enviar un
comando de movimiento a mOway. Por ejemplo, al pulsar la flecha arriba, el
comando enviado es adelante. Esto hace que el robot avance. Si se pulsa la flecha
abajo, el robot se para.
www.moway-robot.com
Vers que el robot en Scratch copia los movimientos del robot real.
10.5.2
El programa consiste activar los LEDs cada vez que se pulse la tecla
correspondiente. Las flechas arriba y abajo controlan los LEDs frontal y de freno.
Las flechas izquierda y derecha controlan los LEDs verde y rojo.
Por ejemplo, al pulsar la tecla arriba, lo primero que se hace es
cambiar el dibujo del robot en el que el LED frontal est encendido.
Despus se enva al robot real el comando para encender el LED frontal.
Despus se enva el comando de apagar el LED de freno.
www.moway-robot.com
La parte del programa, que controla los LEDs rojo y verde, es muy similar a lo
explicado antes. Por ltimo, al pulsar la tecla espacio el dibujo del robot vuelve a ser
como el inicial y todos los LEDs del robot se apagan.
10.5.3
Sigue la lnea
www.moway-robot.com
seguirlinea(izquierda)
seguirlinea(derecha)
www.moway-robot.com
Euskera
www.moway-robot.com
Comando
aurrera
atzera
ezkerrera
eskuinera
biraegin
gelditu
hasieratu(distantzia)
aurrera(zuzen)
Descripcin
mOway avanaza recto de forma indefinida,
con una velocidad del 50%.
mOway retrocede recto de forma
indefinida, con una velocidad del 50%.
mOway realiza un giro de 90 hacia la
izquierda.
mOway realiza un giro de 90 hacia la
derecha.
mOway gira media vuelta.
mOway se detiene.
Resetea el contador de distancia total de los
motores.
mOway avanza recto a una velocidad
determinada durante la distancia
distantzia o el tiempo denbora. Si
denbora y distanztia son iguales a cero,
mOway avanzar indefinidamente.
atzera(zuzen)
aurrera(ezker)
aurrera(eskuin)
www.moway-robot.com
Variables
empleadas
-
atzera(ezker)
atzera(eskuin)
biratu(ezker)
biratu(eskuin)
aurreleda(piztu)
aurreleda(amatatu)
aurreleda(dirdir)
balaztaleda(piztu)
balaztaleda(amatatu)
balaztaleda(dirdir)
ledberdea(piztu)
ledberdea(amatatu)
ledberdea(dirdir)
ledgorria(piztu)
ledgorria(amatatu)
ledgorria(dirdir)
ledak(piztu)
ledak(amatatu)
ledak(dirdir)
soinua(piztu)
soinua(amatatu)
melodia(kargatua)
melodia(galdu)
gartzelaturik
bultzada
jagole
marrajarraitu(ezker)
marrajarraitu(eskuin)
En la siguiente tabla se muestran la relacin de variables con los valores que pueden
tomar para la correcta ejecucin de los comandos:
Variable
Descripcin
Rango de Valores
distantzia
maiztasuna
radioa
Radio de curvatura
biraketa
biraketa-ardatza
Eje de rotacin
abiadura
Velocidad de movimiento
30 -100 %
denbora
www.moway-robot.com
En la siguiente tabla se muestran las variables de mOway que podemos leer en Scratch
utilizando el bloque sentsorean balioa. Por ejemplo, este bloque indicara el valor del
sensor de lnea derecho del robot:
Variable
Descripcin
Rango de Valores
0 (sin obstculo)
100 (obstculo muy cerca)
0 (sin obstculo)
100 (obstculo muy cerca)
0 (sin obstculo)
100 (obstculo muy cerca)
0 (sin obstculo)
100 (obstculo muy cerca)
Ezker marra
Eskuin marra
Argi(R)
0 100%
Distantzia
Contador de km en mm
Mikrofonoa
X-Ardatza g
Aceleracin en g en el eje X
-2.0 2.0 g
Y-Ardatza g
Aceleracin en g en el eje Y
-2.0 2.0 g
Z-Ardatza g
Aceleracin en g en el eje Z
-2.0 2.0 g
Motore amaiera
www.moway-robot.com
0- 100%
0-1
www.moway-robot.com