0% encontró este documento útil (0 votos)
265 vistas196 páginas

Programando S4a1

Este documento introduce el entorno de programación gráfica Scratch para Arduino (S4A). Explica que S4A permite enseñar conceptos básicos de programación a niños de forma divertida y accesible. También describe cómo instalar S4A, incluyendo la descarga e instalación del entorno de desarrollo Arduino, la carga del firmware en la placa Arduino y la descarga e instalación del programa S4A.

Cargado por

Manuel Vega
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
265 vistas196 páginas

Programando S4a1

Este documento introduce el entorno de programación gráfica Scratch para Arduino (S4A). Explica que S4A permite enseñar conceptos básicos de programación a niños de forma divertida y accesible. También describe cómo instalar S4A, incluyendo la descarga e instalación del entorno de desarrollo Arduino, la carga del firmware en la placa Arduino y la descarga e instalación del programa S4A.

Cargado por

Manuel Vega
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 196

INTRODUCCIN A SCRATCH

Scratch for kids

OBJETIVOS
El objetivo de este curso es ayudar a acercarse al mundo de la programacin a cualquiera
que quiera comenzar, especialmente a los ms pequeos, de una forma atractiva y divertida,
mediante el uso del entorno grfico de programacin S4A (Scratch for Arduino).

Por otro lado, dotar a los colegios y docentes en general, de unas unidades didcticas que
puedan seguir para impartir un curso de Tecnologa para primaria o ESO, a sabiendas de
que el objetivo no es tanto Arduino, sino dar unas primeras nociones de programacin y
electrnica bsica a sus alumnos.
Por eso el curso est ordenado de modo que se pueda empezar sin ningn conocimiento
previo y vaya avanzando presentando conceptos y competencias bsicas que permitan
avanzar con suelo firme hasta un punto en que puedas acometer tus propios proyectos con
garantas de xito.
Scratch est diseado para ser sencillo de usar y con los mas peques en mente (Entre 8 y
15 aos) de modo que puedan iniciarse a la programacin de un modo divertido y que
resulte atrayente, pero muchos padres sin conocimientos previos de programacin
probablemente se sorprendan al ver que tambin ellos son capaces de hacer programas
medianamente complejos y entendiendo lo que hacen y no simplemente copiando.

El conocimiento de la programacin esta comenzando a formar parte de las competencias


necesarias en la educacin bsica, no con la intencin de todos se conviertan en
programadores, sino para que conozcan los rudimentos de una disciplina que es clave para
comprender el mundo en el que van a vivir.
Scratch for Arduino S4A es un entorno sencillo y divertido para los alumnos mas jvenes,
que les inicia en ese camino y les introduce a los conceptos inherentes a la programacin
estructurada de un modo que parece un juego, pero con muchas mas profundidad de lo que
a primera vista se percibe.

QU ES ARDUINO?

Arduino es una plataforma de cdigo abierto basada en una placa


con un micro controlador y un entorno de desarrollo. Se desarroll con la idea de facilitar la
creacin de todo tipo de proyectos de electrnica y hacerlo accesible a los no profesionales.
Simplificando podramos decir que un Arduino es un pequeo ordenador cuyas funciones
principales son:

Recoger en el microcontrolador la informacin de los perifricos.


Procesar esos datos de acuerdo a nuestras instrucciones.
Llevar informacin a los perifricos encargados de usar los datos.
De entre todas las plataformas de hardware libre, hemos elegido Arduino porque ofrece
ciertas ventajas para estudiantes, profesores y aficionados:

Es barata.
Es multiplataforma: el software de Arduino se puede ejecutar desde sistemas operativos
Windows, Linux y Macintosh OSX.
Es fcil de usar y de programar.
El software y el hardware son de cdigo abierto y ampliable.
Tiene una comunidad de usuarios inmensa.
Es compatible con muchsimos perifricos de todo tipo.
Tiene infinidad de aplicaciones.

ENTORNOS GRFICOS DE PROGRAMACIN

Un programa consiste en una serie de instrucciones que se ejecutan de manera secuencial.


Por eso las instrucciones deben ser:

Precisa: Sin las ambigedades inherentes a la comunicacin humana.


Univoca: Solo se puede interpretar de una manera.
Concisa: Preferiblemente rdenes cortas
Programar se podra resumir como proporcionarle esas instrucciones a una mquina para
que haga lo que nosotros queramos. Para poder comunicarnos con ella necesitamos un
lenguaje comn. A esto le llamamos lenguaje de programacin.
Existen muchos lenguajes de programacin, y aunque los hay de diferente dificultad de
aprendizaje, lo cierto es que aprender cualquiera de ellos no es una tarea sencilla. En el
caso de Arduino se programa en una variante de C++.
Una de las mayores barreras que existen a la hora de empezar a trabajar con Arduino en
educacin primaria o secundaria es precisamente la de tener que escribir cdigo.
Un entorno grfico de programacin sustituye el cdigo del lenguaje de programacin por
bloques grficos para acercar a este mundo de manera atractiva, accesible y divertida a
todas las personas que quieran aprender a programar, especialmente a los nios y
adolescentes.

A lo largo de este curso utilizaremos el entorno grfico Scratch 4 Arduino (S4A), basado en
el popular Scrath desarrollado por el MIT, que proporciona una herramienta de
programacin sencilla para la placa Arduino.

S4A es compatible con las placas Arduino Uno, Diecimilia y Duemilanove y


funciona en los sistemas operativos ms populares: Windows, Linux y MacOS.
Es importante saber que nuestra placa Arduino slo ejecutar el programa
mientras est conectada al PC.
Con S4A no podemos conectar la placa Arduino a una fuente de alimentacin y
que siga ejecutando el ltimo programa que le hemos cargado

MATERIALES NECESARIOS
Somos conscientes de la dificultad que puede suponer conseguir los materiales necesarios
para seguir el curso, y por eso hemos desarrollado un kit de Inicio que se pueda usar como
base para su seguimiento con garantas.
Aunque en el kit se incluyen cosas que no usaremos en este curso, si segus adelante
tendris todo lo que necesitis para seguir con el curso de programacin en el IDE de
Arduino, en el que aprenderemos a programar con cdigo (derivado del C++) , y
utilizaremos nuevos y ms complejos componentes electrnicos.
No pretendemos que nuestro kit sea imprescindible, ni que no se pueda hacer con muchos
otros que existen en el mercado, sino que simplemente nos parece importante poder
conseguir el material necesario para seguir los cursos por completo y a un precio ajustado.
Creemos que si completis nuestros humildes cursos estaris en buenas condiciones para
montar vuestros propios proyectos, o si sois entidades de formacin reglada, dar a vuestros
alumnos unas nociones muy interesantes de programacin y electrnica, que estamos
seguros sern de inters en su formacin intelectual. Os invitamos a ello.
INSTALACIN DEL ENTORNO
GRFICO S4A
Preparando Arduino y Scratch

Home Instalacin Del Entorno Grfico S4A

OBJETIVOS

o Descargar e instalar el IDE de Arduino.


o Descargar el firmware para el IDE y cargarlo en nuestro Arduino.
o Descargar el entorno grfico de programacin S4A.
o Instalacin y puesta en marcha del entorno S4A.
o Comprobar su correcto funcionamiento.

DESCARGAR E INSTALAR EL IDE DE ARDUINO.

Para poder trabajar con Arduino necesitamos descargar e instalar el entorno grfico de
programacin o IDE por sus siglas en ingles, y para ello disponis de una sesin
dedicada aqu.
Siguiendo sus instrucciones conseguiris instalar el entorno Arduino y configurar vuestra
modelo Arduino (Porque los hay de muchos tipos creedme, y solo funcionar
si seleccionis correctamente vuestro modelo)
Para que Scratch for Arduino pueda comunicarse con la placa, necesitamos volcarle un
pequeo programa necesario para que se entiendan. Por eso tras instalar el IDE, vamos a
cargar el firmware en la placa Arduino para que S4A pueda comunicarse con l.
Haced click con el botn derecho aqu y seleccionad:

Descargar un programa Arduino que podemos cargar en nuestro IDE:


Para despus, volcarlo a nuestra placa (Asegrate de que tu Arduino est conectado al
USB, o va a ser difcil programarlo)

Aparecern un montn de lneas de cdigo en el entorno de trabajo. Pulsamos el botn de


subir, el que tiene un icono con una flecha horizontal en amarillo y esperamos a que cargue
la barra verde.
Siempre conectar al puerto COM3
Si la placa es una compatible hay que descargar los drivers Driver CH340 para arduino
chinos o genricos.
Y si da problemas al subir el IDE a la placa retrocede la versin en el gestor de tarjetas
de "Arduino AVR Boards" de 1.6.14 a la 1.6.9 .

Una vez que lo hayamos subido, no hay que volver a hacerlo mientras trabajemos con S4A,
a no ser que carguemos otro programa en la placa desde el IDE.
DESCARGA E INSTALACIN DEL ENTORNO GRFICO S4A

Descargamos S4A de la pgina oficial seleccionado Descargas y elegimos el sistema


operativo que usamos en nuestro ordenador. O bien podes descargarlo directamente desde
aqu.

o Windows
o Mac
o Linux (Debian)
o Linux (Fedora) (version 1.5)
o Raspbian (Debian para RaspberryPi).
Una vez finalizada la descarga, descomprimimos el archivo y ejecutamos el fichero
descargado. El asistente de instalacin nos guiar a lo largo de la misma. Una vez terminada
la instalacin, el icono de S4A aparecer en nuestra rea de trabajo.

PUESTA EN MARCHA DEL ENTORNO S4A

Antes de ejecutar el programa es conveniente enchufar la placa al ordenador, ya que lo


primero que har ser buscarla automticamente.

Cuando la haya encontrado veremos que las cantidades mostradas en el cuadro de resumen
de valores irn variando rpidamente.
En caso de que no la encuentre automticamente, pulsamos en el cuadro de resumen de
valores con el botn derecho y nos aparecer un men desplegable donde podemos buscar
la placa automticamente o seleccionar manualmente el puerto al que est conectado.
INSTALACIN EN RASPBERRY PI (RASPBIAN)

Si queremos realizar la instalacin de S4A en una Raspberry Pi, nos tenemos que asegurar
de que est conectada a internet y abrir el explorador el navegador Midori. Entonces
accedemos a http://s4a.cat y cuando estemos en la seccin de descargas seleccionamos
Raspbian (Debian for RaspberryPi) y elegimos Save.

La Raspberry PI 2, corre con alegra el entorno S4A y es una opcin excelente, en lugar de
un PC con sistema completo tipo Windows o Mac, en los entornos en los que el presupuesto
es algo a considerar.
Cuando se haya descargado abrimos una ventana del terminal haciendo click en el icono de
LXTerminal en el escritorio.
Al abrir el terminal estaremos en el directorio /home/pi/. Si queremos comprobarlo podemos
teclear pwd y tras pulsar la tecla Intro nos devolver el directorio en el que estamos.
Si a continuacin escribimos ls nos mostrar todos los ficheros y carpetas que hay en
/home/pi/. Entre ellos deberamos encontrar el archivo que hemos descargado
S4A15_RP.deb.
Si no lo encontramos en este directorio, es posible que se haya descargado en
/home/pi/Downloads/. Para comprobarlo tecleamos cd Downloads para acceder a ese
directorio y a continuacin ls.
Una vez lo hayamos localizada tecleamos
sudo dkpg i S4A15_RP.deb

Hay que respetar las letras maysculas, ya que el terminal distingue entre maysculas y
minsculas (Esto es una mana de Linux y hay que acostumbrarse).

Mientras se instala veremos que en el terminal se van escribiendo diferentes textos hasta
que vuelve a aparecer pi@raspberrypi ~$. Entonces ya podemos cerrar el terminal.
Si ahora abrimos el men de inicio y vamos a Programming, S4A aparecer entre las
aplicaciones. Pulsamos en el icono e iniciamos Scratch 4 Arduino.

OTRAS CONSIDERACIONES

Como hemos comentado, una las ventajas de Arduino es que su IDE es multiplataforma.
Esto hace que podamos correrlo en micro ordenadores de bajo coste como Raspberry
Pi u Orange Pi.

Estos nuevos ordenadores en una placa unica o SBC (Single Board Computers por sis
siglas en Ingls) que inici la Raspberry PI, han causado una autentica revolucin en el
mundo de los aficionados y como ordenadores de bajo coste.
Normalmente usan un procesador de telfono mvil pero con una potencia creciente ao a
ao y pronto rivalizaran con los procesadores de Intel o AMD a una fraccin de su coste.
La Raspberry PI inici el camino, pero ya existen rivales muy a tener en cuanta como las
Orange PI o Banana PI que son mas o menos compatibles con la Raspi y otras como las
PCduino, CubieBoard y BeagleBone que corren directamente Linux.
Adems, en algunas distribuciones de GNU/Linux vienen instalados por defecto tanto el IDE
de Arduino como el S4A.
Como comentamos en la introduccin, para ejecutar el programa nuestro Arduino tiene que
estar conectado a un PC, as que si queremos construir un proyecto que necesite libertad
para moverse podemos usar alguno de esos mini-ordenadores e integrarlo en la maqueta
con una batera.
Por eso recomendamos este tipo de micro ordenadores SBC, como una opcin a tener en
cuenta dado su bajo precio y versatilidad.
NUESTRO PRIMER
PROGRAMA SCRATCH
Primeros pasos programando

OBJETIVOS

o Primera toma de contacto con S4A Scratch for Arduino.


o Realizar nuestro primer programa.
o Cargarlo en nuestro Arduino y comprobar que funciona.

MATERIAL REQUERIDO.

Arduino Uno o compatible con S4A y con el firmware

Un cable USB adecuado al conector de tu Arduino.

Un PC con el entorno S4A correctamente instalado y

PRIMEROS PASOS
No tiene ningn sentido tratar de explicar para qu sirven cada una de las opciones y bloques
que encontramos en el entorno S4A, porque probablemente se os olvidaran la mayora al
de diez minutos (O menos, que ya nos conocemos). Igual que la mejor manera de aprender
a andar es andando, la mejor manera de aprender a programar es ir programando poco a
poco.
De momento nos basta con saber que al arrancar S4A nos encontramos una pantalla con 5
zonas diferentes. Iremos explicando qu son y para qu sirven cada una de ellas a lo largo
del curso.

1. Tipos de bloques.
2. Listado de bloques de una determinada categora.
3. Contenido de un objeto: programas, disfraces y sonidos.
4. Escenario.
5. Listado de objetos.

El ejercicio tpico para empezar a programar suele ser el blinking LED (LED intermitente),
porque es fcil de programar e ilustra la capacidad de Arduino para interactuar con el
mundo exterior.

Es interesante destacar aqu, los PCs de sobremesa a los que estamos ya tan habituados,
son rapidsimos y con capacidades muy lejos del alcance de Arduino y otros pequeos
procesadores de bajo costo. Pero en cambio, estos son capaces de interactuar con el mundo
exterior fcilmente algo que queda casi fuera del alcance de los potentes PCs.
Esta capacidad de interactuar con el exterior y no simplemente realizar operaciones internas
aisladas, ha sido bautizada como computacin fisica y abre unas posibilidades inmensas,
como las impresoras 3D, los Drones y automatismos de todo tipo.
Y aun mas interesante, estn al alcance de cualquiera con inters y no hace falta ser
ingeniero para comprobarlo, como esperamos poderos demostrar.
Arduino tiene varias maneras de relacionarse con el mundo exterior. Vamos a empezar
por los pines digitales de entrada y de salida.
Aunque las placas Arduino tienen la capacidad de utilizar cualquiera de los pines digitales
como entrada o salida, en el entorno S4A vienen ya predefinidos:

Entradas digitales: para leer informacin digital del mundo exterior. En S4A corresponden
a los pines 2 y 3. (En rojo)
Salidas digitales: para enviar una seal digital al mundo exterior. En S4A corresponden a
los pines 10, 11 y 13. (En amarillo).

Las seales digitales son aquellas que slo pueden tomar dos valores, 0 y 1 (HIGH y LOW).
En Arduino corresponden a valores de 5V para HIGH y 0V para LOW.

Aunque al principio puede sonar raro, muchas cosas son digitales. Por ejemplo puedes salir
de casa o no, pero no hay un termino intermedio (Filsofos abstenerse)
Puedes aprobar si o no. Cuando alguien te explica que no ha aprobado pero en realidad es
como si si, suele acabar en recuperacin.
Esta dualidad tan sencilla es la base de funcionamiento de toda la computacin actual
aunque aun os parezaca increible.

NUESTRO PRIMER PROGRAMA: BLINKING LED

Nuestro primer programa ser un LED que parpadea cada segundo. Para ello vamos a
utilizar la salida digital 13 porque tiene conectado un LED directamente en la placa
Arduino. De esta manera no tendremos que realizar ningn montaje y nos podremos centrar
en explicar los bloques que compondrn el programa y como cargarlo en la placa.
Para empezar nos fijamos en la parte de arriba a la izquierda del S4A. Ah es donde se
escogen las diferentes categoras de bloques que hay.
En este caso seleccionaremos la categora Control y vemos como debajo aparece la lista
de bloques que entran dentro de ese grupo de Control.

Los bloques de Control son los que indican a nuestro programa cmo y cundo interpretar
los dems bloques.
Todos son de color amarillo.
Si os fijis en los bloques veris que tienen una forma determinado a modo de pieza de un
puzle.
Slo determinados bloques encajan con otros, lo que nos ayudar a la hora de componer
las estructuras de nuestros programas.
Normalmente los programas los empezaremos con el primero de los bloques (El de la
bandera verde) y todos los dems estn por debajo de ste. Pulsamos con el botn izquierdo
del ratn encima de l y lo arrastramos hacia la parte central de S4A. Con este bloque lo
que hacemos es que el programa se ejecute cuando pulsemos la bandera verde de la parte
de arriba a la derecha y hasta que pulsemos en el hexgono rojo.

Como queremos que el programa se ejecute un nmero indefinido de veces, vamos a coger
ahora el bloque de control por siempre. Si nos fijamos en la forma de este bloque veremos
que la parte de arriba encaja con la parte de abajo del bloque con el que hemos empezado.
Adems el bloque por siempre tiene un hueco en medio en el que podremos encajar otras
instrucciones, de manera que todo lo que est dentro de l se ejecute en secuencia hasta el
final. Una vez que termina, vuelve a empezar desde el principio del bloque, haciendo un
ciclo sin fin.

Lo que vamos a hacer ahora es elegir los bloques que enviarn las seales a la salida digital
para encender y apagar el LED. Este tipo de bloques estn en la categora de Movimiento.
De los bloques que aparecen vamos a utilizar los de digital 13 encendido y digital 13
apagado. Primero cogeremos digital 13 encendido y lo metemos, arrastrando, dentro de
del bloque por siempre.
Si en este punto damos a la bandera verde para ejecutar el programa, veremos que el LED
se enciende y se mantiene encendido hasta que paremos el programa.
Como queremos que est encendido dos segundos, vamos a la
categora Control, seleccionamos el bloque esperar 1 segundos, y lo ponemos a
continuacin de digital 13 encendido.
Con esto lo que hacemos es que el programa se quede en la situacin en la que est durante
1 segundo (o el tiempo que nosotros le indiquemos).

Como lo que queremos es que se pague ahora y se mantenga


apagado dos segundos, repetimos lo mismo pero con el bloque digital 13 apagado.

Ya hemos terminado nuestro primer programa. Slo nos queja ejecutarlo y ver si funciona
correctamente.
Para ello damos a la bandera verde, o tambin podemos hacer click con el botn izquierdo
encima de cualquiera de los bloques de instrucciones. Veremos que todos los bloques de
nuestro programa y la bandera verde del escenario se iluminan y el LED de nuestra placa
Arduino comienza a parpadear cada dos segundos.
Podis descargaros el programa desde aqu: Blinking_Led.
Por ltimo, y si queremos guardar nuestro programa iremos a la pestaa Archivo, y le
daremos a Guardar Como. En ese men tenemos tambin las opciones
de Abrir para abrir un proyecto que hayamos guardado anteriormente y Guardar para
guardar el archivo encima del que tenemos abierto.
Tambin es interesante saber que en la pestaa Editar tenemos la opcin
de Deshacer, por si nos hemos equivocado y queremos volver atrs.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:


La estructura bsica de un programa.
A seleccionar bloques y aadirlos a nuestro programa.
La importancia de la forma y color de los bloques y cmo interactan entre s.
Como ejecutar y parar un programa.
NUESTRO PRIMER CIRCUITO
Aprendiendo un poco de electrnica

OBJETIVOS
.

o Fijar algunas ideas bsicas sobre electrnica.


o Montar un circuito con LED y Resistencia.
o Aprender el manejo de la Protoboard.
o Instalar del blinking LED en la Protoboard.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un diodo LED

Una resistencia de 330 Ohmios.


Algunos cables de Protoboard.

ALGUNAS IDEAS BSICAS SOBRE ELECTRNICA

Cuando dejamos fluir agua de un sitio alto a otro ms bajo, el agua corre libremente mientras
no se lo impidamos, y siempre de arriba abajo.
Decimos que las diferentes alturas suponen una diferencia de potencial entre ambos puntos
que puede ser transformada en trabajo til.
Cuando existe una diferencia de tensin elctrica (O diferencia de potencial) entre dos
puntos con conexin, la electricidad fluye del positivo (O de ms carga) hacia el negativo o
menos, y tambin podemos obtener trabajo til de este principio.
Aunque la fsica detrs de estos dos ejemplos es diferente, el concepto es bastante parecido
y por ello hablamos de:

Corriente de agua / Corriente elctrica.


