TALLER DE ARDUINO
¿QUÉ ES ARDUINO? ¿PARA QUÉ SIRVE? ¿CONCEPTOS BÁSICOS? HERRAMIENTAS DOCENTES EJEMPLO DOMÓTICA
¿Qué es Arduino?
Plataforma de desarrollo de productos electrónicos. Abstracción del hardware. Multiplataforma (Linux, Mac y Windows) Al alcance de todos los usuarios: estudiantes, artistas, publicistas, ingenieros, etc
El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino (basado en Wiring) El entorno de desarrollo Arduino está basado en Processing
¿Para qué sirve Arduino?
Desarrollar programas que interactúan con el mundo Redes de sensores Robótica sencilla Alarmas Sistemas de comunicaciones
Arduino UNO Arduino LyliPad Arduino Mega 2560 Arduino FIO Arduino PRO Arduino Mega ADK
Arduino Ethernet Arduino Mega 2560 Arduino Nano Arduino Mega ADK
Arduino Uno Microcontrolador ATMega328 Funcionamiento 5V Voltaje Entrada de voltaje (recomendado) 7-12V Límites de voltaje 6-20V Digital I / O Pins 14 (de los cuales 6 proporcionar una salida PWM) 6 pines de entrada analógica DC Corriente de pines I / O 40 mA Memoria Flash de 32 KB (ATMega328) de los cuales 0,5 KB utilizado por el gestor de arranque SRAM 2KB (ATMega328) EEPROM 1KB (ATMega328) Velocidad del reloj de 16 MHz
Shields Un Shield es una placa que permite expandir funcionalidades a Arduino.
Conceptos básicos
Seleccionar tarjeta correcta: Tools/Board >> Arduino Uno
Seleccionar puerto serie:(Virtual) Depende del sistema operativo. Serial port >> tty.xxx Serial port >> COMx Si todo está correcto el led I/O 13 parpadea
Se ejecuta una sola vez Infinitamente Mensajes y errores
// Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; // the setup routine runs once when you press reset: // initialize the digital pin as an output. void setup() { pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
// include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(0, 1, 2, 3, 4, 5); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("hello, world!"); } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); // print the number of seconds since reset: lcd.print(millis()/1000);
#include "Ultrasonic.h" Ultrasonic ultrasonic(11,10);//(Trig,Echo) void setup() { Serial.begin(9600); } void loop() { //output the distance in cm Serial.println(ultrasonic.Ranging(CM)); delay(100);
Taller Scratch for Arduino
S4A es una modificación de Scratch que permite programar la plataforma de hardware libre Arduino de una forma sencilla. Proporciona bloques nuevos para tratar con sensores y actuadores conectados a una placa Arduino (que se trata como un tipo especial de sprite). Los componentes deben conectarse de forma determinada. OJO!!!!!
Taller Arduino
Funciones digitales digitalRead() digitalWrite() Leer un pin digital (0 ó 1) digitalRead(pin) int a = digitalRead (13); Escribir un pin digital con 1 ó 0 digitalWrite(pin,estado) digitalWrite (13,HIGH); digitalWrite (13,LOW);
Funciones análogas analogRead() Leer un valor análogo 0 a 1023 analogWrite() —> PWM Leer un valor análogo 0 a 1023 analogRead(pin) int a = analogRead (A0); Escribir un valor análogo 0 a 255 analogWrite(pin,valor de PWM) analogWrite (9, 134);
Librerías EEPROM - leer y escribir Ethernet - conectarse a Internet Cristal líquido - control de LCD SD - lectura y escritura de tarjetas SD Servo - control de servomotores SPI - comunicación por el bus SPI Paso a paso - control de motores Wire - enviar y recibir datos TWI/I2C
// Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; // the setup routine runs once when you press reset: // initialize the digital pin as an output. void setup() { pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
int pinLDR = 0; int valorLDR = 0; void setup() { Serial.begin(9600); } void loop() { valorLDR = analogRead(pinLDR); Serial.println(valorLDR);
if(valorLDR >= 612) { digitalWrite(pinLed1, HIGH); } else digitalWrite(pinLed1, LOW);
else if((valorLDR >= 223) & (valorLDR < 623)) { digitalWrite(pinLed1, HIGH); }
Herramientas docentes
123D Circuits es un programa libre online de simulación de circuitos que incluye placas ARDUINO. Permite introducir el código y evaluar funcionamiento del mismo.
FRITZING es un programa libre de automatización de diseño electrónico que busca ayudar a diseñadores y artistas para que puedan pasar de prototipos (usando placas de pruebas por ejemplo) a productos finales.
Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital.
ArduBlock es una aplicación ligera que te proporciona un sencillo entorno de programación visual para la plataforma Arduino. Puedes utilizarla para insertar diferentes elementos en la configuración de Arduino. Transforma la programación en un juego de bloques tipo TETRIS.
ardublock
ARDUINO http://arduino.cc/ SCRACTH FOR ARDUINO www.s4a.cat ARDUBLOCK http://blog.ardublock.com/ FRITZING http://fritzing.org/home/
PROCESSING http://www.processing.org/ PROYECTOS http://www.arduteka.com/ http://castilla.verkstad.cc
CONTACTO: ESCUELA POLITÉCNICA DE CUENCA www.epc.uclm.es Tlf: 969179124 Mail: politecnica.cu@uclm.es http://www.peysanet.com/