Anda di halaman 1dari 18

BENEMRITA UNIVERSIDAD AUTNOMA DE PUEBLA

FACULTAD DE CIENCIAS DE LA ELECTRNICA


REA DE SISTEMAS DIGITALES DESARROLLO DE SISTEMAS BASADOS EN MICROCONTROLADORES Y DSPS

PRCTICA #3
Control del servomotor a travs del teclado ps2
ALUMNOS:
Bez Garca Jos Flores Barrientos Pedro Romero Marcelo Juan Carlos

CATEDRTICO: M.C. RODRIGO LUCIO MAYA RAMREZ

Benemrita Universidad Autnoma de Puebla Facultad de Ciencias de la Electrnica

Prctica 3 Control del servomotor a travs del teclado ps2

1. Introduccin
En esta prctica se hace referencia bsicamente al funcionamiento del micro controlador 18f4550, como anteriormente se vino haciendo, se controla otro dispositivo a travs del mismo. Ahora se controlara un servomotor a travs del pic y un teclado para mandar las instrucciones. Un Servo es un dispositivo pequeo que tiene un eje de rendimiento controlado. Este puede ser llevado a posiciones angulares especficas al enviar una seal codificada. Con tal de que una seal codificada exista en la lnea de entrada, el servo mantendr la posicin angular del engranaje. Cuando la seala codificada cambia, la posicin angular de los piones cambia. En la prctica, se usan servos para posicionar superficies de control como el movimiento de palancas, pequeos ascensores y timones. Ellos tambin se usan en radio control, tteres, y por supuesto, en robots. Los Servos son sumamente tiles en robtica. Los motores son pequeos, cuando usted observa la foto de arriba, tiene internamente una circuitera de control interna y es sumamente poderoso para su tamao. Un servo normal o Standard como el HS-300 de Hitec tiene 42 onzas por pulgada o mejor 3kg por cm. de torque que es bastante fuerte para su tamao. Tambin potencia proporcional para cargas mecnicas. Un servo, por consiguiente, no consume mucha energa. Se muestra la composicin interna de un servo motor en el cuadro de abajo. Podr observar la circuitera de control, el motor, un juego de piones, y la caja. Tambin puede ver los 3 alambres de conexin externa. Uno es para alimentacin Vcc (+5volts), conexin a tierra GND y el alambre blanco es el alambre de control.

2. Objetivos
Conocer el funcionamiento del servomotor ( periodo y tiempos para obtener una posicin) Conocer el funcionamiento del teclado ps2. Ser capaz de utilizar el micro controlador 18f4550 para poder controlar la posicin de un servomotor a travs de un teclado (ps2) adems de mostrar su posicin en grados a travs de un lcd. Uso del lenguaje c para programar un pic.

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

Prctica 3 Control del servomotor a travs del teclado ps2

3. Especificaciones del Diseo

En la presente prctica utilizaremos el simulador Proteus 7 de Labcenter Electronics, y el PIC 18 Simulator IDE de OshonSoft para el desarrollo de pruebas, antes de bajar al PIC el Firmware resultante. Se consultar el datasheet del PIC18F4550 para la caracterizacin. Utilizaremos el datasheet de la LCD 16j2A para determinar su modo de operacin. Se consultar el datasheet del servomotor para su ptimo uso. Se consultar el datasheet del teclado ps2 para la caracterizacin. Investigar sobre el uso del programa ccs para la programacin del pic.

Dicho de otro modo el primer punto a esclarecer es el cmo funciona el teclado ps2 para poder mandar el cdigo con el cual identifica una cifra el cual ser la posicin de un servomotor, para posteriormente mediante la LCD se muestre la esta.

4. Tareas previas a la Prctica


Funcionamiento de la LCD Investigar que es un teclado ps2 Funcionamiento de un servomotor

5. Procedimiento
Teniendo las especificaciones, caractersticas y funcionamiento de los dispositivos principales pasamos al procedimiento que se sigui en la elaboracin de la prctica. Bsicamente se dividi la prctica en partes para facilitar el trabajo. Primero se realiz un programa en el lenguaje c para poder mover el servomotor a travs del pic controlndolo con un push botn, sencillamente dos posiciones 0 y 180, mostrando la posicin en la que se encuentra.

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

Prctica 3 Control del servomotor a travs del teclado ps2

Se presentara el cdigo que se utiliz en esta prctica del servomotor

