S4A (Scratch) Arduino

2y ago
271 Views
72 Downloads
1.60 MB
48 Pages
Last View : 17d ago
Last Download : 2m ago
Upload by : Lilly Andre
Transcription

4S4A(Scratch) ArduinoUtilización de S4A (Scratch) más la tarjeta Arduino en un ambientede programación gráfica orientado a la educación Ver. 1.0José Manuel Ruiz GutiérrezSerie: Herramientas Gráficas para la programación deArduino

S4A (Scrtach) ArduinoJosé Manuel Ruiz 15.16.17.18.19.20.21.22.23.Objetivo de este trabajo.Una Introducción general a S4ASalida IntermitenteSalida intermitente con visualización de estado en pantallaSalida intermitente con visualización de estado en pantalla y controlde frecuencia mediante un canal de entrada analógica.Gobierno de una salida mediante un pulsadorGobierno de salida con pulsador en pantalla: Pulsador virtualGobierno de salida en modo biestable “memoria”Control de una salida mediante el tecladoContador SencilloContador Adelante/atrásContador con puesta a “cero”SemáforoControl de un motorControl de un servomotor (giro 180º)Lectura de un canal analógico de entrada.Simulador de un TermóstatoTraspaso de un valor analógico de entrada a una salida analógicaGobierno de una salida analógica desde la pantalla del EscenarioGobierno de una salida analógica mediante el valor de la posición xdel ratón.Gobierno de una salida analógica mediante un bucle secuencialcontinuoTermómetro con leds y sensor LM35Instalación domóticaEnero de 2012 Versión de Documento: V1.0José Manuel Ruiz Gutiérrez j.m.r.gutierrez@gmail.comBlog de referencia: http://josemanuelruizgutierrez.blogspot.com/2

S4A (Scrtach) Arduino1.José Manuel Ruiz GutiérrezObjetivo de este trabajo.Con el presente trabajo práctico pretendo dar a conocer las posibilidades de laherramienta S4A en conjunción con la tarjeta Open Hardware Arduino UNO.S4A es un entorno desarrollado a partir del prestigioso entorno Scratchdesarrollado en el MIT Media Lab de muy amplia difusión en el mundo de la educación.La intención de este trabajo es facilitar a los profesores, estudiantes e interesadosen la programación grafica y en los entornos Open Hardware una primera iniciaciónpractica abordando la resolución de sencillos ejemplos en los que se hace uso de lalibrería de objetos que se encargan de la comunicación con Arduino.Es evidente que ya se terminaron aquellos entornos de programación en los quehabía que “pelearse” con una sintaxis de comandos en ocasiones diabólica. En este casoS4A realiza esa tarea tediosa y permite al usuario dedicarse a la creación yperfeccionamiento del algoritmo que resolverá su problema.En este trabajo aporto una colección de ejemplos que permitirán al lectorcomprender las posibilidades de esta poderosa conjunción Arduino S4A y le animarána continuar facilitándole el conocimiento de una de las plataformas Open Hardware másinteresantes y difundidas en el mundo.Poner en la comunidad internacional Arduino este trabajo es para mí unasatisfacción porque con ello creo aportar un “pequeño grano de arena” al conocimiento ya su pública y libre difusión a través de herramientas públicas y gratuitas.Agradezco sinceramente a todos cuantos, antes de mi, trabajaron en este campo yvaloro sus aportaciones, especialmente a los creadores de S4A que han contribuido deuna manera notoria a la difusión de Arduino como herramienta de aprendizaje.3