Caudal de agua / Intensidad de corriente.
Resistencia al flujo / Resistencia elctrica.
La idea es que la corriente elctrica fluye del positivo al negativo porque hay una diferencia
de tensin (Que medimos en Voltios de smbolo V) pero esto no es una medida absoluta
sino la diferencia que hay entre los puntos en que lo medimos.
De la misma manera, la diferencia de altura entre dos puntos solo representa eso, una
diferencia y no indica a qu altura se encuentran con respecto a una referencia ms o menos
arbitraria.
Hay componentes que se oponen a la libre circulacin de la corriente. Los llamamos
resistencias, su valor se mide en Ohmios y su smbolo es . La ley de Ohm, liga todos estos
valores de una forma precisa:

V = I x R

Donde V es la tensin en voltios, R la resistencia e I la intensidad elctrica que fluye.


En el mundo de Arduino la tensin es casi siempre 5V, que es la tensin a que funciona y
la que es capaz de poner en sus salidas digitales. Otra manera de escribir esta ley de Ohm
es

I = V / R

Lo que implica que si la resistencia del circuito es nula (O casi, como en el caso de un cable
de cobre) la intensidad de la corriente se dispara y puede llegar a fundir el cable o
componente que encuentre.
Esto se conoce como Cortocircuito o Corto simplemente y debe ser evitado
decididamente ya que suele acabar con olor a quemado y algn susto, en el mejor caso.

NUESTRO PRIMER CIRCUITO ELECTRNICO


En la sesin anterior programamos el LED conectado al pin 13 de nuestro Arduino. Ahora
vamos a duplicar este circuito en el exterior. Su esquema elctrico sera as:

Vemos a la izquierda el smbolo del diodo LED que es emisor de luz y por eso tiene esas
flechitas salientes para indicarlo (LED viene del ingls Light Emitting Diode, o diodo emisor
de luz).
La resistencia se representa por ese segundo smbolo indicando un nombre R1 y su valor
330.
A su vez vemos a la izquierda las letras GND para indicar que es el negativo. Tiene muchos
nombres: Masa, El smbolo , Tierra (Aunque no es lo mismo), Ground, Negativo, ctodo.
Por ltimo a la derecha el smbolo de +5V indica el extremo de tensin positiva o positivo y
a veces se representa como Vcc. Las lneas rectas y negras indican conexin elctrica
mediante cables conductores.

Un diodo, es un componente electrnico que solo permite pasar la corriente en una


direccin. En la direccin del positivo al negativo (la parte ancha del tringulo) al negativo,
la punta del tringulo (que indica la direccin).
Para indicar cul de las patas de un diodo LED es el positivo, ste suele ser de mayor
longitud.
Si se conecta a la inversa, cortar el flujo de corriente muy eficazmente y no se iluminar en
absoluto.
Las resistencias en cambio no diferencian un extremos del otro, y por eso decimos que no
tienen polaridad.
Es importante entender los esquemas electrnicos porque permiten comprender con rapidez
cualquier circuito. Vale la pena dedicarle un poco de esfuerzo porque son el lenguaje de la
electrnica.
Una vez comprendido el esquema elctrico del circuito, veamos la conexin en la
protoboard:

Este esquema sigue una pauta de marcar los cables que van a positivo en rojo y los que van
a GND en negro. Os recomendamos encarecidamente que sigas esta norma en la prctica
porque ayuda a identificar posibles problemas y evita errores.

La protoboard une los puntos horizontales de la lnea azul entre si y los horizontales de
encima de la lnea roja entre s, (se les llama rales), pero no conecta el ral rojo positivo con
el ral negro negativo.
En algunas protoboards estos rales llegan slo hasta la mitad de ella. La otra mitad es otro
ral diferente. En ese caso las lneas roja y azul estn divididas en dos en la mitad de la
lnea.
A su vez existen dos zonas de lneas verticales en la protoboard. Estas lneas verticales
estn unidas entre s internamente, para facilitar la conexin de los componentes, pero no
se unen las lneas paralelas, ni tampoco a la otra mitad separada por el canal central.
En la imagen las diferentes lneas de colores representan algunos ejemplos de cmo estn
unidos internamente los puntos de conexin. Todos los puntos debajo de una lnea de un
mismo color son un nico punto en cuanto a conexin elctrica.
Las claves para montar el circuito con xito, son:

Conectamos el pin 13 de Arduino a la lnea roja de la protoboard.


Conectamos el GND de Arduino a la lnea azul de la protoboard.
Usamos el ral positivo (los pines de la lnea roja) para conectar a la resistencia.
El otro extremo de la resistencia se conecta al positivo del LED porque estn en la misma
vertical de la protoboard (y esta los conecta elctricamente).
El positivo del LED est claramente marcado como de mayor longitud mediante un pequeo
ngulo cerca de la base.
Un diodo LED casi no presenta resistencia propia, por lo que siempre debe usarse una
resistencia adicional que limite el paso de corriente, y evite que se queme. (Una resistencia
entre 220 y 3300 suele ser adecuada).
El circuito se cierra con un cable desde el negativo del LED al ral de GND.
Cuando nuestro programa ponga un valor de HIGH (5V) en el pin 13, permitir el flujo de
corriente por el circuito iluminando el LED. Con LOW sencillamente el circuito estar
apagado, sin tensin.
Podemos ahora ejecutar el programa que hicimos en la sesin 2, siguiendo el procedimiento
que definimos all, y veremos cmo esta vez, adems del LED propio de Arduino, nuestro
LED exterior parpadea siguiendo el mismo ciclo de encendido y apagado.

RESUMEN DE LA SESIN
En esta sesin hemos aprendido varias cosas importantes:
Hemos visto algunos conceptos bsicos de electrnica: la ley de Ohm, que relaciona la
tensin la resistencia.
Hemos identificado dos componentes bsicos en electrnica, resistencias y los diodos.
Aprendimos a descifrar los primeros esquemas electrnicos.
Hemos montado nuestro primer circuito con estos componentes.
EJECUCIN DE UN
PROGRAMA EN PANTALLA
VISUALIZACIN DE LA EJECUCIN DE UN PROGRAMA

Home EJECUCIN DE UN PROGRAMA EN PANTALLA

OBJETIVOS

o Introducir el concepto de escenario.


o Aprender a dibujar los Disfraces.
o Aprender a usar los bloques que hacen que se visualice en pantalla un disfraz determinado.
o Visualizar en el monitor de nuestro PC cmo funciona nuestro programa.
o Comprobar que sucede lo mismo que en el LED de nuestro Arduino.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Un cable USB adecuado al conector de tu Arduino.

Un PC con el entorno S4A correctamente instalado y


CONCEPTO DE ESCENARIO Y DISFRACES

En el escenario podemos ver en el monitor de nuestro PC cmo se desarrolla nuestro


programa. Es la pantalla en blanco que hay arriba a la derecha, donde aparece por defecto
un dibujo de la placa Arduino. Ese dibujo es un ejemplo de lo que llamamos Disfraces
en S4A.

Lo que queremos conseguir es que en esa pantalla aparezca un dibujo o una foto que
represente un LED encendido cuando se encienda el LED, y uno apagado cuando est
apagado. Para conseguirlo usaremos los Disfraces.

DIBUJANDO LOS DISFRACES

Lo primero que haremos ser ir a la pestaa Disfraces. Ah podemos ver que el nico que
hay es un dibujo de una placa Arduino que viene por defecto. Para dibujar un disfraz nuevo
haremos click en el botn Pintar.

Llegaremos a una pantalla muy semejante al programa Paint de Windows. Con ella vamos
a dibujar un crculo rojo que representar nuestro diodo LED encendido:
Pulsamos el botn que tiene forma de crculo y seleccionamos el crculo vaco que aparece
debajo.
Pulsamos en el botn del cubo, seleccionamos el color rojo y rellenamos el crculo.
Damos a aceptar.

Una vez aceptado volveremos a la pantalla de Disfraces y le cambiaremos el nombre al


disfraz1 por led_on. (Si al tratar de escribir _ os escribe ?, podis escribir el guin bajo
_ haciendo como si escribieseis ?)

Nos queda dibujar el disfraz que representar el diodo LED apagado. Para hacerlo, en vez
de crear uno de nuevo copiaremos el anterior y lo rellenaremos de gris.

Pulsamos el botn Copiar que hay en la figura led_on que hemos creado. Se nos crear
una nueva figura idntica.
Le damos a Editar en la nueva figura que hemos creado y rellenamos el crculo de gris.
Cambiamos el nombre de la figura por led_off..
Si en vez de dibujarlos prefers usar una imagen que tengis guardado en el ordenador o
alguna de las que vienen predefinidas en S4A, bien sea un dibujo o una foto, podis utilizar
el botn de Importar en vez de Pintar.

INCLUYENDO LOS DISFRACES EN NUESTRO PROGRAMA

Lo que queremos es que cuando se encienda el LED, en el escenario se visualice el disfraz


led_on, y cuando se apague el disfraz led_off. Los bloques relacionados con los disfraces
estn en el grupo Apariencia. En este caso usaremos el bloque cambiar el disfraz a.

Como queremos que esto pase inmediatamente a la vez que el encendido o apagado
debemos colocarlo justo debajo de los bloques de encender y apagar. Tambin valdra
colocarlo justo encima.
Recordad que las instrucciones se llevan a cabo de forma secuencial, una inmediatamente
detrs de otra, mientras no le indiquemos lo contrario.
Seleccionaremos led_on en el bloque de cambiar disfraz a despus de encenderlo, y
led_off despus de apagarlo.
Esta vez para que el programa espere vamos a usar el bloque de Apariencia pensar
mmm por 2 segundos. Tambin podemos cambiar el tiempo que queremos que espere y
el mensaje que queremos que se vea mientras espera.

Ya slo nos queda dar a la bandera verde y comprobar que nuestro programa funciona
correctamente. Veremos que mientras espera podemos ver el mensaje que hemos escrito
en el bloque pensar mmm por 2 segundos.
Podis descargaros el programa completo desde aqu: Led en pantalla.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

A dibujar disfraces.
Incluir los disfraces en nuestro programa.
Visualizar en la pantalla de nuestro PC el estado de nuestro programa.
CIRCUITO CON TRES LEDS:
SEMFORO
Algoritmos en scratch

OBJETIVOS
.

o Montar un circuito con mltiples LEDS para construir un semforo.


o Utilizar bloques de salida digital con pines diferentes.
o Visualizar el semforo en la pantalla de nuestro PC.
o Aprender a cambiar el fondo del escenario.
o Introducir el concepto de algoritmo.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

3 diodos LED de colores.


Una resistencia de 330 Ohmios.

Algunos cables de Protoboard.

ESQUEMA ELECTRNICO DEL SEMFORO

En la sesin anterior vimos cmo conectar correctamente un LED. Ahora vamos a complicar
un poco el circuito conectando tres diodos LED que se encendern y apagarn para construir
nuestro propio semforo.
Si hemos entendido el circuito con un slo LED es fcil entender tambin este circuito. El
esquema electrnico sera el siguiente:

Hemos conectado cada uno de los diodos LED a diferentes salidas digitales para poder
gobernarlos de forma independiente.
Slo necesitamos una resistencia porque est en serie con los tres diodos. La corriente que
circule por cualquiera de ellos lo har tambin por la resistencia, de forma que proteger a
los tres de quemarse.
Cerramos el circuito conectando la resistencia a GND.
El montaje del circuito en la placa protoboard sera el siguiente:

En general, se considera buena costumbre (la recomendamos), montar los circuitos que
veamos a partir del esquema electrnico del mismo, ms que a partir del diagrama de
conexiones de la protoboard.
La razn es que con el esquema, la comprensin del circuito es completa y se evita la
tentacin de copiar la prctica sin necesidad de entenderla.
Adems, el diagrama electrnico del circuito es su completa descripcin y suele resultar ms
sencillo comprender la funcin del mismo. En cambio a medida que los circuitos se hacen
ms complejos, comprender su funcin desde un esquema de protoboard puede
complicarse mucho, y peor an, llevar a una interpretacin errnea.

PROGRAMACIN DEL SEMFORO

Un semforo funciona de forma que se encienden primero el rojo, luego el verde, y por ltimo
el amarillo. Despus volvera a empezar por el rojo.
Para programar nuestro semforo no necesitamos ningn bloque que no hayamos usado
antes. La nica novedad ser elegir en el bloque digital encendido y digital apagado la
salida digital que queramos utilizar.
Comenzaremos el programa con los mismos bloques de control que comenzamos la prctica
anterior, ya que queremos que el semforo funcione continuamente mientras est pulsada
la bandera verde.
Lo primero que queremos hacer es que se encienda el LED rojo durante 3 segundos y
despus se apague. Como es el que hemos conectado a la salida digital 13,
seleccionaremos esa salida en los bloques de Movimiento de encender y apagar.
En el bloque de Control de esperar le ponemos 3 segundos.

No queremos que pase tiempo entre que se apague el LED rojo y se encienda el amarillo.
Por eso no necesitamos poner otro bloque de esperar despus de apagar.
Hacemos los mismo para el LED verde (pin digital 10) y para el amarillo (pin digital 11), con
la excepcin de que el amarillo solo queremos que este encendido 1 segundo.

Si damos a la bandera verde para ejecutar el programa, veremos cmo funciona nuestro
propio semforo en la placa Arduino.

VISUALIZACIN DEL SEMFORO EN PANTALLA

Siguiendo el concepto de la prctica anterior, vamos a tratar de visualizar el comportamiento


de nuestro programa en nuestro monitor.
Dibujamos los tres disfraces para simular nuestro semforo en la pantalla del ordenador,
uno por cada situacin diferente de las que se dan.
Incluimos los respectivos bloques de Apariencia cambiar el disfraz a como hemos
aprendido, y seleccionamos que disfraz queremos que usen.

Al ejecutar el programa veremos cmo funciona nuestro programa del semforo, tanto en
nuestra placa Arduino como en nuestro monitor.
COLOCANDO UN FONDO DE ESCENARIO

Hasta ahora todos nuestros escenarios han consistido en un fondo blanco. Ahora vamos a
sustituirlo por un fondo en el que colocar nuestro semforo de forma que le d un poco ms
de realismo.
Para ello seleccionaremos el icono del escenario en el listado de objetos de la parte inferior
derecha.

Para cambiar el fondo del escenario iremos a Fondos, que se encuentra en el mismo sitio
que la pestaa de Disfraces de los objetos.
En este caso en vez de dibujar nosotros un fondo, vamos a utilizar una imagen que ya est
creada dndole al botn Importar:

Podemos utilizar los fondos que vienen por defecto en S4A o una imagen que tengamos en
el ordenador.
En lugar de dibujar los objetos, podemos importar una imagen de la misma forma que
estamos haciendo con el escenario.
En este caso yo he elegido una imagen de las que vienen por defecto en S4A en la que
aparecen unas vas de tren. El problema es que el semforo es demasiado grande. Por
suerte, con los iconos que hay encima del escenario podemos agrandar, reducir, borrar y
duplicar objetos. Si pasamos el ratn por encima nos mostrar para que sirve cada uno.
Reducimos el semforo y lo colocamos donde queramos. Ahora seleccionamos de nuevo el
nico objeto que hay en el listado de objetos del escenario y ejecutamos el programa.

Podis descargar el programa completo desde aqu: Semforo.

PROBANDO OTRAS VARIANTES: CONCEPTO DE ALGORITMO

Una variante de este programa, usando el mismo circuito, sera hacer un efecto de ola en el
que las luces subieran dejando encendidos los LEDs previos hasta alcanzar el mximo y
ahora descender apagando los LEDs superiores hasta apagarlos todos. Os recomiendo
intentar resolver el problema como desafo, antes de mirar solucin.

En realidad la parte ms difcil de aprender a programar es aprender a resolver los


problemas de un modo que nos permita darle instrucciones a un ordenador para que lo lleve
a cabo.
Estos procedimientos secuenciales de cmo resolver un cierto tipo de problemas es lo que
se conoce como un algoritmo.
Segn el problema que abordemos el algoritmo ser ms o menos complicado pero
aprender a programar tiene ms que ver con desarrollar esta capacidad de resolver
problemas lgicos en una secuencia de pasos que podamos codificar en un ordenador.
Por cierto, cualquiera puede aprender a programar. No lo dudis. Solo que como en todo, a
unos les lleva ms tiempo que a otros desarrollar la habilidad necesaria. Al principio muchos
me dicen que les duele la cabeza de pensar en este tipo de cosas, pero os animo a continuar
(poco a poco si es preciso) porque os encontrareis que vale la pena.
Si se os resiste, podis ver aqu la estructura programa para hacer el efecto ola.
Si queris montar el circuito con ms LEDs, deberas poner una resistencia por cada uno de
ellos o por cada dos; o podras quemarla cuando estn encendidos todos los LEDs.
Lo mismo os digo si queris que estn encendidos los tres LEDs a la vez durante mucho
tiempo.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

A utilizar varias salidas digitales en un mismo programa.


A montar un circuito electrnico un poco ms complejo.
Cmo cambiar el fondo del escenario y adecuar a l nuestros objetos.
Hemos introducido el concepto de algoritmo como un procedimiento secuencial para
resolver un problema concreto y lo hemos aplicado a varios ejemplos de programas sencillos
con luces.

LAS ENTRADAS DIGITALES


DE ARDUINO
Scratch y pulsadores

OBJETIVOS
.

o Conocer las entradas digitales.


o Leer un pulsador.
o Presentar los valores booleanos.
o Aprender a crear estructuras condicionales utilizando el bloque de Control si / si no.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un diodo LED.

Un pulsador.

Dos resistencias de 330 Ohmios.

Algunos cables de Protoboard.

LAS ENTRADAS DIGITALES DE ARDUINO

Con frecuencia en electrnica necesitamos saber si una luz est encendida o apagada, si
alguien ha pulsado un botn o si una puerta ha quedado abierta o est cerrada.
A este tipo de seales todo/nada, SI/NO, TRUE /FALSE, 0/1 se les
llama digitales o Booleanas.
Muchos de los sensores y actuadores que vemos en el mundo real son digitales:

Como sensores digitales podemos mencionar botones y pulsadores, finales de carrera,


desbordamiento de nivel, sensores de llamas, humo o gases txicos. Los leemos mediante
las entradas digitales. En S4A disponemos de los pines digitales 2 y 3 que actan como
entrada digital.
Como actuadores digitales, tenemos luces, alarmas, sirenas o desbloqueo de puertas. Los
gobernamos mediante las salidas digitales. Ya sabemos de otras sesiones que en S4A son
los pines digitales 10, 11 y 13.
En esta sesin vamos a leer un botn o pulsador externo (entrada digital) y vamos a
encender o apagar un LED (salida digital) en funcin de que el pulsador est presionado
o no.

ESQUEMA ELCTRICO DEL CIRCUITO

Este circuito es un poco ms complicado que los que hemos visto hasta ahora. El montaje
del LED ser el mismo que en las sesiones anteriores. En este caso lo conectaremos a la
salida digital 10.
Por primera vez vamos a utilizar el pin de 5V de nuestra placa Arduino. A diferencia de las
salidas digitales, que pueden dar HIGH o LOW, este pin siempre dar HIGH.
Conectaremos el pulsador S1 al pin de 5V, y cerraremos el circuito conectando la otra parte
del pulsador a la entrada digital 2 y a GND a travs de una resistencia.

De esta forma cuando el pulsador se cierra obtenemos 5V, HIGH, en la entrada digital 2. Si
est abierto obtenemos 0V, LOW. Y entonces, para qu sirve la resistencia R1?
Si leemos el valor de una entrada digital que no tiene nada conectado veremos cmo en
ocasiones los valores en la entrada fluctan. Para evitarlo podemos conectar una
resistencia PULLDOWN o PULLUP. Una resistencia de PULLDOWN lo que hace es
garantizar que cuando el botn no est pulsado, se lea siempre LOW, es decir, fija la tensin
a 0V. Por el contrario, una resistencia de PULLUP garantiza que el valor ledo es HIGH, por
tanto 5V.

Esta resistencia es clave para que las lecturas del pulsador sean consistentes. El circuito,
simplemente, no funcionar bien si se omite.
Nosotros hemos realizado el montaje con la resistencia en PULLDOWN. Mientras no
presionemos el pulsador, permanecer abierto, o sea que no dejar que circule la corriente
a la otra parte. De esta manera lo que tenemos es el pin 2 conectado a GND a travs de la
resistencia R1, de modo que leer LOW.
Al cerrarlo lo que hacemos es cerrar el circuito del pin 2 a 5V, con lo que leer HIGH.
El montaje en la protoboard sera el siguiente:

En este esquema hemos seguido la prctica habitual de usar cables negros para conectar
a Ground y cables rojos para conectar a HIGH (5V).
Hemos utilizado cable naranja para la entrada digital y cable verde para la salida, con la
intencin diferenciarlas fcilmente.
El pulsador S1 tiene cuatro pines (el elemento que est sobre la resistencia). Esto es porque
cada entrada del interruptor tiene dos pines conectados. En nuestro circuito simplemente
hemos ignorado los pines secundarios, pero podis utilizarlos igualmente para la conexin.
APRENDIENDO A LEER EL PULSADOR

Para leer el pulsador utilizaremos usar un nuevo bloque de Control si / si no.

El comportamiento de este bloque es el siguiente:

