usac-arqui1 practica no.2

37
Universidad de San Carlos de Guatemala Facultad de Ingeniería Curso: Arq. de computadores y ensambladores 1 Primer Semestre 2011 Practica No.2

Upload: raizen00

Post on 02-Jul-2015

227 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Usac-Arqui1 Practica No.2

Universidad de San Carlos de GuatemalaFacultad de IngenieríaCurso: Arq. de computadores y ensambladores 1Primer Semestre 2011

Practica No.2

TABLA DE CONTENIDOS

Page 2: Usac-Arqui1 Practica No.2

1. Instalación de la Tarjeta PCI-8255.2. Configuración Palabra de Control.3. Instalación de Herramienta de Programación para el Picaxe.4. Pasos para fabricar una quemadora5. Diagrama a bloques y de flujo de la aplicación.6. Detección de color.7. Transmisión inalámbrica

1. Instalación de la Tarjeta PCI-8255

Page 3: Usac-Arqui1 Practica No.2

Pasos:

1. Debemos ver en la computadora a instalar si tiene ranuras para tarjetas PCI. Si es así, se coloca la tarjeta en la ranura que se desee.

2. También debemos tener los driver para la tarjeta ya que sin esto no se podrá instalar satisfactoriamente.

3. A la hora que Windows entra por primera vez con la tarjeta insertada, nos reconocerá que se ha agregado un nuevo hardware, y lo mostrará en la pantalla. Nosotros escogeremos “No por el momento”, ya que tenemos los driver para instalar la tarjeta, y luego le damos Siguiente.

4. Habiendo hecho el paso 3, nos mostrará una pantalla donde nos dice que insertemos el disco de instalación. Debemos escoger la opción: “Instalar desde una lista o ubicación específica (avanzado)” ya que nosotros agregaremos la librería manualmente. Luego le damos Continuar.

Page 4: Usac-Arqui1 Practica No.2

5. Luego del paso 4, debemos elegir la opción de búsqueda. Nosotros debemos elegir “No buscar. Seleccionaré el controlador que se va a instalar”, ya que si no se buscará de forma automática y puede ser que no se instale lo que se desea y no funcione bien la tarjeta. Luego le damos clic a Siguiente.

Page 5: Usac-Arqui1 Practica No.2

6. Ahora saldrá una pantalla donde debemos elegir el tipo de hardware. Nosotros no seleccionamos nada, ya que sabemos qué es lo que se está instalando. Solamente le damos clic a Siguiente.

7. Luego de haber realizado el paso 6, debemos elegir el fabricante y el modelo del dispositivo. Nosotros vamos a elegir la opción “Utilizar Disco” para que el asistente sepa quién es el fabricante y el modelo de la tarjeta que se está instalando.

8. Ahora vamos a buscar la ubicación en donde se encuentran los driver de la tarjeta.

Page 6: Usac-Arqui1 Practica No.2

9. Ahora debemos buscar el archivo llamado “ET_PCI8255_V3.inf” y le damos Abrir.

Page 7: Usac-Arqui1 Practica No.2

10. Si nos damos cuenta, aparece la ruta en donde aparece el archivo que se eligió en el paso 9. Simplemente le damos clic a Aceptar.

11. Luego de haber hecho correctamente el paso 10, el asistente ya reconoce el modelo y el fabricante del hardware a instalar, que en nuestro caso es la tarjeta PCI 8255. Ahora le damos clic a Siguiente.

Page 8: Usac-Arqui1 Practica No.2

12. Ahora se va a instalar el archivo y el Asistente se finalizara. Solamente le damos clic en “Finalizar.”

Page 9: Usac-Arqui1 Practica No.2

13. Ahora vamos a la carpeta donde están los driver de la tarjeta, y vamos a buscar un archivo ejecutable y le vamos a dar clic. Si nuestra versión de Windows es del XP para abajo elegimos “install-98” y si no elegimos “install-xp”. Luego que se instala nos pedirá que presionemos una tecla para continuar, y reiniciamos la máquina.