#use delay(clock=4000000) #define use_portb_lcd TRUE #include <lcd.c> int16 ta, tb, posicion; void main() { set_tris_a(0x02); set_tris_b(0x0); set_tris_d(0x01); output_a (0); // saca un nivel bajo de salida en los puertos output_b (0); output_d (0); lcd_init(); while(true) { switch (input(PIN_D0)){ case 0:{ posicion=0; ta=(posicion*10)+200; tb=200000-ta; output_d(0x02); delay_us(ta); output_d(0x00); delay_us(tb); break;} case 1:{ posicion=180; ta=(posicion*10)+200; tb=200000-ta; output_d(0x02); delay_us(ta); output_d(0x00); delay_us(tb); break;} break; default: break; } lcd_gotoxy(5,1); printf(lcd_putc, "Posicion = ");

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

Prctica 3 Control del servomotor a travs del teclado ps2

lcd_gotoxy(6,2); printf(lcd_putc, " %Lu ",posicion); } } En este cdigo podemos observar que una vez que podamos obtener el valor de la posicin a travs del teclado ps2 entonces ser asignado a la variable posicion y una vez que este se tenga a travs de una formula se el programa realizara la conversin necesaria para determinar el valor de los tiempos en alto y en bajo manteniendo el periodo.

Despus se pretenda hacer un cdigo con el cual se detectara el un nmero con el uso del teclado ps2. El cdigo que se utilizo fue el siguiente:

#use delay(clock=4000000) int16 ta, tb, posicion, dato; int enter, comprueba; unsigned char const shifted[11][2] = { 0x70,'0', 0x69,'1', 0x72,'2', 0x7a,'3', 0x6B,'4',0x73,'5', 0x74,'6', 0x6c,'7', 0x75,'8', 0x7d,'9', }; void lee_cadena(){ for (delay_us(5); PIN_A1 == 0; delay_us(5);) for (delay_us(5); PIN_A0 == 1;delay_us(5);) lee_8(); lee_3(); } void lee_b(){ for (delay_us(5); PIN_A1 == 0; delay_us(5);) for (delay_us(5); PIN_A0 == 1;delay_us(5);) } void lee_8(){ }

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

Prctica 3 Control del servomotor a travs del teclado ps2

void lee_3(){ } void fo(){ } void une_cadenas(){ } void servo(posicion){ ta=(posicion*10)+200; tb=200000-ta; output_b(0x02); delay_us(ta); output_b(0x00); delay_us(tb); } void main(void) { set_tris_a(0x02); set_tris_b(0x0); set_tris_d(0x01); posicion=0; servo(posicion); while(true) { delay_us(30); switch (input(PIN_A0)){ case 0:{ switch (input(PIN_A1)){ case 0:{ for (fo(); comprueba == 1; lee_cadena();) une_cadenas(dato); posicion=dato; servo(posicion);

} } case 1:{

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

Prctica 3 Control del servomotor a travs del teclado ps2

delay_us(5); } break; default: break;} break;} case 1:{ delay_us(30); break;} break; default: break; } } } Como se puede apreciar el cdigo no est completo aunque se usaron varios con los cuales no se lograron los resultados deseados.

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

Prctica 3 Control del servomotor a travs del teclado ps2

6. Metodologa de Diseo
Se utilizaron diferentes herramientas para el diseo del circuito, los cuales cada uno de ellos tienen distintos funcionamientos. Se utiliz una fuente de 5v para alimentar el circuito, un lcd para mostrar la posicin del servomotor, el teclado (ps2) para controlar la posicin del servomotor, el micro controlador para hacer el funcionamiento del dispositivo, un servomotor el cual es lo que se va a controlar. Antes de entrar directamente a las conexiones del pic con el servo y el el teclado primero explicaremos el funcionamiento de los mismos.

Cmo trabaja un servo?


El motor del servo tiene algunos circuitos de control y un potencimetro (una resistencia variable) esta es conectada al eje central del servo motor. Este potencimetro permite a la circuitera de control, supervisar el ngulo actual del servo motor. Si el eje est en el ngulo correcto, entonces el motor est apagado. Si el circuito chequea que el ngulo no es el correcto, el motor girar en la direccin adecuada hasta llegar al ngulo correcto. El eje del servo es capaz de llegar alrededor de los 180 grados. Normalmente, en algunos llega a los 210 grados, pero vara segn el fabricante. Un servo normal se usa para controlar un movimiento angular de entre 0 y 180 grados. Un servo normal no es mecnicamente capaz de retornar a su lugar, si hay un mayor peso que el sugerido por las especificaciones del fabricante. La cantidad de voltaje aplicado al motor es proporcional a la distancia que ste necesita viajar. As, si el eje necesita regresar una distancia grande, el motor regresar a toda velocidad. Si este necesita regresar slo una pequea cantidad, el motor correr a una velocidad ms lenta. A esto se le llama control proporcional. El cable de control se usa para comunicar el ngulo. El ngulo est determinado por la duracin de un pulso que se aplica al alambre de control. A esto se le llama PCM Modulacin codificada de Pulsos. El servo espera ver un pulso cada 20 milisegundos

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