Si se cumple la condicin que le pongamos dentro del espacio en forma de hexgono (el
hueco recuadrado en rojo), el programa ejecutar los bloques que estn dentro del si
hasta llegar a si no, y se saltar todo lo que haya dentro de si no.
Si no se cumple, se saltar todos los bloques que estn dentro de si y ejecutar los
bloques que estn dentro de si no hasta el final.
Lo primero que haremos ser crear la condicin. Para ello utilizaremos los bloques de la
categora Operadores. Como en este caso lo que queremos es crear una condicin que
compruebe el valor de una seal digital usaremos el bloque de Operadores = . Lo
seleccionamos y lo arrastramos hasta el hueco en forma de hexgono.

Para terminar de crear la condicin tenemos que decidir qu es lo que queremos comparar.
En este caso lo que queremos saber es si la entrada digital 2 est leyendo HIGH o LOW. El
bloque para leer entradas digitales est en la categora Movimiento.

Aunque en este bloque parece que lo que comparamos es si est presionado, eso
depender del circuito. Sera mejor que lo interpretramos simplemente como valor sensor
digital ; y ver qu valor realmente est recibiendo esa entrada digital.

Recordemos que hemos montado el circuito con la resistencia conectada en PULLDOWN,


de forma que si el pulsador est pulsado la entrada leer HIGH.
En este tipo de comparaciones LOW corresponde a false y HIGH a true.
Si hubisemos conectado la resistencia en PULLUP, la entrada sensor digital
presionado leera HIGH o true cuando con el pulsador sin presionar. Es importante entender
cmo funciona en realidad, y as no tendremos miedo a montar o interpretar ningn circuito
electrnico.
Si hemos entendido esto ltimo, deberamos tener ms o menos claro que lo que queremos
conseguir con este bloque es algo as:

Si el pin 2 est conectado a LOW (false), queremos que el LED est apagado. Esto quiere
decir que mientras no presionemos el pulsador, el LED permanecer apagado.
Si el pin 2 est conectado a HIGH (true), queremos que el LED se encienda. O sea que
mientras presionemos el pulsador, el LED permanecer encendido.
Pasndolo a bloques nos quedara la siguiente estructura:

Podis descargar el programa completo desde aqu: Pulsador. Ya slo nos queda dar a la
bandera verde y probar si funciona correctamente.
En la lista de valores del escenario podemos ver el estado de las entradas en cualquier
momento, tanto analgicas como digitales. En este caso estamos utilizando la entrada
digital 2.

Para practicar, os recomiendo que montis el circuito con la resistencia en PULLUP y


modifiquis el programa para que se adapte al nuevo circuito.
RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Qu son y cmo se utilizan las entradas digitales.


Las diferentes opciones para conectar correctamente un pulsador.
Hemos visto que existen bloques de condiciones con los que decidir si se ejecutan o no
ciertas instrucciones.
A hacer condiciones con valores booleanos o digitales.
LAS VARIABLES EN S4A
Interruptor

OBJETIVOS
.

o Presentar el concepto de condiciones iniciales.


o Introducir los bloques de Variables.
o Aprender un poco ms de los bloques Operadores.
o Profundizar en el manejo de los bloques de control.
o Mejorar nuestra capacidad para crear algoritmos y programas ms complejos.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un diodo LED.

Un pulsador.
Dos resistencias de 330 Ohmios.

Algunos cables de Protoboard.

PLANTEAMIENTO DEL ALGORITMO: CONDICIONES


INICIALES

El esquema y el montaje son los mismos que los de los del programa del pulsador de la
sesin 6. La diferencia es que en esta ocasin utilizaremos el pulsador como un interruptor,
de forma que una pulsacin encienda el LED y la siguiente la apague.
Vamos a construir el programa de forma que siempre que empecemos a ejecutar el
programa el LED est apagado. Para ello tendremos que hacer que al iniciarse el programa
se ejecute el bloque digital 10 apagado una sola vez, y despus ya se ejecute el resto de
forma cclica hasta que lo paremos.
Como queremos que se ejecute una nica vez, lo pondremos debajo del bloque al
presionar y antes del bloque por siempre.

A este tipo de estructura le llamaremos condiciones iniciales, ya que slo se ejecuta slo
una vez y al iniciarse el programa.

UTILIZACIN DE VARIABLES

Para poder encender o apagar el LED dependiendo del estado en que se encuentre, lo
primero que tenemos que conseguir es saber en todo momento cul es el estado de la salida
digital 10. Para ello vamos a introducir el concepto de variable.

Una variable nos permite guardar un valor para utilizarlo cuando lo necesitemos.
En este caso usaremos una variable para guardar el estado de la salida digital 10 y de esa
forma saber si el LED est encendido o apagado.
Para crear una variable nueva iremos a la categora de bloques Variables y haremos click
en Nueva variable. Nos pedir un nombre. Como la queremos para guardar el estado del
LED, la llamaremos simplemente led.
Al aceptar veremos que se nos crean nuevos bloques relacionados con la variable led que
acabamos de crear, y en el escenario se nos mostrar el valor que tiene almacenada la
variable. Podemos arrastrarla para colocarla donde queramos.

Como necesitamos saber en todo momento en qu estado se encuentra el LED, lo que


haremos ser fijar el valor a false cuando la salida digital 10 est a LOW (LED apagado),
y a true cuando lo est a HIGH (LED encendido).

Recordad que una salida digital es un valor booleano, slo puede tomar dos valores, por
eso nuestra variable tambin ser booleana y tomar slo dos valores, true o false.

Ahora ya queremos que el resto de instrucciones se ejecuten de manera cclica si cumple


cierta condicin. Para ellos utilizaremos el el bloque deControl por siempre si , que
combina en un slo bloque los bloques por siempre y si .
Para detectar cundo se acciona el pulsador crearemos una condicin igual a la que
hicimos en la sesin anterior.
Recordad que la salida digital 2 lee HIGH(true) cuando apretamos el pulsador porque hemos
realizado el montaje con la resistencia en PULLDOWN.
De esta forma los bloques que estn dentro del bloque por siempre si se ejecutarn una
vez si se presiona el pulsador.
Podis probar a montar el circuito con la resistencia en PULLUP como explicamos en la
sesin 6.
Hasta ahora nuestro programa conoce el estado del LED al iniciarse el programa y detecta
cada vez que presionemos el pulsador.
Lo que nos falta es que sea capaz de encender el LED si est apagado y de apagarlo si est
encendido. Para ello tendremos que usar el bloque de Control si / si no para comprobar
el estado de la variable led que hemos creado.

Hemos utilizado el bloque de Variables led. Este bloque tiene almacenado el ltimo valor
que ha cogido la variable.
Hemos utilizado el operador = para saber si ha guardado HIGH o LOW (true o false),
ya que esta variable toma valores booleanos.
Ya slo nos queda decirle lo que tiene que hacer en cada caso:

Si el LED est apagado, la variable led tendr guardado false y cumplir la condicin, as
que lo encenderemos.
Si no est apagado (o lo que es lo mismo, est encendido), lo apagaremos.
Tenemos que recordar que queremos guardar en la variable led el estado del LED conec-
tado a la salida digital 10, as que cada vez que lo encendamos o apaguemos, guardaremos
su valor en la variable.
Si en este punto probsemos el programa veremos que a veces funcionar bien y otras no,
y que si mantenemos el pulsador presionado el LED se encender y se apagar
rcontinuamente.
Esto se debe a que S4A enva las se comunica con nuestro para enviar y recibir seales
cada 75ms, o sea ms de 10 veces por segundo; lo que significa que si tardamos ms que
ese tiempo en soltarlo, habr ledo varias veces el estado del pulsador y cada vez que lo lea
lo encender o lo apagar.
La solucin para esto es muy sencilla. Simplemente le diremos que despus de encender o
apagar el LED espere un tiempo antes de seguir ejecutando el programa, de manera que no
volver a leer el pulsador hasta que pase ese tiempo. Con 0,3 segundos tenemos tiempo de
sobra.

Si ahora mantenemos el pulsador apretado, el LED parpadear cada 0,3 segundos.


Siempre que ejecutemos el programa de nuevo el LED estar apagado.
Podemos ver el valor que tiene almacenada la variable led en cualquier momento en el
escenario.
Podis descargar el programa completo desde aqu: Interruptor.
RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

El concepto de condiciones iniciales.


Para que sirven las variables y cmo utilizarlas.
A crear algoritmos ms complejos.
Comprender un poco mejor cmo se relacionan el entorno S4A y nuestro Arduino.
PULSADOR VIRTUAL
Controlar un LED con un pulsador virtual

OBJETIVOS

o Aprender a utilizar un pulsador virtual en la pantalla del PC.


o Familiarizarnos con el concepto de objeto.
o Conocer un poco mejor el escenario.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un diodo LED

Una resistencia de 330 Ohmios.

Algunos cables de Protoboard.


ESQUEMA ELECTRNICO

Para esta sesin vamos a utilizar el mismo circuito que para el blinking LED. Slo
necesitamos el LED porque simularemos un pulsador virtual en la pantalla del PC.
De esta manera comprobaremos como al hacer click en el pulsador virtual, se enciendel
LED fsicamente, adems de en el escenario de S4A.

CONCEPTO DE OBJETO

Aunque hasta ahora no hemos hablado de ellos, ya hemos utilizado objetos en todas las
sesiones anteriores. Lo podemos ver ms claramente en las sesiones 4 y 5, en las que
mostrbamos los disfraces de los objetos en el escenario.
En las otras sesiones no hemos necesitado crear ms objetos porque slo necesitbamos
representar uno en el escenario, un LED o un semforo. Ahora necesitaremos crear un
objeto nuevo que usaremos como pulsador.
Siempre que empezamos un programa nuevo se nos crea por defecto un objeto que incluye
el disfraz en el que hay dibujada una placa Arduino al que llama Arduino1. Podemos ver
cuntos objetos diferentes hay en el escenario de nuestro programa en el listado de objetos
de la parte inferior derecha de la pantalla de S4A.

Lo primero que haremos ser modificar los disfraces del objeto que viene creado por
defecto igual que en la sesin 4, con los dos disfraces led_off y led_on.
Despus borraremos el disfraz costume1 con la x que hay a la derecha del disfraz y
cambiaremos el nombre del objeto a Led.

Aunque no es estrictamente necesario cambiar el nombre del objeto ni borrar el disfraz que
no vamos a usar, esto nos ayudar a tener el programa ms limpio y ordenado.
El orden y la limpieza son unas buenas costumbres que deberamos mantener a lo largo de
todas las sesiones.
Si ms tarde empezamos a programar con cdigo en vez de bloques, ser an ms impor-
tante.
En el escenario habr cambiado el objeto Arduino1 por el objeto Led que hemos creado.
COMO CREAR EL PULSADOR VIRTUAL

Vamos a hacer un objeto nuevo para simular un pulsador y utilizarlo como un interruptor,
de la misma forma que hicimos en la sesin 7 con uno fsico.
Para ello en el listado de objetos daremos a al icono Pintar un objeto nuevo.
Automticamente nos abrir el editor grfico y dibujaremos o importaremos un pulsador.

Cuando le demos a aceptar veremos que se nos habr creado un nuevo objeto con el
nombre de Objeto1 y un disfraz con el dibujo que hemos hecho con el nombre disfraz1.
Si al crearlo nos aparece en el escenario montado sobre el LED o en una posicin que no
nos gusta, podemos hacer click en l y arrastrarlo a otra parte del escenario.
Cambiaremos el nombre del objeto a Pulsador y el nombre del disfraz a pulsador, de la
misma forma que hemos hecho con el objeto Led.

PROGRAMANDO EL PULSADOR

En S4A cada objeto que hagamos puede tener su propio programa para guiar su
comportamiento y comunicarse con los otros objetos. Lo primero que haremos ser
seleccionar el objeto Pulsador en el listado de objetos e ir a la pestaa Programas.
Lo que queremos es que al hacer click en el pulsador en el escenario, enve una seal al
resto de objetos.
Utilizaremos el bloque de Control al presionar Pulsador para empezar el programa, as
cada vez que lo pulsemos en el escenario, llevar a cabo las acciones que le hayamos
programado.

Como queremos que al pulsarlo enve una seal a los dems objetos utilizaremos el
bloque enviar a todos.

En el men desplegable seleccionaremos nuevo, y en el nombre del mensaje escribire-


mos on (podis ponerle el nombre que queris).
Colocaremos el bloque en el programa debajo de al presionar pulsador.
PROGRAMA LED

Una vez hemos programado el objeto Pulsador seleccionamos el objeto Led en donde
vamos a construir la parte principal de nuestro proyecto.
El programa ser muy parecido al de la sesin 7, pero se ejecutar cada vez que reciba la
seal on del pulsador que hemos creado. Este bloque sustituir a la condicin en la que
comprobbamos si el pulsador estaba presionado de la sesin 7.

Necesitaremos crear una variable led igual para almacenar el estado del LED, que si lo
hemos conectado igual que en la sesin 3, estar conectado al pin digital 13.
Crearemos una condicin si / no de la misma manera que hicimos en la sesin 7.
En este caso incluiremos los bloques de Apariencia para cambiar los disfraces del ob-
jeto Led.

Esta vez no necesitamos pulsar la bandera verde, si no que cada vez que hagamos click en
nuestro pulsador virtual, el LED se encender o apagar tanto en el escenario como
fsicamente en la protoboard.
Podis descargar el programa completo desde aqu: Pulsador Virtual.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

El escenario puede contener varios objetos con sus propios programas.


Se puede simular una entrada digital con un pulsador virtual.
Cmo hacer que se comuniquen los objetos entre s.
SALIDAS ANALGICAS
Controlando la intensidad de brillo de un LED

OBJETIVOS
.

o Comprender la diferencia entre analgico y digital.


o Presentar las salidas analgicas.
o Crear estructuras de repeticin.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un diodo LED.

Una resistencia de 330 Ohmios..


Algunos cables de Protoboard..

ANALGICO Y DIGITAL

Todas las seales que hemos manejado hasta ahora, tanto de entrada como de salida, han
sido digitales. Como ya sabemos, este tipo de seales solo pueden tomar dos valores,
HIGH o LOW, 0 o 1.

Hasta ahora hemos utilizado este tipo de seales para encender o apagar un LED o leer si
un pulsador est presionado o no. De hecho, muchos de los elementos que existen son de
este tipo, como una alarma o un sensor de presencia.
Sin embargo existen muchas otras cosas que pueden tomar cualquier valor dentro de unos
lmites. Si lo que queremos es, por ejemplo, leer la temperatura, controlar la intensidad del
brillo de un LED o la velocidad de giro de un motor, necesitaremos de las seales
analgicas.

En esta sesin utilizaremos una salida analgica para controlar la intensidad del brillo de
un LED.

LAS SALIDAS ANALGICAS

En realidad, las placas Arduino (excepto la Arduino Due) carecen de salidas analgicas
puras, pero utilizan un truco para conseguir que una salida digital se comporte como una
analgica.

No vamos a entrar a explicarlo, pero si os interesa se llama Pulse Width Modulation, PWM.
Podis buscarlo en la sesin equivalente de salidas analgicas del curso de Arduino de esta
misma pgina.
Es importante saber esto para que ahora no se nos haga raro saber que las salidas
analgicas de Arduino en S4A corresponden a los pines digitales 5, 6 y 9.
Las salidas analgicas de Arduino UNO pueden tomar valores entre 0 y 255, y en funcin
de ese valor envan una seal cuyo valor estar entre 0V y 5V.
Si para algn proyecto necesitamos ms salidas digitales que las tres que conocemos, po-
demos usar las salidas analgicas, utilizando el valor 0 para LOW y el 255 para HIGH.

CONTROLANDO EL BRILLO DE UN LED

El circuito electrnico es el mismo que el del blinking LED de la sesin 3, pero en este caso
conectaremos el LED a una de las salidas analgicas. En este caso hemos elegido la 6.

Para asignar un valor a las salidas analgicas utilizaremos el bloque analgico valor
de la categora Movimientos. Seleccionaremos la salida analgica 6.
Vemos que podemos asignarle el valor que queramos. Si probamos a meter valores, entre
0 y 255, veremos como el LED se ilumina con mayor o menor intensidad en funcin del valor
que le metamos.

Ahora vamos a hacer un programa que encienda y a apague el LED poco a poco, es decir,
que haga tomar a la salida analgica todos los valores desde 0 a 255 y despus haga lo
mismo desde 255 a 0.
Para poder ir variando el valor de la salida crearemos una variable a la que llamaremos i.
La idea es que la salida tome siempre el valor de esta variable e ir incrementndola de 1 en
1 hasta 255, para despus ir disminuyndola tambin de 1 en 1 hasta 0.
Lo primero que vamos a hacer es fijar las condiciones iniciales, fijamos el valor de la variable
i a 0 y asignamos el valor de i la salida analgica 6.

Ahora tendremos que conseguir hacer una estructura que sume 1 a la variable y se lo asigne
a la salida analgica. Como queremos que llegue hasta 255, tendremos que hacer que se
repita 255 veces.

Para repetir una accin un nmero determinado de veces usaremos un nuevo bloque
de Control, el bloque repetir .
Para que cada vez que se repita sume 1 a la variable i, usaremos el bloque de Variables
sumar a y seleccionaremos la variable i y le indicaremos que sume 1.
Es importante que haga la suma antes de asignar el valor a la salida, o de lo contrario repe-
tira el valor 0 y slo llegara a 254.

Para hacer que se vaya apagando poco a poco haremos lo mismo pero en vez de sumarle
1, le sumaremos -1.

Si probamos a ejecutar el programa ahora, veremos que el LED se ilumina poco a poco
hasta llegar al mximo y luego va apagndose poco a poco una sola vez. Si queremos que
haga esto continuamente slo tenemos que meter todos los bloques, excepto las
condiciones iniciales, dentro del conocido bloque por siempre.
Recordad que podemos ver el valor que tiene la variable en todo momento, y por lo tanto la
salida analgica 6, en la tabla de resumen de valores del escenario.

Podis descargar el programa completo desde aqu: Salidas_analgicas.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

La diferencia entre analgico y digital


Cmo usar las salidas analgicas de Arduino.
A controlar el valor de las salidas analgicas mediante variables.
Cmo crear estructuras de repeticin ms complejas.
DIODO LED RGB
Control de un LED RGB

OBJETIVOS
o Profundizar en el uso de los pines analgicaos.
o Conocer el funcionamiento de los LEDs RGB.
o Aprender a generar valores aleatorios.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un diodo LED RGB, independiente, o bien, con mon

Una resistencia de 330 Ohmios.

Algunos cables de Protoboard..


LOS DIODOS RGB

Hasta ahora los diodos LED que hemos usado tenan un color determinado. Habitualmente
los ms fciles de encontrar en electrnica son los de color rojo, pero podemos encontrarlos
de muchos ms colores.
Sin embargo, imaginad que necesitamos que un LED vare de color en funcin de la
temperatura que haya en una sala; que est azul cuando haga fro, vaya cambiando hacia
amarillo para una temperatura normal y llegue al rojo si se sobrepasa un determinado valor.
Podramos poner varios LEDS de diferentes colores, pero lo ms sencillo sera recurrir a
un diodo RGB. Este tipo de diodos tienen en un mismo encapsulado un LED de cada uno
de los colores bsicos, rojo, verde y azul (Red, Green, Blue), de ah su nombre, y comparten
un ctodo comn (Ground).

La conexin de este tipo de LED se realiza mediante cuatro pines, uno por cada color y otro
para GND.
En funcin del valor de tensin que reciba cada pin R, G, B, conseguiremos un color dife-
rente.
A partir de estos tres colores bsicos se puede conseguir cualquier otro color.
No intentis hacer esto pintando en un folio, porque slo funciona con la luz.

ESQUEMA ELECTRNICO

El esquema electrnico es muy semejante al del semforo de la sesin 5, pero utilizando


las salidas analgicas, y en vez de los tres LEDs, el diodo RGB.
Para identificar cada uno de los pines lo mejor sera leerse las especificaciones del
fabricante, aunque lo ms normal es:

El pin ms largo es el GND.


Teniendo eso en cuenta, el que queda aislado al lado del GND es el rojo.
El otro pin pegado al ctodo es el verde.
Por lo tanto el patillaje del diodo RGB quedara R, GND, G, B.

Si tenis un diodo RGB con montura Keyes, como el que viene en el kit de esta pgina, no
tendris problemas ya que cada pin viene convenientemente identificado.

El montaje en la protoboard quedara as:


Hemos utilizado cables de colores para identificar cada pin con facilidad.
Si utilizis un RGB con montura Keyes, podis conectarlo directamente a la protoboard o
usar cables de macho a hembra.

CONTROLANDO EL RGB

Lo primero que haremos ser un programa muy simple en el que asignaremos a mano un
valor a cada una de las salidas analgicas conectadas al RGB para comprobar que est
bien conectado.
Vamos a hacer que se ilumine rojo, despus verde y despus azul, manteniendo cada color
2 segundos. Para conseguir cada unos de los colores pondremos su pin correspondiente a
255 y los dems a 0.
Si queremos conseguir un color determinado podemos consultar el programa Paint si
utilizamos Windows o cualquier programa semejante de Linux o Mac.
Al arrancar el programa, en la parte derecha del selector de colores tenemos la opcin de
editar colores:

Si en esta pantalla seleccionamos un color, veremos en la parte inferior derecha el valor que
corresponde a cada uno de los colores primarios.

Si metemos esos valores en nuestras salidas analgicas, conseguiremos que nuestro LED
RGB se ilumine en un tono rosa.
GENERANDO COLORES ALEATORIOS

Vamos a aprovechar el montaje para presentar un nuevo bloque que sirve para
generar valores aleatorios. Es el bloque de tipo Operadores numero al azar entre y
.

Colocamos este bloque en el lugar en que metamos a mano los valores.


Como los valores que pueden tomar estn entre 0 y 255, los pondremos como lmites en
lugar de 1 y 10.
Haremos que espere 1 segundo despus de cada ejecucin para fijarnos bien en el cambio
de color.

