Você está na página 1de 8

Programacin en SCRATCH - Tema 10 Control de puertos externos

1.-Activacin de las conexiones externas en Scratch Scratch permite enviar el valor de sus variables internas a travs de una conexin de red/internet de forma que podemos obtener esos valores desde otra aplicacin externa. Para activar esta funcin debemos pulsar la tecla CTRL+Botn derecho del ratn en la parte de abajo del bloque de sensores:

y activamos la opcin permita las conexiones del sensor alejado 2.-ScratchPort Por otro lado tendremos la aplicacin ScratchPort que nos permitir el envio de datos por el puerto paralelo desde la aplicacin Scratch Esta aplicacin puede estar en el mismo ordenador u otro cualquiera que tenga acceso en la misma red:

ScratchIP: direccin IP o nombre del equipo donde se est ejecutando el Scratch P.Paralelo: direccin de memoria del puerto paralelo del equipo donde se ejecuta esta aplicacin, ( es decir por donde se enviarn los datos al puerto). Normalmente el puerto paralelo del PC est en la direccin de memoria 0x378 (hexadecimal) que es igual a 888 (en decimal). Se puede constultar o configurar en la BIOS.

Programacin en SCRATCH - Tema 10 Control de puertos externos


IMPORTANTE:
Una vez establecida la conexin esta aplicacin recibir el valor de las variables del Scratch al inicio y cada vez que cambien de valor. La aplicacin solo har caso de una variable de Scracth que se llame puerto El valor de esta variable se enviar por el puerto paralelo del ordenador. El valor de la variable debe ir desde 0 a 255, que es el rango mximo con 8 bits. 3.-Introduccin al puerto paralelo del PC El puerto paralelo (estndar IEEE 1284 ) ms conocido es el puerto de impresora est compuesto por un bus de comunicacin bidireccional de 8 bits de datos, adems de un conjunto de lneas de protocolo

Bus de datos: D7,D6,D5,D4,D3,D2,D1,D0 (8bits)

Los sistemas operativos basados en DOS y compatibles gestionan las interfaces de puerto paralelo con los nombres LPT1, LPT2 y as sucesivamente, Unix en cambio los nombra como /dev/lp0, /dev/lp1 Las direcciones base de los dos primeros puertos son: LPT1 = 0x378 ( hex) (888 en decimal) LPT2 = 0x278 (hex) (632 en decimal) En esta aplicacin slo haremos uso del puerto paralelo en modo unidireccional para enviar los 8 bits de datos.

Programacin en SCRATCH - Tema 10 Control de puertos externos


4.-El valor de la variable puerto El valor de la variable puerto se traducir a sus bits en binario y as activaremos cada una de las 8 salidas del puerto (los 8 bits) Por convenio los bits se enumera de menor a mayor de derecha a izquierda y empezando por 0 Por tanto si enviamos el valor 0 se enviarn los siguientes bits al puerto paralelo: Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 0 0 0 0 0 0 0

Bit0 0

Salida8

Salida7

Salida6

Salida5

Salida4

Salida3

Salida2

Salida1

Si enviamos el valor 4 se enviarn los siguientes bits: Bit7 Bit6 Bit5 Bit4 Bit3 0 0 0 0 0

Bit2 1

Bit1 0

Bit0 0

Si enviamos el valor 32 se enviarn los siguientes bits: Bit7 Bit6 Bit5 Bit4 Bit3 0 0 1 0 0

Bit2 0

Bit1 0

Bit0 0

Si enviamos el valor 36 se enviarn los siguientes bits: Bit7 Bit6 Bit5 Bit4 Bit3 0 0 1 0 0

Bit2 1

Bit1 0

Bit0 0

Si enviamos el valor 255 se enviarn los siguientes bits: Bit7 Bit6 Bit5 Bit4 Bit3 1 1 1 1 1

Bit2 1

Bit1 1

Bit0 1

Si enviamos el valor 170 se enviarn los siguientes bits: Bit7 Bit6 Bit5 Bit4 Bit3 1 0 1 0 1

Bit2 0

Bit1 1

Bit0 0

Si enviamos el valor 15 se enviarn los siguientes bits: Bit7 Bit6 Bit5 Bit4 Bit3 0 0 0 0 1

Bit2 1

Bit1 1

Bit0 1

Programacin en SCRATCH - Tema 10 Control de puertos externos


Al contrario, si queremos activar ciertas salidas y saber que valor en decimal debemos poner en la variable puerto tendremos que tener en cuenta el valor del peso de cada bit

Bit
0 1 2 3 4 5 6 7

Peso (en decimal)


1 2 4 8 16 32 64 128

Para saber el valor en decimal sumaremos los pesos de los bits activos. Ejemplo: Si queremos activar los bits 2,6 y 7

Bit
0 1 2 3 4 5 6 7

Peso (en decimal)


1 2 4 8 16 32 64 128 4 + 64 + 128 = 196

Por tanto debemos fijar la variable puerto a 196

Programacin en SCRATCH - Tema 10 Control de puertos externos


Ejercicio resuelto: Realizar un programa en Scratch con 4 variables llamadas Bit0, Bit1, Bit2, Bit3 para guardar el estado de cada bit de salida en el puerto. Con Con Con Con Con la la la la la tecla tecla tecla tecla tecla a activamos el Bit0 b activamos el Bit1 c activamos el Bit2 d activamos el Bit3 espacio desactivamos los 4 bits

El programa debe calcular el valor de la variable puerto segn los 4 bits estn activos o no (activo es >0 , no activo = 0)

Solucin:

Copia este ejemplo y pruebalo!

Programacin en SCRATCH - Tema 10 Control de puertos externos


EJERCICIOS: 1.-Enviar un valor al azar entre 0 y 255 al puerto paralelo (cada segundo) 2.-Repetir por siempre la siguiente secuencia: -Activar los bits 0,2,4,6 -Activar los bits 1,3,5,7 -Apagar todos los bits -Encender todos los bits -Activar los bits 0,1,2,3 -Activar los bits 4,5,6,7 (de un paso al siguiente de la secuencia para 1 segundo) 3.-Realizar la siguiente aplicacin: -Con la flecha derecha muevo al gato a la derecha -Con la flecha iquierda muevo al garo a la izquierda -Cuando el gato est en la parte izquierda de la pantalla enciendo el Bit 0 -Cuando el gato est en la parte derecha de la pantalla enciendo el Bit 1 4.-Control domtico Realizar(o descargar) un plano de una casa con 4 habitaciones y ponerlo de fondo Aade en cada habitacin botones como estos: Al Al Al Al pulsar pulsar pulsar pulsar en en en en la habitacin 1 se enciende el Bit 0 la habitacin 2 se enciende el Bit 1 a habitacin 3 se enciende el Bit 2 la habitacin 4 se enciende el Bit 3

Quedando algo as:

Programacin en SCRATCH - Tema 10 Control de puertos externos


5.-Al detectar un sonido fuerte (en el bloque de sensores) activar la salida 0 (bit 0) 6.-Realiza un programa que simule un vumeter con los 8 bits: (vumeter indicador del nivel de audio)

Programacin en SCRATCH - Tema 10 Control de puertos externos


Ejercicio 5 resuelto

Ejercicio 6 resuelto:

Você também pode gostar