S4A (Scrtach) Arduino2.José Manuel Ruiz GutiérrezUna introducción a S4ACitilabIntroducciónCitilab pone a disposición de la comunidad Arduino una aplicación basada enScratch para programar de manera gráfica Arduino. La aplicación se llama S4a (ficherospara descargar S4A y Firmware)S4A es una modificación de Scratch que proporciona una programación sencillade la plataforma abierta de hardware Arduino. Incluye nuevos bloques para controlarsensores y actuadores conectados a Arduino. También hay una tabla que informa delestado de los sensores similar a la PicoBoard.Ha sido desarrollada para atraer a la gente al mundo de la programación. Suobjetivo es también proporcionar una interfaz de nivel alto para programadores deArduino con funcionalidades como la interacción de varias placas a través de eventos deusuario.CaracterísticasLos objetos de la librería Arduino ofrecen bloques parafuncionalidades básicas del microcontrolador, escrituras y lecturastanto analógicas como digitales, además de alguna de más nivel.4

S4A (Scrtach) ArduinoJosé Manuel Ruiz GutiérrezPuedes encontrar bloques para controlar servomotores de rotacióncontinua Parallax.Se pueden crear objetos Arduino a través de 3 maneras distintas en elentorno de Scratch. Puedes elegir entre crear una nueva conexión ousar una ya existente. Esta característica permite a los objetos virtualesArduino funcionar de forma colaborativa usando la misma conexión(el objeto físico). El objeto Arduino encontrará él mismo el puertoUSB donde la placa esté conectada.S4A interactúa con Arduino enviando el estado de los actuadores yrecibiendo el de los sensores cada 75 ms, por lo tanto el ancho depulso ha de ser mayor que este período. Este intercambio deinformación se efectúa usando el protocolo de la PicoBoard, el cual yaestá implementado en un programa específico (llamado firmware) enla placa. Encontrareis instrucciones de cómo cargarlo a través delentorno Arduino.Funciona con las versiones Duemilanove/Diecimila y Uno, quizástambién con otras pero no las hemos testeado aún. También se puedecontrolar una placa de manera inalámbrica si se añade un módulo RFcomo por ejemplo XBee. Una característica importante es que sepuede crear un proyecto utilizando tantas placas como puertos USBhaya disponibles.S4A es compatible con Scratch, se puede trabajar con proyectosScratch y también con la PicoBoard. Sin embargo, no se puedencompartir proyectos ya que va en contra de los términos de uso deScratch.Por otra parte, la configuración de entrada/salida aún está siendodesarrollada, así que por ahora los componentes tienen que conectarsede una forma concreta. Dicha configuración ofrece 6 entradasanalógicas (pines analógicos), 2 entradas digitales (pines digitales 2 y3), 3 salidas analógicas (pines digitales 5, 6 y 9), 3 salidas digitales(pines 10, 11 y 13) y 4 salidas especiales para conectar servomotoresde rotación continua Parallax (pines digitales 4, 7, 8 y 12).5

S4A (Scrtach) ArduinoJosé Manuel Ruiz GutiérrezCreadores: S4A ha sido desarrollado por Marina Conde, Víctor Casado, JoanGüell, José García y Jordi Delgado con la ayuda del Grupo de Programación Smalltalkdel Citilab. Para informar de errores o simplemente darnos sugerencias podéis escribir a:scratch@citilab.eu.Modo de instalación.1. Para instalar S4A Arduino se deberán seguir los siguientes pasos.2. Primero instalar el software S4A una vez que se haya descargado delsu lugar de origen.3. Se deberá instalar en la tarjeta Arduino el Firmware correspondienteque facilita la comunicación con S4A. Esto se realiza cargando elfichero firmware en el IDE de Arduino y después descargándolo sobrela tarjeta.4. Finalmente se ejecuta S4A y de realiza el diseño haciendo uso de laslibrerías de bloques correspondientes una parte de las cuales seencarga de la lectura y escritura de datos en la tarjeta de acuerdosiempre con la configuración que establezca el firmware. Acontinuación se detallan estas configuraciones de E/S que noolvidemos que no se pueden modificar desde S4A.ENTRADAS/SALIDASsalidas digitales (pines digitales 10,11 y 13)salidas analógicas (pines digitales 5, 6 y 9)entradas analógicas (todos los pines analógicos de entrada)entradas digitales (pines digitales 2 y 3)servomotores RC (pines digitales 4, 7, 8 y 12)6