Podis descargar el programa completo desde aqu: LED RGB.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

A utilizar correctamente un diodo LED RGB.


Hemos profundizado en el uso de las salidas analgicas.
A utilizar un nuevo bloque para generar valores aleatorios.
ENTRADAS ANALGICAS Y POTENCIMETROS
Moviendo objetos en el escenario
OBJETIVOS

o Conocer los potencimetros.


o Comprender el funcionamiento de las entradas analgicas.
o Utilizar una entrada analgica para controlar un objeto en el escenario.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un diodo LED.

Un potencimetro de 10K.
Una resistencia de 330 Ohmios.

Algunos cables de Protoboard.

LOS POTENCIMETROS

Los potencimetros son resistencias que tienen un mecanismo para variar su valor. En
este caso nuestro potencimetro puede tomar valores de 0 a 10k.
Hay muchos tipos de potencimetros, pero todos ellos tienen 3 pines en fila.

Los de los extremos se comportan como una resistencia con el valor mximo del potenci-
metro.
El pin central nos permite tomar valores de resistencia en funcin del ajuste que le hagamos.
Al ser resistencias, no tienen polaridad, da igual cul de sus pines de los extremos usemos
como positivo y cul como negativo.
Para comprender el funcionamiento del potencimetro vamos a montar un circuito
compuesto por el potencimetro, un LED y una resistencia de la siguiente forma:

Si el potencimetro est al valor mximo, la resistencia en la rama del LED ser muy grande
y no se iluminar.
Si la resistencia del potencimetro est ajustada a 0, el LED se iluminar al mximo. Si no
tuvisemos conectada la otra resistencia de limitacin al LED, lo quemaramos.
Para ajustes de valores intermedios en la resistencia del potencimetro, el LED se iluminar
con mayor o menor fuerza.
En realidad como estamos usando una resistencia de valor muy alto, costar un poco que
el LED empiece a iluminarse.
Utilizando el Arduino simplemente para dar tensin, el montaje en la protoboard quedara
de la siguiente manera:

Si vamos ajustando el potencimetro veremos cmo vara la intensidad del brillo del LED.

LAS ENTRADAS ANALGICAS

Vamos a realizar un montaje en el que leeremos el valor a la salida del potencimetro con
la entrada analgica A0.

Variando la resistencia del potencimetro lo que buscamos es modificar la tensin a la


salida del pin central. As podremos modificar el valor de las seales que leeremos con
las entradas analgicas de Arduino, que como ya sabemos, leen tensin.
Lo que har nuestra placa Arduino ser convertir el valor de la tensin que lee, entre 0 y 5V,
a un valor entre 0 y 1023.
Estos 1024 valores y los 256 de las salidas analgicas no son nmeros al azar, tienen que
ver con la conversin de analgico a digital y el nmero de bits de los convertidores de
las placas Arduino. En este curso no vamos a entrar en detalle en este tema.
Cuidado con usar sensores o fuentes de alimentacin que proporcionen ms de 5V o pode-
mos quemar el chip principal de nuestro Arduino.
Aunque no construyamos ningn programa, si vamos ajustando el potencimetro, veremos
cmo va variando el valor de la entrada analgica a la que hemos conectado el
potencimetro.

CONTROLAR OBJETOS EN EL ESCENARIO

Vamos a aprovechar el montaje que tenemos para mover un objeto en el escenario


utilizando el potencimetro. Lo primero que haremos ser crear un disfraz, dibujndolo, o
importndolo.
Yo he importado una bruja volando en una escoba y le he puesto un fondo acorde, como
hicimos en la sesin 5.
Hasta ahora, cuando hemos querido posicionar un objeto en el escenario lo hemos colocado
manualmente arrastrndolo por l. Como ahora se va a mover, nos podra interesar que
cuando el programa empiece a ejecutarse, el objeto comience en una posicin determinada.

La posicin de un objeto viene definida por sus coordenadas X e Y.


El escenario tiene unas medidas de 480360, que van desde X=-240 a X=240 e Y=-180 a
Y=180.
Si queremos saber las coordenadas de un punto concreto del escenario basta con colocar
el puntero del ratn en dicho punto y se nos mostrarn las coordenadas en la parte inferior
derecha del escenario.

Vamos a utilizar bloques de Movimientos que no hemos usado hasta ahora, relacionados
precisamente con la posicin, la direccin y la velocidad de los objetos en el escenario. Son
los que estn al final de la lista de bloques de movimiento y vienen separados de los dems
por una pequea raya.
Para seleccionar las coordenadas para la posicin de un objeto utilizaremos los bloques
de Movimientos fijar x a y fijar y a .
Como en este caso la posicin inicial en X del objeto viene dada por el ajuste inicial del
potencimetro, al iniciar el programa slo fijaremos la posicin en Y.

Lo que colocamos al darle las coordenadas es el centro del objeto. Podemos seleccionar o
cambiar el centro de un objeto en el editor grfico de sus disfraces y ponerlo en un lugar en
el que nos facilite posicionarlo.

Una vez seleccionadas las condiciones iniciales, colocaremos el bloque por siempre, y
dentro de l, fijaremos la posicin en X al valor de la entrada analgica a la que est
conectado el potencimetro, en este caso la A0, utilizando los bloques de Movimientos
fijar x a y valor del sensor .
Si en este momento ejecutamos el programa y giramos el potencimetro veremos cmo se
mueve nuestro objeto, en mi caso como vuela la bruja. Pero todava hay varios defectos que
tendremos que corregir:

Como el valor mnimo del potencimetro es 0V, la posicin mnima en el eje X a la que
podremos mover el objeto ser 0, o sea que slo lo podemos mover por la mitad derecha o
parte positiva del eje X de la pantalla.
La mayora del giro del potencimetro no tiene ningn efecto. Si os fijis en los valores de la
entrada analgica en la tabla de resumen de valores, cuando lleguemos a 240 ya estaremos
en el borde de la pantalla, y por encima de eso no pasar nada.
Si al ajustr el potencimetro el objeto se mueve en la direccin contraria a la que os resulta
ms natural, podis intercambiar las conexiones de 5V y GND de los pines del potencimetro
y la direccin de movimiento respecto al ajuste se invertir.
Para poder aprovechar todo el ancho del escenario, lo que vamos a hacer es restarle 240 al
valor de la entrada analgica A0. De esta forma cuando la resistencia del potencimetro este
al mximo, la tensin medida ser 0V, y al restarle 240, tendremos el valor -240, que coincide
con el extremo izquierdo del escenario.
Para aprovechar todo el giro del potencimetro para el movimiento lo que tenemos es que
calcular la relacin que hay entre los valores que pueden tomar la entrada analgica, 1024,
y el eje X del escenario, 480.
Lo que quiere decir esto es que la entrada analgica puede tomar 2,13 veces ms valores
que el eje X. Por lo tanto, lo que tenemos que hacer es dividir la entrada analgica entre
2,13 y as quedar tambin con valores entre 0 y 480.
Para hacer estas operaciones dentro de nuestro programa utilizaremos los bloques
de Operadores / y .

Aunque en una ecuacin siempre se ejecutan antes las multiplicaciones y divisiones, y des-
pus las sumas y restas; en S4A se ejecutan primero las operaciones que estn dentro
de un mismo bloque.

Por lo tanto nuestro programa quedara de esta forma:

Si lo ejecutamos de nuevo y giramos el potencimetro veremos que ahora funciona de una


forma ms adecuada.
Podis descargar el programa completo desde aqu: Potencimetro.
ALGUNAS COSAS TILES

Podemos elegir ocultar o mostrar la tabla resumen de valores para ver mejor el escenario
haciendo click con el botn derecho en el objeto en la lista de objetos o en la tabla de resu-
men de valores.
Si queremos visualizar nicamente el valor de de algunas de las entradas, podemos selec-
cionarlas y marcarlas en el listado de bloques para que aparezcan en el escenario.
Podemos hacer ms pequeo el escenario o verlo a pantalla completa utilizando los boto-
nes en la parte superior izquierda del escenario.

Para seguir practicando, os recomiendo que hagis lo mismo pero moviendo el objeto
verticalmente. Si tenis dos potencimetros, podis probar a moverlo en las dos direcciones
en un slo programa.
Os dejo los programas por si se os resiste y necesitis una pequea ayuda.
RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Cmo funciona un potencimetro.


Ya estamos preparados para utilizar las entradas analgicas.
Sabemos utilizar bloques para posicionar y mover objetos por el escenario.
PRIMER VIDEOJUEGO: PONG
Versin de Pong para un jugador

OBJETIVOS

o Hacer que un objeto se mueva de forma autnoma por el escenario.


o Utilizar la categora de bloques Sensores.
o Crear varios programas para un slo objeto.
o Programar un Pong para un jugador.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un potencimetro de 10K

Algunos cables de Protoboard..


UN POCO DE HISTORIA

Hace mucho, mucho tiempo (1972-1976), en una galaxia no muy lejana, los nios y los no
tan nios se divertan con la primera generacin de consolas.
Eran aparatos muy sencillos de usar, bastaba con conectarlos a la tele y ponerse a jugar.
Los controles eran simplemente ruedas o clavijas distribuidas normalmente por la caja de la
propia consola.
Tenan uno o varios juegos grabados en la memoria y no podas comprar ms juegos,
porque no tenan ningn soporte para ello. Pero hubo un juego que sobresali por encima
de todos, el Pong, una especie de tenis muy simplificado. No haba un sistema de aquella
primera generacin que no incluyera un juego tipo Pong.

Cuando en la navidad de 1975 Atari comercializ su propia versin del Pong, se convirti en
un xito inmediato. Consista bsicamente en una carcasa con conexin a la televisin y dos
ruedas como controles. Ms tarde salieron versiones que incluan hasta 16 variaciones de
este juego (que eran prcticamente lo mismo) e infinidad de consolas clnicas.

Lo que vamos a hacer en esta sesin es utilizar lo que hemos aprendido para hacer nuestra
propia versin de Pong con Arduino para un jugador y de paso aprender unas cuantas
cosas por el camino. En la siguiente sesin lo haremos para dos jugadores.
Teniendo en cuenta que en su momento costaba unos 100$ (que ahora equivaldran a casi
400$, lo mismo que una consola de ltima generacin), supongo que si le hubieses dicho a
alguien en aquella poca que un nio podra fabricar su propio Pong en casa como vamos
a hacer nosotros, te hubiera mirado como a un marciano.

VERSIN DE PONG PARA UN JUGADOR


La idea es simular una especie de frontn, donde controlaremos una barra para hacer
rebotar una pelota e impedir que se nos escape. Como vamos a manejar la barra con
un potencimetro, el montaje ser el mismo que en la sesin 11.
Dibujamos una barra, la ajustamos al tamao que queramos y la programamos para que se
posicione y se mueva de la misma manera que en la sesin 11.

Recordad cambiar el nombre del objeto y del disfraz a Barra, o algo semejante, para seguir
manteniendo el orden y la claridad en nuestros proyectos.
Con el mismo propsito os recomiendo borrar el disfraz donde est dibujada la placa Ar-
duino.

Para hacer la pelota crearemos un nuevo objeto, como ya sabemos de otras sesiones, y le
haremos un disfraz. Para programar el movimiento de la pelota vamos a utilizar algunos
bloques nuevos y una nueva manera de enfocar nuestros programas.

DIVIDE Y VENCERS

Hasta ahora, siempre que hemos programado un objeto lo hemos hecho todo en una nica
secuencia de instrucciones. Sin embargo, a medida que los programas se complican puede
sernos til dividirlo en varios programas, de forma que cada uno de ellos nos solucione una
parte concreta del problema.

Aunque no es exactamente lo que se entiende en la programacin tradicional como funcin,


durante este tutorial de S4A vamos a referirnos a cada uno de estos pequeos programas
como funcin.
Si os resulta ms sencillo organizar el programa en funciones diferentes a las que plantea-
mos aqu, no dudis en hacerlo como lo veis ms claro.
Dividir un problema grande en otros ms pequeos y tratar de solucionarlos poco a poco,
es una prctica muy recomendable en cualquier aspecto de nuestras vidas.
Lo primero que vamos a hacer es posicionar la pelota de en la parte superior del escenario
y en el centro del eje X. Utilizaremos el bloque ir a x: y: .

En este mismo programa (funcin) vamos tambin a darle a la pelota la direccin inicial y
la velocidad a la que se mover.
Para darle la direccin inicial vamos a utilizar el bloque de Movimientos apuntar en
direccin. Si desplegamos las opciones de ese bloque veremos a que direccin
corresponden los valores.
Tambin podemos indicar la direccin con valores entre 180 y 360 en vez de utilizar valores
negativos.
Como queremos que vaya hacia abajo en una direccin aleatoria que no sea muy prxima
a la horizontal, le daremos un valor al azar entre 120 y 240.

La velocidad se la daremos con el bloque de Movimiento mover pasos. Yo le voy a


poner para que empiece con 4. Tendremos que meterla en un bloque por siempre o slo
se movera 4 pasos una vez y se parara.

En esta misma funcin haremos que la pelota rebote al tocar los bordes del escenario
utilizando el bloque de Movimiento rebotar si est tocando un borde.

En una nueva funcin haremos que la pelota rebote si toca la barra. Los bloques que se
utilizan para que interacten los objetos en el escenario estn en la categora Sensores.
Comenzaremos la funcin con el bloque de control de la bandera verde y el bloque por
siempre si .
Como condicin le pondremos el bloque de Sensores tocando ?, y en el men
desplegable seleccionaremos Barra, o el nombre que hayamos puesto al objeto de la barra.
Haremos que si pelota toca la barra rebote como si fuera una pared, pero le aadiremos un
poco de aleatoriedad para evitar quedarnos atrapados en situaciones sin fin y aadirle un
poco de dificultad al juego.
Para calcular el rebote utilizaremos el bloque direccin, que es una variable que guarda el
valor de la direccin de movimiento del objeto, en este caso la pelota.
Para que acte como una pared, la direccin al rebotar tiene que ser 180 (vertical hacia
abajo) menos la direccin que llevaba antes.

Le aadiremos un poco de aleatoriedad sumndole un nmero al azar entre -30 y 30.

Una vez haya cambiado de direccin, haremos que se mueva 4 pasos una nica vez, para
evitar que detecte varios toques con la barra en vez de uno slo.

Ya tenemos programado el funcionamiento de los objetos, pero para convertirlo en


un videojuego hay que darle un poco de emocin y sobre todo hacer que podamos perder.
La manera ms sencilla de detectar cuando la pelota nos ha sobrepasado es pintar en el
fondo del escenario una ralla de cualquier color que no sea el de las barras ni la pelota, y
hacer que si la pelota toca ese color se acabe el juego.
Crearemos una nueva funcin para detectar si la pelota toca la lnea, y si la toca, detener
todos los programas.
Utilizaremos una estructura parecida a la que detecta si toca la barra, pero usando el bloque
de Sensores tocando el color ?.

Si hacemos click en el cuadrado con el color nos saldr un icono de cuentagotas.


Seleccionamos el color que queremos en el escenario, en este caso el rojo de la lnea que
hemos pintado y el color del cuadro del bloque cambiar.
Dentro de la condicin colocamos el bloque de Control detener todo.

AADIENDO UN POCO DE DIFICULTAD

Vamos a complicar un poco ms tanto el programa como el videojuego en s, haciendo que


la velocidad de la pelota vaya subiendo a medida que pasa el tiempo y que cuando perdamos
se nos muestre el tiempo que hemos conseguido aguantar.
En vez de darle una velocidad fija a la pelota, le asignaremos el valor de una
variable velocidad a la que fijaremos al inicio un valor de 4 (o el que queramos). Esto lo
incluiremos en la funcin en la que fijbamos las condiciones iniciales.
Ahora vamos a aadirle otra funcin que haga que suba la velocidad dos pasos cada diez
segundos. Utilizaremos el bloque de Sensores cronmetro, que es una variable que
guarda el tiempo que ha pasado desde abrimos o creamos un proyecto.

Con el bloque reiniciar cronmetro lo pondremos a 0 cada vez que iniciemos el programa.
Creamos una variable lmite a la que le asignaremos el valor 10.
Tambin podramos incluir estos bloques en la funcin en la que fijamos las condiciones
iniciales.

Haremos que si el valor del cronmetro es mayor que lmite le sume dos a la
variable velocidad y le sume 10 al valor del lmite para que vuelva a subir la velocidad diez
segundos despus.

Ya slo nos queda programar que cuando perdamos se nos muestre en pantalla cunto
tiempo hemos aguantado.
En la funcin en la que detenemos los programas, haremos que antes pare la pelota y nos
muestre el valor del cronmetro. Utilizaremos el bloque de Apariencia decir por
segundos, le asignamos el valor del cronmetro y hacemos que lo muestre durante 5
segundos.
De esta forma la programacin del objeto Bola nos quedara as.

Aqu os dejo el programa completo por si lo queris descargar: Pong1j

Podis organizar los programas como mejor os parezca, no tiene por qu ser de esta misma
manera. Si os resulta ms sencillo, podis construirlo en un nico programa de esta forma.
Cuando vayis a jugar, recordad que podis ponerlo a pantalla completa, quitar la tabla de
resumen de valores para que no os moleste y mostrar las variables que queris, como por
ejemplo la velocidad de la bola y el cronmetro, para ver qu tal va la partida.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Es ms fcil dividir los programas en varias funciones.


A crear objetos que se mueven de forma autnoma por el escenario.
Sabemos hacer que interacten grficamente unos objetos con otros.
Conocemos el nuevo tipo de bloques Sensores.
PONG PARA DOS JUGADORES
Versin de Pong para dos jugadores con marcador y sonidos

OBJETIVOS

o Manejar dos entradas analgicas.


o Crear objetos Arduino.
o Aprender a exportar e importar objetos completos.
o Introducir los sonidos en S4A.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Uno o dos potencimetros de 10K

Algunos cables de Protoboard..

PLANTEAMIENTO
Como ya comentamos, Atari Pong supuso una revolucin en la historia de los videojuegos.
Dos funciones novedosas que inclua fueron:

Tena sonido.
Llevaba la cuenta de la partida. En otras plataformas haba que apuntar los puntos en un
papel.
En esta sesin vamos a hacer un Pong para dos jugadores, y a incluir esas dos
funcionalidades. Si estis utilizando estas sesiones en una clase de tecnologa de algn
colegio, podis poneros por parejas para hacerla, y de paso ver quin gana echando una
partida.
El montaje ser el mismo que en la sesin 12, pero aadiendo un segundo potencimetro.
Si no tenis dos potencimetros vamos a explicar la manera de manejar una de las barras
con el ratn del ordenador.
Vamos a reutilizar parte del programa de la sesin anterior, pero cambiando y aadiendo
algunas cosas. Empezaremos modificando la barra que ya tenemos y creando una segunda
barra.
Para aprovechar que el escenario es ms grande en el eje X, vamos a hacer el campo en
sentido horizontal, por lo que modificaremos el dibujo y el programa de la barra de la sesin
anterior para hacer que est en vertical y se mueva en el eje Y.

NUEVO OBJETO ARDUINO

Hasta ahora hemos creado objetos siempre de la misma manera. Pero si queremos crear
un objeto que tenga acceso a las entradas y salidas digitales y analgicas como la barrra,
necesitaremos crear un objeto Arduino.

Los objetos Arduino proporcionan bloques para las funcionalidades bsicas del microcon-
trolador, escrituras y lecturas digitales y analgicas, y otras funcionalidades de alto nivel.
Tambin encontraremos bloques para tratar con motores estndar y servomotores de rota-
cin continua (los utilizaremos en sus respectivas sesiones ms adelante).
Para crear, dibujar o importar un objeto Arduino haremos click en los botones que hay en
la parte superior derecha del listado de objetos.
Si elegimos crearlo nos saldr un cuadro de dilogo como este:

Si quisiramos utilizar una segunda placa Arduino para controlar el objeto, seleccionara-
mos Nueva conexin.
Como vamos a usar la misma placa, seleccionamos Utilizar la conexin del objeto Barra.
Como en este caso queremos hacer un objeto igual que la barra, podramos simplemente
darle con el botn derecho del ratn al objeto de la barra y darle a duplicar.
Una vez creada renombraremos los objetos como Barra1 y Barra2, por aquello de la
limpieza el orden.
Tendremos que modificar el programa de la segunda barra para posicionarla en el lado
opuesto del escenario. Tambin dibujaremos dos lneas de colores diferentes detrs de las
barras igual que en la sesin anterior.

Si no tenemos dos potencimetros, podemos controlar una de las barras con el ratn, con
el bloque de Sensores y del ratn.
EXPORTAR E IMPORTAR OBJETOS

En S4A existe la posibilidad de exportar objetos para guardarlos y utilizarlos en otros


proyectos. Supongamos que hemos empezado un proyecto nuevo para esta sesin y
queremos reutilizar la pelota de la sesin 12 para modificarla y as ahorrarnos trabajo.
Si abrimos el programa del Pong para un jugador y en el listado de objetos hacemos click
con el botn derecho en la pelota, o en cualquier otro objeto, veremos que nos da la opcin
de exportar objeto.

Nos saldr un cuadro de dilogo y podremos elegir dnde guardarlo.


Si ahora desde otro proyecto, en este caso el Pong para dos jugadores, damos a Escoger
un nuevo objeto desde archivo o a Escoger un nuevo objeto Arduino desde un
fichero en funcin del tipo de objeto que sea, y buscamos el objeto que hemos exportado,
tendremos en el nuevo proyecto el objeto con todos los disfraces y programas incluidos.

