Guia de usuario playshield

Page 1

Introducción El playShield es un escudo para PlayBoard/Arduino que hace que las conexiones y el desarrollo de tus proyectos sean mucho más fáciles. Es totalmente diseñado y construido por el equipo de tdrobotica en Colombia. Su programación está basada en Arduino IDE ó Wiring.ORG, Lenguaje de programación Processing, C ó C++ y es también compatible con Scratch S4A. Está guía práctica contiene la información de conexiones y programación.

Materiales requeridos • • • •

Arduino UNO playShield+ Cable USB tipo B Computador con Arduino y S4A instalado.

www.tdrobotica.co

1


Introducción al playShield El playShield está diseñado para facilitar las conexiones típicas que hacemos en un montaje básico, es ideal para instituciones educativas de primaria y bachillerato, también es útil para los que están arrancando en el mundo de la electrónica. Te invitamos para que veas el siguiente link https://youtu.be/N7UxiKHxbJM donde apreciaras las ventajas de trabajar con el playShield.

Te damos la bienvenida en esta nueva experiencia.

Reconocimiento y conexiones eléctricas Las entradas y salida están configuradas como se muestran a continuación. Si vas a conectar algún sensor o actuador debes tenerla en cuenta para su correcto funcionamiento.

1. PIN 2. 5V 3. GND

1. PIN 2. 5V 3. GND

www.tdrobotica.co

2


Partes del playShield LED’s

Pines Botones Fotocelda

Potenciómetro

Pines

Temperatura Salida Motor

Si deseas conocer más sobre las partes electrónicas de las que se compone el playShield visita: http://tdrobotica.co/tdrobotica-educacion/343.html (Ver parte documentación) El playShield tiene entradas y salidas de 2 tipos, análogas y digitales. Las entradas análogas dan valores de 0 a 1023, si son salidas análogas (llamadas también PWM) aceptan valores de 0 a 255. Las entradas y salidas digitales reciben como señal 0 ó 1, siendo 0 igual a 0V y 1 igual a 5V. El playShield también es compatible con S4A. Cuando descargamos el S4A original http://s4a.cat/index_es.html junto con su firmware podríamos utilizar los recursos que con el bien por defecto, sin embargo estos limitan algunas E/S de la playshield. Pensando en utilizar todas la E/S de la playshield cuando estas en S4A, el equipo de tdrobotica configuró el S4A y su firmware para lograrlo, sin embargo si están en el entorno Arduino puedes utilizar y configurar todas las E/S según tu necesidad. En la siguiente sección explicaremos como hacer este procedimiento.

www.tdrobotica.co

3


Para más claridad vamos a hacer una tabla con las características de cada PIN del playShield Vs su utilización en S4A. Recuerda que Arduino puedes configurar E/S como entradas y salidas. PIN (R2) D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 A0 A1 A2

CONEXIÓN Botón1 Botón2 Pines Pines Pines Motor Pines Pines Pines LED Verde LED Amarillo Pines LED Rojo Potenciómetro Fotocelda temperatura

E/S Entrada Entrada E/S E/S Salida E/S E/S E/S Salida Salida E/S Salida Entrada Entrada Entrada

TIPO Digital Digital Digital PWM PWM Digital Digital PWM Digital Digital Digital Digital Análoga Análoga Análoga

S4A Botón – Play Shield Botón – Play Shield Salida Digital Salida PWM-Análoga Motor Salida Digital Salida Digital Servomotor LED LED Salida Digital LED Potenciómetro Fotocelda Sensor temperatura

A3 A4 A5

Pines Pines Pines

Entrada Entrada Entrada

Análoga Análoga Análoga

Entrada Análoga Entrada Análoga Entrada Análoga

Ahora que conocemos las partes y conexiones vamos a empezar con las prácticas

Programación en scratch S4A Para usar la programación en scratch debes descargar e instalar el S4A y cargar el firmware desde el entorno de arduino. Como lo mencionamos anteriormente para que puedas utilizar todos los recursos es necesario que instales el S4A, le remplaces el archivo S4A.image y le cargues el firmware editado por tdrobotica. Estos dos archivos los encuentras en http://tdrobotica.co/tdrobotica-educacion/343.html (Ver parte documentación) Te invitamos para que visites el siguiente tutorial y logres de manera exitosa la configuración del S4A. http://aprender.tdrobotica.co/tutoriales/ Nota: En la web de tdrobotica.co encontraras los archivos los archivos de S4A.imagen, firmaware e información técnica de la tarjeta como el datasheet y el esquemático.

www.tdrobotica.co

4


