Está en la página 1de 20

SACRATCH PARA ARDUINO

MANUAL S4A
PARA PROGRAMAR TU ARDUINO SIN SABER ARDUINO

Ana Nez Prez


Manual bsico de S4A ( Scratch para Arduino)

INDICE:

1. PRIMERAS NOCIONES 3
2. EMPEZAMOS A TRABAJAR 5
3. NUESTRA PRIMERA PRCTICA: LED INTERMITENTE 7
4. PRACTICA 2: LED (SALIDA) INTERMITENTE 8
CON CONTROL DE FRECUENCIA MEDIANTE
UN POTENCIOMTRO (ENTRADA ANALGICA)
5. PRACTICA 3: GOBIERNO DEL ENCENDIDO DE UN LED 9
(SALIDA) MEDIANTE UN PULSADOR
(ENTRADA DIGITAL)
6. PRCICA 4: SEMFORO 10
7. PRCTICA 5: GIRAR UN SERVO
CON UN POTENCIOMETRO
8. PRCTICA 6 SEGUIDOR DE LUZ 13
9. PRCTICA 13 MINISKYBOT 15
SEGUIDOR DE LINEAS - ROBOT ESCOBA
10. BIBLIOGRAFIA 20

Ana Nez Prez 2


Manual bsico de S4A ( Scratch para Arduino)

1. PRIMERAS NOCIONES

S4A

Scratch for Arduino (S4A) es una versin modificada de Scratch,


preparada para interactuar con placas Arduino permitiendo al usuario
programar de forma sencilla e intuitiva. S4A Incluye nuevos bloques
para controlar sensores y actuadores conectados a sistema Arduino.
Fue desarrollado por el equipo de Smalltalkdel Citilab en el ao 2010, y desde
entonces se ha usado en todo el mundo para una gran variedad de proyectos.

Pero, qu es Scratch? : Scratch es un entorno de programacin gratuita,


desarrollado por el MIT (Massachussets Institute of Tecnology) que permite
programar mediante el uso de una sencilla y interfaz grfica utilizando un
sistema de bloques, que simbolizan diferentes elementos de programacin , por
ejemplo: instrucciones, condiciones, variables, bucles, entre otros. Estos
bloques de programacin se van ensamblando, como las piezas de un puzzle hasta formar
programas.

ARDUINO
Y Arduino?: Arduino es tarjeta electrnica sencilla y de bajo precio diseada para el
aprendizaje de electrnica y la creacin de prototipos.
La integracin de estos dos entornos permiti el desarrollo de S4A, cuya plataforma nos
permite entrar al mundo de la electrnica, la robtica y programacin y desarrollar
diferentes prototipos, sin necesidad de tener conocimientos avanzados en estas reas .

LA PLACA ARDUINO UNO


Esta es la placa con la que trabajaremos y como
puede verse en a la parte superior derecha estn
las entradas/salidas digitales, y en la inferior,
las analgicas, numeradas como A0, A1, as como a
su la entrada de Reset. En la parte derecha
podemos ver el puerto USB a la izquierda la
entrada de corriente. Seis de las entradas
digitales se pueden emplear como entradas PWM.
Esto quiere decir que permiten simular un
comportamiento analgico enviando seales de valor variable, de cara a modificar la
intensidad de iluminacin de un LED o la velocidad de giro de un motor. Corresponden a
los pines 3, 5, 6, 9, 10 y 11, y permiten enviar seales de 256 valores distintos entre 0 y
5 voltios.

Ana Nez Prez 3


Manual bsico de S4A ( Scratch para Arduino)

La alimentacin de Arduino UNO se realiza a travs de la entrada USB, o bien a travs


de la entrada de corriente. Por ltimo, Arduino UNO tiene una entrada de RESET que
permite reiniciar el bootloader y cargar un nuevo programa, tambin se puede hacer
desde el IDE de Arduino.

SHIELDS DE ARDUINO

Los shields son placas que se empotran encima de una placa Arduino y que ofrecen
funcionalidades complementarias a las de esta.

ARDUINO BASIC I/O