MODIFICANDO LA PROGRAMACIN DE LA PELOTA

Lo primero que haremos ser modificar la posicin inicial de la pelota y la direccin inicial
del movimiento.

Fijamos la posicin al centro del escenario, x=0, y =0.


Hacemos que la pelota comience apuntando a una de las barras, utilizando el bloque apun-
tar hacia .
Ahora tenemos que cambiar la funcin en la que hacemos que rebote la pelota al tocar la
barra, para que rebote si toca cualquiera de las dos. Utilizaremos el bloque de Operadores
o .
Tambin cambiaremos la forma en que cambia de direccin al rebotar, ya que ahora las
barras estn en vertical.

Haremos una funcin igual que la que detectaba si la pelota tocaba el color rojo, pero
tocando el color que est detrs de la otra barra, en este caso azul, y les quitaremos a ambas
los bloques que mostraban el tiempo y detenan los programas.

La funcin en la que subimos la velocidad de la bola cada 10 segundos, la dejaremos igual


para darle un poco de emocin al juego.
Con esto ya tenemos la parte principal del videojuego, pero ahora vamos a introducir las
mejoras de las que hablbamos.

CONTANDO LOS PUNTOS: MARCADOR

Para poder llevar la puntuacin, necesitamos crear dos


variables, puntosrojo y puntosazul que inicializaremos a 0.
Hacemos que si toca la lnea azul sume un punto a puntosrojo y si toca la roja
a puntosazul, as iremos contando los puntos.

Tambin tenemos que hacer que una vez sumado el punto, la pelota vuelva al centro y
empiece a moverse hacia la mitad de campo del que ha perdido el punto, en direccin a la
barra.

Fijamos la posicin de la bola al centro de la pantalla.


Fijamos la velocidad a 0 durante 2 segundos para dar tiempo a prepararnos.
Utilizaremos el bloque apuntar hacia, seleccionando la barra que corresponde en cada
caso.
Volvemos a fijar la velocidad a 4.
Reiniciamos el cronmetro, para que vuelva a empezar a subir la velocidad cada 10 segun-
dos.

Ya slo nos queda hacer que si uno de los jugadores llega a 3 puntos, acabe la partida y
muestre quien es el ganador.

Utilizaremos el bloque de Control si , y el operador = para comparar las varia-


bles puntosrojo y puntosazul con 3 (o los puntos que queris que haya que alcanzar para
ganar).
La comparacin hay que hacerla despus de que hayamos sumado el punto al marcador.
Mostraremos un mensaje en pantalla con el ganador utilizando el bloque de Apariencia
decir por segundos durante 5 segundos.
Utilizaremos el bloque de Control detener todo para parar los programas de todos los
objetos si un jugador gana la partida.
CMO AADIR SONIDOS A NUESTROS PROGRAMAS

En S4A los sonidos se crean y se aaden al programa de forma muy similar a los disfraces.
Seleccionamos el objeto al que queremos aadirle sonido, en este caso la bola, y damos a
la pestaa Sonidos. Funcionan de forma parecida a los disfraces.
Podemos grabarlos o utilizar sonidos que tengamos guardados. Yo voy a utilizar tres sonidos
de los que vienen por defecto al instalar S4A, uno para el rebote con la barra, otro para
cuando se haga un punto y otro cuando alguien gane la partida.
Los bloques relacionados con los sonidos estn en la categora Sonido.

Vamos al programa de la pelota y utilizamos el bloque tocar sonido , seleccionando en


el men desplegable el sonido que queramos.

Usamos el sonido Pop cuando rebote con cualquiera de las barras.


WaterDrop cada vez que haya un punto.
Bell Toll cuando alguien gane la partida.
Ahora s hemos terminado nuestra propia versin de Atari Pong. Podis descargar el
programa completo aqu: Pong 2j.

Recordad que podis ponerlo a pantalla completa y mostrar en el escenario los puntos que
lleva cada uno marcando en el listado de bloques las variables donde los guardamos.
Si hacemos click con el botn derecho en una variable en el escenario podemos elegir el
formato para mostrarlas.
RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Existen diferentes tipos de objetos en S4A, y sabemos cmo crearlos en funcin de lo que
necesitemos.
Podemos reutilizar objetos en otros proyectos.
Sabemos cmo crear sonidos y utilizarlos en nuestro programa.
TRANSISTORES Y MOTORES DE CC
Circuito con transistor para controlar la velocidad de giro de un motor de CC

OBJETIVOS

o Presentar los transistores.


o Controlar un motor de corriente continua.
o Utilizar una entrada analgica para controla el valor de una salida analgica.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Una Protoboard y cables.

Un diodo LED y una resistencia de 330.

Un transistor 2N2222. Comprobad que lleva rotulad


temperatura es similar.

Un motor de corriente continua.


Un potencimetro de 10K.

LOS MOTORES DE CORRIENTE CONTINUA

Hasta ahora hemos utilizado las salidas de nuestro Arduino para influir en el mundo exterior
gobernando nicamente diodos LED. Hemos podido hacerlo porque tiene capacidad
suficiente (potencia) para encenderlos.
Pero existen muchos otros componentes para los que la capacidad de nuestro Arduino es
insuficiente: motores de CC, accionar rels
Para solucionar este problema tenemos los transistores.

Los pines digitales de Arduino permiten un mximo de 40mA, o lo que es lo mismo, 5V x


40mA = 0,2 W (Wattios) de potencia.
El pin de 5V puede dar hasta 0,5A si tenemos el Arduino conectado por USB.
Hay que fijarse bien en no conectar componentes que sobrepasen las especificaciones de
nuestro Arduino, o podramos acabar quemndolo.
En esta sesin vamos a utilizar nuestra placa Arduino para controlar un pequeo motor de
corriente continua.

LOS TRANSISTORES

Un transistor es un dispositivo electrnico semiconductor que sirve para regular una seal
de salida en funcin de una seal de entrada. Si volvemos a la analoga con el flujo de agua,
sera algo parecido a un grifo o una llave de agua.

Todos tenemos clara la diferencia entre conductor y aislante. Un semiconductor puede ser
cualquiera de las dos cosas en funcin de lo que necesitemos, adems de tener algunas
otras propiedades muy tiles.
Los transistores trabajan bsicamente de dos formas (aunque no son las nicas):

Permitir o cortar el flujo de corriente a partir de una pequea seal de mando.


Amplificar la seal de entrada.
Cuando trabaja de la primera forma, decimos que trabaja en corte (cuando no pasa) o
en saturacin (pasa sin restricciones), pero nada de pasar a medias. O lo que es lo mismo,
corte es un 0 (FALSE) y saturacin un 1 (TRUE). Esto es el fundamento de toda la
electrnica digital moderna: ordenadores, consolas, telfonos
Tambin puede trabajar en activa, dejando pasar ms o menos corriente.
Los transistores tienen tres partes: Emisor, Colector y Base (E, C y B). Siguiendo la
analoga del grifo el emisor sera la salida de agua, el colector la entrada y la base el
mando. Lo vamos a ver ms claro en la siguiente figura.

Corte: si no hay seal en B, la vlvula est cerrada y no hay flujo de agua entre C y E.
Activa: si hay seal en B, la vlvula se abrir la vlvula en funcin de su valor y permitir el
paso de parte de la corriente de agua de C a E.
Saturacin: si la seal en B es suficiente, la vlvula se abrir completamente y permitir
que toda la corriente de agua pase de C a E. Llegados a este punto, aunque le demos ms
seal en B no conseguiremos mayor corriente, e incluso podramos romper la vlvula.
Si habis entendido el ejemplo, slo tenis que cambiar corriente de agua por corriente
elctrica, y la vlvula por el transistor y comprenderis su funcionamiento.

Decimos que funciona como amplificador porque con una pequea corriente en
la base podemos tener una corriente mucho mayor entre el colector y el emisor.
Se pueden utilizar varios transistores para conseguir ganancias muy grandes.
Cada vez que escuchas msica, hay uno o varios transistores amplificando una seal dbil
para que puedas escucharla.

CIRCUITO CON TRANSISTOR Y MOTOR CC

En este montaje usaremos el transistor de uso general P2N2222, barato y fcil de encontrar.
Permite hasta 0,5 Amperios y 40V.
El esquema elctrico sera el siguiente:
Q1 es el transistor y M1 el motor de CC. La flecha en Q1 indica la direccin de la corriente.
Conectamos la base al pin 9 de nuestro Arduino.
El colector lo conectamos a la toma de 5V de la placa, pero podramos conectarlo a tomas
de 12V, 24V etc en funcin de la potencia del elemento que queramos controlar y usar un
transistor acorde.
Conectamos el positivo del motor al emisor, y el negativo a tierra.
La flecha del emisor indica la direccin de la corriente y que es un transistor NPN, si la flecha
tuviera la direccin contraria sera un transistor PNP, pero mejor lo dejamos de momento
Como podis ver, hemos colocado un diodo LED en paralelo al motor. Lo hemos hecho para
proteger al transistor (que es un poco ms caro que el diodo, aunque no mucho). No vamos
a entrar en detalles del por qu en este curso, suficiente con que os suene si tenis que
realizar ms montajes como este.
Una de las ventajas de usar un transistor es que se asla la parte de control del circuito
conectada a la base de la parte de la carga entre emisor y colector, haciendo muy difcil que
quememos nuestro Arduino.
Para saber qu pin es cada pata, ponemos el transistor con la cara plana hacia nosotros (ah
est rotulado el modelo) y las patas hacia abajo. De izquierda a derecha son emisor, base y
colector.
En la protoboard el circuito quedara de la siguiente forma:

PROGRAMA DE CONTROL DEL MOTOR

Primero haremos que trabaje en el transistor en corte y saturacin, cambiando de una a


otra cada 5 segundos.
Para controlar la velocidad de giro del motor mientras el transistor trabaja en la parte activa
utilizaremos un programa similar al que usamos en la sesin 9 de las salidas analgicas,
pero haciendo que suba y baje el valor un poco ms despacio incluyendo dos bloques
de esperar 0,1 segundos.

Si a simple vista no notis la variacin de velocidad podis acercar el odo para escucharlo
o cogerlo con la mano para notar cmo cambia la vibracin.

UTILIZANDO UN POTENCIMETRO COMO SEAL DE


CONTROL

Os recomiendo volver a realizar esta sesin pero utilizando un potencimetro para usar el
valor de una entrada analgica para variar la velocidad del motor. El montaje sera muy
sencillo combinando el de esta sesin y el de la sesin 11 de Entradas Analgicas.
El esquema electrnico es el siguiente:
No vamos a poner el esquema de montaje en la protoboard, porque ya hemos visto como
conectar todos los componentes del circuito en esta sesin y en la sesin 9. Adems ya va
siendo hora (si es que no lo hacis ya) de que hagis los montajes usando el esquema
electrnico, que es mucho ms claro, sobre todo a medida que se van complicando los
circuitos.
La programacin es muy sencilla, simplemente asignamos a la salida analgica el valor de
la entrada analgica a la que est conectado el potencimetro.

Dividimos el valor de la entrada analgica entre 4 para adecuarla a la salida y aprovechar


todo el giro del potencimetro, de la misma manera que hacamos en la sesin 11 con el
escenario.
Recordad que las entradas analgicas pueden tomar 1024 valores y las salidas analgicas
256.
Podis descargar los tres programas de la sesin aqu: Transistores y Motores.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:


Conocemos el funcionamiento bsico de un transistor, y ya podremos usarlos sin miedo en
cualquier otro proyecto.
Hemos utilizado un pequeo motor de corriente continua, pero ahora sabemos los princi-
pios necesarios para controlar cargas que nuestro Arduino por s slo no tiene capaci-
dad (potencia) para controlar.
Sabemos cmo usar una entrada analgica y adecuarla correctamente para controlar el
valor de una salida analgica.

RELS
Sistema de alimentacin ininterrumpida

OBJETIVOS

o Presentar los rels.


o Aprender para qu sirven y como se conectan.
o Montar un circuito de alimentacin ininterrumpida con un rel.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware p


Un PC con el entorno S4A correctamente instal

Una Protoboard ms cables.

2 x diodos LED y 2 x resistencias de 330.


Un transistor 2N2222
Comprobad que lleva rotulada esta referencia, p
lar.

Un pequeo Rel.
Independiente o con montura keyes

QU ES UN REL

Un rel es un interruptor controlado mediante una seal elctrica. Sera algo parecido a los
pulsadores que hemos utilizado, pero sustituyendo nuestro dedo por una seal elctrica.
De esta forma, mediante una seal elctrica de poca intensidad podemos controlar un
circuito de mucha mayor potencia, aislando la parte de control.
Seguramente todo esto os suene un poco de cuando hablamos de los transistores, pero
tienen finalidades diferentes.

Hay lmites en la corriente que puede aceptar un transistor, sin embargo se pueden dise-
ar rels para aguantar cualquier carga.
El rel asla completamente el circuito de control del de potencia, algo muy importante para
tensiones altas.
Utilizaremos rels cuando tengamos cargas de mucha potencia.
Utilizaremos un transistor para cargas pequeas y cuando la velocidad de conmutacin sea
importante.
Un transistor conmuta (pasa de corte a saturacin o viceversa) millones de veces ms r-
pido que un rel.

CIRCUITO CON TRANSISTOR Y REL

Aunque hay muchos tipos de rels, por regla general nuestro Arduino no tiene potencia
suficiente para activar un rel. Pero ya hemos visto cmo utilizar un transistor para
ayudarnos con este problema.

Utilizaremos un transistor para amplificar la seal de la Base y as poder conmutar el rel.


Cuando la salida digital 10 est a HIGH, el transistor trabaja en saturacin haciendo que la
corriente en el emisor excite la bobina del rel y mediante un electroimn el contacto cambia
de posicin (se oye un pequeo clic cada vez que esto pasa).
Si la salida digital 10 pasa a LOW, el transistor pasa a corte y al no tener corriente en la
bobina el conmutador vuelve a su posicin inicial.
Normalmente un rel consta de 5 pines. Dos pines de entrada por donde conectamos la
bobina a la salida del transistor y a tierra, y tres pines de salida.

La conexin entre los pines 2 y 4 es de tipo normalmente cerrado. Es decir, el circuito est
cerrado mientras no haya corriente en la bobina.
La conexin entre 2 y 3 es de tipo normalmente abierto. Est abierto cuando no hay co-
rriente en la bobina.

CIRCUITO DE ALIMENTACIN ININTERRUMPIDA


Cuando se nos va la luz en casa el mayor problema suele ser que se nos haya fastidiado
una partida en el PC o consola, o que si dura mucho se nos eche a perder la comida del
congelador.
Sin embargo, hay lugares en los que un corte de corriente puede traer consecuencias mucho
peores (incluso peor que si justo estabas el primero en una partida online), como puede ser
un hospital.
Por eso algunas instalaciones estn diseadas de modo que si se hay un corte de corriente,
se conecten de forma automtica a una batera o un generador auxiliar para poder seguir
funcionando.
Nosotros vamos a utilizar nuestro Arduino para hacer un sistema de ese tipo.
En este caso slo vamos a poner el circuito electrnico, ya que las conexiones pueden ser
diferentes en cada modelo de rel y el montaje en la protoboard sera diferente.

Podemos mirar el modelo en nuestro rel y buscarlo en internet para ver su descripcin.
Los pines de control (los de la bobina) suelen estar prximos.
Si no encontris informacin, para saber que pines son normalmente cerrado y normal-
mente abierto podemos hacer pruebas con LEDs.

Vamos a imaginarnos que la toma comn del rel (la 2 en el dibujo) est conectada a una
batera externa o un generador en vez de a la toma de 5V, o si queris podis conectarla
realmente a una batera o unas pilas.
La toma 4 del rel es la normalmente cerrada, cerrada cuando no hay corriente en la
bobina.
La idea es que cuando pongamos a LOW las salidas digitales 10 y 13, simulando un corte
de luz, el LED conectado a la salida 13 siga encendido a travs de la alimentacin auxiliar
al conmutar el rel.
Hemos colocado otro led de color verde para marcar cundo se est utilizando
la alimentacin auxiliar.
El programa que vamos a usar va a ser el mismo que el Blinking LED pero usando dos
salidas, de manera que cada vez que se pongan a LOW, conmute el rel y conecte la
alimentacin auxiliar.

Cuando hay tensin en la salidas digitales 10 y 13, vemos que est encendido el LED rojo y
apagado el verde. El rel est conmutado a la toma 3, normalmente abierta, por lo que no
se ilumina el LED de que marca que se est usando la alimentacin auxiliar.
Si se fuese la corriente, las salidas 10 y 13 pasan a LOW y vemos cmo el LED rojo sigue
encendido y el verde que est conectado a la salida normalmente cerrada del rel se
enciende, alimentado por la toma de 5V, que en nuestro caso est simulando una batera o
generador auxiliar.
Si queris podis conectar un LED tambin a la salida normalmente abierta del rel, la 3, y
ver cmo va encendindose uno u otro LED en funcin de la posicin del rel.
Podis descargar el programa completo aqu: Rel Sai.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Los rels son muy interesantes a la hora de controlar cargas de mucha potencia.
Sabemos diferenciar entre contactos normalmente abiertos y normalmente cerrados.
Cmo funciona un sistema bsico de alimentacin ininterrumpida.
SENSORES DE TEMPERATURA
Control de temperatura con un sensor y un ventilador

OBJETIVOS

o Aprender a calcular la temperatura a partir de la lectura de los sensores LM35DZ y TMP36.


o Montar un circuito para controlar la temperatura con un ventilador.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Una Protoboard ms cables.

Un diodo LED y una resistencia de 330.

Un transistor 2N2222. Comprobad que lleva rotulad


temperatura es similar.
Un ventilador de 5V o un motor de corriente continu

Un Sensor de temperatura LM35DZ o similar.Comp


porque es fcil confundirlo con un transistor.

CMO FUNCIONA UN SENSOR DE TEMPERATURA

Un sensor de temperatura es un chip que nos devuelve un valor de tensin en funcin de


la temperatura a la que est. En esta sesin vamos a presentar los
sensores LM35DZ y TMP36, dos de los sensores ms baratos y fciles de encontrar.
Para saber cmo funcionan estos chips, o cualquier componente que vayamos a usar,
deberamos buscar en internet sus especificaciones, aadiendo al nombre del chip data
sheet. Esta informacin suele estar en ingls, y puede resultar difcil de entender.
En resumen, estos sensores funcionan de la siguiente manera:

Mide la temperatura en C.
El TMP36 funciona entre -50 y 125C.
El LM35DZ funciona entre 0 y 100C.
Cuidado con confundirlos con un transistor, ya que el encapsulado es muy similar. Hay que
leer las letras que tienen grabadas para ver si es el sensor que buscamos (y suelen ser muy
pequeas).
Con la cara plana mirando hacia nosotros, la pata izquierda es 5V, la del centro la salida y
la de la derecha GND.
Cuidado si conectis la tensin al revs. Podis daros cuenta a tiempo antes de romperlo,
pero esperad un poco a que se enfre con el Arduino desconectado porque se calienta mu-
cho, suficiente para haceros una quemadura.

CMO LEER LA TEMPERATURA

El esquema electrnico y el circuito en la protoboard son muy sencillos:


A la hora de hacer la programacin, la manera de calcular la temperatura en funcin del
voltaje que nos d el sensor ser diferente en funcin del sensor que estemos utilizando.
En el caso del LM35DZ, el fabricante nos dice que para calcular la temperatura debemos
hacer la siguiente operacin:

En el caso del TMP36, como empieza de -50C, habr que restarlo a la frmula anterior:

En mi caso voy a usar el LM35DZ; si vais a usar el TMP36 bastara con sustituir los bloques
dnde hacemos los clculos.

Recordad que S4A no ejecuta antes las multiplicaciones y divisiones y despus las sumas
y restas como haramos para resolver correctamente una ecuacin.
Se ejecutan los bloques de dentro hacia fuera, por eso hay que hacer la resta en el bloque
ms externo, para que se realice al final y respete la norma.
Para leer la temperatura fijamos el valor de una variable al resultado de la operacin
anterior:

En el escenario podemos ver en todo momento el valor de la variable.

Si queris ver cmo cambia la temperatura, probad a agarrar el sensor entre los dedos para
subirla y soplad para bajarla.

CIRCUITO CON SENSOR DE TEMPERATURA Y VENTILADOR

Vamos a hacer un circuito para controlar la temperatura en una habitacin, utilizando


el sensor de temperatura y el motor de continua con el ventilador que aprendimos a
utilizar en la sesin 14.
El esquema elctrico es el siguiente:
En la protoboard quedara de la siguiente forma:

La programacin es tambin muy sencila. Simplemente leemos la temperatura y la


comparamos con el lmite que escojamos.
Escoged un lmite un poco mayor que el que haya ahora mismo en la habitacin y calentad
y enfriad el sensor cmo hemos explicado.

Al pasar del lmite la temperatura, la salida digital 13 se pone a HIGH y el transistor pasa
a saturacin, haciendo que arranque el motor.
Si la temperatura es menor que el lmite, la salida digital 13 est a LOW y el transistor trabaja
en corte, de forma que el motor est apagado.
Podis descargar el programa completo aqu: Control de temperatura.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Sabemos manejar dos tipos de sensores de temperatura, y todos los dems son muy pa-
recidos.
Hemos adecuado la salida del sensor en Voltios para transformarla en C, utilizando la in-
formacin del fabricante.
Hemos utilizador el sensor y un motor de continua con un ventilador para controlar la tem-
peratura de una habitacin.
SENSOR DE SONIDO
Montando un sistema de iluminacin activado por sonido

Home Sensor De Sonido