Programas y montajes Para cada uno de los siguientes tutoriales encontrarás el montaje electrónico, el programa de demostración en S4A y también el programa en Arduino. A continuación te mostramos la estructura general de cada tutorial con el siguiente ejemplo.

A. Montaje (El motor no tiene polaridad)

Los montajes son muy simples normalmente solo necesitas el playShield, sin embargo algunas veces el montaje tiene elementos externos. Hay que tener cuidado con la polaridad de los objetos (Polaridad: única forma de conexión de los pines). Antes del montaje te alertamos si hay polaridad o no.

B. Programa Scratch

El programa en scratch vas a encontrar que lo que necesitas es un ciclo infinito “por siempre”, y otras estructuras tal como scratch original, también encontraras un panel completo con entradas y salidas del Arduino.

www.tdrobotica.co

5


Si ya estás en un nivel más avanzando en programación también tenemos el código en Arduino para que te sirva de guía para solucionar las prácticas. Ten en cuenta que en arduino el primer paso es declarar el funcionamiento de los pines, ya sea que los quieras de entrada o de salida. Adicionalmente siempre vamos a tener una función setup() y otra función loop(). Si no tienes mucha experiencia con arduino visita nuestros tutoriales!!! http://tdrobotica.co/tutoriales

C. Código en Arduino //Inicio del código /*Conexiones playShieldR1 yR2 Pulsador1, D2 Pulsador2, D3 Motor D6*/ int inicio= 2, parada= 3;//Botones int motor= 6; // Declaracion de entradas, salidas y consola --------------------void setup(){ pinMode (inicio, INPUT); pinMode (parada, INPUT); pinMode (motor, OUTPUT);} // Programa principal---------------------------------------------void loop(){ //Valor de los botones es 0 ó 1, 1 si el botón está presionado //¿Esta presionado el botón D2? if(digitalRead(inicio)== HIGH){ analogWrite(motor, 255);} //¿Esta presionado el botón D3? if(digitalRead(parada)== HIGH){ analogWrite(motor, 0);} } //Fin del código

A continuación te presentamos las prácticas que puedes en esta guía.

Prácticas 1. Semáforo. 2. LED Intermitente. 3. Mover motor. 4. Fotocelda LED. 5. Temperatura LED. 6. Distancia LED. 7. Servomotor.

www.tdrobotica.co

6


1. Semáforo: En este primer tutorial vamos a ver cómo podemos simular el comportamiento de un semáforo por medio del Arduino y la placa playShield.

A. Montaje Conexión del playShield (LED Rojo 13, LED Amarillo 11, LED Verde 10).

B. Programa en Scratch Es una secuencia con tiempo de espera para que cada color se ilumine de forma adecuada tal como lo haría el semáforo en las calles.

www.tdrobotica.co

C. Programa en Arduino Es una secuencia con tiempo de espera para que cada color se ilumine de forma adecuada tal como lo haría el semáforo en las calles.

//Inicio del código /*Conexiones playShieldR1 yR2 LED rojo D13 LED amarillo D11 LED verde D10*/ int LEDR= 13, LEDA= 11, LEDV= 10; //Declaracion de entradas, salidas y consola----------void setup(){ pinMode (LEDR, OUTPUT); pinMode (LEDA, OUTPUT); pinMode (LEDV, OUTPUT);} //Programa principal------------void loop(){ digitalWrite(LEDV, LOW); digitalWrite(LEDA, LOW); digitalWrite(LEDR, HIGH); delay(2000);//Espera 2s digitalWrite(LEDA, HIGH); delay(1000);//Espera 1s digitalWrite(LEDR, LOW); digitalWrite(LEDA, LOW); digitalWrite(LEDV, HIGH); delay(2000);//Espera 2s digitalWrite(LEDA, HIGH); delay(1000);//Espera 1s //Fin del código

7


2. LED intermitente (Luces de navidad):

C. Programa en Arduino

Para realizar este programa no tenemos que escalar Al mover el potenciómetro cambia el ritmo ya que la escala de la función va en milisegundos, lo de intermitencia del LED rojo. cual nos queda muy bien ya que mil milisegundos es un segundo y nos sirve perfecto en la aplicación ya A. Montaje que la intermitencia nos quedaría más o menos de 1 segundo. Conexión del playShield (LED Rojo 13, Potenciómetro A0).