S4A (Scrtach) Arduino3.José Manuel Ruiz GutiérrezSalida intermitenteNuestro primer ejercicio será el encendido y apagado de un diodo led conectadoen la salida PIN 13 de la Tarjeta Arduino.En la siguiente imagen se ve el gráfico correspondiente a esta sencilla aplicación.Se han utilizado dos funciones “digital” de la librería “movimiento” asociadas ala salida PIN 13 una en estado “encendido” y otra en estado “apagado”Las temporizaciones se hacen con los bloques “pensar” de la librería“apariencia” a los que les hemos quitado el texto que muestran por defecto y en los quese ha colocado el valor del tiempo en segundos, se pueden realizar también con el bloque“esperar segundos” de la librería “control”En la pantalla “escenario no se ha puesto ningún objeto, por lo que aparece la quemuestra por defecto.El montaje de este primer ejemplo es muy sencillo y se muestra en la siguienteimagen.7

S4A (Scrtach) Arduino4.José Manuel Ruiz GutiérrezSalida intermitente con visualización de estadoen pantalla.Si queremos que en la pantalla del escenario aparezca una imagen de un diodo ledque simula encendido y apagado debemos crear con la herramienta “disfraces” delentorno dos imágenes una que llamados led off y otra led on que muestran el estado.Después en el programa lo que hacemos es utilizar el bloque de función“cambiar el disfraz” perteneciente a la librería “apariencia” que permite mostrar en elescenario una u otra imagen.Los bloques “al presionar” y “por siempre” pertenecen a la librería “control”En la siguiente figura se muestra el programa ya elaborado.La siguiente figura es el aspecto del escenarioLed offled on8

S4A (Scrtach) Arduino5.José Manuel Ruiz GutiérrezSalida intermitente con visualización de estadoen pantalla y control de frecuencia mediante uncanal de entrada analógica.El siguiente ejemplo nos muestra la forma de poder asociar una variable al valorde una entrada analógica Analog0 con el fin de poder variar el retardo en el encendido yapagado de una salida digital PIN 13.Comenzamos definiendo la variable “frecuencia” que mediante la función “fijarfrecuencia a valor del sensor Analog0” asociamos a ella el valor leído del canalanalógico.El tiempo de encendido lo fijamos a 0.1 segundos y en donde actuamos es en eltiempo de apagado. El tiempo de apagado los configuramos con la función “esperarfrecuencia/2000 segundos”Hemos recurrido a la opción de mostrar en la pantalla “escenario” la imagen deun diodo led encendido y apagado con los disfraces led off y led on. Mostramos estasimágenes mediante la función “cambiar el disfraz a led on” y “cambiar el disfraz aled off”.Una vez activada la simulación podemos observar como al modificar el valor delpotenciómetro varía el tiempo de apagado del led.9

S4A (Scrtach) ArduinoJosé Manuel Ruiz GutiérrezEl valor leído del canal Analog0 se divide por 2000 con el fin de reducir el rangode variación del la variable frecuencia. En este caso podemos deducir que el valor defrecuencia seria:Frecuencia varía entre 0 y 0,512 seg.Analog0 varía entre 0 y 1024En la figura siguiente vemos el aspecto de la aplicaciónA continuación se muestra el esquema de conexión de los componentes10

S4A (Scrtach) Arduino6.José Manuel Ruiz GutiérrezGobierno de una salida mediante un pulsadorQueremos gobernar una salida digital PIN 13 mediante el accionamiento de unaentrada digital PIN 2 a la que le hemos colocado un pulsador.El programa es muy sencillo. Mediante el bloque de “sensor presionado”averiguamos si el valor de la entrada es “true” o “false” y en función de este, medianteel bloque de función “si si no” perteneciente la librería “control”, conseguimos lafunción de gobierno deseada: Activar o desactivar la salida PIN 13El esquema del montaje es el de la siguiente figura.11