Para poder realizar montajes de electrnica de control con Arduino deberamos trabajar
con nuestros propios circuitos elctricos y electrnicos empleando placas Proto Board,
pero para simplificarnos algunas prcticas tambin podemos usar una placa hecha ex
profeso para entornos docentes por la empresa
vasca MSE Bilbao, la placa BASIC I/O, que
podemos ver en la imagen.

Las entradas digitales se identifican con una D y un


nmero, y ya van asociadas a LEDs pines 11, 10, 9 y
6-, 4 pulsadores pines 12, 8, 7 y 4-, altavoz pin
2- y motor pines M+ y M-, que corresponden a dos
tornillos de la parte superior derecha.

Las entradas analgicas se identifican con una A y


van asociadas a dos potencimetros pines 0 y 1-
(situados en la esquina inferior izquierda de la imagen), a su derecha, de color blanco, un
fotodiodo pin 2-, siguiendo hacia la derecha de la imagen, un sensor IR pin 3-, a su
dereha, un sensor de temperatura pin 4 y en la esquina inferior derecha de la imagen
tenemos un transistor. Por ltimo arriba a la izquierda se encuentra el botn de RESET.

Con esta placa ya tenemos creados los circuitos elctricos y electrnicos necesarios para
poder empezar a programar en Arduino.

Ana Nez Prez 4


Manual bsico de S4A ( Scratch para Arduino)

2. EMPEZAMOS A TRABAJAR

Para empezar a trabajar lo primero que tenemos que hacer es instalar el software
necesario y para ello debers seguir los pasos siguientes:

1 paso: Descarga e instala S4A

