Subscribe:

AD (728x90)

About

Blogroll

Blogger templates

Blogger news

Scratch y Arduino



Ejemplos con S4A


En “Scratch para Arduino (S4A): configuración inicial” hemos visto qué es y qué nos permite el software S4A, cómo debemos configurar nuestro equipo y la placa de Arduinopara empezar a trabajar con esta aplicación, y generalidades de su entorno o interfaz.
S4A guarda muchas similitudes con Scratch 1.4, tantas que podemos importar los proyectos que ya tengamos de dicha versión de Scratch y adaptarlos para trabajar con nuestro Arduino. S4A, al igual que Scratch 1.4 trabajan con proyectos con la extensión .sb. En el supuesto de querer basar nuestro trabajo en un proyecto de Scratch 2.0 (extensión .sb2) podríamos utilizar el Retro Convertidor de blob8108 o seguir las instrucciones dadas en esta wiki para convertir el archivo. Antes debemos tener presente que sólo puede convertir los bloques de Scratch 1.4, no de versiones posteriores.
Una buena manera de aprender cómo funciona Scratch for Arduino (S4A), cómo conectar su lenguaje de bloques con la placa de Arduino para enviar y recibir instrucciones (escrituras y lecturas digitales, tratamiento con motores estándar y servomotores, etc.) es mediante ejemplos concretos, como los que a continuación desarrollamos.

Ejemplo del semáforo manual

El proyecto consiste en un coche que circula repetitivamente por una calle, que se detiene cuando nosotros decidimos poner el semáforo en rojo y que continua su marcha cuando este está en verde. El semáforo cambia de color cuando pulsamos el botón “Parar“, objeto programado con bloques comunes a Scratch, o cuando pulsamos físicamente un botón que hemos instalado en una protoboard o placa de pruebas conectada a nuestro Arduino. En dicha placa también hemos añadido tres leds (rojo, amarillo y verde) que cambian de color a la vez que lo hacen las luces del semáforo del escenario del proyecto.

Escenario del ejemplo del Semáforo
Escenario del ejemplo del Semáforo

Este es el resultado final que nos gustaría conseguir:



Hardware utilizado:
  • Arduino Uno
  • Cable USB
  • Protoboard
  • 3 resistencias de 220 omnios
  • 3 leds (rojo, amarillo y verde)
  • 1 botón pulsador
  • Cables tipo jumper dupont de colores

Hardware utilizado en el ejemplo del Semáforo con S4A
Hardware utilizado en el ejemplo del Semáforo con S4A


Objetos creados en S4A y sus respectivos programas:

Objetos del ejemplo
Objetos del ejemplo

  • Objeto de Arduino. La salida digital 12 se correspondería el led verde, la 11 con el led amarillo y la 10 con el led rojo. El sensor digital3 se asocia con el pulsador físico instalado en la protoboard. Se crea la variable “Color” para establecer los colores de los led según cambian los del semáforo.

Programas del objeto Arduino
Programas del objeto Arduino


  • Objeto1: el coche. Al presionar la bandera verde se envía “Avanzar“, instrucciones que hacen que el coche se mueva constantemente por la calle rebotando al llegar a los bordes hasta que el semáforo está en rojo (variable “Color” = 0).

Programas del objeto coche
Programas del objeto coche


  • Objeto2: el semáforo. Tiene a su vez tres disfraces, según la disposición de las luces del semáforo. Al recibir la orden “pulsar” establece el comportamiento de las luces del semáforo (disfraces) y de los leds conectados a la protoboard.

Programas del semáforo
Programas del semáforo

  • Objeto3: botón “Parar”. Simplemente al presionar sobre el botón se envía “pulsar” al resto de objetos en este caso.

Objeto botón "Parar"
Programas del objeto botón “Parar”


El esquema de las conexiones físicas del proyecto sería el siguiente:
Tenemos las salidas digitales 12, 11 y 10 conectadas a una resistencia de 220 ohm a su pata positiva (los led trabajan a unos voltajes inferiores de 5V y las resistencias nos ajustan a este valor) y, por su parte, la pata negativa la tenemos conectada a GND (tierra) de forma común en la protoboard. Por otra parte, la entrada digital 2 se conecta a una pata del pulsador y la otra también a GND. Por último, el cable negro conecta el pin GND de Arduino con el carril negativo de la protoboard.

semaforo08
Conexiones físicas del ejemplo del semáforo

Así es como nos quedó:
semaforo10
semaforo09
Observaciones:
  • Los programas del proyecto se podrían depurar más o plantear de otra forma.
  • Podemos conectar una resistencia de 10 kohm a una de las patas del pulsador para evitar variaciones en el pulso eléctrico y tener lecturas estables.

Puedes descargar el proyecto en este enlace.
En el manual S4A (Scratch) + Arduino de José Manuel Ruiz Gutiérrez, página 23, puedes ver otro ejemplo con un semáforo.


Ejemplo de S4A con un joystick

Partiendo de un proyecto ejemplo de S4A de la categoría “Games” que lleva por nombre “FishChomp” vamos a hacer que el pez grande, protagonista del juego, ser controlado por un joystick conectado directamente a una placa de Arduino, sin pasar por una protoboard, en lugar de por el ratón.

joystick01
Proyecto ejemplo de S4A con un joystick de Arduino


Así es como quedará el proyecto modificado:


Hardware utilizado:
  • Arduino Uno
  • Cable USB
  • 1 joystick
  • Cables tipo jumper dupont de colores
  • Cables extensores

joystick04
Apariencia del joystick conectado directamente a la placa de Arduino


¿Cómo se abre el proyecto ejemplo FishChomp de S4A?
Abrimos S4A, vamos a Archivo >>> Abrir, pulsamos en el botón “Ejemplos” y entramos en la carpeta “Games“.

joystick02
Categorías de los proyectos de ejemplo de S4A


Seleccionamos el proyecto “3 FishChomp” y aceptamos.

joystick03
Abriendo un proyecto de ejemplo de S4A


Objetos creados y/o modificados en S4A y sus respectivos programas:

joystick05
Objetos originales del proyecto Fishchomp

Sólo se ha creado y programado un nuevo objeto Arduino y se ha modificado un programa del objeto “hungry fish”.

joystick06
Objetos finales del proyecto modificado

  • Objeto de Arduino. Se crean las variables “x” e “y” que se fijan a la resta del valor que por defecto nos han devuelto las entradas analógicas (516 y 506 respectivamente) menos el valor de dichos sensores analógicos.

joystick07
Programa del objeto Arduino


  • Objeto “hungry fish. Se han sustituido los bloques que daban el control del movimiento del pez grande al ratón por otros que por siempre varían la posición de los ejes de coordenadas x e y en función de la variable que hemos creado en el objeto Arduino.

Objeto del objeto "hungry fish"
Objeto del objeto “hungry fish”


El esquema de las conexiones físicas queda así:
El cable rojo se conecta a tierra (GND), el marrón-naranja a 5V, el negro de la coordenada X a la entrada analógica 0 y el blanco de la coordenada Y a la entrada analógica 1.

joystick11
Conexiones físicas del ejemplo del joystick


Y con fotos reales:
joystick09
joystick10
Puedes descargar el proyecto en este enlace.
Hay un ejemplo parecido publicado el blog de Programamos con título “Mi primer videojuego con mando S4A y Arduino“.

Comparte