OBJETIVOS
.

o Presentar el sensor de sonido KY-038.


o Utilizar el pin digital D0 del sensor.
o Montar un sistema de iluminacin activado por sonido.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un diodo LED.

Un sensor de sonido KY-038 o similar.


Una resistencia de 330 Ohmios.

Algunos cables de Protoboard.

EL SENSOR DE SONIDO KY-038

Este tipo de sensor tiene montura Keyes para facilitarnos el montaje.

En la parte de la izquierda vemos lo pines de conexin:

En el centro tenemos la conexin a 5V y a GND (+ y G).


D0 es una salida digital que acta a modo de comparador. Si el sonido captado por el mi-
crfono supera un determinado nivel se pone a HIGH.
A0 es una salida analgica que nos da un valor entre 0 y 1023 en funcin del volumen del
sonido.
Adems tenemos dos LEDs, uno que nos indica si hay alimentacin en el sensor y otro que
se ilumina si D0 est a HIGH.
El ajuste de sensibilidad del micrfono lo hacemos mediante un potencimetro que
tendremos que girar con un destornillador plano.

CIRCUITO DE ILUMINACIN ACTIVADO POR SONIDO

En esta sesin vamos a usar la salida digital D0 como seal para encender un LED, de
forma que cuando demos una palmada, un silbido o hagamos algn ruido un poco alto, se
encienda o se apague un LED.
Slo necesitamos conectar el pin D0 y los de alimentacin, tal como se ve en el diagrama
electrnico y el montaje en la protoboard:
Si hemos conectado bien el sensor, se debera iluminar el LED de alimentacin. El de salida
digital accionada puede o no estar encendido.
AJUSTANDO EL LMITE DE DISPARO

Esta es seguramente la parte ms complicada de esta sesin. Para ajustar el lmite de


disparo lo que hacemos es girar el potencimetro con un destornillador. Tenemos que
dejarlo de tal forma que el LED que marca si est accionada la salida digital est apagado,
pero lo ms prximo posible al lmite en el que se enciende.

Si lo ajustamos mal y el LED se est encendido, no detectaremos ningn cambio y no po-


dremos reaccionar a ningn estmulo sonoro.
Si lo ajustamos de forma que est apagado pero demasiado lejos del lmite en el que se
enciende, habr que llamar al increble Hulk para que d una palmada por nosotros.

PROGRAMANDO EL SENSOR

El programa para controlarlo es muy sencillo y es el mismo que hemos utilizado varias veces
para controlar un interruptor. La diferencia es que en vez de utilizar un pulsador, si el sensor
detecta un sonido por encima del lmite enviar una seal que recogeremos en la entrada
digital 2.

Si no sois capaces de encender el LED de una palmada, probad a pegar un silbido, un


soplido o a hablar cerca del micrfono.

Podis descargar el programa completo aqu: Led Sonido.

RESUMEN DE LA SESIN
En esta sesin hemos aprendido varias cosas importantes:

Cmo funciona el sensor de sonido KY-038 y a utilizar su salida digital.


Podemos interaccionar con nuestro Arduino a travs del sonido.
LOS BLOQUES LPIZ EN S4A
Dibujando el sonido con el sensor KY-038

Home LOS BLOQUES LPIZ EN S4A

OBJETIVOS
.

o Presentar la categora de bloques Lpiz.


o Aprender a utilizar la salida analgica A0 del sensor KY-038.
o Dibujar el volumen de un sonido en el escenario.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un sensor de sonido KY-038 o similar.

Algunos cables de Protoboard.

LOS BLOQUES LPIZ


Esta categora de bloques se utiliza cuando queremos pintar algo en el escenario a partir el
movimiento de un objeto. Podemos utilizarlo, por ejemplo, para marcar el recorrido que ha
seguido un objeto, o para hacer grficos y diagramas a partir de los valores que nos enve
un sensor.

Para aclarar un poco como funciona, vamos a hacer un ejercicio muy sencillo en el que
colocaremos un objeto en el centro del escenario varias veces y lo moveremos de forma
aleatoria, de manera que vaya dejando un rastro y haga una marca en el punto en el que
termine cada movimiento.
Lo primero que vamos a hacer ser crear un disfraz para el objeto y borrar el que viene por
defecto. Yo he importado una pelota de ftbol.
Nada ms empezar borramos lo que haya dibujado previamente en el escenario utilizando
el bloque de Lpiz borrar y fijamos el grosor del trazo con el bloque fijar tamao del
lpiz a .

Utilizamos el bloque repetir porque queremos que el objeto haga un nmero


determinado de movimientos antes de parar el programa. Posicionamos el objeto en el
centro del escenario, utilizamos el bloque bajar lpiz para que empiece a dibujar y fijamos
el color del lpiz a un nmero aleatorio entre 0 y 200 con el bloque fijar color del lpiz a
.
El bloque bajar lpiz es el equivalente a presionar un lpiz en un papel. Hasta que no lo
levantemos, todo movimiento del objeto dejar un rastro en el escenario de la forma en que
lo indiquemos.
Fijamos el color a un nmero aleatorio para que cada repeticin lnea pinte la lnea de un
color diferente.
Los colores del lpiz en S4A van desde 0 a 200, por eso hemos cogido esos lmites para el
nmero aleatorio.
A continuacin hacemos que el objeto se mueva a una posicin nueva utilizando el bloque
de Movimiento deslizar en segundos a x: y: , levantamos el lpiz con el
bloque subir lpiz y utilizamos el bloque sellar para que deje una marca con la forma
del objeto.

Recordad que las medias del escenario son 480360, siendo el centro (0,0), de ah los lmi-
tes de los valores aleatorios.
Subimos el lpiz para que al volver a poner el objeto en el centro del escenario no pinte nada
ms.
El bloque sellar deja una impresin del objeto en el punto del escenario en el que se en-
cuentre.
Al terminar de ejecutarse el programa tendremos algo parecido a esto en el escenario.
Podis descargar el programa aqu: Dibujo baln.

DIBUJANDO EL VOLUMEN DE UN SONIDO

Vamos a utilizar lo que hemos aprendido en esta sesin y en la sesin 17 para dibujar un
grfico con el volumen de un sonido. Mediremos la seal que enva el sensor KY-038 por
el pin A0 y la dibujaremos en el escenario.

El pin A0 nos devolver un valor entre 0 y 1023 en funcin del volumen del sonido.
El esquema electrnico y el montaje en la protoboard son muy sencillos.
Empezaremos dibujando un objeto para dibujar a partir de l. Como no queremos que se
note, podemos, por ejemplo, hacer un punto lo ms pequeo posible y del color del que
dibujaremos el grfico.
Fijamos las condiciones iniciales:

Borramos el escenario con el bloque borrar.


Fijamos el color del lpiz al que queramos. Antes hemos utilizado un nmero, pero hay otro
bloque donde podemos seleccionar el color a partir de una paleta.
Levantamos el lpiz por si est el objeto en otra posicin de la ejecucin anterior.
Posicionamos el objeto en la parte izquierda del escenario y en el centro del eje Y.
Bajamos el lpiz para que comience a dibujar.
Ahora ya podemos colocar el bloque por siempre para que repita las dems acciones en
bucle. Empezamos sumndole 1 a la posicin en x para que en cada ejecucin pinte el
volumen un poco ms a la derecha en el escenario, de forma que no se vayan solapando.

Si en este momento ejecutamos el programa veremos cmo se pinta una lnea de izquierda
a derecha.
Para saber a qu nivel de sensibilidad tenemos ajustado el sensor, podemos guardar en
una variable el valor recogido en la entrada analgica A0 y visualizarlo en el escenario como
hemos aprendido.

A mayor sensibilidad mayor ser el cambio en la seal que enva el sensor por A0 en funcin
del sonido.
Yo lo he ajustado en el mismo punto que en la sesin anterior, en el punto en el que justo
se apaga el LED que nos muestra si est activado el pin D0.
Para dibujar el volumen en cada iteracin, tenemos que fijar la posicin en y del objeto a la
posicin anterior (que fijamos a 0 en cada repeticin para que pinte siempre a respecto al
punto medio del eje Y) sumndole el valor de A0 que hemos guardado en la
variable volumen. A ese valor le tenemos que restar un valor cercano al que hemos
ajustado la sensibilidad, para que no nos pinte una raya muy gruesa cuando no hay sonido.
Slo nos queda hacer que cada vez que llegue al final del escenario, vuelva a empezar a
dibujar desde la izquierda. Para ello levamos el lpiz hasta la posicin inicial y borramos el
escenario para que empiece a dibujar de nuevo con el escenario en blanco.

Recordad que hay que subir el lpiz para llevarlo a la posicin de inicio sin que pinte y volver
a bajarlo para que empiece a pintar de nuevo.

Si ahora ejecutamos el programa veremos cmo al hablar, silbar, soplar o hacer cualquier
sonido en el micrfono, en el escenario se pinta la variacin en el volumen.
Yo le he acercado un altavoz pequeo con una cancin y el resultado ha sido este:
Podis descargar el programa completo aqu: Dibujar Sonido.
Si queris practicar un poco ms podis coger la sesin 16 del sensor de temperatura y,
por ejemplo, registrar la temperatura cada cierto tiempo utilizando lo que hemos aprendido
y variando un poquito el programa.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Podemos utilizar los bloques Lpiz para hacer dibujos en el escenario a partir del movi-
miento de un objeto.
Sabemos cmo funciona la salida analgica del sensor de sonido KY-038.
Hemos hecho un grfico a partir de los valores recogidos por una entrada analgica, po-
dramos hacer lo mismo con entradas o salidas analgicas o digitales.
LOS JOYSTICKS
Utilizar el joystick para mover objetos en el escenario

Home LOS JOYSTICKS

OBJETIVOS
.

o Presentar el joystick.
o Aprender a conectarlo correctamente.
o Utilizar el joystick para mover objetos en el escenario.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un Joystick.

Una resistencia de 330 Ohmios.


Algunos cables de Protoboard.

QU ES UN JOYSTICK Y CMO CONECTARLO

Un joystick est compuesto por un par de potencimetros (uno para el eje X y otro para el
Y) que transforma el movimiento en X e Y en una seal elctrica proporcional a su posicin,
y que si dejamos de hacer fuerza en l vuelve a suposicin central. Adems suelen incluir
un botn al presionarlos.
Tiene 5 pines: X, Y, 5V, GND y el botn (que se suele llamar SW, que viene de switch).
El montaje es muy sencillo teniendo en cuenta que ya hemos montado cada parte del joystick
por separado en otras sesiones, pero tenis que tener un poco de cuidado al conectar la
salida SW del botn.
Si conectis la salida SW directamente a una entrada digital de Arduino para leer su estado
no os funcionar correctamente.
En realidad el pin SW y el de GND se comportan al conectarlos como si fueses los pines de
un pulsador, como el que vimos en la sesin 6. Por lo tanto, tendremos que conectarle una
resistencia en PULL UP o PULL DOWN, o veremos como el valor que leamos no dejar de
fluctuar.
El diagrama elctrico con la resistencia en PULL UP sera el siguiente:

Y este sera el montaje en la protoboard:


JOYSTICK DIGITAL

Primero vamos a programar el joystick de forma que no importe cunto movamos la


palanca en una direccin, es decir, moveremos los objetos en la direccin que queramos
pero a una velocidad siempre fija.
Tambin haremos que al pulsar el joystick dejemos un sello en el escenario con la forma
del disfraz del objeto. Podis utilizar el disfraz que queris. Yo he importado un dibujo de
un murcilago.
Empezaremos borrando el escenario y fijando la posicin del objeto como ya sabemos de
otras sesiones.

Ahora vamos a programar el movimiento en el eje X. Nos fijaremos en la tabla de valores de


los sensores para ver el valor que lee la entrada analgica A1 (a la que hemos conectado el
eje X del joystick) cuando el joystick est en el centro. En mi caso lee 500.
Si movemos el joystick a la izquierda, el valor que leer A1 ser menor que el valor en
reposo, y mayor si lo movemos hacia la derecha. Por lo tanto, lo que haremos es que si el
valor que leemos est por debajo del valor en reposo se mueva el objeto hacia la izquierda
del escenario; y si est por encima lo mueva hacia la derecha.
Le hemos dado un poco de margen al lmite para que no detecte cambios demasiado pe-
queos.
Podis elegir la velocidad que queris para moverse cambindola en el bloque sumar a
x.
Haremos lo mismo con el eje Y, pero teniendo en cuenta que al mover el joystick hacia abajo
aumenta el valor que leemos en A2, y desciende al moverlo hacia arriba.

Nos queda de incluir en el programa que si pulsamos el joystick, conectado a la entrada


digital D2, haga un sello con la imagen del disfraz que tiene el objeto. Le aadiremos un
bloque de espera para que no detecte varias pulsaciones como ya sabemos.
Como hemos conectado la resistencia al pulsador en PULL UP, la entrada D2 leer true
cuando no est presionado y false cuando presionemos el pulsador.
Podis descargar el programa completo aqu: Joystick. Si probis un poco tendris algo
como esto:

JOYSTICK ANALGICO

Una de las caractersticas del joystick es que podemos controlar la intensidad con que lo
movemos hacia cualquiera de las direcciones. Para conseguir aprovecharnos de ello vamos
a tener que modificar un poco la programacin.
Vamos a empezar ajustando la velocidad del movimiento en el eje X. Para que la velocidad
a la que se mueva vaya de 0 a 10, tanto a la derecha como a la izquierda, haremos lo
siguiente:

Restamos a la lectura actual el valor de la lectura con el joystick en reposo; en mi caso 500.
De esa forma la velocidad ser 0 cuando est en reposo.
Para que la velocidad mxima sea ms o menos 10, dividiremos el resultado de la operacin
anterior entre 50. De esta forma cuando en el eje X el valor sea mximo, o sea, 102-500=523;
la velocidad ser 523/50= 10,46.
Cuando el valor sea mnimo, 0-500=-500. Al dividirlo entre 50 -500/50=-10.
Si queris que la velocidad mxima sea mayor slo tenis que cambiar 50 por un nmero
ms pequeo, y ms grande para que sea menor.

Hacemos lo mismo con el eje Y, teniendo en cuenta que en reposo tenemos el valor 513, y
que queremos invertir el movimiento como en el apartado anterior. Le podis aadir tambin
la capacidad de hacer un sello del objeto.

Podis descargar el programa completo aqu: Joystick analgico.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Sabemos cmo conectar correctamente un joystick.


Cmo detectar la direccin en la que se mueve.
Hacer que la velocidad de movimiento de un objeto sea proporcional al desplazamiento
del joystick.
Como utilizar el pulsador que incluye el joystick.
VIDEOJUEGOS S4A:
CAZADEMONIOS
Utilizar el joystick para disparar a los demonios que aparecen en el escenario

Home VIDEOJUEGOS S4A: CAZADEMONIOS

OBJETIVOS
.

o Utilizar el joystick para hacer un videojuego.


o Profundizar en las interacciones entre objetos.
o Conocer algunos bloques de Apariencia nuevos.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Un Joystick.

Una resistencia de 330 Ohmios.


Algunos cables de Protoboard.

CREANDO LOS OBJETOS, LOS DISFRACES Y LOS SONIDOS

Vamos a utilizar el montaje de la sesin 19 para hacer un videojuego en el que usaremos


el joystick para apuntar y disparar los demonios que aparezcan en el escenario.
Contaremos cuntos demonios vamos cazando y los mostraremos al terminar la partida. Y
es que aunque os parezca mentira, hace no mucho tiempo, haba muchos videojuegos que
no eran mucho ms que esto.
Vamos a empezar creando los objetos que vamos a necesitar e incorporando sus disfraces
y sonidos.
Lo primero que vamos a hacer es dibujar un disfraz para el objeto principal que contendr la
programacin para el movimiento del joystick. Como ser nuestra mira, le haremos un
disfraz acorde.
Tambin importaremos un sonido para que suene cada vez que disparemos. Yo he
importado uno llamado Laser1 de los que vienen por defecto.

Recordad que si habis hecho muy grande o muy pequeo el disfraz, podis ajustarle el
tamao con los botones de encima del escenario.
Crearemos un nuevo objeto Demonio, y le haremos dos disfraces. Uno para el demonio (yo
lo he importado de los que vienen por defecto en S4A) y dibujaremos o importaremos un
disfraz que simula una explosin para cuando les disparemos.
Le pondremos tambin un sonido que usaremos cada vez que aparezca uno.
Ahora crearemos dos fondos para el escenario. Uno ser el escenario que usaremos
normalmente. Yo he elegido un desierto.
El otro fondo ser el mismo pero escribiremos en l Demonios Cazados, para utilizarlo para
poner el resultado con el nmero de demonios que hayamos cazado cuando termine el
juego.

PROGRAMACIN DE LA MIRA

Vamos a empezar programando el objeto Mira. Incorporamos la parte de la programacin


del movimiento del joystick, a la que quitaremos la parte final en la que sellbamos el disfraz
del objeto. Adems vamos a utilizar el bloque de Apariencia enviar al frente en las
condiciones iniciales.
Este bloque lo que hace es que este objeto siempre se vea por encima de los dems si estn
en la misma posicin. Lo utilizaremos para que la mira siempre se vea cuando estemos
apuntando a los demonios a los que daremos caza.
Creamos una funcin nueva en la que haremos que si la mira est tocando un demonio y
pulsamos el joystick, enve una seal a los dems objetos. Utilizaremos un bloque de
tipo Sensores tocando ? , en el que seleccionaremos el objeto Demonio.

Incorporamos el bloque para que suene el lser cada vez que disparemos, tanto como si
damos con el disparo en un demonio como si no.
Aadimos un contador que sume uno con cada demonio al que alcancemos, de la misma
forma que hemos hecho ya otras veces.
Le ponemos un bloque de espera, para que no detecte varias pulsaciones seguidas del
joystick.

Tambin necesitamos una funcin para contar el tiempo que va pasando y poder poner un
lmite de tiempo al juego. Ya conocemos la estructura y los bloques de otras sesiones.
Incluimos el bloque enviar a todos Final para avisar a los dems objetos de que ha termi-
nado el juego.
Antes de detener los programas esperamos 5 segundos para que nos d tiempo a mostrar
el nmero de demonios cazados.
Para terminar incluiremos dos nuevos bloques de Apariencia:

Usaremos el bloque esconder cuando se termine el juego para que no se vea la mirilla
cuando haya terminado.
Para que la siguiente vez que lo ejecutemos se muestre de nuevo la mira, utilizaremos el
bloque mostrar cuando se inicie el programa.

PROGRAMACIN DEL OBJETO DEMONIO Y DEL ESCENARIO


En este objeto lo que queremos programar es que vayan apareciendo demonios en una
posicin y tamao aleatorios a medida que les vayamos disparando. Empezaremos
haciendo que al comenzar a ejecutarse el programa aparezca un demonio en el escenario.

Hemos usado un nuevo bloque de Apariencia fijar tamao a , que sirve para que el
disfraz del objeto que se muestre en el escenario sea un porcentaje mayor o menor que el
disfraz original. Le damos un valor aleatorio entre el 30% y el 100%, para que vaya variando.
Tambin le damos una posicin aleatoria en el escenario (que no sea demasiado cerca de
los bordes), le ponemos el disfraz Demonio y le incorporamos el sonido.
En otra funcin hacemos que si llega un la seal disparo, que significa que hemos dado a
un demonio, cambie al disfraz de Explosin durante medio segundo y aparezca un nuevo
demonio en otra posicin y con otro tamao.

En la ltima funcin hacemos que si llega la seal Final de que se ha acabado el tiempo,
el demonio se posicione en el centro del escenario y muestre el nmero de demonios que
hemos cazado. Trataremos de que no se monte con el texto que hemos puesto en el
fondo Resultado del escenario.
Para acabar vamos a programar el escenario por primera vez. Simplemente haremos que al
ejecutar el programa tenga el fondo Desierto, y al terminarse el tiempo el
fondo Resultado.

Podis descargaros el programa completo desde aqu: Cazademonios.

Os recomiendo trastear un poco con este programa y tratar de hacerle algunos cambios,
como por ejemplo, hacer que se muevan los demonios, que aparezcan varios a la vez o que
si no les disparamos en un tiempo concreto sean ellos los que acaben con nosotros. As
iremos mejorando nuestra capacidad de crear nuevos algoritmos y plasmarlos en nuestros
programas.

RESUMEN DE LA SESIN
En esta sesin hemos aprendido varias cosas importantes:

A usar el joystick en nuestros videojuegos.


Tambin se pueden incluir programas en el escenario.
Hemos conocido algunos bloques nuevos.
Seguimos mejorando nuestra capacidad para crear algoritmos.
LOS SERVOMOTORES
Controlando la posicin de un servo

Home LOS SERVOMOTORES

OBJETIVOS

o Conocer los servomotores o servos.


o Ver en qu se diferencian de un motor normal.
o Aprender a manejarlos con un potencimetro y con un joystick.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Una Protoboard mas cables.

Un Joystick.

Un potencimetro de 10K.
Un servo con sus horns, esas pequeas piezas de p

QU ES UN SERVOMOTOR

Los motores de corriente continua que hemos manejado hasta ahora giran continuamente a
una velocidad determinada, que depende de una seal de control.
Un servomotor, o simplemente servo, no gira de forma continua, sino que lo que hacemos
es controlar su posicin.
Con esta capacidad de moverse un ngulo concreto y mantenerse ah podemos crear toda
clase de movimientos de una forma controlada; por ejemplo en brazos robticos, coches de
radiocontrol o timones de barcos y aviones.
Normalmente el ngulo de giro de un servo no es de 360, sino de 180 (aunque tambin
los hay) y son de corriente continua.
Tienen 3 hilos de conexin, 5V (rojo), GND (negro o marrn) y Control (amarillo o blanco).
La seal de control se la daremos conectndolo a una de las salidas analgicas de nuestra
placa Arduino.