S4A (Scrtach) Arduino7.José Manuel Ruiz GutiérrezGobierno de salida con pulsador en pantalla:Pulsador virtualEn este caso lo que vamos a añadir a la versión anterior es la visualización en lapantalla escenario de un led y un pulsador, pero en este caso el pulsador será “virtual”, esdecir, que el diodo led de la salida PIN 13 se activará gobernado desde la pantalla delordenador.Se trata de activar desde la pantalla “escenario” un botón para activar el PIN 13 yotro para desactivarlo.La activación y desactivación se lleva a cabo por la acción sobre dos objetos:led off y led on y la activación propiamente dicha es la que se asocia al objetoArduino1 que tiene también integrados los objetos led on y led offCuando se presiona sobre el objeto botón on se envía al “mensaje” on, orden“enviar a todos” que al recibirse en el script correspondiente al programaArduino1 activa la salida PIN 13 mediante la orden “digital 13 encendido”Cuando se presiona sobre el objeto botón off se envía al “mensaje” off, orden“enviar a todos” que al recibirse en el script correspondiente al programaArduino1 desactiva la salida PIN 13 mediante la orden “digital 13 apagado”En las figuras vemos los objetos del programa Arduino1 y el programacorrespondiente.12

S4A (Scrtach) ArduinoJosé Manuel Ruiz GutiérrezLos programas puls off y puls on se muestran a continuación junto a los“disfraces de cada uno”La pantalla “escenario” de esta aplicación es la que se muestra a continuación, enella vemos los objetos descritos anteriormente: led, puls off y puls on13

S4A (Scrtach) Arduino8.José Manuel Ruiz GutiérrezGobierno de salida en modo biestable“memoria”Ahora vamos a controlar la salida PIN 13 con un pulsador desde la tarjetaArduino pero para el gobierno se podrá hacer simplemente pulsando, actuando el sistemacomo un biestable (una pulsación enciende, la siguiente pulsación apaga y asísucesivamente).En la figura se muestra el algoritmo.En este caso, previamente se crean tres variables:led on: indica el estado de la salida PIN 13oldValue: Indica el estado anterior de la salida PIN 13currentValue: Indica el estado actual de la salida PIN 13El funcionamiento es el siguiente:Se fijan los valores ledOn y OldValue a false (“cero”) “fijar ledOnfalse” y “fijar oldValue false”Se lee el valor de la entrada Digital1 y se asocia a la variablecurrentValueSe pregunta si el valor currentValue es true y el OldValue es falso,si es así entonces se pregunta si el led está apagado ledOn false y sies asi de activa la salida PIN13 “digital 13 encendido” y se fija el14

S4A (Scrtach) ArduinoJosé Manuel Ruiz Gutiérrezvalor de ledOn a true fijar ledOn true”, si no , se apaga el led“digital 13 apagado” y se pasa pone el valor “fijar ledOn false”Finalmente se fija oldValue al mismo valor que currentValue “fijaroldValue a currentValue”Este es el aspecto que presentaría la pantalla “escenario”. Vemos que se muestranlos valores de las variables currentValue, oldValue y ledOn.Este sería el montaje del circuito.15

S4A (Scrtach) Arduino9.José Manuel Ruiz GutiérrezControl de una salida mediante el tecladoSe trata de gobernar una salida (PIN 13) mediante el teclado con la letra “a” laactivamos y con la letra “s” la desactivamos.El algoritmo es muy sencillo. Se han creado dos “disfraces” uno led off y el otroled on que se asociarán al estado de apagado y encendido de la salida. Se ha recurrido albloque de función “al presionar tecla” que se activa cuando se detecta que una tecla delteclado se ha pulsado.Si se pulsa la tecla a la señal se activa PIN 13 trueSi se pulsa la tecla s la señal se desactiva PIN 13 falseAl comienzo del programa para asegurarnos de que la salida esta apagadaponemos el disfraz de led apagado “cambiar el disfraz a led off”En la siguiente imagen vemos el estado de la pantalla “escenario”16