S4A funciona sobre los tres sistemas operativos de escritorio ms populares. Descargad
e instalad el que os convenga.
Windows (http://s4a.cat/downloads/S4A15.exe)
Mac (http://s4a.cat/downloads/S4A15.dmg)
Linux (Debian) (http://s4a.cat/downloads/S4A15.deb)
Raspbian (Debian para RaspberryPi) (http://s4a.cat/downloads/S4A15_RP.deb)

2 paso: Descargad e instalad el entorno Arduino siguiendo las instrucciones de


http://arduino.cc/en/Main/Software.

3 paso: Instalar el firmware en el Arduino


Este firmware es un programa que debe instalarse en vuestra placa Arduino para
poderos comunicar con ella desde S4A.
Descargad nuestro firmware aqu http://s4a.cat/downloads/S4AFirmware15.ino

4 paso: Conectad la placa Arduino a un puerto USB de vuestro ordenador se


instalar el nuevo hardware y fgaros en que puerto est conectada. Siempre
podris comprobarlo en el administrador de dispositivos-puertos COM y LPT
En mi caso la placa Arduino se ha instalado en el puerto COM 28
5 paso: Abrid el archivo de firmware que os
acabis de descargar (S4AFirmware15.ino) y a
continuacin:

Ana Nez Prez 5


Manual bsico de S4A ( Scratch para Arduino)

o En el men
Herramientas - Tarjeta,
seleccionad la versin de la
placa (en mi caso veris que
se trata de la placa Arduino
Uno)
o En el men
Herramientas Puerto
Serial, seleccionad el puerto
serie en qu est conectada
la placa.

o Y a continuacin cargad el firmware a la placa mediante la opcin de men cargar.

o Al terminar os aparecer en la parte inferior el mensaje carga terminada

Nota: Esto solo lo tienes que hacer la primera


vez, para que quede instalado en tu palca.

Ahora ya puedes comenzar a programar tu Arduino con S4A.


Ejecuta el S4A que instalaste en el paso 1 y observaras que al abrirse lo primero que
hace es buscar la placa que ya
hemos conectado y en unos
pocos segundos la pantalla que
te encontraras ser esta:

Ana Nez Prez 6


Manual bsico de S4A ( Scratch para Arduino)

Observareis que en la parte superior izquierda aparecen


los distintos tipos de bloques o funciones, identificados
con un color diferente segn las libreras (movimiento,
apariencia, sonido, lpiz, control, sensores, operadores y
variables. Os recomiendo pinchis sobre ellas e investigar
las funciones que en ellas encontramos.

3. NUESTRA PRIMERA PRCTICA: LED INTERMITENTE

Nuestro primer ejercicio ser el apagado y encendido de un led conectado a la salida Pin
10 de la tarjeta Arduino.

Vamos a utilizar de la librera de control dos funciones:


La primera ejecuta el programa que tiene debajo al presionar
la bandera verde, y la segunda ejecuta continuamente los
bloques en su interior, lo que har que el programa sea cclico.
Y la segunda sirve para encerrar en un ciclo un conjunto de
instrucciones para que estos se repitan por siempre

De la librera movimiento y de la librera


apariencia, que son las instrucciones para apagar y encender una salida digital:

a los que quitaremos el texto que


muestra por defecto, lo que hace esta instruccin es detener el
avance del programa durante el tiempo
determinado desplegara una nube de
pensamiento si no la hubisemos quitado.

Con lo que nuestro primer programa quedar


como indica la figura.

Para el montaje puedes utilizar la palca


Arduinio Basic I/O colocada encima de la placa Arduino UNO y en
la observaras que el led amarillo se corresponde con la salida PIN
10.
O bien realizar el montaje sencillo que se muestra en la figura.
Presiona la banderita verde y el led parpadear con una
frecuencia de 2 s, para detener el programa pulsa el crculo rojo.

Ana Nez Prez 7


Manual bsico de S4A ( Scratch para Arduino)

Si quisisemos que en la pantalla del


escenario aparezca una imagen de un led
que simula su encendido y apagado
crearamos con la herramienta disfraces
del entorno dos imgenes, una que
llamados led_off y otra led_on que
muestren su estado. Para ello lo que
podis hacer es importarlas, o tambin
podis importar la imagen de un led, y despus copiarla y
editarla cambindola el color para que simule el encendido.
Y en el programa lo nico que tenemos que hacer es modificar el
anterior aadiendo de la librera apariencia, los bloques de
funcin y

4. PRACTICA 2: LED (SALIDA) INTERMITENTE CON CONTROL DE FRECUENCIA


MEDIANTE UN POTENCIOMTRO (ENTRADA ANALGICA)

En esta prctica vamos a ver como asociar a una variable al valor de una entrada
analgica - Analog0- con el fin de poder variar el retardo en el encendido y apagado de
una salida digital (led amarillo) PIN 10.
Comenzamos definiendo la variable frecuencia.
En la librera de variables, clicamos en nueva variable y creamos una con el
nombre frecuencia, aparecern distintos bloques de funcin asociados a dicha
variable.
Tomaremos la funcin fiajar frecuencia a..y la
asociaremos de la biblioteca movimiento la
funcin valor del sensor Analog0 que ser el valor
ledo del potencimetro que se encuentra en el
canal A0.
El tiempo de encendido lo fijamos a 0.1 segundos y
en actuamos sobre el tiempo de apagado. El tiempo
de apagado los configuramos con la funcin
esperar a. segundos de la librera
control y colocando en el operador la
frecuencia/2000 (la frecuencia
variar entre 0 y 0,512s)
El programa quedar asi.
Podemos observar como al modificar el valor del
potencimetro vara el tiempo de apagado del
led.

Ana Nez Prez 8


Manual bsico de S4A ( Scratch para Arduino)

Si queremos simular el funcionamiento usaremos a la opcin de mostrar en la


pantalla escenario la imagen de
un diodo led encendido y apagado con los disfraces led_off y
led_on, mediante la funcin cambiar el disfraz a led_on y
cambiar el disfraz a led_off
en el programa.

Y as es como quedara el esquema de conexiones de los componentes si no usis la placa


BASIC I/O.

5. PRACTICA 3: GOBIERNO DEL ENCENDIDO DE UN LED (SALIDA) MEDIANTE


UN PULSADOR (ENTRADA DIGITAL)

Queremos gobernar el encendido de nuestro Led amarillo, PIN 10, (o entrada digital D10
de la placa BASIC I/O), mediante el accionamiento de un pulsador, entrada digital D4
de la placa BASIC I/O, o PIN 2.
La lgica del programa es sencilla: si el sensor digital 2 (pulsador D4) est presionado,
es decir, es igual a verdadero (true), la salida digital 10 (led amarillo) estar encendido;
si no, salida digital 10 (led amarillo) apagado.
Por lo que utilizaremos el bloque de sensor presionado con el operador .

Ana Nez Prez 9


Manual bsico de S4A ( Scratch para Arduino)

Y por lo tanto el programa y el circuito de conexin quedarn como puedes ver en las
imgenes.

Recuerda que la resistencia hay que


colocarla entre el pulsador y tierra
as evita que +5V se conecte con
GND al cerrar el pulsador.

6. PRCICA 4: SEMFORO
Con lo aprendido hasta ahora la siguiente prctica nos resultar
muy sencilla, pues trata de programar un semforo.
Utilizaremos las siguientes salidas:
- Pin 12: Led verde. - Pin 11: Led rojo. - Pin 10: Led
mbar.
As que siguiendo la misma lgica que aplicamos en la prctica 3
el programa nos quedar como reobserva en la imagen.

Ana Nez Prez 10


Manual bsico de S4A ( Scratch para Arduino)

Y ste el esquema de conexin:

El servo es un dispositivo con tres entradas, dos son de alimentacin (5v y 0v) y la otra
es la que recibe la seal que le indica el ngulo que debe girar, esta seal est formada
por un pulso que el circuito incluido en el servo interpreta para girar el motor y dejarlo
fijo en el ngulo indicado.

7. PRCTICA 5: GIRAR UN SERVO CON UN POTENCIOMETRO, S4A Y ARDUINO

En este ejercicio vamos a utilizar la seal variable que produce un potenciometro para
girar un servo un ngulo determinado como se puede ver en este vdeo.
Para hacer el montaje necesitaremos:

Ana Nez Prez 11


Manual bsico de S4A ( Scratch para Arduino)

S4A dispone de dos salidas para servos, son la 4 y la 7, y dispone de una instruccin para
girar un ngulo determinado el servo. Este servo que usamos puede colocarse en
cualquier ngulo entre 0 y 180 grados.
Conectaremos las patillas externas del potenciometro, como en el ejemplo anterior, a 5v
y 0v, y la patilla central a la entrada analgica Analog6.

El conector rojo del servo los conectaremos a 5v, el marrn a 0v y el naranja, que es el
de seal, lo conectaremos a la salida 7.

El valor recogido del potenciometro vara entre 0 y 1023, esta cantidad hay que
transformarla en ngulo (entre 0 y 180) as que los ms fcil ser multiplicar el valor del
potenciometro por 0.18 obtener la parte entera y usar ese valor como ngulo para el
servo.

Y el programa quedar:

Ana Nez Prez 12


Manual bsico de S4A ( Scratch para Arduino)

8. PRCTICA 6 SEGUIDOR DE LUZ CON S4A Y PLACA ARDUINO

Con este ejemplo queremos mover un servo motor para que oriente una pequea placa
(donde est el circuito) hacia la luz recibida desde una linterna. Para esto utilizaremos
dos resistencias variables con la luz (LDR) en
las que la resistencia vara en funcin de la
luz recibida.
En el dibujo del circuito vemos que se
generan dos divisores de tensin con la
resistencia de 270 ohmios y la resistencia
LDR variable en funcin de la luz recibida.
Segn sea esta resistencia, en los puntos
analgico1 y analgico2 habr una tensin
diferente entre 0V y 5V (si la luz recibida es
diferente), que se convertir en un valor
entre 0 y 1023 que la placa Arduino enviar al ordenador.

En el programa leeremos los valores de la tensin en los puntos analgico1" y "analgico2"


con la instruccin:

Comparando los valores de las dos entradas sabremos cual recibe ms luz y por lo tanto
hacia donde deberemos mover el servo.

Ana Nez Prez 13


Manual bsico de S4A ( Scratch para Arduino)

Inicialmente el servo se colocar a 90 grados (la variable posicin = 90 que corresponde


con la posicin intermedia del servo), a cada ciclo del bucle y en funcin de los valores
ledos en las entradas aadir o restar una cantidad (2 o 6) a la variable posicin y
despus mover el servo a la nueva pocin.

En funcin de las LDR utilizadas y la luz suministrada (junto con la luz ambiente) es
posible que haya que modificar los valores de las condiciones (en el ejemplo las
diferencia consideradas son 50 y 100) para ajustar el movimiento del servo.
Con estos elementos, un led blanco y un motor para mover dos ruedas podemos fabricar
un pequeo robot siguelnemeas. Este tipo de robot sigue un camino formado por trazo
de una lnea negra sobre un fondo blanco. La separacin de las LDR sera ms o menos d
ella anchura de la lnea y entre ellas estara el led blanco, si las LDR estn sobre el fondo
blanco respondern con el mismo valor y el robot seguir una trayectoria recta, si una de
las LDR se coloca sobre el lnea negra existir una diferencia en las resistencias que el
programa podr utiliza par amover el servo y girar el robot hacia posicin correcta.

Ana Nez Prez 14


Manual bsico de S4A ( Scratch para Arduino)

9. PRCTICA 7 :MINISKYBOT SEGUIDOR DE LINEAS - ROBOT ESCOBA

Para finalizar vamos a montar un robot MinSKyBot siguiendo las intrusiones de


Borjaper en su tutorial:

http://www.arduteka.com/2013/04/robot-miniskybot-2-como-siguelineas-y-detector-
de-obstaculos/

Aunque aqu os lo dejo resumido.

Arduino, Impresion 3D, IR, MiniskyBot, Robot, Robtica, sensor ultranosidos, TUTORIAL by
Borja

Ana Nez Prez 15


Manual bsico de S4A ( Scratch para Arduino)

El MiniSkybot es un robot educacional libre e imprimible. Toda la informacin est


disponible para que cualquiera lo pueda estudiar, copiar, modificar y fabricar. Adems,
ha sido diseado exclusivamente usando software libre: Sistema operativo
Linux, OpenScad, Frecad y Kicad. Esto garantiza que se puedan realizar diseos
derivados sin tener que pagar ningn tipo de licencia o realizar copias ilegales de
software privativo.
Al ser un robot libre e imprimible, cualquier persona lo puede descargar e imprimir!!
El printbot Miniskybot 2 es la segunda generacin de la familia de robots imprimibles
Miniskybot.
Aqu tenis un fabuloso video orquestado por el gran ObiJuan, en el que podis ver en
accin a diversos PrintrBot o robots imprimibles.

Para saber la posicin en la que est, se utiliza un potencimetro que gira


simultneamente con el servo y que indica el ngulo en el que se encuentra. Con la
modificacin quitamos el potencimetro y lo sustituimos por dos resistencias iguales con
lo que la informacin que le llega al servo es que se encuentra siempre en la posicin de
90, si le indicamos al servo que se coloque en una posicin mayor de 90, por ejemplo
180, girar de forma continua en un direccin, si le indicamos al servo que se coloque en
una posicin inferior, por ejemplo 0, girar de forma continua en el otro sentido. Si le
indicamos 90 el servo se parar.
Como las resistencias no son perfectas y tienen cierta diferencia respecto al valor
nominal (aunque pongamos resistencias con 1% de tolerancia) se genera un cierto error
respecto a la posicin central. As que 90 puede que no pare el motor y tendremos que
buscar un ngulo cercano a 90 para que el motor quede parado. Necesitaremos
identificar este dato para cada uno de los dos servos.

Ahora que ya tenemos un robot imprimible miniskybot 2 que funciona, lo podemos


modificar para que se pueda programar desde S4A (Scratch 4 Arduino)!
Necesitaremos hacer varias modificaciones:
En primer lugar vamos a sustituir el cable USB que conecta la placa Arduno con el
ordenador por una conexin inalmbrica usando dos mdulos RF Xbee: uno en el
robot y otro conectado a una salida USB del ordenador.
En segundo lugar tendremos que caracterizar los rels (direccin de giro y punto
de parada) con las instrucciones S4A.
Tambin tendremos que modificar el firmware que cargaremos en la placa Arduino
para gestionar el medidor de distancia (el sensor de ultrasonidos).

Todo ello lo tenis perfectamente desarrollado por borja en la pgina:

http://www.arduteka.com/2013/05/robot-imprimible-miniskybot2-programado-con-s4a/

Ana Nez Prez 16


Manual bsico de S4A ( Scratch para Arduino)

Diseo y construccin de un siguelineas sensor (IR) y de un robot escoba


sensor ultrasonidos.

Tambin es necesario caracterizar estos sensores para encontrar un umbral entre


blanco y negro que podamos usar en el sketch. En las pruebas que he realizado al poner el
sensor sobre fondo negro da un valor de 600 y al ponerlo sobre fondo blanco da 30, as
que he escogido como umbral 200 o 300 para que cuando la seal sea menor de este
umbral entienda que el sensor est sobre fondo blanco y corrija la trayectoria.
Tambin incluiremos una tira de 4 pines hembra para alojar el sensor de ultrasonidos.
Finalmente se han soldado los seis hilos del trozo cable paralelo para conectar los
sensores y la alimentacin (5v, GND, Trig, Echo, IR izquiedo, IR derecho) con la placa
Arduino.
Finalmente se han soldado los seis hilos del trozo cable paralelo para conectar los
sensores y la alimentacin (5v, GND, Trig, Echo, IR izquiedo, IR derecho) con la placa
Arduino.

Conexin con la placa Arduino.


Usaremos el trozo de cable paralelo para conectar los sensores con la placa Arduino. El
cable va soldado a otra placa en la que tambin hemos soldado 9 pines macho en un
extremo que encajarn con las entradas analgicas, ms Vin y GND y un pin que queda
entre los dos bloques de pines (en total 9 pines). En el otro extremo de la placa hemos
soldado 8 pines macho que encajarn con las entradas digitales (de 0 a 7) de la placa
Arduino. De esta forma para conectar y desconectar la placa Arduino del robot slo hay
que sacar la placa que tiene los pines soldados.

En esta placa tambin colocamos dos tiras de tres pines machos (en la paste superior)
donde conectaremos los cables de los servos. Por ltimo para conectar las lneas de
control de los servos usaremos dos cables que se conectarn directamente a los pines 8
y 12 de la placa Arduino.

Ana Nez Prez 17


Manual bsico de S4A ( Scratch para Arduino)

Como vemos en la imagen hemos aadido un interruptor en el cable de alimentacin que


va desde las pilas a la placa para poder parar el robot.

La lgica es muy simple:

Si los sensores ven negro (estn sobre la lnea) los dos motores giran hacia delante.
Si un de ellos ve blanco parar el motor del otro lado con lo que el robot girar
hacia la lnea negra.
Si los dos sensores ven blanco el robot se para.

Un ejemplo de funcionamiento es el de un del robot escoba con el que el robot


buscar objetos que estn a menos de 40 cm y cuando los encuentre los empujar hasta
sacarlos de un espacio limitado por una lnea negra. Aqu tenis una posible solucin.

Ana Nez Prez 18


Manual bsico de S4A ( Scratch para Arduino)

Recordad para ms detalles entrar en http://www.arduteka.com/2013/05/robot-

imprimibleminiskybot2-programado-con-s4a/, que es la entrada de borja en

arduteka.com, de la que yo os he sacado esta prctica

Ana Nez Prez 19


Manual bsico de S4A ( Scratch para Arduino)

Documentacin bibliografa - webgrafa:


Arduino la tecnologa al alcance de todos de Mikel Etxebarria Isuskiza
http://s4a.cat/index_es.html
http://www.konstrubotika.com/s4a-scratch-para-arduino/
Software & Barra Libre (http://softwareybarralibre.org/?q=content/e-3-girar-
un-servo-con-un-potenciometro-s4a-y-arduino)
http://www.arduteka.com

Borja (2013), Robot imprimible miniskybot2 programado con S4A


Recuperado 11 de febrero de 2014 desde:
http://www.arduteka.com/2013/05/robot-imprimible-miniskybot2-programado-
con-s4a/

S4A (Scracth) + Arduino de Jos Manuel Ruiz Gutierrez Gutirrez (Diciembre de


2011 Versin de Documento: V1.0 Jos Manuel Ruiz Gutirrez. Blog de referencia:
http://josemanuelruizgutierrez.blogspot.com/

Ana Nez Prez 20

También podría gustarte