Prctica 3 Control del servomotor a travs del teclado ps2

(.02 segundos). La longitud del pulso determinar los giros de motor. Un pulso de 1.5 ms., por ejemplo, har que el motor se torne a la posicin de 90 grados (llamado la posicin neutra). Si el pulso es menor de 1.5 ms., entonces el motor se acercar a los 0 grados. Si el pulso es mayor de 1.5ms, el eje se acercar a los 180 grados. Como se observa en la figura, la duracin del pulso indica o dictamina el ngulo del eje (mostrado como un crculo verde con flecha). Ntese que las ilustraciones y los tiempos reales dependen del fabricante de motor. El principio, sin embargo, es el mismo. Para los Hitec: 0.50 ms = 0 grados, 1.50 ms = 90 grados y 2.5 ms = 180 grados.

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

Prctica 3 Control del servomotor a travs del teclado ps2

Caractersticas del teclado (ps2)


Un teclado PS/2 de 104 teclas para PC es un dispositivo razonablemente inteligente. Esto quiere decir que l mismo se encarga de la parte hardware del rastreo de teclas, de evitar los insufribles rebotes y de transmitirnos, mediante una trama perfectamente establecida, de los resultados de nuestras manipulaciones sobre sus teclas. El teclado PS/2 tiene un mapa de teclas a las que asigna un cdigo, de uno o dos bytes, para cada una de ellas y que son los cdigos que nos va a transmitir para indicarnos que se est pulsando una tecla determinada. A estos cdigos les vamos a llamar cdigos de rastreo de teclado. Ms abajo os muestro una imagen de un teclado estndar donde se muestran los cdigos de rastreo de todas y cada una de las teclas:

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

10

Prctica 3 Control del servomotor a travs del teclado ps2

El teclado PS/2 enva el cdigo de rastreo asociado a una tecla al ser sta pulsada, tantas veces como sea necesario si se mantiene pulsada con una cadencia tal como indique su tiempo de repeticin, que es programable, y el mismo cdigo de rastreo con el prefijo del byte F0h al ser soltada, tambin conocido como Break Code. Por ejemplo: Para conseguir la letra G Mayscula debemos pulsar la tecla Shift y mientras la mantenemos pulsada, pulsar la tecla G, soltar la tecla G y soltar la tecla Shift. Esa secuencia de pulsaciones nos va a hacer que el teclado transmita la siguiente secuencia de bytes: Pulsar Shift -> 12h, Pulsar "G" -> 34h, Soltar "G" -> F0h 34h y soltar Shift -> F0h 12h o escribiendo solo los bytes que vamos a recibir: 1h, 34h, F0h, 34h, F0h, 12h Ah queda eso. Nuestro cometido va a ser recibir e interpretar esta secuencia de bytes y actuar en consecuencia. El teclado PS/2 tambin admite comandos. Dispone de funciones build-in que podemos disparar mediante el envo del comando correspondiente. Abajo muestro una tabla con los comandos disponibles que podemos enviarle a nuestro teclado. (Nosotros, en este proyecto no vamos a utilizarlos, pero ah quedan por si alguno de mis amables visitantes desea ampliar la funcionalidad del mismo).

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

11

Prctica 3 Control del servomotor a travs del teclado ps2

El teclado y el interfaz de teclado estn fsicamente conectados a travs del cable del teclado. Est formado por un grupo de 5 cables con una malla de proteccin contra interferencias. La intensidad que el interfaz es capaz de suministrar al teclado varia de una placa base a otra, pero debe ser suficiente para alimentar un teclado normal (del orden de cientos de mA; un valor tpico seria 300 mA). Las seales clock y data son usadas para la comunicacin entre host y teclado en colector abierto.|

Lnea VCC

Descripcin Alimentacin del teclado. +5V.

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

12

Prctica 3 Control del servomotor a travs del teclado ps2

GND CLOCK DATA N/C

Masa del teclado. 0 V. Linea de reloj (CLK, CTS). TTL. Colector abierto. Lnea de datos (RxD, TxD, RTS). TTL colector abierto. No conectado. Reset en algunos teclados viejos.

Protocolo de comunicacin PS/2:

