hoja de datos Servos

Transcripción

hoja de datos Servos
SERVOS v1.0
INTRODUCCIÓN
El módulo Servos v1.0 está diseñado para controlar diez servomotores de forma
independiente, gobernado por un microcontrolador PIC18F previamente programado, es
capaz de recibir la información de control vía serial. En este manual conoceremos algunos
ejemplos básicos del módulo Servos v1.0 así como las instrucciones y características
principales.
La secuencia en la que se basarán los módulos PYC para la comunicación es la siguiente:
MÓDULO
COMANDO
INSTRUCCIÓN
DATO_X
Todos los módulos deberán de enviar una respuesta al término de cada cadena de
instrucciones que reciba, ya sea de configuración, escritura o lectura. Este dato siempre
será el cero en binario, es decir:
“0000 0000”
Para utilizarlos debemos de recordar que la información que se envié será en ASCCI y la
información que esté respondiendo el módulo será en forma de BYTE.
Cada módulo estará representado por 4 Bytes para identificación particular. En la tabla 1
se muestran las instrucciones de configuración, comandos de lectura y escritura para los
módulos PYC versión 1.0.
Los comandos para cada módulo serán de un solo byte.
C - Configuración
W - Escritura
R - Lectura
COMANDO
MOTx
FQ
STP1
SEVx
_LCD
M1
M2
D1
D1
SC
PS
CD
Rx
Lx
Px
Wx
Ux
DC
IC
BC
FQ
CONFIGURACIÓN
C
BC
BC
BC
ESCRITURA
W
L1
L2
R1
R2
LECTURA
R
-
L1
R0
R1
R2
R3
BC
00xx…xx
-
Sx
R1
-
TEMP
40xx..xx
-
-
T
Tabla 1. Instrucciones módulos PYC v1.0.
Página 1 de 12
www.ingenieriaenserie.com
Junio 2012 –DCT0006
SERVOS v1.0
CONFIGURACIÓN DE COMUNICACIÓN
Los módulos PYC v1.0 estarán configurados previamente para operar a 9600 Baudios, en
la tabla 2 se presentan las distintas velocidades a las que el módulo podrá operar.
INSTRUCCIÓN
1
2
3
4
VELOCIDAD DE COMUNICACIÓN
(BAUDIOS)
9600
10417
19200
57600
Tabla 2. Configuraciones de comunicación Servos v1.0.
Un ejemplo para cambiar la velocidad de comunicación en el módulo es:
BC4
De esta manera estaremos configurando el módulo a 57600 Baudios, recordemos que
cuando un módulo es configurado a una velocidad mayor o menor de comunicación
dejara de entender las instrucciones hasta que nuestro dispositivo maestro comience a la
misma velocidad.
Para que la configuración de velocidad se lleve a cabo el módulo no deberá de ser
desconectado ya que este mismo cuando es alimentado operará a 9600.
Página 2 de 12
www.ingenieriaenserie.com
Junio 2012 –DCT0006
SERVOS v1.0
INSTRUCCIONES SERVOS v1.0
Este módulo en particular tiene la opción controlar y configurar los diferentes anchos de
pulso, que nos ayudará a manejar cualquier servomotor analógico sin importar la marca.
En la tabla 2 se presentan anchos de pulso de diversos servomotores.
FABRICANTE
Power HD
Futaba
Hitech
Graupner/Jr
Multiplex
Robbe
Simprop
Vigor
DURACION DE PULSO (ms)
MÍNIMA NEUTRAL MÁXIMA
0°
90°
180°
0.9
1.5
2.2
0.9
1.5
2.1
0.9
1.5
2.1
0.8
1.5
2.2
1.05
1.6
2.15
0.65
1.3
1.95
1.2
1.7
2.2
0.9
1.5
2.1
COLOR DE LOS CABLES
FREC.
(Hz)
POSITIVO
NEGATIVO
CONTROL
50
50
50
50
40
50
50
50
Rojo
Rojo
Rojo
Rojo
Rojo
Rojo
Rojo
Rojo
Marrón
Negro
Negro
Marrón
Negro
Negro
Azul
Marrón
Naranja
Blanco
Amarillo
Naranja
Amarillo
Blanco
Negro
Naranja
Tabla 2. Características técnicas de algunos servos.
Como se pude observar en la tabla la mayoría de los servomotores analógicos cumplen
con pulsos estándar como los servos Futaba y los Hitech. Con ayuda de la tabla 2
podremos partir para ubicar el servomotor que estemos utilizando y así configurar nuestro
módulo Servos v1.0 adecuadamente.
En la imagen 1 tenemos nuestro módulo, en él podemos observar que se encuentran
divididos en 2 grupos de 5, y esto es debido a que en cada grupo se podrá configurar el
mínimo pulso y la diferencia total del pulso.
Imagen 1. Módulo Servos v1.0.
La configuración que el módulo tendrá previamente programada será con un pulso
mínimo de 1.3 ms y con una diferencia de 0.4 ms, lo que nos da un pulso total de 1.7 ms.
En la tabla 3 presentamos los distintos pulsos configurables.
Página 3 de 12
www.ingenieriaenserie.com
Junio 2012 –DCT0006
SERVOS v1.0
CÓDIGO DE
MÍNIMO
DIFERENCIA
IDENTIFICACIÓN
ms
ms
0
0.3
0.4
1
0.35
0.5
2
0.4
0.6
3
0.45
0.7
4
0.5
0.8
5
0.55
0.9
6
0.6
1
7
0.65
1.1
8
0.7
1.2
9
0.75
1.3
10
0.8
1.4
11
0.85
1.5
12
0.9
1.6
13
0.95
1.7
14
1
1.8
15
1.05
1.9
16
1.1
2
17
1.15
2.1
18
1.2
2.2
19
1.25
2.3
20
1.3
2.4
Tabla 3. Mínimos y diferencias configurables del módulo servos v1.0
En la tabla 3 podremos ubicar los pulsos mínimos y diferencia que debemos configurar
para trabajar con nuestro servo. En la imagen 2 se muestran tres ejemplos de
posicionamiento de un servomotor estándar.
Imagen 2. Posicionamientos de un servomotor.
Observando la imagen tenemos que el pulso mínimo tiene una duración de 0.5 ms y ubica
el servomotor a 0°, para ubicar el servomotor a 90° el pulso será de 1.5 ms y para mover
el servomotor a 180° tendremos que mandarle un pulso de 2.5 ms. Teniendo los pulsos
mínimo y máximo podremos determinar la diferencia, que para este caso es de 2 ms.
Para configurar el módulo tenemos las siguientes instrucciones presentadas en la tabla 4.
Página 4 de 12
www.ingenieriaenserie.com
Junio 2012 –DCT0006
SERVOS v1.0
INSTRUCCIÓN
M1
M2
D1
D2
SC
PS
DESCRIPCIÓN
Mínimo 1. Servo A-E.
Mínimo 2. Servo F-J.
Diferencia 1. Servo A-E.
Diferencia 2. Servo F-J.
Salvar configuración.
Salvar posición.
Tabla 4. Instrucciones de configuración Servos v1.0.
Para indicarle al módulo que configure los pulsos mínimos para el ejemplo anterior se
realizará de la siguiente manera:
SEV1CM14
Mediante esta cadena de caracteres que son enviados de forma serial, podemos
configurar el pulso mínimo para los servos A-E. Como podemos observar, la instrucción
está dividida en cuatro partes como se describe:
SEV1
C
M1
4
Hace referencia al módulo.
Es el comando de configuración.
Es una instrucción exclusiva del módulo localizada en la tabla 4.
Indicamos que será el pulso con número de identificación 4 ubicado en la tabla 3.
Debemos de tener en cuenta que el módulo Servos v1.0 debe tener un retardo mínimo de
250ms para que comience la comunicación. También si vamos a utilizar servomotores de
una sola marca, tenemos la opción de salvar la configuración con la instrucción SC
localizada en la tabla 4. El siguiente ejemplo muestra la secuencia con la que podemos
configurar mínimos y diferencia, seguido de la instrucción de guardar configuración.
SEV1CM15
SERVOS A-E
SEV1CD16
SEV1CM210
SERVOS F-J
SEV1CD210
SEV1CSC
Con esta secuencia tendremos configurado nuestro módulo de la siguiente manera:
Servos A-E
Pulso mínimo de 0.55 ms y diferencia de 1 ms. Lo que nos dará un pulso
máximo de 1.55 ms.
Servos F-J
Pulso mínimo de 0.8 ms y diferencia de 1.4 ms. Lo que nos dará un pulso
máximo 2.2 ms.
Página 5 de 12
www.ingenieriaenserie.com
Junio 2012 –DCT0006
SERVOS v1.0
Con la última instrucción indicada al módulo se estará guardando la configuración, por lo
que solo será necesario hacer una sola configuración inicial y después podremos utilizar
el módulo sin problema alguno.
También tenemos la opción de PS (Salvar posición), que nos será muy útil para aquellas
aplicaciones en donde se requiera poner los servos en una posición inicial, de igual forma
se podrá guardar la posición una sola vez y el módulo cuando es prendido estará
mandando los servos a su posición original. El siguiente ejemplo muestra cómo podemos
mover los servos y también como se guardara la posición inicial.
SEV1WSA100
SEV1WSB95
SEV1WSC85
SEV1WSF30
SEV1WSJ5
SEV1CPS
Mediante esta secuencia estaremos posicionando el servo A en 100°, el servo B en 95°, el
servo C en 85°, el servo F en 30° y por último el servo J en 5°. La instrucción SEV1CPS
estará configurando al módulo para utilizar estas posiciones como las iniciales de modo
que al prender el módulo inmediatamente estarán moviéndose los servos a su respectiva
posición.
Página 6 de 12
www.ingenieriaenserie.com
Junio 2012 –DCT0006
SERVOS v1.0
SOFTWARE PYC
C Y OTROS EJEMPLOS
En la página www.ingenieriaenserie.com o con tu distribuidor podrás
rás encontrar
información relevante acerca de los módulos q
que
ue desees usar, así mismo códigos de
ejemplo y un software para poder realizar tus proyectos con los módulos P
PYC.
C.
La imagen 3 muestra el software PY
PYC, mediante ell cual y con ayuda de un FTDI v1.0
podremos controlar los módulos desde nuestro ordenador.
Imagen 3
3. Software PYC SERVOMOTORES.
En la imagen 3 podemos observar las barras de SA hasta ST, que son nombres de
identificación que reciben los servos, en el caso de el módulo Servos v1.0 solo
so estaremos
manejando los servos A hasta J. También en la parte inferior tenemos la configuración de
los mínimos y diferencias configurables para cada grupo de servomotores. De esta
manera podemos probar y controlar los servomotores desde nuestro ordenador.
ordenado
El siguiente código es un sencillo ejemplo para la plataforma Arduino.
void setup()
{
Serial.begin(9600);
SALVAR_CONFIGURACION();
Página 7 de 12
www.ingenieriaenserie.com
Junio
o 2012 –DCT0006
SERVOS v1.0
}
void loop()
{
Serial.println("SEV1WSA0");// Servo A lo posicionamos a 0°
Serial.println("SEV1WSJ0");// Servo J lo posicionamos a 0°
delay(2500);
Serial.println("SEV1WSA180");// Servo A lo posicionamos a 180°
Serial.println("SEV1WSJ180");// Servo J lo posicionamos a 0°
delay(2500);
Serial.println("SEV1WSA90");// Servo A lo posicionamos a 90°
Serial.println("SEV1WSJ90");// Servo J lo posicionamos a 90°
delay(2500);
Serial.println("SEV1WSA50");// Servo A lo posicionamos a 50°
Serial.println("SEV1WSJ50");// Servo J lo posicionamos a 50°
delay(2500);
}
void SALVAR_CONFIGURACION()// Rutina para salvar configuración
{
delay(500);
Serial.println("SEV1CM18");
Serial.println("SEV1CM28");
Serial.println("SEV1CD111");
Serial.println("SEV1CD211");
Serial.println("SEV1CSC");
}
De esta forma podemos probar configuraciones básicas y movimientos para nuestros
servomotores. Recordemos que arduino es una plataforma fácil de operar con grandes
aplicaciones y esta ocasión les presentamos una más para implementar a gusto de
ustedes.
Página 8 de 12
www.ingenieriaenserie.com
Junio 2012 –DCT0006
SERVOS v1.0
Es importante resaltar que los módulos están diseñados para operar bajo distintas
plataformas de programación. En el siguiente ejemplo está diseñado para trabajar en
lenguaje ensamblador y en específico para PIC18F, que fue implementado para el
Entrenador v1.0. La librería se encuentra disponible en el sitio web, en ella podremos
encontrar la opción para generar retardos exactos de mili segundos y segundos. Se ha
diseñado para operar correctamente con los módulos por lo cual la comunicación serie
estará a cargo de la librería.
SERVOMOTOR V1.0
SEVXWX
Registro AUXILIAR_PyC
Bit 7
1 = Placa de 20 servomotores.
Bit 6
No importa.
Bit 5
No importa.
Bit 4 - 0
Numero del servo que se va a mover.
0 = Placa de 10 servomotores.
Registro DATO_PyC_L
Contiene los grados que se va a mover el servo.
Ejemplo 1
Selecciono la placa de 20 servos, el servo 17(Q) y lo muevo a 90°.
CLRF
AUXILIAR_PyC
BSF
AUXILIAR_PyC,7
MOVLW .17
ADDWF
AUXILIAR_PyC,F
MOVLW .90
MOVWF DATO_PyC_L
CALL
SEVXWX
Ejemplo 2
Selecciono la placa de 10 servos, el servo 9(Q) y lo muevo a 180°.
CLRF
AUXILIAR_PyC
MOVLW .9
ADDWF
AUXILIAR_PyC,F
MOVLW .180
MOVWF DATO_PyC_L
CALL
SEVXWX
Página 9 de 12
www.ingenieriaenserie.com
Junio 2012 –DCT0006
SERVOS v1.0
SEVXCX
Registro AUXILIAR_PyC
Bit 7
1 = Placa de 20 servomotores.
0 = Placa de 10 servomotores.
Bit 6
No importa.
Bit 5
No importa.
Bit 4
1 = Salvar Configuración.
Bit 3
1 = Salvar Posición.
Bit 2
1 = Diferencia.
0 = Mínimo.
Bit 1 - 0
Selección del intervalo a modificar.
Registro DATO_PyC_L
Contiene el código de identificación de los diferentes pulsos posibles.
Ejemplo 1
Selecciono el módulo de 10 servos para configurar el mínimo del 1 intervalo a 1.3ms.
CLRF
AUXILIAR_PyC
BCF
AUXILIAR_PyC,7
;PLACA SERVOS 10
BCF
AUXILIAR_PyC,2 ;CONFIGURO MíNIMO
MOVLW .1
;DE LA SECCION 1
ADDWF
AUXILIAR_PyC
MOVLW .20
;A 1.3ms
MOVWF DATO_PyC_L
CALL
SEVXCX
Ejemplo 2
er
Selecciono el módulo de 10 servos para configurar la diferencia del 1 intervalo a 4ms.
CLRF
AUXILIAR_PyC
BCF
AUXILIAR_PyC,7
;PLACA SERVOS 10
BSF
AUXILIAR_PyC,2 ;CONFIGURO DIFERENCIA
MOVLW .1
;DE LA SECCION 1
ADDWF
AUXILIAR_PyC
MOVLW .0
;A .4ms
MOVWF DATO_PyC_L
CALL
SEVXCX
Página 10 de 12
www.ingenieriaenserie.com
Junio 2012 –DCT0006
SERVOS v1.0
ESPECIFICACIONES DEL MÓDULO SERVOS v1.0
El módulo está integrado por un microcontrolador de la familia MICROCHIP de la gama
18F, y las dimensiones son representadas en la imagen 4.
Imagen 4. 3D y medidas del módulo Servos v1.0.
Como podemos observar en la imagen 4, tenemos los pines de conexión los cuales
tendremos que conectar como se indica en la tabla 5.
PIN DEL MÓDULO
TX
RX
VCC
3.3V
GND
VIN
GND
PIN DE NUESTRO CIRCUITO
RX De nuestro
microcontrolador ó PC.
TX De nuestro
microcontrolador ó PC.
VCC De nuestro circuito
preferentemente de 4.5V a
5.5V.
3.3V No es necesario.
GND Tierra de nuestro
circuito.
Voltaje de alimentación de los
servomotores. De 5V a 18V.
Tierra de nuestra fuente de
alimentación de servomotores.
Tabla 5. Conexión del módulo Servos v1.0.
Página 11 de 12
www.ingenieriaenserie.com
Junio 2012 –DCT0006
SERVOS v1.0
HOJAS DE DATOS
Las hojas de especificaciones de los componentes que integran éste módulo, las
podemos localizar en las siguientes direcciones:
-
PIC18F13K22. http://ww1.microchip.com/downloads/en/DeviceDoc/41365E.pdf
Página 12 de 12
www.ingenieriaenserie.com
Junio 2012 –DCT0006

Documentos relacionados