Page 10: Usac-Arqui1 Practica No.2

14. Cuando Windows cargue luego del reinicio del paso 13, entonces vamos a Mi Pc, le damos clic derecho y elegimos la opción “Propiedades”. Ya estando en esa opción elegimos la pestaña “Hardware” y veremos que la tarjeta está instalada satisfactoriamente. Le damos clic derecho y elegimos “Propiedades”.

15. Ya estando en las propiedades de la tarjeta, si elegimos la pestaña “Recursos” y vemos que ya nos muestra el intervalo de memoria y se ve que todo se instaló de forma normal.

Page 11: Usac-Arqui1 Practica No.2

16. Si queremos hacer pruebas que la tarjeta se instaló bien, hay un programa llamado “Demo Test”. Aparecerá una ventana en donde están todos los puertos listos para enviar o recibir señal.

Si queremos como en este ejemplo mandar señal al puerto PA0, buscamos en el cincho donde se encuentra la salida y lo conectamos.

Con esto se concluye de forma satisfactoria la instalación de la tarjeta PCI 8255.

Page 12: Usac-Arqui1 Practica No.2

2. Configuración Palabra de Control.

Para poder usar la tarjeta PCI-8255 debe antes configurar los puertos, según el uso que le queremos dar. Este paso se hace creando una palabra de configuración que deberá ser enviada solo una vez, al puerto de configuración de la tarjeta antes de ser usada.

La palabra de Control es un Byte (numero de 8 bits) que especificara el modo de uso de la tarjeta, en el siguiente diagrama se detalla que significado tiene cada bit.

Con el diagrama anterior ya podemos crear nuestra palabra de control según las necesidades que tengamos (para mas información abocarse al manual técnico de la tarjeta que se este usando).

Manejo de la Tarjeta PCI-8255 con Java

El uso de la tarjeta PCI-8255 desde java se hace por medio de dos librerías que son:

Estas librerías tendrán que ser copiadas en el directorio C:\WINDOWS\system32 de nuestra PC.

Una vez teniendo las librerías instaladas se deberá de crear dos clase en nuestro proyecto java que se deberán llamar: ioPort.java y pPort.java con el siguiente código.

Page 13: Usac-Arqui1 Practica No.2

public class ioPort{

public native void Out32(int PortAddress, int data); public native int Inp32(int PortAddress); static { System.loadLibrary("jnpout32pkg");}}