El teclado PS/2 se comunica mediante un Protocolo Serie Sncrono. Utiliza, por lo tanto, una seal de Clock que ndica cuando estn disponibles los correspondientes bits en la seal de Data. En reposo la seal de Clock est a nivel alto; a cada pulso a nivel bajo corresponde un pulso a nivel alto o bajo en la seal de Data, que se traducen respectivamente como bits 0 1 del dato a transmitir.

La trama completa se compone de 11 bits. Siendo el primero un bit de Start, a continuacin los 8 bits del Dato a transmitir envindose primero el LSB ( bit menos significativo), el dcimo es el de paridad (usa la Impar, u Odd en Ingls) y por ltimo un bit de ACK o Stop. Abajo puede verse un cronograma de esta trama de comunicacin PS/2 Teclado.

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

13

Prctica 3 Control del servomotor a travs del teclado ps2

Donde los tiempos son:

7. Simulacin del Diseo


Prcticamente no nos fuimos directamente a conectar los cables y todo por el estilo despus de hacer el programa en c para hacer el funcionamiento del pic, ya que sabemos que se nos pueden pasar algunos errores sin darnos cuenta por, por lo mismo tuvimos que ir haciendo simulaciones para ir viendo los errores que tenamos, as ahorrarnos el trabajo con las conexiones fsicas. Las simulaciones fueron realizas en el isis profesional. Hasta que en las simulaciones funciona el circuito procedemos a conectar los cables y dispositivos fsicamente para asi estar seguros de que va a funcionar. Algunas veces no es suficiente con las simulaciones, ya que en ellas funciona mientras que fsicamente sigue con los errores, ah tenemos que buscar el error ya desde el circuito fsico tomando en cuenta hasta la fuente de alimentacin as como el protoboard.

A continuacin se mostraran algunas imgenes de las simulacines que se realizaron en esta prctica:

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

14

Prctica 3 Control del servomotor a travs del teclado ps2

Figura. Simulacin del circuito sin teclado ps2

Figura. Simulacin del circuito sin teclado ps2 oprimiendo el push buttn para la segunda posicin

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

15

Prctica 3 Control del servomotor a travs del teclado ps2

Figura. Simulacin del circuito con el teclado ps2

En la ltima simulacin se observa que solo se puede colocar el conector ps2 mas no se puede simular la funcin del teclado por lo cual se prob solo de forma fsica si el teclado funcionaba o no.

8. Implementacin del Diseo


El circuito fsico que se present en la simulacin anterior correspondiente es el siguiente:

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

16

Prctica 3 Control del servomotor a travs del teclado ps2

Informacin breve del PIC18f4550

10. Discusin de Resultados


En esta prctica observamos que en caso de no calcular bien los tiempos del servomotor en la parte prctica este no funciona de forma adecuada ya que puede que este comienzo a vibrar o no se ponga en la posicin deseada.

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

17

Prctica 3 Control del servomotor a travs del teclado ps2

11. Conclusiones
El uso de microcontroladores es de vital importancia para el desarrollo de las industrias, en el desarrollo de los procesos autnomas, as como el control totalmente industrial, esto quiere decir que todo est automatizado y que una sola persona est encargada de checar cada uno de los procesemos. En el transcurso del tiempo que estuvimos en el curso, pudimos darnos cuenta de que estos ingeniosos microchips son de gran utilidad para desarrollar un proyecto sea cual sea su rea, principalmente en la industria, ya que se trata de tener un mejor rendimiento en el trabajo y con pocas herramientas, en este caso un microchip puede hacer varias tareas de las cuales puede sustituir muchos dispositivos y herramientas, as como el tiempo y el trabajo invertido en el proyecto, En cuanto a la economa, es muy viable realizar proyectos de gran importancia utilizando estos microcontroladores.

14. Referencias
MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS. 3 EDICION, PALACIOS MUNICIO, ENRIQUE Microcontroladores: Fundamentos y aplicaciones con PIC; F. E. Valds Prez, R. Palls Areny; Alfaomega; 2007. Microcontroladores PIC: Diseo prctico de aplicaciones, 2 parte; J.M. Angulo Usategui, S. Romero Yesa, I. Angulo Martnez; McGraw Hill; 2 edicin; 2006. HD44780U (LCD-II) (Dot Matrix Liquid Crystal Display Controller/Driver) HITACHI MICROCHIP DATA SHEET PIC18F4550

Benemrita Universidad Autnoma de Puebla rea de Sistemas Digitales

Facultad de Ciencias de la Electrnica

18

Anda mungkin juga menyukai