//Inicio del código /*Conexiones playShieldR1 yR2 LED rojo D13 Potenciometro A0*/ int LEDR= 13, pot= A0; //Declaracion de entradas, salidas y consola----------void setup(){ pinMode (LEDR, OUTPUT); pinMode (pot, INPUT);} //Programa principal---------------------------------void loop(){ digitalWrite(LEDR, HIGH); delay(analogRead(pot)); digitalWrite(LEDR, LOW); delay(1023-analogRead(pot)); } //Fin del código

B. Programa en scratch El valor del tiempo hay que ajustarlo para que el tiempo de espera sea razonable, por esta razón tenemos que escalar la señal, para que la escala de tiempo de intermitencia nos quede entre 0 segundos y 2 segundos.

www.tdrobotica.co

8


3. Mover motor (Control ON/OFF):

C. Programa en Arduino

El Motor se enciende si se presiona el botón D2 Vamos a usar condicionales, en este caso si y se apaga si se presiona el botón D3. presionamos el botón D2 el motor se va a prender y si presionamos D3 el motor va a A. Montaje parar. Hay que tener en cuenta que los botones dan estados lógicos 1 ó 0, por esa razón se usan Conexión del playShield (botones D2 y D3), operadores lógicos, el motor puede variar la El motor va conectado de forma exterior en el velocidad por lo tanto puede ser modificada en pin D6 (No hay polaridad). Pero ten en cuenta el intervalo de 0 a 255. que los cables del motor estén en los pines (5V, PIN) si el motor no se mueve tendrás que energizar tu Arduino con el fuente de 12V ya //Inicio del código que tal vez tu USB. /*Conexiones playShieldR1 yR2

B. Programa en Scratch Vamos a usar condicionales, en este caso si presionamos el botón D2 el motor se va a prender y si presionamos D3 el motor va a parar. Él motor puede variar la velocidad en un rango de 0 a 255.

Pulsador1, D2 Pulsador2, D3 Motor D6*/ int inicio= 2, parada= 3; int motor= 6; // Declaracion de entradas, salidas y consola -------------------void setup(){ pinMode (inicio, INPUT); pinMode (parada, INPUT); pinMode (motor, OUTPUT);} // Programa principal-------------------------------------------void loop(){ //Valor de los botones es 0 ó 1, 1 si el botón está presionado //¿Esta presionado el botón D2? if(digitalRead(inicio)== HIGH){ analogWrite(motor, 100);} //¿Esta presionado el botón D3? if(digitalRead(parada)== HIGH){ analogWrite(motor, 0);} } //Fin del código

www.tdrobotica.co

9


4. Fotocelda LED (Control Luz): El LED rojo se enciende si hay exceso de luz en la fotocelda.

A. Montaje Conexión del playShield (LED Rojo 13, fotocelda A1).

B. Programa en scratch Vamos a usar condicionales, en este caso si el valor de la fotocelda A1 es mayor de 500 cumple la condición y enciende el LED 13 rojo, en este caso la fotocelda es un sensor analógico dándonos valores en un intervalo de 0 a 1023, si el valor es cero no hay luz.

www.tdrobotica.co

C. Programa en Arduino Vamos a usar condicionales, en este caso si el valor de la fotocelda A1 es mayor de 500 cumple la condición y enciende el LED 13 rojo, en este caso la fotocelda es un sensor analógico dándonos valores en un intervalo de 0 a 1023, si el valor es cero no hay luz. //Inicio del código /*Conexiones playShieldR1 yR2 LED rojo D13 fotocelda A1*/ int LEDR= 13, foto= A1; //Declaracion de entradas, salidas y consola----------void setup(){ pinMode (LEDR, OUTPUT); pinMode (foto, INPUT);} //Programa principal---------------------------------void loop(){ if(analogRead(foto)>500){ digitalWrite(LEDR, HIGH);} else{ digitalWrite(LEDR, LOW);}} //Fin del código

Nota: la escala puede variar ya que estas son tomadas de la luz ambiente, puedes seguir el tutorial y ver en la consola el valor de la iluminación. http://aprender.tdrobotica.co/arduino-basicot16ab-control-de-intensidad-de-un-led/

10


5. Temperatura LED (Control de temperatura): En LED rojo se enciende si hay exceso en la temperatura.

A. Montaje Conexión del playShield (LED Rojo 13, temperatura A2).

C. Programa en scratch En este caso si el valor de la temperatura A2 es mayor de 180 cumple la condición y enciende el LED 13 rojo, el rango de la temperatura es de 0 a 1023 (no son ºC).

