2014-15. INICIACIÓN A LA PROGRAMACIÓN. SCRATCH. EVALUACIÓN PARTE 1

Dibujo

EVALUACIÓN DE CONOCIMIENTOS. PROGRAMAMOS UN JUEGO TRADICIONAL DE “MARCIANITOS”

Pues bien, tal y como os comenté en clase, adjunto os dejo el adelanto de la práctica que realizaremos mañana en clase. Todos aquellos que me han solicitado que les adelante el contenido completo de la prueba recibirán un código o clave de acceso para poder ver el siguiente pdf (pulsa sobre el vínculo inferior “PRÁCTICA SCRATCH CONTROL”.

Podéis comenzar la práctica desde este mismo momento de recibirla y continuarla en clase. Todas las exigencias quedan recogidas en ese documento, así como el sistema de puntuación.

Ánimo que es fácil y divertido.

PRÁCTICA SCRATCH. CONTROL

2014-15. ARDUINO. PUENTE EN H

cabecera-entradas-blog
 ARDUINO. PUENTE EN H

Un Puente H o Puente en H es un circuito electrónico que hace posible que un motor eléctrico DC gire en ambos sentidos, avance y retroceda. Estos puentes están disponibles como circuitos integrados aunque también se pueden construir mediante componentes discretos.

El término de “Puente H” viene de la representación gráfica del circuito. Dicho puente se crea con 4 interruptores mecánicos o mediante transistores. Cuando los interruptores S1 y S4 están cerrados y S2 y S3 abiertos se aplica una tensión positiva en el motor, haciendo que gire en un sentido. Abriendo los interruptores S1 y S4 y los interruptores S2 y S3 cerrados el motor gira en sentido contrario.
El puente H, como ya se ha indicado, se utiliza para invertir el giro de un motor, así como para frenarlo, haciendo un corto entre las bornas del motor. Otra forma de utilizarlo es para permitir que el motor frene bajo su propia inercia, cuando desconectamos el motor de la fuente que lo alimenta.
Lo más común en estos circuitos es utilizar interruptores de estado sólido como los transistores ya que sus tiempos de vida y frecuencias de conmutación son mucho más altas.
Los interruptores son acompañados de diodos (conectados a ellos en paralelo) que permitan a las corrientes circular en sentido contrario al previsto cada vez que se conmute la tensión ya que el motor está formado por bobinados que durante cortos períodos de tiempo se opondrán a que la corriente varíe.
puente-h1
 puente-h2

El armado del circuito requiere básicamente de 12 componentes: 4 transistores, 4 resistores y 4 diodos.

2013-08-26-758

Puente H
Controlar motores usando el SN75441 (Puente H)
A continuación se mostrará cómo usar el SN75441 para controlar dos motores DC de 12V. 
En este esquema se puede observar donde a donde va dirigido cada pin del puente H. Ahora les mostraré un diagrama de pines del puente H. (OJO CON LOS PWM–> EN ARDUINO UNO NO TODOS LOS PINES SON PWM, ASÍ QUE EL ESQUEMA SIGUIENTE LO TENDRÍAS QUE ADAPTAR)
Como se muestra en el diagrama:
  • Los pines 1, 9 y 15 van a la parte positiva del protoboard donde habrá 5V. 
  • El pin 8 va a el pin VIN donde habrá 12 V y con este correrán los dos motores dc. 
  • Los pines 4, 5, 12 y 13 van a la parte negativa del protoboard.
  • El motor izquierdo va en los pines 3 y 6.
  • El motor derecho va en los pines 11 y 14.
  • El pin 2 del puente H va a el pin digital 2 del Arduino. 
  • El pin 7 del puente H va a el pin digital 3 del Arduino.
  • El pin 10 del puente H va al pin digital 8 del Arduino.
  • El pin 15 del puente H va al pin digital 7 del Arduino.
Después de estas conexiones ya puedes programar el Arduino para mover los motores usando el programa de Arduino. 
int I1=6;
int I2=7;
int I3=8;
int I4=9;
int E1=3;
int E2=12;
void setup()
{
pinMode(I1,OUTPUT);
pinMode(I2,OUTPUT);
pinMode(I3,OUTPUT);
pinMode(I4,OUTPUT);
pinMode(E1,OUTPUT);
pinMode(E2,OUTPUT);digitalWrite(I1,LOW);
digitalWrite(I2,LOW);
digitalWrite(I3,LOW);
digitalWrite(I4,LOW);
}void M1Adelante()
{
digitalWrite(I1,LOW);
digitalWrite(I2,HIGH);
}void M1Atras()
{
digitalWrite(I1,HIGH);
digitalWrite(I2,LOW);
}

void M2Adelante()
{
digitalWrite(I3,LOW);
digitalWrite(I4,HIGH);
}

void M2Atras()
{
digitalWrite(I3,HIGH);
digitalWrite(I4,LOW);
}

void paradM1()
{
digitalWrite(I1,LOW);
digitalWrite(I2,LOW);
}

void paradM2()
{
digitalWrite(I3,LOW);
digitalWrite(I4,LOW);
}

void loop()
{
for(int i=1; i<=253; i++)
{
analogWrite(E1,i);
M1Adelante();
delay(10);
}
for(int i=253; i>=1; i–)
{
analogWrite(E1,i);
M1Atras();
delay(10);
}
}

2014-15. INICIACIÓN A LA PROGRAMACIÓN. SCRATCH. PARTE III

Cabecera entradas blog

 

INICIACIÓN A LA PROGRAMACIÓN. SCRATCH. PARTE III
PRÁCTICA COLECTIVA. “PONG” CON NIVELES

 

Ya llevamos varias semanas conociendo y disfrutando de este software de programación.  Aprendimos a emplear escala, movimiento, pausa, cambiar fondo, cambiar disfraz, incluir un sonido… todo ello en la primera práctica de aquel animal que volaba y que iba alejando hasta desaparecer y volver a aparecer el el punto inicial para realizar un bucle o ciclo sin fin.

Concluida esa introducción, pasamos en días atrás a la práctica del famoso juego PONG, aquel que una pequeña bolita rebota en los laterales de la pantalla, sin poder tocar el pie de la misma y con el objetivo de golpear a un objeto que se mueve en la parte superior. Para golpear ese objeto, una serie de “ladrillos” se disponen interfiriendo en la dirección de la bola. Si la bola toca uno de esos elementos rectangulares, rebotará y desaparecerá el correspondiente “ladrillo”. Una vez que se golpea el objeto móvil superior de la pantalla, el juego continúa con más velocidad, la línea de ladrillos vuelve a aparecer y una nueva línea de ladrillos se situará más cerca de la barra inferior que nos sirve para evitar que la bola toque el pie de la pantalla. Arriba, un nuevo objeto se moverá, de un lado hacia otro. Cuando la bola toque ese objeto, concluirá nuestro mini-juego, apareciendo en pantalla CONGRATULATIONS¡¡¡. En caso en el que la bola toque la parte inferior de la pantalla, el número de vidas descenderá en 1 (partimos con 5 vidas). Cuando el número de vidas sea igual a 0, cambiará la pantalla por otra en la que se incluya el texto GAME OVER.

Pues bien, las capturas de pantalla que ahora os incluyo, son tomadas de la práctica que hemos desarrollado en clase y que todos vosotros/as habéis desarrollado conmigo en vuestros equipos. Se harán diversas apreciaciones para facilitaros la entrega futura y poder aplicar los conocimientos a la prueba que posteriormente os pondré.

Programamos el sprite u objeto BOLA. Empezamos pulsando la barra para comenzar el juego y definimos una variable en el cuadro DATOS. La variable la denominamos VIDAS y, al crearla, nos saldrán diversos comandos para poder utilizarlos a nuestras conveniencia en el programa. Pues bien, situamos fijar VIDAS (o como en la captura mía –> VIDAS RESTANTES) bajo el comienzo del programa y escribimos 5.  También situaremos la bola en su comienzo en el punto de la pantalla que deseemos y que se dirija hacia el PADDLE (sprite de la barra que se mueve inferiormente). Estos comandos los ejecutará una sóla vez.

A continuación, ejecutará SIEMPRE una serie de comandos como: rebotar cuando toque el borde y que se mueva 10 pasos. Aparecerán unas condiciones para satisfacer todas las posibles opciones en el rebote:

  • Si toca la barra que rebote (cambia de dirección);
  • si toca la parte inferior de la pantalla (hemos dibujado una línea de color) el número de vidas cambiará a -1 (perdemos una vida);
  • si toca cualquiera de los “ladrillos”, rebotará;
  • si toca el objeto superior en movimiento, cambia de fondo de pantalla y suma una vida a las vidas que tenemos.

 

PONG_1 PONG_2 PONG_3 PONG_4.0 PONG_4 PONG_5 PONG_6 PONG_7 PONG_8 PONG_9 PONG_10 PONG_11

2014-15. INICIACIÓN A ARDUINO. SERVOMOTOR

Cabecera entradas blog

SERVOMOTOR ARDUINO


Conexión de un servo a la placa de Arduino

En este tutorial vamos a ver el funcionamiento de un servomotor y como podemos usarlo con Arduino. En este caso usaremos un microServo. El servomotor tiene 3 cables, Alimentación , Masa y la señal.

Los colores son los siguientes:

  • Rojo – Alimentación(Normalmente 5 V aunque pueden ser mas)
  • Negro o Marrón -Masa
  • Blanco o Naranja – Señal de control (pulso enviado al servomotor)

1

Básicamente un servomotor es un motor de corriente continua con un potenciometro que le permite saber la posición en la que se encuentra y así poder controlarla.
Para controlar el servomotor se le envía pulsos cada 20 ms es decir 50Hz. La anchura del pulso es lo que codifica el angulo de giro , es decir lo que se conoce como PWM, codificación por ancho de pulso. Esta anchura varia según el servomotor pero normalmente va entre 0.5 y 2.5 ms aunque pueden variar.
Dependiendo del tamaño del servo y su consumo es posible que no puedas alimentarlo desde tu placa arduino, en ese caso es necesario una fuente de 5V independiente para poder moverlo,en mi caso uso un microservo por lo que consume poca corriente y se puede alimentar directamente por el Arduino . Sobre el peso que pueden levantar se puede deducir con el par del servo. Normalmente los servos indican el par o torque que pueden realizar para un servo estándar suele ser 5kg/cm es decir puede mover 5kg a 1 cm de distancia. En caso de querer moverlo a 5 cm el servo solo podrá mover 1kg.
A continuación vamos a ver como controlar en Arduino un servomotor. Para ello iniciamos la aplicación de Arduino y pulsamos en sketch->importar libreria ->Servo
2
Con esto incorporamos la libreria, aunque tambien podemos escribir el texto directamente. Una vez echo esto ya podemos usar la libreria Servo.
Ahora vamos a definir nuestro objeto Servo, esto es como definir una variable de tipo int o float, pero un poco mas completa con funciones y campos que le pertenecen. Para ponemos Servo miServo.
3
Con el objeto servo definido vamos a pasar a inicializarlo, para ello usaremos la función attach(pin,min,max) los parámetros de esta función son el pin, casi cualquier pin del Arduino puede controlar un Servomotor y no es necesario que sea uno de los PWM. En las placas que no son la Mega la utilización de la librería Servo inhabilita el PWM en los pines 9 y 10 se usen estos pines o no como servo. Los dos siguientes parámetros son opcionales y indican cual es el ancho de pulso en microsegundos para 0º y para 180º por defecto 544 y 2400.
En este ejemplo usaremos el pin 9.
4
El siguiente paso consiste en enviarle el ancho de pulso al servo con el angulo que queremos. En esta primera parte le enviaremos un angulo constante por ejemplo 90º. Y lo visualizaremos el ancho de pulso en el osciloscopio. Donde en la parte inferior se puede ver el ancho de pulso y como el periodo es de 20 ms aproximadamente.
5
Tener en cuenta que no hemos puesto ningún delay por lo que el objeto servo enviara el pulso cada 20 ms independientemente de nuestro programa.
Para poder interactuar con el servo vamos a incorporar unas funciones que nos permitan moverlo desde el PC. Para ello usaremos el puerto Serie conectado al usb y le mandaremos la letra ‘a’ cuando querramos aumentar 10º o la letra ‘z’ cuando querramos decrementar 10º. Ademas con la función constrain nos aseguramos de que el valor no supere los 180 ni baje de los 0.
6
Para las conexiones simplemente la masa conectada con la del Arduino, la señal del servo(Naranja o blanco) al pin 9 y la alimentación si tenéis un servo pequeño al pin +5v del Arduino , sino tenéis que alimentarlo con alguna fuente externa.
NOSOTROS INCORPORAREMOS UN CÓDIGO MÁS SENCILLO PARA NUESTRA PRÁCTICA:
#include <Servo.h>
Servo Servo_coche;
int potpin = 0;
int val;
void setup()
{
Servo_coche.attach(9);
}
void loop()
{
for(int i=0;i<=180;i=i+1)
{
Servo_coche.write(i);
delay(100);
}
for(int i=180;i>=0;i=i-1)
{
Servo_base.write(i);
delay(100);}
}

2014-15. INICIACIÓN A LA PROGRAMACIÓN. SCRATCH. PARTE II

cabecera-entradas-blog

INGREDIENTES BÁSICOS DE UN PROYECTO DE SCRATCH
Los proyectos de Scratch están construidos con Objetos (Objeto móvil programable es la traducción al español dada a Sprite, en adelante se utiliza solo la palabra Objeto). Usted puede modificar cómo se ve un Objeto dándole un disfraz diferente. Usted puede hacer que el Objeto parezca una persona, un tren, una mariposa o cualquier otra cosa. Usted puede usar cualquier imagen como disfraz: puede dibujar una imagen en el Editor de Pinturas, importar una imagen de su disco duro, o arrastrar una imagen de un sitio Web.

Usted puede darle instrucciones al Objeto, diciéndole que se mueva o toque música o que reaccione a otros Objetos. Para decirle a un Objeto qué hacer, usted encaja bloques gráficos unos con otros formando pilas, llamadas programas (scripts). Cuando usted hace doble clic sobre un programa, Scratch ejecuta en orden los bloques desde la parte superior del programa hacia abajo.

m

ESCENARIO

El Escenario es dónde usted ve cómo sus historias, juegos y animaciones cobran vida. Los Objetos se mueven e interactúan unos con otros en el escenario.
El escenario tiene 480 unidades de ancho y 360 unidades de alto y está dividido en un plano cartesiano x – y. El centro del escenario corresponde a las coordenadas X:0, Y:0.

1 Para encontrar posiciones x-y en el escenario, mueva el ratón

en él y mire la información de posición x-y del ratón,

justo debajo del escenario en la parte derecha.1posición x del ratón: 75

posición y del ratón: 25

q 2 Haga clic en el botón del Modo Presentación para ver los proyectos en tamaño “Pantalla

Completa”. Para salir del Modo Presentación, presione la tecla escape (Esc).

Haga clic en los botones Modo Vista para aumentar o disminuir el tamaño del escenario. Usted

puede usar la vista de “escenario pequeño” para ver Scratch en monitores pequeños o para

ampliar el área de programas.

NUEVOS OBJETOS (SPRITES)

Cuando usted comienza un nuevo proyecto en Scratch, este siempre inicia con el Objeto Gato. Para crear nuevos Objetos,
haga clic en los siguientes botones:

p Pinte su propio disfraz para un nuevo Objeto usando el Editor de Pinturas
c Seleccione un disfraz para un nuevo Objeto o importe un Objeto completo
e Obtenga un Objeto sorpresa

Si usted desea borrar un Objeto, seleccione las tijeras que encuentra en la Barra de Herramientas y haga clic sobre el Objeto; o, presione clic derecho sobre el Objeto (Mac: presione las teclas Ctrl+clic) y seleccione borrar dentro de las opciones del menú desplegable que aparece.

Para crear un Objeto que aparentemente haga parte del fondo del Escenario, presione clic derecho sobre el Escenario (Mac:
presione las teclas Ctrl+clic) y elija “ seleccionar región de la pantalla para un nuevo objeto”.

LISTA DE OBJETOS 

El Listado de Objetos muestra imágenes en miniatura de todos los Objetos disponibles en el proyecto. Cada Objeto, muestra su nombre bajo la imagen.

c

Para ver y editar, los programas, los disfraces y los sonidos de los Objetos, haga clic sobre la imagen miniatura del Objeto deseado,
en la Lista de Objetos; o haga doble clic sobre el Objeto en el Escenario (el Objeto seleccionado se resalta y aparece enmarcado
en azul, en la Lista de Objetos).

Para mostrar, exportar, duplicar o borrar un Objeto, presione clic derecho (Mac: presione las teclas Ctrl+clic) sobre su imagen
miniatura en la Lista de Objetos. Para mostrar un objeto ubicado fuera del Escenario o escondido, presione Shift+clic sobre su imagen miniatura en la Lista de Objetos, esto traerá el Objeto a la mitad del Escenario y lo mostrará.

Usted puede reacomodar los Objetos que aparecen en la Lista de Objetos, arrastrando las imágenes miniatura.

Así como un Objeto puede modificar su apariencia cambiando de disfraz, el Escenario puede cambiar su apariencia intercambiando fondos. Para ver y editar los programas, fondos y sonidos asociados con el Escenario, haga clic en el ícono del Escenario ubicado a la izquierda de la Lista de Objetos.

PALETA DE BLOQUES Y ÁREA DE PROGRAMAS

Para programar un Objeto, arrastre los bloques desde la Paleta de Bloques al Área de Programas. Para ejecutar un bloque haga doble clic sobre este.

Cree programas (scripts) encajando bloques para formar pilas con ellos. Haga doble clic sobre cualquier parte de la pila para ejecutar el programa completo, desde arriba hasta abajo. Para saber qué hace un bloque, haga clic derecho sobre este (Mac: presione las teclas Ctrl+clic), luego seleccione ayuda en el menú desplegable.

Cuando usted arrastra un bloque por el área de programas, una iluminación blanca le indica dónde puede ubicarlo para formar una conexión válida con otro bloque. Usted puede insertar bloques en la mitad de una pila o al final de esta.

Para mover una pila, haga clic sostenido en el bloque superior y arrastrela. Si arrastra un bloque que se encuentra en la mitad de una pila, todos los bloques ubicados debajo de este lo acompañarán. Para copiar una pila de bloques de un Objeto a otro, arrastre la pila hasta la imagen miniatura del otro Objeto en la Lista de Objetos.

Algunos bloques contienen campos de texto editables en color blanco, por ejemplo m. Para cambiar el valor, haga clic dentro del área blanca y escriba en ella un número. Usted puede también insertar bloques redondeados como p dentro de estas áreas.

Algunos bloques tienen menús desplegables como f. Haga clic en la flecha descendente para ver el menú y haga nuevamente clic en una opción para seleccionarla.

Para limpiar (organizar) el Área de Programas, haga clic derecho y seleccione limpiar en el menú (para Mac: presione las teclas Ctrl+clic y haga lo mismo). Para exportar un pantallazo del Área de Programas, haga clic derecho y seleccione guardar imagen de los programas.

Para agregar un comentario en el Área de Programas, haga clic derecho (Mac: presione las teclas Ctrl+clic) y seleccione añadir comentario; aparecerá un área amarilla para comentarios en la que usted puede escribir un texto.

t

Para ajustar el ancho del área de comentarios, use la manija ubicada en el borde derecho. Haga clic en el triángulo del extremo superior izquierdo para expandir o minimizar el área de comentarios.

Se pueden adicionar comentarios en cualquier sitio del área de Programas y usted puede cambiar su ubicación arrastrándolos.

Para unir un comentario a un bloque, arrastre el cometario ubicándolo sobre el bloque. Para retirarlo, arrastre el comentario lejos del bloque.

DISFRACES

Haga clic en la pestaña de Disfraces para ver y editar los disfraces del Objeto.

o

Este Objeto tiene dos disfraces. El disfraz actual del Objeto (girl1-walking) esta resaltado. Para cambiarlo a uno diferente, simplemente haga clic en la imagen miniatura del disfraz que usted quiere.

Existen cuatro maneras de crear nuevos disfraces:

  1. Haga clic en p para dibujar un nuevo disfraz en el Editor de Pinturas
  2. Haga clic en s para importar un archivo de imágenes del disco duro
  3. Haga clic en 3para tomar fotos de la cámara web (que hace parte de su computador o está conectada a este). Cada que usted hace clic en el botón 4 o presiona la barra espaciadora, toma una foto. Arrastre una o más imágenes de la Web o de su PC

Scratch reconoce muchos formatos de imágenes: JPG, BMP, PNG, GIF (incluyendo GIF animados).

Cada disfraz tiene un número (que se muestra a su izquierda). Usted puede reorganizar el orden de los disfraces arrastrando las imágenes miniatura de estos. El numero asignado a los disfraces se actualiza si usted les cambia el orden.

Presione clic derecho  (Mac: Ctrl+clic) sobre la imagen miniatura de un disfraz para convertirlo en un nuevo Objeto o para exportar una copia del disfraz como un archivo separado.

SONIDOS

Haga clic en la pestaña Sonidos para ver los sonidos de los Objetos

s

Usted puede grabar nuevos sonidos o importar archivos de sonidos. Scratch puede leer archivos MP3 y archivos descomprimidos WAV, AIF y AU (codificados con 8 bits o 16 bits por muestreo, pero no con 24 bits por muestreo).

INFORMACIÓN DEL OBJETO ACTUAL

e

La Información del Objeto Actual muestra el nombre de un Objeto, su posición x-y, su dirección, su estado de giro, el estado de su lápiz y si está asegurado o no.
Usted puede escribir un nuevo nombre para el Objeto.

La dirección del Objeto indica en qué dirección se moverá este cuando se ejecute un bloque de movimiento (0=arriba, 90=derecha, 180=abajo, -90=izquierda). La línea azul en la imagen miniatura muestra la dirección del Objeto. Usted puede arrastrar esta línea para cambiar la dirección del Objeto y hacer doble clic en el Objeto para volver a su estado original (dirección=90).

Haga clic sobre Asegurar (candado) para cambiar el estado de asegurar/desasegurar del Objeto.
Un Objeto no asegurado, puede arrastrarse en el modo presentación y en el reproductor Web (web player).

Usted puede ver el color actual del lápiz (ubicado enseguida del candado) cuando el lápiz está abajo.

Para exportar un Objeto, haga clic derecho (Mac: Ctrl+clic) sobre el Objeto en el Escenario o en la Lista de Objetos.
Exportar guarda el Objeto como archivo .sprite, que puede importarse en otro proyecto.

ESTILO DE ROTACIÓN

Haga clic en los botones Estilo de Rotación para controlar cómo se ve el disfraz a medida que el Objeto cambia su dirección.

q Rotación: El disfraz rota a medida que el Objeto cambia de dirección.
e Pestaña izquierda-derecha: el disfraz mira o a la izquierda o a la derecha.
e No-rotar: el disfraz nunca rota, aun cuando el Objeto cambie de dirección.

BARRA DE HERRAMIENTAS

b

Haga clic en la Barra de Herramientas para seleccionar una herramienta y luego haga clic sobre otros Objetos para llevar a cabo una acción.

c Duplicar: Duplica Objetos, disfraces, sonidos, bloques y programas. (Shift+click para multiplicar la acción).
t Borrar: Borra Objetos, disfraces, sonidos, bloques y programas. (Shift+click para multiplicar la acción).
y Agrandar Objeto: Aumenta el tamaño de los Objetos. (Shift+click para acelerar esta acción).
y Achicar Objeto: Disminuye el tamaño de los Objetos (Shift+clic para acelerar esta acción).

Para regresar al cursor (flecha), haga clic en cualquier espacio en blanco de la pantalla.

MENU

6

Haga clic en el ícono de Lenguaje 8 para cambiar el idioma de la interfaz de usuario de Scratch. Cualquiera puede agregar o editar las traducciones de idioma de Scratch. Para agregar o modificar una traducción, diríjase a la sección de Apoyo (Support) de la página web de Scratch (http://info.scratch.mit.edu/Translation/).

Haga clic en el icono de Guardar 8 para guardar su proyecto.

Haga clic en el icono de Compartir 1 para subir su proyecto al sitio web de Scratch (http://scratch.mit.edu).

Desde el menú Archivo usted puede crear un nuevo proyecto, abrir un proyecto existente y guardar proyectos en el Folder de Proyectos de Scratch o en otros lugares.

Importar Proyecto trae todos los objetos y fondos de otro proyecto al proyecto actual. Esta opción es útil para combinar objetos provenientes de múltiples proyectos.

Exportar Objeto guarda el objeto actual como un archivo .sprite, que puede ser importado luego en otro proyecto.Notas sobre el Proyecto permite escribir y guardar anotaciones referentes a su proyecto tales como, instrucciones de cómo usarlo.Abandonar lo saca del programa de Scratch.

El menu Editar ofrece varias opciones para editar el proyecto actual.

Deshacer Borrado permite recuperar el último bloque, programa, objeto, disfraz o sonido que usted borró.

Ver los pasos separados le permite ver la ejecución del programa paso a paso. Cada bloque se ilumina cuando se ejecuta. Esta opción es útil para encontrar problemas en los programas y para ayudar a nuevos programadores a entender el flujo del programa. Activar Ver los pasos separados le permite programar la velocidad de cada paso (desde velocidad lenta hasta muy rápida)

Comprimir sonidos o Comprimir imágenes se usa para reducir el tamaño del proyecto. Al comprimir puede desmejorar la calidad de sonidos e imágenes.

Mostrar Bloques de Motor adiciona bloques a la categoría de movimiento. Usted puede usar los bloques de motor para programar un motor conectado a su computador. Los bloques de motor trabajan con LEGO® Education WeDo™ (http://www.legoeducation.com).

Desde el menú Compartir usted puede subir sus proyectos al sitio web de Scratch

Desde el menú Ayuda usted puede acceder a la página de ayuda con enlaces a materiales de referencia, tutoriales y preguntas frecuentes (FAQ). También puede acceder a la página que contiene todas las pantallas de ayuda.

BANDERA VERDE 

La Bandera Verde ofrece una manera fácil para comenzar varios programas simultáneamente. Haga clic sobre la Bandera Verde 2 (en la esquina superior derecha del escenario) para comenzar todos los programas que tengan 3 en la parte superior.

La Bandera Verde permanece resaltada mientras los programas se estén ejecutando

En el Modo Presentación presionar la tecla “Enter” tiene el mismo efecto que presionar la Bandera Verde

En el sitio web de Scratch tan pronto usted vea un proyecto, la Bandera Verde se activa automáticamente.

EDITOR DE PINTURAS
Usted puede usar el Editor de Pinturas para crear o editar disfraces y fondos

p

La Barra de Herramientas del Editor de Pinturas cuenta con las siguientes herramientas:

Brocha: Permite pintar libremente usando el color del primer plano. Cuando usted hace clic en esta herramienta, el Área de Opciones muestra el tamaño de la brocha (pincel). Haga clic en t para escoger diferentes tamaños de brocha.
Borrador: Borra con movimientos libres de la mano. Las áreas que se borran se vuelven transparentes. Cuando usted hace clic en esta herramienta, el Área de Opciones muestra los tamaños del borrador. Haga clic en b para escoger el tamaño del borrador.
Llenar: Herramienta para llenar de color sólido o gamas (gradientes) de este, áreas interconectadas. Cuando usted hace clic sobre ella, el Área de Opciones muestra las posibilidades de llenado (color sólido, gradiente horizontal, gradiente vertical o gradiente radial). Los gradientes se mezclan partiendo del color del primer plano y van hacia el color seleccionado para el fondo.
Rectángulo: Dibuja un rectángulo sólido o su contorno  usando el color actual del primer plano. Para hacer un cuadrado presione Shift+drag. Al hacer clic en esta herramienta, el Área de Opciones muestra el estilo de llenado, sólido o su contorno.
Elipse: dibuja una elipse sólida o su contorno (presione Shift+drag para hacer un círculo) usando el color actual del primer plano. Al hacer clic en esta herramienta, el Área de Opciones muestra el estilo de llenado sólido o su contorno.
Línea: Dibuja una línea recta (presione Shift+drag para trazar una línea horizontal o vertical) utilizando el color actual del primer plano. Cuando se hace clic en esta herramienta, el Área de Opciones muestra los diferentes tamaños de la brocha. Haga clic en b3 para escoger el ancho de brocha que desee.
Texto: añade texto al dibujo. Cuando usted hace clic en esta herramienta, el Área de Opciones le permite cambiar tanto el tipo de fuente como el tamaño de esta. Cada disfraz solo puede tener un bloque de texto.
Selección: Selecciona una región rectangular y permite moverla a una nueva ubicación (presione la tecla Suprimir/Delete para remover el área seleccionada; presione Shift+delete o Shift+backspace para borrar todo lo demás y dejar solo el área seleccionada).
Sello: (estampar) Selecciona una región rectangular y permite copiarla en una nueva ubicación; presione Shift+clic+drag (arrastrar) para repetir la copia (el sello) a medida que desliza el ratón.
Gotero: Use el extremo o punta del gotero para escoger el color del primer plano (haga clic en el Lienzo y arrastre el gotero para escoger un color que esté por fuera del Lienzo)

Los Colores Actuales (para primer plano y fondo) se muestran debajo del Área de Opciones. Usted puede hacer clic en la flecha de intercambio de color para cambiar los colores del primer plano y del fondo. Haga clic en uno de los Colores de la Paleta para escoger un nuevo color para el primer plano (presione Shift+clic para seleccionar un color para el fondo).

Para intercambiar la Paleta por defecto y la Paleta de color continuo, haga clic en la Paleta Alterna.

Haga clic en el botón Seleccionar centro de disfraz para escoger, dentro del en el dibujo, la ubicación que se va a utilizar como centro de rotación, cuando el Disfraz se rote en el escenario.

Haga clic en los botones de Zoom (acercar o alejar) para aumentar o disminuir el tamaño del Lienzo. Cuando el zoom es mayor al 100%, las barras de deslizamiento (scroll bars) se utilizan para lograr una vista panorámica alrededor del Lienzo. El zoom no cambia el tamaño de la imagen.

Para modificar el tamaño del contenido del Lienzo, o la selección actual, haga clic en los el botones de Escala (agrandar o achicar). Usted puede presionar simultáneamente Shift+clic sobre estos botones para ingresar un valor preciso. Achicar disminuye el tamaño y resolución de la imagen.

Para rotar el contenido del Lienzo o simplemente la selección actual, haga clic en los botones de Rotación (en sentido contrario a las manecillas del reloj o en el sentido de estas). Usted puede presionar Shift+clic para ingresar un valor preciso.

Para girar el contenido del Lienzo o simplemente la selección actual, haga clic en los botones de Giro (horizontal o vertical).

Haga clic en el botón Importar para abrir una imagen desde un archivo y adicionarla al Lienzo.

Haga clic en el botón Limpiar para remover todo el contenido del Lienzo.

Si usted comete un error, puede hacer clic repetidamente en el botón Deshacer para revertir las últimas acciones
realizadas. Si cambia de opinión, puede hacer clic en el botón Rehacer para restablecer las acciones que deshizo.

3. BLOQUES DE SCRATCH

TIPOS DE BLOQUES
Existen tres tipo principales de bloques en la Paleta de Bloques:

Bloques para Apilar (Stack): Estos bloques tienen protuberancias (salientes) y/o muescas en la parte superior, tal como e Estos bloques pueden encajarse unos con otros para formar pilas. Algunos de estos bloques tienen un área de ingreso de información en su interior, en la que usted puede escribir un número (por ejemplo 10 en el bloque t o seleccionar un elemento de un menú desplegable, tal como miau en el bloque t. Algunos bloques de apilar como p

tienen una “boca” en forma de C en la que usted puede insertar otros bloques de apilar.

Sombreros (Hats): Estos bloques tienen redondeada la parte superior, como p. Estos se ubican en la parte superior de las pilas. Esperan a que  suceda un evento, por ejemplo que se presione una tecla y entonces ejecutan los bloques que están debajo de ellos.   

Reporteros (Reporters): Este tipo de bloques como p o r están diseñados para encajar en el área de ingreso de información de otros bloques. Losreporteros con bordes redondeados como 5 o d, reportan números o cadenas de texto y encajan en bloques que tienen espacios redondeados o rectangulares como. 8 o 4. Los Reportes con bordes en punta (como r) reportan valores booleanos (verdadero o falso) y encajan dentro de bloques con espacios que terminan en punta o son rectangulares como e o d.

Haga clic en cualquiera de los bloques reporteros para ver su valor actual.

Algunos de los bloques reporteros tienen una casilla enseguida de ellos, como p. Si usted hace clic en la casilla, aparece un monitor en el escenario, que muestra el valor actual del reportero. A medida que el valor del reportero cambia, el monitor lo actualiza automáticamente. Un monitor puede mostrar el valor del reportero en varios formatos diferentes:

p un espacio pequeño con información impresa con el valor del reportero
o un espacio grande de lectura (del valor reportado) sin ningún nombre
p un deslizable que le permite manipular el valor del reportero (disponible solo para variables)

Haciendo doble clic o clic derecho en el monitor se cambia de un formato a otro. En el Mac presione Ctrl+clic para hacer el cambio.

El formato deslizante solo esta disponible para variables creadas por los usuarios. Haga clic derecho en el monitor sobre el formato deslizante para ajustar sus valores mínimos y máximos. En el Mac presione Ctrl+clic para hacer esa acción.

LISTAS
Ahora usted puede crear y manipular listas en Scratch. Las listas pueden guardar tanto números como cadenas de letras u otros caracteres.

Para crear una lista, vaya a la categoría de los bloques de Variables y haga clic en n. Una vez que usted hace una lista, aparecen varios bloques de listas. Estos bloques de listas se describen en la sección Descripciones de Bloques de esta guía.

Cuando usted crea una lista, un monitor de lista aparecerá en el Escenario. Ese monitor muestra todos los elementos en una lista determinada. Usted puede escribir elementos directamente en el monitor de lista.

l

Inicialmente la lista estará vacía y su longitud será 0. Para agregar una casilla a la lista, presione el botón + ubicado en la parte inferior izquierda del monitor de lista.  La longitud se incrementará en 1.  Alternativamente, usted puede adicionar un espacio a la lista, usando bloques de lista como a

Usted puede redimensionar el monitor de lista desde la esquina inferior derecha.

Nota: Usted puede presionar clic derecho en un monitor de lista para exportar una lista a un archivo  plano .txt. En el Mac presione ctrl+clic. También puede importar cualquier archivo  plano .txt que haya guardado, con valores en líneas separadas.

CADENAS
Las cadenas están formadas por letras, palabras u otros caracteres (ej. Manzana; Septiembre 2008; Usted gana!).

Las cadenas se pueden guardar en variables o listas, tales como f oa .

Usted puede unir cadenas usando u. Usted puede comparar cadenas usando los siguientes bloques: a s s. Las cadenas se evalúan como 0 en los bloques de operaciones matemáticas (tales como s) y en bloques que reciben un número (tales como m y c)

ENTRADA POR TECLADO
Usted puede usar p para pedir a un usuario que escriba una respuesta a través del teclado. La respuesta se almacena en re. La pregunta aparece en la pantalla y el programa espera hasta que se presione la tecla Enter o se haga clic en la casilla de verificación (check mark).

g1
La pregunta aparece en un globo de voz cuando se usa en un objeto

ga2
La pregunta aparece en la parte inferior de la pantalla
cuando se usa en el Escenario.

re se comparte por todos los objetos (global) y cambia cada vez que se ejecuta.

p. Si usted desea guardar la respuesta actual, la puede almacenar en una variable o lista, tal como: fi

 DESCRIPCIÓN DE BLOQUES

Los bloques de Scratch están organizados dentro de ocho categorías de códigos de color: movimiento, apariencia, sonido, lápiz, control, sensores, números y variables.

 MOVIMIENTO 
m Mueve el Objeto hacía adelante

o hacía atrás.

g Rota el Objeto en el sentido de

las manecillas del reloj.

g2 Rota el Objeto en el sentido contrario

a las manecillas del reloj.

a Apunta el Objeto en la dirección

especificada (0=arriba; 90=derecha;

180=abajo; -90=izquierda).

ap Apunta el Objeto hacia el puntero del

ratón o hacia otro Objeto.

i Mueve el Objeto hacia una posición

específica de X, Y en el escenario.

i Mueve el Objeto a la ubicación del

puntero del ratón o de otro Objeto.

d Mueve el Objeto suavemente a una

posición determinada en un lapso de

tiempo específico.

c Cambia la posición X del Objeto en

una cantidad determinada (incrementa).

f Fija la posición X del Objeto a un

valor específico.

c Modifica la posición Y del Objeto

en una cantidad determinada (incrementa).

fy Fija la posición Y del Objeto a un valor

específico.

r Gira el Objeto en sentido contrario,

cuando este toca un borde del escenario.

p Informa la posición X del Objeto.

(Rango entre –240 a 240)

p Informa la posición Y del Objeto

(Rango entre -180 a 180)

d Informa la dirección del Objeto

(0=arriba; 90=derecha;

-90=izquierda; 180=abajo)

BLOQUES DE MOTOR
Los Bloques de Motor solo aparecen si usted selecciona Mostrar Bloques de Motor en el menú Editar o si usted conecta un LEGO WeDo. Estos bloques trabajan con un motor LEGO WeDo.

1 Enciende el motor por un período de tiempo determinado
2 Enciende el motor
3 Apaga el motor
4 Fija el poder o capacidad del motor y lo enciende. (Rango entre 0 y 100)
6 Establece o modifica la dirección del motor, pero no lo enciende. (en

esta dirección = sentido manecillas del reloj; en esta otra dirección = contrario

a las manecillas del reloj; reversa = cambio de dirección)

APARIENCIA
c Modifica la apariencia del Objeto cambiando de disfraz.
s Cambia el disfraz del Objeto por el siguiente disfraz en la lista de disfraces (cuando llega al final del listado de estos, vuelve a comenzar con el primer disfraz).
n Informa el número correspondiente al presente disfraz del Objeto
n Modifica la apariencia del escenario cambiando a un fondo diferente.
f Modifica la apariencia del escenario pasando al siguiente fondo disponible en el listado de estos.
n Reporta el número del fondo actual del escenario.
d Despliega una nube de diálogo del Objeto durante un lapso de tiempo determinado
9 Despliega   una nube de diálogo del Objeto (se puede eliminar esta burbuja de diálogo ejecutando este bloque sin texto alguno).
9 Despliega  una nube de pensamiento del Objeto durante un determinado lapso de tiempo.
p Despliega una nube de pensamiento del Objeto.
c Modifica un efecto visual del Objeto en una cantidad especificada (use el menú desplegable para seleccionar el efecto).
f Establece un efecto visual a un número dado (la mayoría de efectos visuales se ubica en un rango de 0 a 100).
q Limpia o borra todos los efectos gráficos de un Objeto
c Modifica el tamaño del Objeto en una cantidad especificada (incrementa).
c Ajusta el tamaño del Objeto en un porcentaje (%) especifico respecto a su tamaño original.
t Informa el tamaño del Objeto como porcentaje (%) de su tamaño original.
m Hace aparecer un Objeto en el escenario.
e Hace desaparecer un Objeto del escenario (cuando el Objeto está escondido, otros Objetos no lo pueden detectar con el bloque “¿tocando?”).
e Ubica el Objeto al frente de todos los demás Objetos (capa superior).
a Mueve el Objeto hacia atrás, un número determinado de capas, de manera que pueda ocultarse detrás de otros Objetos.
SONIDO
1 Comienza la reproducción del sonido seleccionado del menú desplegable, e inmediatamente pasa al siguiente bloque aunque el sonido se esté ejecutando aún.
2 Reproduce un sonido y espera hasta que el sonido termine, antes de continuar con el bloque siguiente.
3 Detiene todos los sonidos.
4 Reproduce un determinado número de sonido de tambor, seleccionado del menú desplegable, durante un número específico de pulsos.
5 Reproduce una nota musical (número altos para tonos altos) durante un número específico de pulsos.
6 Descansa, no toca nada, durante un número específico de pulsos.
7 Establece el tipo de instrumento que usa el Objeto para los bloques de tocar notas (cada Objeto tiene su propio instrumento).
8 Modifica el volumen del sonido del Objeto en un valor especificado (incrementa o decrementa el volumen).
9 Fija el volumen del sonido del Objeto a un valor especifico.
10 Informa el volumen del sonido del Objeto.
11 Modifica el tempo del Objeto en una cantidad específica (incremental).
12 Fija  el tempo del Objeto a un valor especificado de pulsos por minuto.
13 Informa el tempo del Objeto en pulsos por minuto.

 LÁPIZ
  1 Borra todas las marcas de lápiz y de sellos (estampados) del Escenario.
2 Baja el lápiz del Objeto, de manera que este pinte a medida que se mueve.
3 Levanta el lápiz del Objeto, de manera que no pinte cuando se mueva.
4 Establece el color del lápiz, basado en la selección hecha en la paleta de color.
5 Modifica el color del lápiz en una cantidad específica.
6 Establece el color del lápiz a un valor determinado. (color-lápiz=0 en el borde rojo del arco iris; color-lápiz=100 en el borde azul del arco iris)
7 Modifica la intensidad del lápiz en una cantidad especificada (incrementa).
8 Establece un valor específico para la intensidad del lápiz (sombra-lápiz=0 es muy oscura; sombra-lápiz=100 es muy clara).
9 Cambia el grosor del lápiz (incrementa en una cantidad específica).
9 Establece el grosor del lápiz.
11 Estampa o copia la imagen del Objeto en el Escenario.
CONTROL
b Ejecuta el programa que tiene debajo al hacer clic en la bandera verde.
t Ejecuta el programa que tiene debajo al presionar una tecla específica.
1 Ejecuta el programa que tiene debajo al hacer clic en un Objeto.
2 Espera un número determinado de segundos y continúa luego con el bloque siguiente.
3 Ejecuta continuamente los bloques en su interior.
4 Ejecuta, un número específico de veces, los bloques en su interior.
6 Envía un mensaje a todos los Objetos, activándolos para que hagan algo y espera a que todos terminen antes de continuar con el siguiente bloque.
7 Envía un mensaje a todos los Objetos y luego continúa con el bloque siguiente sin esperar a que se realicen las acciones de los Objetos activados.
5 Ejecuta el programa que tiene debajo cuando recibe un mensaje específico “enviar a todos” (Broadcast).
8 Comprueba continuamente si una condición es verdadera; cada que es verdadera, ejecuta los bloques en su interior.
9 Si la condición es verdadera, ejecuta los bloques en su interior.
10 Si la condición es verdadera, ejecuta los bloques dentro de la porción si; si no, ejecuta los bloques que están dentro de la porción si no.
11 Espera hasta que la condición sea verdadera, para ejecutar los bloques siguientes.
12 Comprueba si la condición es falsa; si lo es, ejecuta los bloques en su interior y vuelve a chequear la condición. Si la condición es verdadera, pasa a los bloques siguientes.
14 Detiene el programa edl Objeto que contiene esta instrucción.
d Detiene todos los programas de todos los Objetos.
SENSORES
1 Informa la posición “X” del puntero del ratón.
2 Informa la posición “Y” del puntero del ratón.
r Informa verdadero, si el botón del ratón está presionado.
p Informa verdadero, si una tecla específica está presionada.
t Informa verdadero, si el Objeto está tocando un Objeto específico, un borde o el puntero del ratón (seleccionados del menú desplegable).
c Informa verdadero, si el Objeto está tocando un color específico. (Haga clic en la paleta de color y luego utilice el gotero para seleccionar el color).
8 Reporta verdadero si el primer  color (dentro del Objeto), está tocando un segundo color (tanto en el fondo como en otro Objeto). Haga clic en la paleta de color y luego utilice el gotero para seleccionar el color.
9 Informa la distancia desde un Objeto específico o desde el puntero del ratón.
10 Fija el cronómetro en 0.
11 Reporta el valor del cronometro en segundos (el cronómetro siempre está contando).
12 Informa una propiedad o variable de otro Objeto.
Reporta el volumen de los sonidos captados por el micrófono del computador (entre 1 y 100).
Reporta verdadero, si el volumen del sonido captado por el micrófono del computador es mayor de 30 (en escala de 1 a 100).
15 Informa el valor de un sensor específico. Para usar este bloque se necesita tener un “PicoBoard” conectado a su computador. Para aprender más consulte:http://www.playfulinvention.com/picoboard.html
16 Informa  verdadero, si un sensor específico está presionado. Para usar este bloque se necesita tener un “PicoBoard” conectado a su computador.  Para aprender más consulte:http://www.picocricket.com/picoboard.html

NÚMEROS
1 Suma dos números.
2 Resta dos números
3 Multiplica dos números.
4 Divide dos números.
4 Selecciona un número entero al azar dentro de un rango especificado.
6 Informa verdadero, si el primer valor es menor que el segundo.
8 Reporta verdadero, si dos valores son iguales.
9 Informa verdadero, si el primer valor es mayor que el segundo.
9 Informa verdadero, si ambas condiciones son verdaderas.
10 Informa verdadero,  si una de las dos condiciones es verdadera.
11 Reporta verdadero, si la condición es falsa; reporta  falso si la condición es verdadera.
1 Concatena (combina) cadenas de letras (caracteres)
2 Informa el número de letras en una cadena
1 Informa la letra en una posición específica dentro de una cadena
12 Reporta el resultado de una función seleccionada (abs, raíz cuadrada, sin, cos, tan, asin, acos, atan, ln, log, e^, 10^) aplicada a un número específico.
12 Informa el resto (módulo) de la división del primer número por el segundo número.
r Informa el entero más cercano a un número.
VARIABLES
nvariable Permite crear y nombrar una nueva variable. Cuando usted genera una variable, aparecen los bloques correspondientes a ella. Se puede escoger si la variable es para todos los Objetos (global) o solo para un Objeto (local)
borrar Borra todos los bloques asociados con una variable
infor Informa el valor de la variable
cam Modifica la variable en una cantidad determinada (Si se tiene más de una variable, utilice el menú desplegable para seleccionar el nombre de la variable)
fijar Fija la variable a un valor específico.
most Muestra el monitor de la variable en el escenario
escon Esconde el monitor de la variable para que no aparezca en el escenario
nue Permite crear y nombrar una nueva lista. Cuando se genera una lista, aparecen los bloques para esa lista. Se puede escoger si la lista es para todos los Objetos (global) o solo para un Objeto (local)
bo Borra los bloques asociados a una lista.
mi Reporta todos los elementos que tiene la lista.
alist Adiciona el elemento especificado  al final de la lista (el elemento puede ser un número o una cadena de letras u otros caracteres).
borr Borra uno o todos los elementos de una lista. Se puede escoger del  menú desplegable o usar un número para indicar qué  elemento borrar. Si escoge “último” borrará el último elemento de la lista. Si escoge “todos” borra todo lo que contiene la lista. Borrar, decrementa la longitud de la lista.
ins Inserta un elemento en un lugar específico de la lista. Se puede escoger del menú desplegable o usar un número para indicar dónde insertar el elemento dentro de la lista. Si escoge “último” adiciona el elemento al final de la lista. Si se escoge “cualquiera”  lo inserta aleatoriamente en la lista. La longitud de la lista se incrementa en 1.
rem Reemplaza un elemento de la lista con un valor específico.  Se puede escoger del  menú desplegable o usar un número para especificar el elemento que va a reemplazar. Si escoge “último” , reemplaza el último elemento de la lista. Si escoge “cualquiera”  reemplaza aleatoriamente un elemento de la lista. La longitud de la lista no se modifica.
milist Reporta el elemento en una ubicación específica dentro de la lista.

Usted puede especificar cuál elemento, eligiendo del menú

desplegable o escribiendo un número.

long Reporta cuántos elementos hay en la lista.

2014-15. INICIACIÓN A ARDUINO. SENSOR ULTRASONIDOS Y LCD

Cabecera entradas blog

SENSOR DE ULTRASONIDOS Y PANTALLA DE CRISTAL LÍQUIDO LCD


Midiendo distancias con un sensor de ultrasonidos

Un complemento imprescindible para muchos de robots o vehículos controlados a distancia es un sensor que nos permita saber la distancia libre de obstáculos para movernos. Dependerá de las distancias con las que pretendamos interactuar:

  • Si las distancias van a ser pequeñas podemos emplear sensores de infrarrojos,
  • si queremos movernos en áreas grandes y poder medir distancias en un rango de varios metros el complemento perfecto es unsensor de ultrasonidos.

PRINCIPIO DE FUNCIONAMIENTO

Funciona exactamente igual que un radar, de hecho es un pequeño radar. Emite un pulso de sonido a una frecuencia tan alta que es imperceptible para el oído humano y cronometra el tiempo que el sonido tarda en llegar a un obstáculo, rebotar y volver al sensor. Como la velocidad de propagación del sonido en el aire es un dato bien conocido (343.2 m/s) echamos mano de una conocidísima formula (e = v * t) y calculamos la distancia recorrida por el sonido. Parece fácil ¿verdad?… por que lo es.

EL SENSOR QUE EMPLEAREMOS

Utilizaremos un sensor de ultrasonidos SKU: SEN136B5B cuyo rango de medida va desde los 3 cm a los 4 m, suficiente para cualquier proyecto de robótica y que tiene la gran ventaja de necesitar un único pin de nuestro Arduino para hacerlo funcionar:

Captura1

A pesar de ser habitual encontrar sensores con cuatro pines (ECHO, TRIGGER, GND, PIN), nosotros trabajaremos en clase con el modelo de 3 pines, concretamente con el de la derecha.

Este componente dispone de 3 pines  (gnd, 5v, sig) Conectaremos los 2 pines de alimentación tal y como indican las leyendas que contienen y el tercero será el que utilicemos para comunicarnos con el sensor. El pin de señal se utilizara tanto como entrada o salida digital. Para solicitar que nos mande la información se le envía un pulso al aparato y este nos regresara una señal y en base a la longitud de la señal averiguaremos  la distancia a la que se encuentra el obstáculo en caso de existir o estar a rango.

¿Como puede funcionar con un solo pin? ¿acaso no necesitamos uno para mandarle una señal y otro para recibir la respuesta?. Pues no, se puede hacer todo por el mismo y de una forma nada complicada lo que también nos servirá, de paso, para disipar una de las dudas más comunes entre los principiantes: la inamovilidad de la declaración de pines como entrada o salidas.

En todos los ejemplos de código que nos encontraremos en la web oficial de Arduino y en las demás se utiliza el bloque setup() del Sketch para hacer declaraciones pinMode() y establecer los pines que vayamos a utilizar como entradas o como salidas. En todos estos ejemplos se busca la sencillez y estas declaraciones no se cambian a lo largo del código y esto da lugar a que muchos usuarios tengan la errónea creencia de que sólo se pueden declarar pines como entradas o salidas en el setup() y que una vez establecido un pin como entrada o salida ya no se puede cambiar…. FALSO.

  1. /* Tecnología 4º ESO y Electrónica 1ºBCHT */
  2. /* Sketch medidor ultrasonico */
  3. /* Utilizaremos un sensor de ultrasonidos SKU: SEN136B5B */
  4. unsigned long pulso; // necesitamos una variable para medir el pulso
  5. float distancia; // otra para calcular la distancia
  6. int pin = 8;  // y otra para el pin
  7. void setup() {
  8. Serial.begin(9600);  // inicializamos el puerto serie
  9. }
  10. void loop()
  11. {
  12.   pinMode(pin, OUTPUT);     // ponemos el pin como salida
  13.   digitalWrite(pin, HIGH);  // lo activamos
  14.   delayMicroseconds(10);    // esperamos 10 microsegundos
  15.   digitalWrite(pin, LOW);   // lo desactivamos
  16.   pinMode(pin, INPUT);      // cambiamos el pin como entrada
  17.   pulso = pulseIn(pin, HIGH);  // medimos el pulso de salida del sensor
  18.   Serial.print(“tiempo = “);   // lo pasamos a milisegundos y lo sacamos por el puerto serie
  19.   Serial.print(float(pulso/1000.0));
  20.   Serial.print(“ms, distancia = “);  // ahora calculamos la distancia en cm  y al puerto serie
  21.   distancia = ((float(pulso/1000.0))*34.32)/2;
  22.   Serial.print(distancia);
  23.   Serial.println(“cm”);
  24.   delay(1000);  // esperamos un segundo antes de hacer una nueva medida
  25. }

Captura2

REFLEXIONES SOBRE ALGUNAS VARIABLES

Dentro del código hay que prestar atención a los distintos tipos de datos ya que trabajamos con un unsigned long y con un float y además tenemos que hacer operaciones entre ellos, lo cual puede ser delicado.

El unsigned long es una variable tipo de dato para enteros sin signo (32 bits), números sin punto decimal. Los enteros largos puede ser tan grandes como 4294967295 y tan pequeños como 0. Son almacenados como 32 bits ( 4 bytes ) de información.

La diferencia entre el unsigned long y el int es que éste último es una variable tipo de datos para enteros, números sin punto decimal. Los enteros pueden ser tan grandes como 32.767 y tan pequeños como -32,768. Estos son almacenados como 16 bits de información.

Float es una variable de datos para números de punto flotante, un número que tiene un punto decimal. Los números de punto flotante son usados frecuentemente para aproximar valores análogos y continuos porque tienen más resolución que los enteros. Los números de tipo float pueden ser tan grandes como 3.4028235E+38 y tan pequeños como -3.4028235E+38. Estos son almacenados como 32 bits (4 bytes) de información.

ESQUEMA DE MONTAJE

Captura3

Conexión pantalla LCD a ARDUINO

Podemos conectar una pantalla de cristal líquido a nuestro Arduino.

Captura4

Esta pantalla funciona gracias al famoso y superconocido chip HD44780 que se utiliza en infinidad de proyectos.
Bien, veamos los pines:

  • VSS que es el pin de negativo o masa o 0 volts o GND.
  • VDD es la alimentación principal de la pantalla y el chip, lleva 5 volts.
  • VO es el contraste de la pantalla, debe conectarse con un potenciometro de unos 10k ohms o una resistencia fija una vez que encontremos el valor deseado de contraste. Tengan en cuenta que si no conectan esto, no verán nada.
  • RS es el selector de registro (Register select).
  • RW es el pin que comanda la lectura/escritura. En nuestro caso siempre estará en 0 (conectado a GND) para que escriba en todo momento.
  • E es enable, habilita la pantalla para recibir información.
  • D0~D3 no los vamos a utilizar. Como pueden ver la pantalla tiene un bus de datos de 8 bits, de D0 a D7. Nosotros solamente utilizaremos 4 bits, de D4 a D7.
  • A y K son los pines del led del backlight de la pantalla. A se conectará a 4 o 5 volts y K a gnd.

En nuestro caso utilizaremos el siguiente conexionado:

  • VSS: a GND.
  • VDD: a 5 volts.
  • VO: Al pin medio de un potenciometro de 10K con sus terminales entre 5v y GND.
  • RS: Pin 11.
  • RW: a GND.
  • E: Pin 12.
  • D0~D3: Sin conectar.
  • D4~D7: pines 7 a 10. (bits de datos).
  • A: A 5 volts pasando por una resistencia de 5K para bajar un poco la luminosidad.
  • K: a GND.

Para comandar la HD44780 utilizamos la librería ya conocida LiquidCrystal.

Captura5

 

 

Seguimiento de la asignatura de Tecnología e innovaciones. Colegio Espíritu Santo de Baena (Córdoba). Prof.: Fco. Javier Cortés Ariza