Taller introductorio de Física con Arduino 2017
Arduino
Hardware abierto (open source)
Computadora: microprocesador + memoria + entradas/salidas
Referencias, libros y artículos (papers) en:
Fotos del taller en Carmelo:
Instalación:
Arduino IDE (Entorno Integrado de Desarrollo): es la consola que usamos para programar la placa Arduino.
Se descarga desde: https://www.arduino.cc/en/Main/Software (según Sistema Operativo, Win/Linux/Mac).
Computación física (no confundir con física computacional).
Diseño de sistemas (hardware+software) que interactúan con el mundo físico involucrando sensores y actuadores.
El hardware.
Fuente: comohacer.eu
Más en detalle:
Fuente: miarduinounotieneunblog.blogspot.com
El software.
En Arduino, los programas (sketch) tienen extensión .ino. La estructura mínimo debe incluir las funciones setup() y loop(). Cuando se resetea o apaga la placa Arduino, el último programa grabado no se borra. La forma de vaciar el Arduino de algún programa previamente cargado es cargar el sketch mínimo.
Para programar la placa Arduino se debe conectar la placa con la computadora mediante el cable USB.
Con el botón de la flecha hacia la derecha ("subir") se carga el programa en la placa.
Si hay un error de compilación se debe prestar atención a la información que aparece en la ventana inferior de la consola y corregir el programa.
Si el error es de carga se debe presionar el botón de reset de la placa.
Importante seleccionar el tipo correcto de placa (Arduino Uno) en el menú Herramientas -> Placa,
así como también seleccionar el puerto correcto en el menú Herramientas -> Puerto.
Una vez subido el programa, este permanece en el Arduino aunque no tenga energía eléctrica, pues el programa se aloja en la memoria flash del Arduino.
Cada vez que el Arduino se enciende (con el cable USB o con batería de 9V), se inicia desde cero el último programa que se le hubiera cargado.
Consideraciones generales.
Ante cualquier duda se puede consultar la referencia sobre librerías y funciones de Arduino (también desde el menú Ayuda): https://www.arduino.cc/en/Reference/HomePage
Para casi cualquier sensor y accesorio hay ejemplos que sirven de base a sistemas más complejos y personalizados. Ver menú Archivo -> Ejemplos
Algunos proyectos requieren librerías, que son paquetes de programas que resuelven la comunicación con diferentes dispositivos y sensores. Una forma sencilla de incluir las librerías necesarias es desde el menú Programa -> Include Library
Si alguna librería no se encuentra instalada entonces se puede agregar desde el menú Programa -> Include Library -> Manage Libraries
En el caso excepcional de no encontrar una librería, se debe contar con el .zip e instalarla desde el menú Programa -> Include Library -> Add .ZIP Library
PROYECTOS INTRODUCTORIOS:
Proyecto 1: LED
Control de una salida digital.
1 LED (terminal largo es +)
1 Resistencia de 220 o 330 Ohms
Se conectan en serie, entre Gnd y D13.
Proyecto 2: Semáforo
Estructura de control.
3 LED
3 Resistencia de 220 o 330 Ohms
Cada led se conecta en serie con una resistencia y a los pines D2 (verde), D3 (amarillo) y D4 (rojo).
Descargar sketch: P2-semaforo-M.ino
Proyecto 3: LED RGB
Salidas analógicas y definición funciones.
Las salidas analógicas se controlan mediante PWM (Pulse Width Modulation). Esto significa que en realidad son seudo-analógicas, pues se trata de una señal digital de 500 Hz en la que se cambia la relación de ciclo.
1 LED RGB (Es un led triple. El terminal largo es Gnd)
3 Resistencia de 220 o 330 Ohms
Cada led se conecta en serie con una resistencia y a los pines 9 (rojo), 10 (verde) y 11 (azul).
Descargar sketch: P3-LED-RGB-M.ino
Proyecto 4: Entrada Analógica
Lectura de entradas analógicas y uso del monitor serie.
La entrada analógica posee un conversor a digital que a los voltajes entre 0 V y 5 V, le asigna un número entre 0 y 1023.
1 potenciómetro
Conexiones: izquierdo a Gnd, derecho a +5V, medio a A0.
Descargar sketch: P4-EntradaAnalogica-M.ino
Descargar sketch: P4-EntradaAnalogica-M2.ino (versión 2, calcula V y R)
Proyecto 5: Buzzer pasivo
Salida digital para generar señales de diferentes frecuencias.
1 buzzer pasivo (el que no está sellado debajo).
Se conecta el cable negro a Gnd y el rojo a pin digital 3.
Descargar sketch: P5-BuzzerPasivo-M.ino
Proyecto 6: Fotómetro sonoro
Control de una salida digital según entrada analógica.
1 buzzer pasivo.
1 LDR (fotoresistencia GL5528, 540 nm, 10 k a 20 k)
1 resistencia de 10 k.
Resistencia en serie con ldr, entre Gnd y +5V. Punto medio a A0. El buzzer a Gnd y pin 11.
Descargar sketch: P6-SonidoLuz-M.ino
Proyecto 7: Termistor
Calibración de un sensor no lineal y medidas de tiempo.
1 termistor (modelo MF52-103, Ro=10k, B=3950 K).
1 resistencia de 10 k.
Resistencia a Gnd y en serie con el termistor a +5V. Punto medio a A0.
Descargar sketch: P7-Termistor-M.ino
Descargar sketch: P7-Termistor-M2.ino (versión 2, datos guardados en matriz)
Proyecto 8: Sensor ultrasónico
Medidas de distancia por ecos de ultrasonido.
1 módulo ultrasónico (HCSR04).
Conexiones: GND a Gnd, Vcc a +5V, Echo a pin 3, Trig a pin 2.
Descargar sketch: P8-Ultrasonido-M.ino
Proyecto 9: Sensor DHT11
Medidas de temperatura y humedad.
1 sensor DHT11.
Conexiones: GND a Gnd, Vcc a +5V, Data a pin 8.
Descargar sketch: P9-DHT11-M.ino
Proyecto 10: Display de 7 segmentos
Configuración de un display y uso para salidad de datos.
1 display LED de 7 segmentos.
7 resistencias de 220 o 330 Ohms.
Descargar sketch: P10-Display1-Digitos-M.ino
Descargar sketch: P10-Display1-Letras-M.ino
Descargar sketch: P10-Display1-Fotometro-M.ino (variante con LDR conectado igual que en proyecto 6)
Proyecto 11: Display LCD
Configuración de un display LCD para mostrar varias medidas y mensajes.
1 display LCD1602
1 sensor DHT11
1 resistencia de 220 o 330 Ohms
1 potenciómetros de 10 k
Las conexiones tal como se muestra en el dibujo.
Descargar sketch: P11-LCD-M.ino
Proyecto 12: Datalogger
Almacenamiento de datos en tarjeta de memoria externa.
1 Data logging shield para tarjeta SD
1 sensor DHT11
El shield se enchufa encima de la placa Arduino. El DHT11 se conecta igual que en el proyecto 9.
Las medidas se realizan sin necesidad del cable USB, pues los datos se almacenan en la tarjeta SD que debe estar insertada en el shield. Por supuesto se debe utilizar una batería de 9V para que la placa funcione.
Cada vez que la placa se encienda volverá a tomar medidas, las cuales se irán agregando a los datos previamente guardados en el mismo archivo de texto plano.
Para copiar los datos a la computadora se utiliza un adaptador de tarjeta SD para USB.
Descargar sketch: P12-Datalogger-M.ino
Proyecto 13: Nivel de agua
El sensor de nivel de agua se conecta a la entrada analógica A0.
Descargar sketch: P13-NivelAgua-M.ino
Proyecto 14: Joystick
Descargar sketch: P14-Joystick-M.ino
Proyecto 15: Sensor de presión
Sensor de Presión y Temperatura BMP180 o BMP085
Conexiones:
// VCC a 3.3V (NO 5.0V!)
// GND a Gnd
// SCL a A5
// SDA a A4
// EOC sin conectar
// XCLR reset sin conectar
Descargar sketch: BMP085-M.ino (sensor solo)
Descargar sketch: BMP085conDataLogger-M.ino (sensor con DataLogger)
//////////////
Descargar todos los proyectos en un zip
//////////////
Programación gráfica.
Hay muchos lenguajes para programar con bloques: Scratch para Arduino, Visualino, TortuBots, Ardublock.
Instalación de Scratch for Arduino (S4A):
- Descargar desde http://s4a.cat/ (según Sistema Operativo) e instalar.
- Desde la misma página descargar el firmware S4AFirmware16.ino
El firmware es un sketch de Arduino, el cual se carga en la placa como cualquier otro sketch utilizando el IDE de Arduino.
Una vez cargado el firmware en el Arduino, se abre el S4A y la placa ya está en condiciones de entender las instrucciones del programa gráfico.
Manual S4A en español por José Manuel Ruiz Gutierrez (PDF).
Algunos ejemplos en S4A que se comportan de modo similar a algunos de los proyectos anteriores:
Proyecto 1: LED
Descargar programa P1-LED.sb
Proyecto 3: LED RGB
Descargar programa P3-LED-RGB.sb
Usar pines 10, 11 y 12.
Proyecto 4: Entrada Analógica
Descargar programa P1-EntradaAnalogica.sb
Proyecto 7: Termistor
Descargar programa P1-Termistor.sb
Proyecto 14: Joystick
Descargar programa P1-Joystick.sb
El botón debe estar conectado en D2.