public class pPort{ ioPort pp; …….. public pPort(){

pp = new ioPort(); ………..

}

public void output(int port, int value){ pp.Out32(port, value);

}

public int input(int port){ return pp.Inp32(port); }

public void output(int value){ pp.Out32(portAddress, value); }

public int input(){ return pp.Inp32(portAddress); }

Para poder sacar datos a un puerto de la tarjeta se tendría que hacer de la siguiente forma:

pPort lpt = new pPort(); lpt.output(Address, Data);

Donde Address es de tipo int y tiene el valor de dirección del Puerto y Data también es de tipo int y representara el valor (binario) a sacar en el puerto.

Para poder leer un Puerto se haría de la siguiente forma:

pPort lpt = new pPort(); int Input = (int)lpt.input(Address);

Donde la variable Input de tipo int obtendrá el valor leído del puerto que se especifico por medio de la variable Address.

Page 14: Usac-Arqui1 Practica No.2

3. Instalación de Herramienta de Programación PICAXE Programming Editor

Primero corremos el ejecutable de la aplicación.

En la siguiente ventana presionamos el Botón Next.

Page 15: Usac-Arqui1 Practica No.2

Luego habilitamos la opción I accept the terms in the license agreement y presionamos el botón Next.

Ponemos nuestro nombre de usuario y presionamos el botón Next.

Page 16: Usac-Arqui1 Practica No.2

En la siguiente ventana nos saldrá en que directorio donde se va a instalar la aplicación si estamos desacuerdo presionamos el botón Next y la quisiéramos cambiar presionamos el botón de Change y escogemos el directorio.

Confírmanos la instalación de la aplicación presionando el botón Install.

Page 17: Usac-Arqui1 Practica No.2

Por último presionamos el botón Finish.

Al terminar la instalación, ya podremos empezar a utilizar la herramienta para poder programar nuestro PIC.

Page 18: Usac-Arqui1 Practica No.2

4. Pasos para fabricar una quemadora Picaxe.

Herramientas necesarias para poder quemar un pic.1. Programa Picaxe Editor.2. Pic 18x o similar.3. Cable conector serial para poder realizar el proceso de quemado, conector

hembra con los cables necesarios como se muestra en la figura.

Circuito

Page 19: Usac-Arqui1 Practica No.2

En esta imagen se mira como está conectado ya el PICAXE y los cables, listo para ser quemado.

En esta imagen se mira como es en proceso de quemado el pic, en este ejemplo se esta quemando el sistema de color para la práctica.

Page 20: Usac-Arqui1 Practica No.2

En esta imagen se mira como el proceso de quemado se realizo satisfactoriamente.

Perdón por la resolución de las imágenes pero mi maquina no muy anda.

Page 21: Usac-Arqui1 Practica No.2

5. Diagrama a Bloques y de Flujo de la Aplicación.

DIAGRAMA DE FLUJO

Page 22: Usac-Arqui1 Practica No.2

DIAGRAMA DE BLOQUES

ModuloRF

Sensor Infrarrojo para reconocimiento de figura.

Page 23: Usac-Arqui1 Practica No.2

Detector de Color de figura.

Page 24: Usac-Arqui1 Practica No.2

6. Detección de Color (Sensor RGB)

La detección de colores RGB (Red (Rojo), Green (Verde), Blue (Azul)) se implemento por medio de la intensidad de luz captada a través de una fotorresistencia, producida por le Led RGB.

Componentes 1 Protoboard 1 Picaxe 18x 1 Fotoresistencia (LDR) 1 Led RGB 1 Resistencias 1K Ω 1 Resistencia 20K Ω

Circuito

Page 25: Usac-Arqui1 Practica No.2

Código del Sensor RGB

main:low 7low 6low 5

if input2 is on then Scangoto main

Scan:;LED GREENhigh 7 pause 900readadc 1,b1 ;READ LDRlow 7 pause 500

;LED BLUEhigh 6 pause 900readadc 1,b2 ;READ LDRlow 6 pause 500

;LED REDhigh 5 pause 900readadc 1,b3 ;READ LDRlow 5 pause 500

if b1 > b2 and b1 > b3 then Greenif b2 > b1 and b2 > b3 then Blueif b3 > b1 and b3 > b2 then Red

Green:high 7pause 9000goto main

Blue:high 6pause 9000goto main

Red:high 5pause 9000goto main

Page 26: Usac-Arqui1 Practica No.2

7. Transmisión Inalámbrica.

Descripción RF utilizado:Módulo de Radiofrecuencia de 434MHz Transmisor y Receptor.

Características:

TRANSMISOR (MO-SAWR-A) 434 MHZ, Trabaja hasta los 4800 bps. Opera a un voltaje de 2 a 12 V DC, siendo mayor el alcance al recibir un mayor

voltaje. Basado en SAW (mayor inmunidad al ruido). Modulación ASK. Alcance hasta los 100 m. Salida análoga y digital. Tamaño: 1.5 cm x 2 cm. Potencia de salida: 16dBm (8mW) @ 12V, 10dBm @ 5V. Consumo de corriente: 11mA @ 3V, 22mA @ 5V, 59mA @

12V.

RECEPTOR (MO-RX3400-A ) 434 MHZ. Trabaja hasta los 4800 bps. Opera a un voltaje de: 3.3 a 6 V DC. Basado en SAW (mayor inmunidad al

ruido). Modulación: ASK. Alcance: hasta los 100 m. Tamaño : 1 cm x 4.5 cm. Consumo de corriente: 3.5 mA @ 5V.

Protocolo de transmisión

La información es emitida desde un picaxe conectando una de sus salidas al pin data del modulo transmisor, para efectos de la practica realizada se trabajo con el picaxe 18m2, se envían los datos de forma serial, el modulo transmisor esta contantemente leyendo que información entra en su data, y lo envia en una determinada frecuencia.

Page 27: Usac-Arqui1 Practica No.2

Por el otro lado el modulo receptor, lee toda esa información, este modulo está conectado a su vez a un pin del pic (16f88) para que sea procesada la información, para asegurar que la información sea transmitida de forma correcta, se debe utilizar un algoritmo de encriptamiento programado en el emisor, y un desencriptador en el receptor.Instrucciones utilizadas con el Picaxe

SEROUT: Para el envió de información el picaxe utiliza la instrucción serout, tiene como parámetros: Pin de salida, la frecuencia, y el conjunto de datos a enviar en forma serial.

Ejemplo:serout 7,N2400,("ok",b0)

En este ejemplo enviamos la cadena “ok” y a continuación se envía el dato de la variable b0.

SERIN: Para la recepción de información el picaxe utiliza la instrucción serin, sus parámetros son: Pin de entrada, la frecuencia, y el conjunto de datos a recibir de forma serial

Ejemplo:SerIn 0,N2400,("ok"), b0

En este ejemplo se debe recibir la cadena “ok” y a continuación un dato que lo guardamos en la variable b0. Si no viene “ok”, no se procede a guardar el dato en b0, este es un ejemplo simple de validar que la información leída sea la correcta.

Programa TX & RX

PROGRAMA TX 'emisor para picaxe 18m2, picaxe programming editorconstantes y variables.Symbol boton_1 = pin0 '17 == c.0 == entrada digital pulsador/boton al picSymbol boton_2 = pin1 '18 == c.1 == entrada digital pulsador/boton al pic Symbol boton_3 = pin2 '1 == c.2 == entrada digital pulsador/boton al picSymbol boton_4 = pin7 '16 == c.7 == entrada digital pulsador/boton al pic

'----------------INICIO funcion tx ---------------tx:high 0 '0=output0=pin6=b.0=portb.0 en picaxe 18m2 --salidab0=0 'b0 es una variablelow 0

pulsout 7,300 'pulsout pin,tiempo If boton_1=1 And boton_2=0 And boton_3=0 And boton_4=0 Then b0=1 serout 7,N2400,(85,85,85,85,"ok",b0) sertxd(#b0, " ") EndIf

Page 28: Usac-Arqui1 Practica No.2

If boton_1=0 And boton_2=1 And boton_3=0 And boton_4=0 Then b0=2 serout 7,N2400,(85,85,85,85,"ok",b0) sertxd(#b0, " ") EndIf If boton_1=0 And boton_2=0 And boton_3=1 And boton_4=0 Then b0=3 serout 7,N2400,(85,85,85,85,"ok",b0) sertxd(#b0, " ") EndIf If boton_1=0 And boton_2=0 And boton_3=0 And boton_4=1 Then b0=4 serout 7,N2400,(85,85,85,85,"ok",b0) sertxd(#b0, " ") EndIf If boton_1=0 And boton_2=0 And boton_3=0 And boton_4=0 Then b0=5 serout 7,N2400,(85,85,85,85,"ok",b0) sertxd(#b0, " ") EndIf

If boton_1=0 And boton_2=0 And boton_3=1 And boton_4=1 Then b0=6 serout 7,N2400,(85,85,85,85,"ok",b0) sertxd(#b0, " ") EndIf GoTo tx

'----------------FIN funcion tx ---------------End

PROGRAMA RX

'pic 16f88 receptor symbol led1 = 1 'pata7 == PORTB.1 == RB1 == output1 == salida digital a led 0/1 symbol led2 = 2 'pata8 == PORTB.2 == RB2 == output2 == salida digital a led 0/1 symbol led3 = 3 'pata9 == PORTB.3 == RB3 == output3 == salida digital a led 0/1 symbol led4 = 4 'pata10 == PORTB.4 == RB4 == output4 == salida digital a led 0/1

'----------------funcion scann ---------------ciclo_scann:

low 7 'envia 0 en pin 13low 6 ' 12low 5 ' 11 SerIn 0,N2400,("ok"), b0 sertxd (#b0," ") 'DESPLIEGA DATO en LCD en TX (PIC 16F88) If b0=4 Then Scan 'presiono boton scan if b0=3 Then

Low led1 High led2

Low led3Low led4

Page 29: Usac-Arqui1 Practica No.2

goto esperar_boton_inicio 'presiono boton girar EndIf

GoTo ciclo_scann'----------------FIN funcion scann ---------------

'----------------funcion esperar_boton_inicio ---------------esperar_boton_inicio:

b0=0 SerIn 0,N2400,("ok"), b0 sertxd (#b0," ") 'DESPLIEGA DATO en LCD en TX (PIC 16F88) If b0=1 or b0=2 or b0=3 or b0=4 Then 'si presiono cualquier boton 'enviar codigo iniciar_juego=0110

Low led1 High led2 High led3 Low led4 pause 100

goto rx EndIf

GoTo esperar_boton_inicio

'----------------INICIO funcion rx ---------------rx:

SerIn 0,N2400,("ok"), b0 sertxd (#b0," ") 'DESPLIEGA DATO en LCD en TX (PIC 16F88) If b0=1 Then 'enviar codigo boton_izquierda= 1001 High led1 Low led2 Low led3 High led4

Low led1 Low led2 Low led3 Low led4 pause 500 EndIf If b0=2 Then 'enviar codigo boton_derecha= 1010 Low led1 High led2 Low led3 High led4 Low led1 Low led2 Low led3 Low led4 pause 500 EndIf If b0=3 Then 'enviar codigo boton_girar= 0111 High led1 High led2 High led3 Low led4

Page 30: Usac-Arqui1 Practica No.2

Low led1 Low led2 Low led3 Low led4 pause 500 EndIf

If b0=4 Then 'enviar codigo boton_scan= 0000 ''ya no se usa en este momento Low led1 Low led2 Low led3 Low led4 EndIf If b0=5 Then 'enviar codigo sin presionado= 0000 Low led1 Low led2 Low led3 Low led4 EndIf If b0=6 Then ;envia codigo boton girar_y_escanear= 1011 High led1 High led2 Low led3 High led4 goto fin EndIfGoTo rx

'----------------FIN funcion tx ---------------

Scan:'enviar codigo scan=0001High led1

Low led2Low led3Low led4

'accionar sensor color'LED GREENhigh 7 pause 900readadc 1,b1 ;READ LDRlow 7 pause 500

'LED BLUEhigh 6 pause 900readadc 1,b2 ;READ LDRlow 6 pause 500

'LED RED

Page 31: Usac-Arqui1 Practica No.2

high 5 pause 900readadc 1,b3 ;READ LDRlow 5 pause 500if b1 > b2 and b1 > b3 then Greenif b2 > b1 and b2 > b3 then Blue if b3 > b1 and b3 > b2 then Red

Green:high 7 'luz verde

'enviar codigo color verde = 0100Low led1

Low led2High led3Low led4

pause 2000goto ciclo_scann

Blue:high 6 'luz azul

'enviar codigo color azul = 0101High led1

Low led2High led3Low led4

pause 1000goto ciclo_scann

Red:high 5 'luz rojo

'enviar codigo color rojo = 0011High led1

High led2Low led3Low led4

pause 1000 goto ciclo_scann

fin:stopEnd