S4A (Scrtach) ArduinoJosé Manuel Ruiz Gutiérrez10. Contador SencilloContar es una función muy útil en los sistemas, es por ello por lo que acontinuación vamos a estudiar el siguiente ejemplo.Se trata de contar los impulsos que van entrando por una de las entradas digitalesPIN 2Definimos una variable a la que llamaremos “cuenta” en ella se acumulará elvalor del contador que vamos a implementar. Luego la mostraremos en la pantalla“escenario”.El programa debe comenzar poniendo a “0” el valor de la variable“cuenta”, lo hacemos con la instrucción “fijar Cuenta a 0”En el bucle principal del programa “por siempre” integremos un buclecndicional “s” en el que la condición que se testea es si la entrada digitalPIN 2 ha sido activada “¿sensor Digital2 presionado”Si se cumple la condición lo que se hace es incrementar en “1” el valor delcontador “fijar Cuenta a Cuenta 1”Se establece a continuación un retardo de 0.5 seg. Con el fin de evitar quecuente más de uno por el tiempo que este presionado aunque sea muypoco. “pensar por 0.5 seg” . También se podría haber realizado el retardocon la función “esperar segundos” de la librería de ControlEn la siguiente imagen vemos el aspecto de la pantalla “escenario”17

S4A (Scrtach) ArduinoJosé Manuel Ruiz GutiérrezSe muestra a continuación el montaje de la aplicación.18

S4A (Scrtach) ArduinoJosé Manuel Ruiz Gutiérrez11. Contador Adelante/atrásEsta es una variante del ejercicio anterior en la que deseamos poder contar haciaadelante o hacia atrás haciendo uso de dos entradas digitales Digilal2 y Digital3correspondientes a los pines PIN 2 y PIN 3 de la tarjeta Arduino respectivamente.De la misma manera que hemos hecho en el ejemplo anterior definimos lavariable Cuenta que almacenará el valor de contador.Esta vez dispondremos de dos bucles tipo “si” uno para cada una de as dosoperaciones “contar” y “descontar”Contar:Para el bucle contar testeamos el estado de la variable de entrada digitalDigital2 PIN 2 y si se cumple que esta activada incrementamos el contador “fijarCuenta a Cuenta 1”Descontar:Para el bucle descontar testeamos el estado de la variable de entradadigital Digital3 PIN 3 y si se cumple que esta activada incrementamos elcontador “fijar Cuenta a Cuenta-1”Se han colocado igualmente los retardos para evitar “rebotes” en la cuentaEn la figura siguiente vemos el aspecto de la pantalla “escenario”.19

S4A (Scrtach) ArduinoJosé Manuel Ruiz GutiérrezEste es el montaje que deberíamos realizar para probar la aplicación.20

S4A (Scrtach) ArduinoJosé Manuel Ruiz Gutiérrez12. Contador con puesta a “cero”Esta este ejemplo deseamos poder realizar la “puesta a cero” del valor delcontador. Para este montaje dispondremos de dos pulsadores conectados a las entradasdigitales Digilal2 y Digital3 correspondientes a los pines PIN 2 y PIN 3 de la tarjetaArduino respectivamente.Digital2 (PIN 2)Digital3 (PIN 3)Será la para la entrada de impulso de cuentaSerá la entrada para la puesta a ceroDe la misma manera que hemos hecho en el ejemplo anterior definimos lavariable Cuenta que almacenará el valor de contador.Esta vez dispondremos de dos bucles tipo “si” uno para cada una de las dosoperaciones “contar” y “poner a cero”Contar:Para el bucle contar testeamos el estado de la variable de entrada digital Digital2PIN 2 y si se cumple que esta activada incrementamos el contador “fijar Cuentaa Cuenta 1”Poner a cero:Con la entrada Digital3 ponemos a cero e valor Cuenta “fijar Cuenta a 0”A continuación vemos el aspecto de la pantalla “escenario”21

S4A (Scrtach) ArduinoJosé Manuel Ruiz GutiérrezEl siguiente es el montaje de la aplicación.22