SERVO Y POTENCIMETRO

En este apartado vamos a controlar el movimiento del servo utilizando un potencimetro,


de la misma forma que lo hemos utilizado en otras sesiones.
Normalmente el servo viene con diferentes hlices que podemos acoplarle en funcin del
objeto con el que vaya a interactuar o de lo que queramos conseguir. Lo primero que
tenemos que hacer es atornillar cualquiera de las hlices que tengamos en el eje de giro
para poder observar bien el giro.
S4A tiene tres pines reservados para ayudarnos a manejar servos. Son los pines 4, 7 y 8.
Teniendo eso en cuenta, el esquema elctrico y el montaje en la protoboard son muy
sencillos:
Para controlar esos pines especiales usaremos un nuevo tipo de bloques de la
categora Movimiento llamados motor ngulo . Este bloque posiciona el servo en
el ngulo que le indiquemos. Podis probarlo de manera muy sencilla con este pequeo
programa:
Si variamos el ngulo veremos como el servo se mueve hasta alcanzar la nueva posicin (re-
cordad que el valor tiene que estar entre 0 y 180).
Como lo que queremos en que el ngulo vare en funcin de la posicin del potencimetro
tenemos que modificar un poco el programa:

Aqu tendremos el mismo problema que ya nos ha surgido ms veces. Como la entrada
analgica tiene un rango de 0 a 1023 y el ngulo de 0 a 180, la mayora del movimiento del
potencimetro no tendr ningn efecto.
Para aprovechar todo el giro del potencimetro vamos a adaptar los valores de la entrada
analgica a los grados que puede girar el servo de la siguiente forma:

De esta forma cuando en la entrada conectada al potencimetro tengamos 0 el ngulo ser


0 y cuando est en el mximo 1023 ser 180, y podremos aprovechar todo el rango de
movimiento del potencimetro.

Podis descargar el programa completo aqu: servo-pot.

SERVO Y JOYSTICK

Lo que vamos a hacer con el joystick es sumar o restar grados al ngulo de la posicin del
servo en vez de calcular directamente el ngulo. En cristiano, al mover el joystick el servo
girar en una u otra direccin y mantendr esa posicin cuando lo soltemos.
El esquema elctrico y el montaje en la protoboard son muy sencillos, simplemente
cambiaremos el potencimetro por el josytick (ya hemos visto como conectarlo en
las sesiones 19 y 20). Yo voy a utilizar el eje X del joystick.
Lo primero que vamos a hacer es crear una variable ngulo y fijar la posicin inicial
del servo a, por ejemplo, 90.

De la misma forma que hicimos en la sesin 19, crearemos dos estructuras condicionales
para saber si el joystick se ha movido hacia un lado o hacia el otro, y sumaremos o
restaremos al ngulo anterior un nmero de grados (mayor cuanto ms rpido queramos
que se mueva).

Podis descargar el programa completo aqu: Servo Joystick.


Si queris seguir jugando con el servo, podis tratar de hacer que el movimiento del joystick
sea analgico como hemos hecho en las sesiones anteriores, o que al apretar el botn del
joystick el servo se mueva a una posicin determinada.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Hemos aprendido qu son y cmo funcionan los servos.


Sabemos controlarlos con un potencimetro o un joystick, y podremos usar uno u otro en
funcin de lo que necesitemos para nuestros proyectos.
Hemos adaptado una entrada analgica para transformarla en una salida valor que vaya
de 0 a 180.
FOTORRESISTENCIAS O LDR
Montardo un sistema de alumbrado automtico

OBJETIVOS

o Aprender algunos conceptos nuevos sobre electrnica.


o Comprender la diferencia entre el montaje en serie y en paralelo.
o Conocer las fotorresistencias.
o Crear un sistema de alumbrado automtico.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Cables de Protoboard.

Un diodo LED
Dos resistencia de 330 Ohmios.

Una fotorresistencia o LDR

LAS FOTORRESISTENCIAS

Las fotorresistencias o LDR (del ingls Light Depending Resistor o resistencia


dependiente de la luz) son un tipo de resistencias cuyo valor depende de la luz a la que
estn recibiendo. Es muy pequea cuando recibe una luz muy intensa (unos pocos s), y
aumenta su valor a medida que la luz que recibe va descendiendo.
Normalmente se los usa de dos maneras, para un sistema de luces automtico que se
encienda cuando hay poca luz ambiente o para detectar un movimiento cercano si algo se
interpone entre el foco de luz y la fotorresistencia.
Las fotorresistencias tienen slo dos patas, igual que las resistencias normales, as que
para medir una variacin de voltaje (como hemos hecho con los potencimetros) tendremos
que utilizar un pequeo truco que nos servir para otras muchas cosas.

CONEXIN DE RESISTENCIAS EN SERIE

Ya hemos hablado antes de la ley de Ohm, V = I x R, pero no hemos hablado de las formas
en las que se pueden combinar las resistencias. Hay varias formas de conectar las
resistencias entre s, pero a nosotros la que nos interesa es la conexin en serie.
La diferencia de potencial (voltaje) entre Ay B en el caso de Arduino es normalmente
5V (A=5V y B=GND=0V).
Suguiendo con la analoga del agua, el flujo de corriente (intensidad) sera el mismo en todo
el recorrido y dependera de la resistencia total que se encontrase en el camino.
La intensidad que circula por ambas resistencias es la misma aunque tengan valores dife-
rentes.
Si medimos el voltaje e el punto C, depender del valor que tengan las resistencias. Si son
iguales ser exactamente la mitad que en A.
En este caso si sustituimos las dos resistencias por una resistencia equivalente su valor
sera:

Como sabemos que V= 5V, podemos hallar la intensidad que circula por el circuito:

De esta forma podemos sustituir las dos resistencias por este circuito:

La resistencia equivalente es la resistencia que utilizaramos para sustituir todas las resis-
tencias por una sola.

DIVISOR DE TENSIN

Vamos a utilizar lo que hemos aprendido para medir cambios en el valor de


la fotorresistencia.
Para ello montaremos un circuito que se conoce como divisor de tensin, montando
en serie una resistencia normal y la fotorresistencia.
Si hemos llegado hasta aqu sin perdernos, nos daremos cuenta de que el voltaje que
midamos en C depender del valor de las resistencias R1 y R2. Y si R1 y R2 son iguales, la
tensin en C ser exactamente la mitad de la tensin en A.
Como R2 es una resistencia de valor fijo, el voltaje en C variar cuando cambie el valor de
la fotorresistencia, y de esa manera podremos medir los cambios en la luz que recibe.

Como hemos comentado alguna vez, nuestro Arduino trabaja con voltajes de hasta 5V, por
lo que no es buena idea conectarle otros componentes que trabajen con mayores voltajes.
Podemos usar el divisor de tensin cuando queramos leer con nuestro Arduino seales
que sean mayores que 5V. Si las conectramos directamente a nuestro Arduino quemara-
mos el chip.

SISTEMA DE ALUMBRADO AUTOMTICO

Vamos a construir un circuito que encienda un LED cuando la luz baje de un cierto nivel.
Con un circuito semejante se podra, por ejemplo, controlar la iluminacin de una calle, un
parque o un jardn por la noche.
El esquema electrnico y el montaje en la protoboard son bastante sencillitos:
A la hora de programar, primero fijaros en la tabla de resumen de valores para saber la
lectura que tenemos en A0, que depender de la luz de la habitacin en la que estemos.
En nuestro programa simplemente compararemos la medida actual con ese valor, y si es
mayor, o sea si desciende la intensidad de la luz que incide en la fotorresistencia, (por
ejemplo si tapamos el sensor con la mano) se active la salida digital 10 y se encienda el
LED.
Yo he puesto el lmite en 800 para encenderse. Pero podis elegir el que mejor se adapte al
nivel que queris para poder probarlo. Simplemente poned un lmite ms alto que lo que
mida normalmente el sensor y tapadlo con la mano para que se encienda el LED.
Podis descargar el programa completo aqu: Fotorresistencia.
Y como casi siempre, os recomiendo seguir jugando con este montaje y hacer, por ejemplo,
un programa que cuando pase algn objeto por delante, encienda el LED durante el tiempo
que decidis, como si fuese una luz automtica.

RESUMEN DE LA SESIN
En esta sesin hemos aprendido varias cosas importantes:
Conocemos la diferencia entre montaje en serie y paralelo.
Hemos montado un divisor de tensin.
Sabemos cmo utilizar una fotoresistencia para medir los cambios de luz.
Hemos construido un sistema de iluminacin automtico.
SENSOR DE AGUA
Medidor de nivel de agua

OBJETIVOS
.Presentar los sensores de agua.
o Aprender a conectarlos y programarlos.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


S4A cargado.
Un PC con el entorno S4A correctamente instalado
y configurado.

Algunos cables de protoboard macho hembra.

Un sensor de agua.

LOS SENSORES DE AGUA

En muchas ocasiones vamos a querer tener controlado el volumen de agua que tengamos
en alguna parte. Con este tipo de sensor podemos saber si est seco, salpicado, sumergido
en parte o sumergido del todo.
Pueden ser tiles en para detectar si se est condensando agua en algn sitio, para conocer
el nivel de agua en un depsito (aunque este modelo tiene muy poco recorrido) o para saber
si est lloviendo.
Estos sensores de agua son sencillsimos de conectar y de programar, y adems baratos.
Tienen tres pines de conexin, dos para 5V y GND, y otro que conectaremos a una entrada
analgica de nuestro Arduino.
MONTAJE Y PROGRAMACIN

El montaje es muy facilito, y el orden de los pines del sensor viene marcado en el mismo:

Ponedle unos cables ms bien largos si vais a sumergirlo e algn sitio, para tenerlo alejado
del Arduino.
Cuidado con no sumergir los pines de conexin ni los cables, o har un cortocircuito.
La programacin tambin es muy facilita, simplemente encenderemos el LED de la propia
placa Arduino si el nivel de agua supera un determinado nivel.

Si sumergs el sensor en un vaso de agua (con mucho cuidado), podris ver en la tabla
resumen de valores el valor del sensor, y como se enciende el LED cuando sobrepasa el
valor que le hemos indicado.
Siempre os recomendamos seguir probando cosillas, pero en este caso no me parece
sensato tener agua cerca de nuestro Arduino, ya que la electrnica y el agua no hacen
buenas migas. As que no os recomiendo experimentar cosas muy complicadas con este
sensor.

RESUMEN DE LA SESIN
En esta sesin hemos aprendido varias cosas importantes:
Hemos presentado los sensores de agua.
Sabemos conectarlos y programarlos.
Hemos hecho un pequeo experimento de medidor de nivel de agua.
LOS BUZZERS O
ZUMBADORES
Montando una alarma sonora

Home LOS BUZZERS O ZUMBADORES

OBJETIVOS

o Presentar los buzzers y aprender cmo funcionan.


o Crear una alarma sonora.
o Combinarlos con un sensor de temperatura.

MATERIAL REQUERIDO

Arduino Uno o compatible y con el firmware para S4


Un PC con el entorno S4A correctamente instalado y

Una Protoboard ms cables.

Un buzzer piezoelctrico.
Un Sensor de temperatura LM35DZ o similar.Comp
porque es fcil confundirlo con un transistor.

LOS BUZZERS

Los buzzers son unos componentes electrnicos compuestos por un cristal (como puede
ser el cuarzo) que vibra cuando reciben una seal elctrica.
Dependiendo del valor de esa seal vibrar con una determinada frecuencia, y si esa
frecuencia est dentro de las que podemos or, escucharemos como esa vibracin produce
un sonido.
Esta habilidad nos puede ser muy til en nuestros proyectos, por ejemplo para montar
una alarma de forma muy sencilla. As que vamos a ponernos a ello.

MONTANDO UNA ALARMA

El esquema electrnico y el montaje son muy sencillos. Slo tenemos que conectar una pata
a un pin de salida analgico y la otra a GND. Lo nico que tenemos que tener en cuenta es
que los buzzers tienen polaridad (como los diodos LED), y hay que asegurarse de
conectarlo correctamente.

Si conectamos las patas al revs simplemente no sonar. Con darle la vuelta ya est arre-
glado.
Las resistencias no tienen polaridad, por eso podemos conectarlas en los dos sentidos.
Lo primero vamos a probar que est bien conectado. Vamos a utilizar un programilla muy
simple para que suene de forma intermitente.

Y ahora podemos combinar un zumbador y cualquiera de los sensores que hemos utilizado
durante estas sesiones y programar una alarma que nos avise cuando el nivel de agua
supere un determinado nivel, cuando suba o baje demasiado la temperatura o cualquier
cosa que se os ocurra.
Yo voy a utilizar el sensor de temperatura, de forma que si la temperatura sobrepasa un
determinado lmite, el buzzer empiece a sonar de la forma que hemos dicho.
Si no recordis cmo se conecta o cmo funciona el sensor de temperatura podis ir a
la sesin 16 que est dedicada a este sensor.
Vamos a hacer que la alarma suene de forma intermitente, y ms rpido cada vez a medida
que se supere ms el lmite que hayamos puesto.
Es una buena costumbre crear variables y asignarles un valor en vez de meter directamente
a mano ese valor en el programa, sobre todo si lo vamos a usar varias veces. De esa forma
si queremos modificar ese valor en todo el programa solo tendremos que cambiar la
instruccin en la que asignemos el valor a la variable, en lugar de tener que cambiarlo cada
vez que se usa en el programa.
Por eso vamos a crear dos variables que se llamen lmite y diferencia.

La programacin para que suene el buzzer sera muy parecida a la que utilizamos en esa
sesin del sensor de temperatura.
Ahora solo nos falta modificarlo para que suene cada vez con intermitencias ms rpidas a
medida que la temperatura vaya subiendo por encima del lmite. Para ello lo que hacemos
es que los tiempos de espera sean inversamente proporcionales a la diferencia de la
temperatura y el lmite.

Inversamente proporcional significa que, a medida que crezca la variable que estamos mi-
diendo (diferencia de temperatura) el valor de la que queremos controlar (el tiempo) dismi-
nuya.

Podis descargar el programa completo aqu: temperatura y buzzer.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Qu es un buzzer y cmo funciona.


Cmo crear una alarma
Seguimos intentando coger buenas costumbres.
HABITACIN CON DOMTICA
Aplicando lo que hemos aprendido hasta ahora

Home HABITACIN CON DOMTICA

OBJETIVOS

o Poner en conjunto lo que hemos ido aprendiendo.


o Recordar lo que hemos aprendido en las sesiones anteriores.
o Complicar un poco los esquemas y montajes elctricos.

MATERIAL REQUERIDO

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Una Protoboard ms cables.

Tres diodo LED

Cuatro resistencia de 330 Ohmios.


Un transistor 2N2222. Comprobad que lleva rotulad
temperatura es similar.

Un ventilador de 5V o un motor de corriente continua

Un Sensor de temperatura LM35DZ o similar.Comp


porque es fcil confundirlo con un transistor.

Un potencimetro de 10K.

Un servo con sus horns, esas pequeas piezas de p

Una fotorresistencia o LDR

Un sensor de agua.
Un buzzer piezoelctrico.

Un Sensor de temperatura LM35DZ o similar.Comp


porque es fcil confundirlo con un transistor.

UN VISTAZO ATRS

En esta sesin no vamos a introducir ningn componente nuevo ni a explicar nada que no
sepamos ya. Lo que vamos a hacer es coger muchos de los componentes que hemos ido
usando en las sesiones anteriores e integrarlos en un nico montaje con el que vamos a
simular una habitacin con domotizada.
Seguro que sabis lo que es esto de la domtica, pero si alguno anda despistado, consiste
en integrar la tecnologa en la construccin de una vivienda, de modo que
se automatizan muchos de los sistemas (luces, calefaccin, aire acondicionado) Vamos,
que se trata de que estemos bien a gustito esforzndonos lo menos posible. As que
tendremos que tener cuidado de no acabar como los humanos de la pelcula Wall-e.

Vamos a controlar los siguientes aspectos en la habitacin:

La temperatura: utilizando un sensor, una calefaccin (que simularemos con un LED), y un


ventilador.
La luminosidad: utilizaremos una fotorresistencia y encenderemos o apagaremos un LED
en funcin de lo que mida.
Un bebedero: vamos a suponer que tenemos una mascota y utilizaremos un sensor de hu-
medad de forma que si se vaca el bebedero un zumbador nos avise de que tenemos que
rellenarlo.
Una persiana elctrica: que controlaremos con un potencimetro.
Adems lo representaremos todo en el escenario de S4A.
Lo ideal sera poder hacer esta prctica mirando lo mnimo posible las explicaciones, y estoy
seguro de que sois ms que capaces. Pero por si tenis alguna dudilla, vamos a explicarlo
pero muy por encima. Y si no, siempre podis echar un ojo a las sesiones anteriores en las
que hemos explicado estos componentes lo mejor que hemos sabido.

ESQUEMA ELECTRNICO

En este caso vamos a poner nicamente el esquema electrnico, porque el montaje es un


poco lioso. Lo que si os vamos a recomendar es que usis cables de colores para mantener
un cierto control y orden (como siempre), y que lo montis poco a poco y con cuidado. Y
tratad de tener un poquito separados y ordenados los diferentes componentes, de forma que
si al ejecutar los programas algo no funcione, podamos revisar las conexiones lo ms
fcilmente posible.
Dicho esto el esquema sera el siguiente:

Recordad que si tenis duda en alguna conexin podis ir a la sesin respectiva, que estar
explicado con mayor profundidad.
Al verlo as asusta un poco, pero si lo montis poquito a poco y sois un poco organizados,
confiamos en que no tendris mayores problemas.

PROGRAMACIN

Como hemos dicho que no vamos a entrar en profundidad, simplemente vamos a ir poniendo
cada objeto (todos ellos objetos Arduino) con sus disfraces y la programacin que lleva
asociada cada uno. Podramos utilizar un nico objeto Arduino, en el que programsemos
todo y crear los dems como objetos normales y utilizarlos slo para cambiar
los disfraces en el escenario. Pero creemos que es ms sencillo programar cada objeto
por separado, de forma que as lo haremos.
Como fondo para el escenario yo he elegido un dibujo de una habitacin de las que vienen
por defecto en S4A, donde tenis varias para elegir. Incluso podis usar una foto de la
vuestra.
Para la calefaccin usaremos un par de disfraces, encendida y apagada, y una
programacin muy sencilla en la que leeremos el valor del sensor de temperatura y
encenderemos un LED que simule la calefaccin si baja demasiado la temperatura.

El ventilador ser muy parecido, pero no necesitamos volver a leer la temperatura, siempre
que al crear la variable Temperatura lo hayamos hecho para todos los objetos. Vamos a
programarle tres modos de funcionamiento, apagado, a media potencia y a tope.

La lmpara la
encenderemos o apagaremos en funcin de la cantidad de luz que haya, as que tendremos
que montar un divisor de tensin con la fotorresistencia, y lo dems es coser y cantar.
La persiana la
haremos con un servo que manejaremos con un potencimetro, y le vamos a hacer cinco
disfraces para ver cmo va bajando y subiendo en el escenario.

Y con
el bebedero lo que haremos es utilizar un sensor de humedad para que nos avise un
zumbador si nuestra mascota se est quedando sin agua.

Y con esto ya tendramos


terminada nuestra habitacin, que tendr una pinta parecida a esta.
Podis
descargar el programa completo aqu: Domtica.
Y como siempre, esperamos que sigis practicando y mejorando nuestros ejemplos, as que
podis incluir algn componente de los que nos hemos dejado. Por ejemplo, podis poner
el sensor de sonido para encender las luces, poner pulsadores para poder desactivar cada
automatismo (o todos), unas luces de emergencia o incluso seguro que se os ocurre alguna
utilidad para el joystick.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Hemos comprobado si hemos asentado las sesiones anteriores.


Hemos combinado muchos sensores y actuadores.
Realizamos un montaje complejo.
DISPLAY DE 7 SEGMENTOS
Cuenta atrs para el lanzamiento de un cohete

Home Display De 7 Segmentos

OBJETIVOS

o Presentar los display 7 segmentos.


o Aprender a conectarlos y programarlos.
o Programar una cuenta atrs.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Una Protoboard.

Cables de protoboard

Una resistencia.
Un display 7 segmentos de 1 dgito.

LOS DISPLAYS 7 SEGMENTOS

Si es la primera vez que escuchamos este nombre puede que suene a algo muy complicado,
pero seguramente todos los das os crucis con muchos de ellos. Los podemos ver por
ejemplo, en los marcadores de los polideportivos, e los microondas o en los relojes digitales
que hay por las ciudades. Y es que un display de 7 segmentos no es ms que eso, 7 LED
en forma de barra que nos sirven para representar todos los nmeros de un dgito. Adems
suelen incluir tambin un punto, y a veces 2.

La conexin de este tipo de componente electrnico puede ser diferente segn quien lo haya
fabricado, as que nos centraremos en el que incluye el Kit de Inicio que podis conseguir
en esta pgina. A cada uno de los 7 segmentos se les adjudica una letra para poder
identificarlos, desde la A hasta la G, empezando por la barra de ms arriba y siguiendo
en el sentido de las agujas del reloj.

Si tenis otro modelo, el principio de funcionamiento ser el mismo , y slo tendris que
buscar informacin acerca de cmo se conecta en la pgina del fabricante.
Lo importante es que sepis qu pin del display corresponde a cada segmento, y cul se
conecta a GND.
CONEXIN Y PRUEBA DEL DISPLAY