B. Programa en Arduino En este caso si el valor de la temperatura A2 es mayor de 180 cumple la condición y enciende el LED 13 rojo, el rango de la temperatura es de 0 a 1023(no son ºC). si deseas que la temperatura quede en centígrados o Fahrenheit visita el siguiente tutorial. http://aprender.tdrobotica.co/arduino-avanzadot01aa-termometro-visual/ //Inicio del código /*Conexiones playShieldR1 yR2 LED rojo D13 temperatura A2*/ int LEDR= 13, temp= A2; //Declaracion de entradas, salidas y consola----------void setup(){ pinMode (LEDR, OUTPUT); pinMode (temp, INPUT);} //Programa principal---------------------------------void loop(){ if(analogRead(temp)>180){ digitalWrite(LEDR, HIGH);} else{ digitalWrite(LEDR, LOW);} } //Fin del código

Nota: la escala puede variar, puedes seguir el tutorial y ver en la consola el valor de la temperatura actual. http://aprender.tdrobotica.co/arduino-basicot16ab-control-de-intensidad-de-un-led/

www.tdrobotica.co

11


6. Distancia LED:

C. Programa en Arduino

En LED rojo se enciende si hay un objeto frente al sensor de distancia.

En este caso si el valor del sensor cumple la condición enciende el LED 13 rojo, el rango de la señal es de 0 ó 1, difiere del de scratch ya que en arduino podemos controlar entradas digitales, por dicha razón podemos usar el sensor como una señal digital.

A. Montaje

Conexión del playShield (LED Rojo 13), El sensor va externo en los pines A3 Cuidado!!! Tiene polaridad.

Nota: Si estás usando el playShieldR1

//Inicio del código /*Conexiones playShieldR1 yR2 LED rojo D13 distancia A3*/ int LEDR= 13, dist= A3; //Declaracion de entradas, salidas y consola----------void setup(){ pinMode (LEDR, OUTPUT); pinMode (dist, INPUT);} //Programa principal---------------------------------void loop(){ if(digitalRead(dist)== 1){ digitalWrite(LEDR, LOW);} else{ digitalWrite(LEDR, HIGH);}} //Fin del código

debes tener precaución con el cableado ya que difieren las conexiones.

B. Programa en Scratch En este caso si el valor del sensor cumple la condición enciende el LED 13 rojo, el rango de la señal del sensor de distancia es de 0 a 1023.

www.tdrobotica.co

12


7. Servomotor: El servomotor se va a mover en relación al potenciómetro.

A. Montaje En la práctica con S4A como en Arduino vamos a conectar el servo en el pin D9. La Conexión del playShield (D9, potenciómetro A0), El servo va externo al playShield y va conectado en el pin D9. IMPORTANTE: Para su correcto funcionamiento es necesario conectar el Adaptador de 12V 1A al Arduino, con el fin de darle la corriente necesaria al servomotor. De lo contrario puede que el servomotor resetea el Arduino también hay que tener en cuenta que el Servo tiene Polaridad (Gnd-5V PIN)

C. Programa en Arduino En este caso el valor de del sensor va a servir de referencia para el ángulo del servomotor. El servomotor tiene un alcance de 0 a 180 grados. El potenciómetro tiene un rango de 0 a 1023, para que sirva de referencia hay que enviar valores de 0 a 180, para que quede con esa escala dividimos el valor del sensor en 5.7. Ya que 1023 / 5.7 = 180 apx. Con esto nos queda con una buena escala si dividimos el valor del sensor en 5.7. Nota: Si deseas conocer más sobre el servomotor te invitamos al siguiente tutorial. http://aprender.tdrobotica.co/arduinoavanzado-t00aa-control-de-un-servomotorcon-pwm/

A. Programa en scratch En este caso el valor de del sensor va a servir de referencia para el ángulo del servomotor. El servomotor tiene un alcance de 0 a 180 grados. El potenciómetro tiene un rango de 0 a 1023, para que sirva de referencia hay que enviar valores de 0 a 180, para que Con esto nos queda con una buena escala si dividimos el valor del sensor en 5.7

www.tdrobotica.co

//Inicio del código /*Conexiones playShieldR1 yR2 servomotor D9 potenciometro A0*/ #include <Servo.h>//librería servo Servo servo; // objeto Servo int pot= A0; int valpot; //Declaracion de entradas, salidas y consola----------void setup(){ servo.attach(9); pinMode (pot, INPUT);} //Programa principal---------------------------------void loop(){ valpot = map(analogRead(pot), 0, 1023, 0, 179); servo.write(valpot);//Actualiza la posición delay(15); } //Fin del código

13


Felicitaciones‌ Haz terminado de conocer y utilizar los principales recursos de PlayShield‌

Es hora de Imaginar, prototipar y programar tus proyectos

www.tdrobotica.co

14


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.