S4A (Scrtach) ArduinoJosé Manuel Ruiz Gutiérrez13. SemáforoEn este ejemplo vamos a realizar un semáforo. Utilizaremos las siguientes salidasLámpara RojaLámpara ÁmbarLámpara VerdePIN 13PIN 11PIN 10Se han creado tres disfraces para representar los tres estados del semáforo que seirán mostrando de acuerdo a la secuencia de encendido de las salidas:“cambiar disfraz a Semáforo rojo”“cambiar disfraz a Semáforo ambar”“cambiar disfraz a Semáforo verde”Los tiempos de espera se han definido mediante la función “Pensar por 1segundo”En la pantalla de “escenario” se ha colocado de fondo la imagen de un cruce decalles, lo cual le da cierto realismo a la aplicación.23

S4A (Scrtach) ArduinoJosé Manuel Ruiz GutiérrezEn la siguiente imagen se muestra el circuito de montaje con protoboard.24

S4A (Scrtach) ArduinoJosé Manuel Ruiz Gutiérrez14. Control de un motorEl entorno S4A dispone de dos salidas para el control de un motor mediante lasinstrucciones:“motor apagado”“motor dirección horario/antihorario”En este montaje se trata sencillamente de asociar el mando del motor a tres letrasdel teclado del ordenador:Tecla aTecla bTecla capagadoGiro en sentido horarioGiro en sentido antihorarioSe ha d

S4A (Scrtach) Arduino José Manuel Ruiz Gutiérrez 3 1. Objetivo de este trabajo. Con el presente trabajo práctico pretendo dar a conocer las posibilidades de la herramienta S4A en conjunción con la tarjeta Open Hardware Arduino UNO. S4A es un entorno desarrollado a partir del prestigioso entorno Scratch

Related Documents:

Scratch for Arduino Scratch for Arduino (S4A) is a Scratch modification that brings the easiness of programming with Scratch to the Arduino prototyping board. It provides new blocks for managing sensors and actuators connected to Arduino Board. ace . STEP 1 : Download S4A

Scratch for Arduino (S4A) . Arduino Programming Language: implementazione di Wiring, basato su Processing (programmazione multimediale) - 6 - . Comunicazione S4A - Arduino Protocollo Picoboard: S4A riceve segnali dai sensori e manda segnali agli attuatori ogni 75 ms.

SCRATCH, S4A E ARDUINO John W. B. de Araujo - johnwelvins@gmail.com Luiz A. de Q. Dworakowski - luizdwora@gmail.com . Avaliando o uso do Scratch como abordagem alternativa para o processo de ensino-aprendizagem de programação. In: CONGRESSO DA . Silverman, B.; Eastmond, E. The scratch programming language and environment. In: ACM .

de programação Arduíno e Scratch. Para que a conexão do Arduíno com o Scratch (linguagem de programação) funcionasse, primeiramente tivemos inserir um firmware do S4A no Arduíno, conectar o cabo USB na placa do Arduíno e no computador, startar o firmware no S4A e começar a programar. Foram trabalhados comandos de ação e repetição.

Scratch for Arduino Programming, Electronics, and Giant Killer Robots* * Giant Killer Robots may be omitted due to budget constraints. . What is S4A? This is an easy one. It's a version of Scratch that works with Arduino. All of you have already done Scratch right?

Arduino compatible components. Personal computer running Arduino software Arduino software is free to download and use from: www.arduino.cc Arduino board Such as: Arduino Uno Freetronics Eleven Genuino Uno or any Arduino compatible board that has a standard Arduino UNO header l

Lesson Sequence: S4A (Scratch for Arduino) Rationale: STE(A)M education (STEM with the added 'Arts' element) brings together strands of curriculum with a logical integration. The inclusion of CODING in STE(A)M curriculum is a time-sensitive and urgent initiative as technological change underpins growing skills and concepts needed

Level 1 1–2 Isolated elements of knowledge and understanding – recall based. Weak or no relevant application to business examples. Generic assertions may be presented. Level 2 3–4 Elements of knowledge and understanding, which are applied to the business example. Chains of reasoning are presented, but may be assertions or incomplete.