El display que viene en el Kit de Inicio de Prometec tiene 10 pines, 5 en la parte superior y
5 en la inferior. Colocando el punto abajo a la derecha los pines se nombran empezando por
el de abajo a la izquierda y en direccin contraria a las agujas del reloj.
En esta figura podemos ver la distribucin de los pines y a qu segmento corresponde cada
uno, adems del punto y la conexin a GND (a travs de una resistencia para limitar la
intensidad, como hacemos siempre con los LED).

Es importante tener la distribucin en mente cuando vayamos a conectarlo y hacerlo de la


forma ms ordenada posible para que la programacin sea ms sencilla. Tenemos que
saber en todo momento que salida ilumina cada segmento, de manera que si, por ejemplo,
queremos mostrar un 1, pongamos HIGH los pines conectados a B y C, dejando los
dems a LOW.
Por esto, el esquema elctrico que mostraremos a continuacin no es obligatorio, pero s
es la forma que a nosotros nos ha parecido ms sencilla. Si decids conectarlos en otro
orden tendras que cambiar tambin la programacin. No vamos a poner el montaje en la
protoboard porque va a ser un lo ms que una ayuda, y adems no tenemos ninguna duda
de que a estas alturas tenis ms que dominados los esquemas elctricos.
Como en S4A slo podemos utilizar 4 salidas digitales, y necesitamos 7 para este display,
vamos a utilizar las salidas analgicas como si fueran digitales.
Simplemente utilizaremos el valor mximo 255 como HIGH y 0 como LOW.
Y ahora para probar si lo hemos conectado correctamente, vamos a hacer un programilla
muy sencillo que vaya enciendo uno por uno y por orden los LEDs del 7 segmentos, desde
la A hasta la G.
Si hemos conectado todo correctamente, se tendran que ir iluminando y apagando los LEDs
en orden. Si se enciende alguno que no esperabais, tendris que comprobar de nuevo las
conexiones. Podis descargar el programa aqu: Prueba 7 segmentos.

PROGRAMANDO UNA CUENTA ATRS PARA LANZAR UN


COHETE

Ahora que ya tenemos todo bien conectado, vamos a utilizar el display 7 segmentos para
simular una cuenta atrs para el lanzamiento de un cohete. Y lo primero que vamos a hacer
es dibujar un fondo en el escenario y crear un par de disfraces, uno para el cohete en reposo
y otro para cuando encienda los motores.

Os recomendamos poner el centro del disfraz en la parte de abajo del cohete, para que sea
ms sencillo posicionarlo despus cuando lo programemos.
Recordad que esto se hace desde el editor en el que dibujamos el disfraz.
A la hora de programar, lo primero que haremos ser posicionar el objeto y seleccionar el
disfraz correcto. Y una vez hecho eso comenzaremos la cuenta atrs utilizando el bloque de
control enviar a todos 9, que despus usaremos para que al recibirlo mostremos un 9 en
el display durante un segundo.

Y una vez hecho esto ya podemos empezar a programar la cuenta atrs. Ser tan sencillo
como al recibir el mensaje respectivo de cada nmero, encender las salidas que sean
necesarias para representar el nmero en el display. Es importante tener en mente la
distribucin de los segmentos y cmo los hemos conectado a nuestro Arduino, o de lo
contrario nos costar mucho representar los nmeros correctamente.
Una vez que tengamos claro qu salidas debemos encender y cules apagar haremos que
se muestre durante un segundo y enviaremos el mensaje para mostrar el siguiente nmero:
Ahora nos queda aadir el lanzamiento del cohete, que ser tan sencillo como aadir dos
instrucciones una vez que hayamos llegado a 0. Cambiaremos el disfraz a encendido y
haremos que el cohete se mueva en vertical hasta el final de la pantalla, utilizando la
instruccin deslizar en segs a x: y: .

Podis descargar el programa completo aqu: Cuenta atrs. Y como casi siempre, os
recomendamos seguir jugando con estos displays, por ejemplo, podras aadirle un
pulsador y crear un dado digital, de forma que cada vez que lo pulsis muestre un nmero
aleatorio del 1 al 6.

RESUMEN DE LA SESIN
En esta sesin hemos aprendido varias cosas importantes:

Hemos aprendido a utilizar los displays 7 segmentos.


Podemos mostrar informacin en el exterior sin utilizar el escenario.
Sabemos programar una cuenta atrs.
EL BLUETOOTH EN S4A
Como utilizar S4A sin cables

Home El Bluetooth En S4A

OBJETIVOS

o Ejecutar programas de S4A en nuestro Arduino sin necesidad de cables.


o Presentar y configurar el mdulo Bluetooth HC-06.
o Conseguir comunicar el entorno S4A en el PC y Arduino mediante Bluetooth.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Un mdulo BlueTooth HC-06

Algunos cables de protoboard, preferiblemente Dupo


Un porta pilas o una fuente de alimentacin para

INTRODUCCIN

Si recordis, en la introduccin a S4A que hicimos cuando comenzamos el curso, dijimos


que una de las limitaciones que tiene esta herramienta es que hay que tener siempre
conectado el Arduino al PC para que S4A pueda comunicarse con l y ejecutar el programa
que hayamos creado. Y desde entonces no hemos vuelto a hablar de ello, dando por hecho
que slo podamos resignarnos y tenerlo conectado continuamente con un cable.
Para los proyectos que hemos realizado hasta ahora, esto del cable tampoco era un
inconveniente muy grande, menos an en las sesiones en las que hemos utilizado el
escenario del S4A. Pero si se nos pasa por la cabeza la idea de hacer, por ejemplo, un robot
tipo Rover (como esos que mandamos a la Luna), tener un cable molestando por ah puede
ser un engorro.
Bueno, pues no mentamos cuando decamos que la placa necesita estar conectado al PC,
pero lo del cable tiene solucin: el Bluetooth. Como seguro que sabis, el Bluetooth es una
tecnologa que nos permite comunicar dispositivos a distancia sin necesidad de cables,
presente en los smartphones, tablets, en lo coches y en infinidad de dispositivos
electrnicos.

Y como no podra ser de otra manera, existen unos mdulos que se conectan a nuestro
Arduino y que nos servirn para otorgarle la capacidad de comunicarse va Bluetooth con
otros dispositivos que tambin soporten esta tecnologa.
As que para conseguir nuestro propsito necesitamoss un PC con Bluetooth y un mdulo
Bluetooth para nuestro Arduino.

ARDUINO Y LOS MDULOS BLUETOOTH


Sabemos que nuestros Arduinos tienen un conector serie que utilizamos para conectarlo
mediante un cable al USB de nuestro PC, y que esto nos permite tanto enviar como recibir
datos. Sin embargo esta no es la nica opcin.
Si nos fijamos en los pines 0 y 1 de Arduino veremos que al lado hay escrito Rx y Tx. Qu
significa esto? Pues que estos pines sirven tambin para realizar la comunicacin serie de
la misma forma que el cable que hemos utilizado hasta ahora. El pin 0 (Rx) se encarga de
recibir datos y el pin 1 (Tx) de transmitir datos.

As que si conectamos el mdulo Bluetooth a esos dos pines podr transmitir los datos que
lleguen desde otros dispositivos Bluetooth a nuestro Arduino, pudiendo prescindir de
cables. En nuestro caso buscamos recibir los datos que le lleguen desde un PC con
Bluetooth y que est ejecutando S4A.
Hay varios mdulos Bluetooth para Arduino, y los ms utilizados son el HC-05 y el HC-06.
Recomendamos utilizar el HC-06 porque es el ms sencillo de conectar y de usar, y ser el
que utilicemos nosotros para realizar esta sesin.
El HC-06 tiene 4 pines, dos para la alimentacin como ya es costumbre, y dos para
comunicarse con nuestro Arduino, rotulados como Rx y Tx. A la hora de conectarlo a
nuestro Arduino tenemos que conectar el Tx del mdulo al Rx del Arduino, y el Tx del mdulo
al Rx del Arduino, de forma que lo que enve el mdulo Bluetooth lo reciba el Arduino y
viceversa. Pero de momento no conectis nada, ya explicaremos por qu.
Pero antes de poder utilizarlo de esta forma con el S4A, vamos a tener que cambiar la
configuracin que tiene predeterminada en el HC-06.

CONFIGURANDO EL HC-06 PARA S4A

Para configurar el mdulo vamos a tener que volver a utilizar el IDE de Arduino, el entorno
de programacin que se utiliza normalmente para programar los Arduinos, y que utilizamos
en la primera sesin del curso de S4A para cargar el programa que nos permite usar S4A
con nuestros Arduino. Si por alguna razn no tenis descargado el IDE, aqu tenis el enlace
que explica cmo hacerlo.
Ahora tenis que descargar este archivo, que contiene el programa que configurar el
Bluetooth: configurar_hc-06_s4a. Lo que hace el programa es cambiar el nombre y la
contrasea del Bluetooth para que pongis la que vosotros queris, y configurar la velocidad
de comunicacin para que sea la misma que utiliza el S4A y puedan entenderse.
Descomprimir el archivo y ejecutad el programa. En el programa podis
cambiar PROMETEC y 5678 por el nombre y la contrasea que queris que tenga
vuestro dispositivo:
String nombre = "PROMETEC"; //Cambiar PROMETEC por el nombre deseado

String password ="5678"; //Cambiar 5678 por el la contrasea deseada

Una vez hecho esto tenemos que cargar el programa en Arduino. Para ello no tenis ms
que pulsar en el icono con forma de flecha, y esperar a que en la parte de abajo os aparezca
la palabra Subido.

Y una vez hecho esto tendris que desconectar el cable del ordenador y conectar el
mdulo Bluetooth HC-06 de la forma que hemos indicado anteriormente y que podis ver
en la siguiente imagen:
Y ahora s, ya podis volver a conectar el cable del ordenador. Cuando veis que se
enciende el LED del Arduino que est conectado al pin 13 significar que ya ha terminado
de configurarlo.
Una vez configurado habr que volver a desconectar el Bluetooth del Arduino y cargar
el Firmware de S4A en el Arduino para poder volver a trabajar con S4A. Si no os acordis
cmo se haca o no tenis el archivo con el Firmware guardado, echad un ojo a esta
sesin en la que explicamos cmo hacerlo.

Si os preguntis a que viene tanto conectar y desconectar la explicacin es que mientras


tengamos conectados los pines 0 y 1 del Arduino, la conexin serie mediante el cable no
funciona y no nos permite cargarle programas.
Por eso desconectamos el mdulo para cargar el programa, y una vez cargado podemos
conectar el mdulo Bluetooth y volver conectar el cable del ordenador para que se ejecute
el programa y configure el HC-06.
Y ya por fin podis quitar el cable del PC, volver a conectar el HC-06 y conectar el Arduino
a la fuente de alimentacin.

UTILIZANDO EL BLUETOOTH CON S4A

Para conectar el PC en el que ejecutamos S4A y el HC-06 accedemos a la configuracin


del Bluetooth de nuestro PC y ah debera aparecernos el mdulo con el nombre que le
hayamos puesto. Lo seleccionamos, escribimos la contrasea que hemos elegido y
esperamos a que se emparejen.
Entonces abrimos el entorno S4A y si todo ha ido bien, tras un momento de incertidumbre,
veremos cmo S4A detecta la placa. Y ya para terminar vamos a hacer un programilla para
hacer parpadear el LED de la propia placa Arduino conectado internamente al pin 13 para
asegurarnos de que todo est funcionando correctamente. Veris que S4A va un poquito
ms lento a la hora de seleccionar y colocar los bloques, pero nada importante.
Hasta ahora hemos utilizado la alimentacin que le da el propio cable que conectamos al
USB del ordenador y que sirve tambin para la comunicacin.
Pero como precisamente lo que queremos es no depender de ese cable necesitamos una
fuente de alimentacin externa.
Puede ser una fuente de alimentacin que se conecta a un enchufe de la casa (como si
fuese un cargador de mvil), una caja de alimentacin para pilas o una batera, y tiene que
tener toma para la alimentacin externa del Arduino.
Pues si veis que efectivamente el LED parpadea, enhorabuena, porque significa que todo
ha ido bien y que tenemos todo bien configurado. Podis volver a realizar cualquiera de las
sesiones que hemos visto hasta ahora y deberan funcionar todas correctamente. A partir
de ahora utilizaremos este mdulo para cosas mucho ms divertidas, empezando por
intentar hacer un coche que podamos manejar a distancia.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Podemos utilizar el S4A sin necesidad de cables, gracias al Bluetooth.


Conocemos un poco mejor cmo funciona nuestro Arduino.
Cmo conectar y configurar el mdulo HC-06 para que pueda comunicarse con S4A.
Hemos realizado un programa y comprobado que S4A lo est ejecutando sin cables de por
medio.
CONTROL DE UN BRAZO
ROBTICO DE DOS EJES CON
UN JOYSTICK EN S4A
Manejando dos servos con un joystick

Home Control De Un Brazo Robtico De Dos Ejes Con Un Joystick En S4A

OBJETIVOS

o Utilizar un josytick para controlar dos servos.


o Aprender a controlar el brazo robtico de dos ejes.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firmware para


Un PC con el entorno S4A correctamente instalado y

Una Protoboard y algunos cables.

Un Joystick.
Un soporte servo pan & tilt.

Dos servos con sus horns, esas pequeas piezas d

INTRODUCCIN Y MONTAJE

S segus este curso con regularidad, esta sesin no va a tener mucho misterios para
vosotros, porque no vamos a explicar nada que no sepamos. Y si no lo habis hecho (o las
tenis un poco olvidadas) os recomendamos que echis un ojo a estas sesiones, en las que
hablbamos de los joysticks, los servos y, por supuesto, de cmo montar el soporte
del brazo robtico de dos ejes:

Joystick.
Servos.
Montaje estructura brazo robtico.
Si ya habis montado la estructura sabris que para poder mover el brazo robtico vamos a
utilizar dos servos. Uno se encargar del movimiento en el eje X (horizontal) y el otro en
el eje Y (vertical). Y para controlar ese movimiento utilizaremos un joytick, que nos viene al
pelo, porque precisamente nos permite controlar dos ejes.
El esquema de conexin sera el siguiente:
PROGRAMA DE CONTROL

El programa para controlarlo es muy sencillito. Simplemente crearemos dos variables en las
que guardaremos la posicin del servo, angulo X y angulo Y, que inicialmente
posicionaremos en 90, la posicin media de los servos.

Y para moverlos sumaremos o restaremos un nmero de grados a la posicin del servo


cuando el joystick se encuentre desplazado de la posicin central en alguno de los ejes,
teniendo en cuenta si es el eje X o el Y (no quiero ser pesado, pero si necesitis ms
explicaciones recordad que podis echar un ojo a las sesiones que hemos comentado
antes).
Para cambiar la velocidad de movimiento de los servos slo tendramos que cambiar la
cantidad que sumamos y restamos a los ngulos. Aqu tenis el programa completo: brazo-
robot-s4a.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

Hemos aprendido a conectar y utilizar dos servos a la vez.


Sabemos utilizar un joystick para controlar la posicin de dos servos.
Hemos utilizado lo aprendido para construir y controlar un brazo robtico de dos ejes.
S4A Y EL CONTROLADOR DE
MOTORES L298N
Controlar la velocidad y la direccin de dos motores de CC

Home S4A Y EL CONTROLADOR DE MOTORES L298N

OBJETIVOS

o Trabajar con motores de mayor potencia.


o Presentar el mdulo controlador de motores L298N.
o Explicar cmo se conecta y se utiliza.
o Usarlo para controlar dos motores de corriente continua.

MATERIAL REQUERIDO.

Arduino Uno o compatible y con el firm


Un PC con el entorno S4A correctamente

Un mdulo controlador de motores L298N


Un par de ruedas y motores CC.

Algunos cables de Protoboard macho-ma

INTRODUCCIN

Ya hemos visto en sesiones anteriores cmo podemos manejar motores de corriente


continua (CC) en S4A, utilizando directamente los pines de salida analgica de Arduino.
Pero nuestro honorable Arduino est limitado por la intensidad que puede proporcionar al
motor, y en seguida va a ser insuficiente cuando queramos usarlo para controlar motores de
mayor potencia.

Podramos decir que la potencia es la velocidad con la que se consume energa.


La potencia elctrica, si hablamos de corriente continua, es el producto de la tensin por la
intensidad, es decir P=VxI, y se mide en Vatios.
Por lo tanto, cuando queramos trabajar con motores un poquito potentes vamos a tener que
utilizar unos componentes a los que llamamos controladores de motores o drivers. Estos
controladores nos permitirn suministrar la potencia necesaria a los motores y os
controlaremos utilizando nuestros Arduinos.
Hay muchsimos controladores diferentes, pero nosotros nos hemos decidido por
el L298N por su facilidad de uso y su reducido precio, y porque nos permite elegir los pines
del Arduino que queremos usar para controlar los motores. El L298N puede trabajar con
tensiones hasta 35V y una intensidad de hasta 2A, muy superiores a las de la placa Arduino.

Algunos controladores de motores (y muchos otros componentes) se montan directamente


encima del Arduino, y los denominamos shields.
Estos shields se reservan directamente ciertos pines para su uso y disfrute, as que no sue-
len ser recomendables para usar con S4A, ya que raramente nos coinciden correctamente
la funcin de los pines en S4A y en el controlador.
Este mdulo tiene adems otra caracterstica muy importante, y es que nos permite controlar
la direccin de giro de los motores, es decir podremos hacer que giren en ambos
sentidos (esto suena fenomenal para hacer un coche).
Adems nos permite obtener del mdulo una tensin de 5V, perfecta para alimentar nuestro
Arduino. Eso s, este regulador slo funciona si alimentamos el mdulo con una tensin
mxima de 12V.
Esto, unido a que ya hemos aprendido a utilizar el Bluetooth, nos ser muy til cuando
construyamos ese coche que se nos est empezando a pasar por la cabeza o algn robot,
para utilizar una nica fuente de alimentacin para todo.

Un jumper es un componente que nos sirve para conectar dos pines.

CONEXIN Y FUNCIONAMIENTO

La entrada de tensin Vin admite tensiones entre 3V y 35V, y justo a su derecha en la


imagen tenemos el pin que debemos conectar a GND.
La tercera conexin de ese grupo V lgico puede funcionar de dos maneras:

Si el jumper del regulador est cerrado activaremos el regulador de tensin del L298N, y
en V lgico tendremos una salida de 5V, que podremos usar para lo que queramos, por
ejemplo para alimentar una placa Arduino.
Si el quitamos el jumper desactivaremos el regulador, necesitaremos alimentar la parte l-
gica del mdulo, as que tendremos que meter una tensin de 5V por la conexin V l-
gico para que el mdulo funcione.
Cuidado! Si introducimos corriente por V lgico con el jumper de regulacin puesto podra-
mos daar el mdulo.
Adems el regulador slo funciona con tensiones hasta 12V en Vin, por encima de este
valor tendremos que quitar el jumper y alimentar la parte lgica del mdulo desde otra
fuente.
Las salidas para los motores A y B nos darn la energa para mover los motores. Tened en
cuenta la polaridad al conectarlos (el orden en el que conectamos los cables), para que
cuando ms tarde hagamos que se muevan adelante, funcionen como deberan. Si no fuera
as, no tendramos ms que invertir las conexiones.
Los pines IN1 e IN2 nos sirven para controlar el sentido de giro del motor A, y los
pines IN3 e IN4 el del motor B. Funcionan de forma que si IN1 est a HIGH e IN2 a LOW,
el motor A gira en un sentido, y si est IN1 a LOW e IN2 a HIGH lo hace en el otro. Y lo
mismo con los pines IN3 e IN4 y el motor B.
Para controlar la velocidad de giro de los motores tenemos que quitar los jumpers y usar los
pines ENA y ENB. Los conectaremos a dos salidasanalgicas de forma que le enviemos
un valor entre 0 y 255 que controle la velocidad de giro. Si tenemos los jumpers colocados,
los motores girarn a mxima velocidad.
El esquema de montaje que vamos a utilizar va a ser el siguiente:

PROGRAMACIN

Sabiendo todo esto, ya estamos en posicin de empezar a programar. As que


abrimos S4A y al lo. Primero vamos a hacer las funciones que movern los motores en los
diferentes sentidos y velocidades; empezando por mover los dos motores hacia delante y a
mxima velocidad.
Vamos a hacerlas de tal manera que al recibir un mensaje desde el programa principal,
cambie los valores de las salidas para mover los motores como queramos. Es importante
ser ordenado y colocar los bloques con cuidado para asegurarnos que controlamos bien las
entradas IN1 a IN4 del mdulo controlador.
Y para las dems direcciones de giro haramos lo mismo, variando adems el valor que
mandamos a ENA y ENB para cambiar la velocidad. Adems haremos una funcin que pare
los dos motores, poniendo todo a LOW.

Y e la parte principal del programa iremos llamando a cada funcin, haciendo que cada una
dure lo que queramos usando bloques esperar:
Podis descargar el programa completo aqu: l298n. Si al ejecutarlo resulta que los motores
se mueven en direcciones que no son las esperadas, podis intercambiar las conexiones
del motor en los bornes del L298N.

RESUMEN DE LA SESIN

En esta sesin hemos aprendido varias cosas importantes:

o Hemos presentado el mdulo L298N que nos permite controlar motores de una cierta po-
tencia de una manera muy sencilla.
o Sabemos cmo conectarlo a nuestro Arduino y programarlo usando S4A.
o Hemos creado un programa para mover los motores en ambas direcciones y a diferen-
tes velocidades.

También podría gustarte