Taller de Hardware Libre con Arduino

Taller de Hardware Libre con Arduino Pablo Suárez Hernández [email protected] Adrián Rodríguez Vargas [email protected] Oficina de Software Libre

10 downloads 179 Views 833KB Size

Recommend Stories


Empezando con Arduino. Controla tu entorno con un microcontrolador PIIISA
Empezando con Arduino Controla tu entorno con un microcontrolador PIIISA 2014 08-01-2014 http://core.ugr.es/scpiiisa/ Arduino Intermedio: Presente

Story Transcript

Taller de Hardware Libre con Arduino Pablo Suárez Hernández [email protected]

Adrián Rodríguez Vargas [email protected] Oficina de Software Libre - http://osl.ull.es Universidad de La Laguna

Cursos ISLA: Mayo 2010

Índice Introducción Microcontroladores ¿Qué es Arduino? ¿Por qué Arduino? Versiones de Arduino ¿Qué puedo hacer con Arduino?

Manos a la obra Requisitos Instalación del IDE de Arduino ¡A cacharrear!

Índice (II) Ejercicios: Control de LED Sensores digitales Sensores analógicos Actuadores Comunicación con Arduino

Realización de pequeño proyecto

Microcontroladores Circuito integrado o chip Bajo coste y consumo energético Tres unidades: –

CPU



Memoria (RAM y ROM/EPROM/EEPROM/FLASH)



E/S

Microcontroladores Principales Fabricantes: Intel (8008, 8086) Microchip (Piccard) Motorola (68HC11) Freescale (PowerPC) Atmel (AVR)

¿Qué es Arduino? Placa de programable E/S analógicas y digitales Conexión RS-232 o USB Chip Atmega8 Arduino = Intel 286

¿Qué es Arduino?

¿Por qué Arduino? ¡Es libre! Multiplataforma (Linux, Windows, Mac) Rápido Prototipado Bootloader Extensible Bajo coste (25 € aprox.) Abundante documentación Comunidad

Versiones de Arduino LilyPad

Nano

Duemilanove

Mini

Mega

Arduino Duemilanove Características Técnicas: 14 pines E/S digitales 6 pines E/S analógicos 6 pines Salida PWM 16Kb o 32Kb memoria FLASH 1Kb RAM (actualmente 2 Kb) ATMega168 a 16Mhz Alimentación USB o Pila 9V

¿Qué hacer con Arduino? Objetos interactivos Sensores digitales: ●

Interruptor



Termostato



Switches (electromagnéticos, de luz)

Sensores analógicos: ● ●

Termistor (temperatura) LDR (luz)

Actuadores: ● ●

Leds Motores PaP

Conseguir Arduino España: Libelium: www.libelium.com BricoGeek: www.bricogeek.com e-lioness: www.e-lioness.com TuxBrain: www.tuxbrain.com Cana Kit: www.canakit.es Electan: www.electan.com Listado completo (Internacional): arduino.cc/en/Main/Buy

Primeros pasos Descargar el software http://arduino.cc/en/Main/Software

Descomprimir Abrir IDE de Arduino

Arduino IDE Compilar

Parar

Nuevo

Abir

Guardar

Subir Serial Monitor

Estructura #Definición de variables void setup(){ #Definición de pines } void loop(){ #Lógica de nuestro Arduino }

HelloLed: Montaje

HelloLed: Código #Definición de variables int ledPin =

13;

void setup(){ #Inicializamos el pin13 como salida pinMode(ledPin, OUTPUT); } void loop(){ #Se pone a HIGH (5 v) el pin13 digitalWrite(ledPin, HIGH); }

BlinkLed #Definición de variables int ledPin =

13;

void setup(){ #Inicializamos el pin13 como salida pinMode(ledPin, OUTPUT); } void loop(){ digitalWrite(ledPin, HIGH); #Ponemos a HIGH (5v) el pin13 delay(1000); #Esperamos 1 segundo digitalWrite(ledPin, LOW); #Ponemos a LOW (0v) el pin13 delay(1000); #Esperamos 1 segundo }

Pulsador: Montaje

Pulsador: Código const int ledPin =

13;

const int buttonPin = 2; void setup(){ pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop(){ buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }

Sensores Analógicos: Termistor LDR Potenciometro

Salidas Analogicas Salida Digital: 0 v, 5 v Salidas Analógicas: valor numérico Ejemplo Fadding (Fade in - Fade out) www.arduino.cc/en/Tutorial/Fading

Comunicación I: Serial Led RGB:

Comunicación I: Serial Serial.begin(9600);

← Establece comunicación a 9600 bauds

Serial.available();

← Devuelve el número de bytes por leer

Serial.read();

← Lee un byte del Serial

¿Cómo podemos leer un mensaje de más de 1 byte? http://arduino.cc/en/Reference/Serial

Comunicación I: Serial Formas de leer mensajes:

if( Serial.available() ) { val1 = Serial.read(); while( !Serial.available() ); val2 = Serial.read(); // and so on }

// protocol is "CCaaaa", two bytes of command, four bytes of args If (Serial.available() >= 6) { // command length is 6 bytes cmd0 = Serial.read(); cmd1 = Serial.read(); arg0 = Serial.read(); arg1 = Serial.read(); // ...etc... }

http://arduino.cc/en/Reference/Serial

Comunicación I: Serial Almacenar mensaje en buffer: const int BUFFER_SIZE = 100; char buffer[BUFFER_SIZE]; void loop() { ... memset(buffer, '\0', BUFFER_SIZE); while (Serial.available() > 0) { buffer[count] = Serial.read(); count++; delay(10); }

... }

http://arduino.cc/en/Reference/Serial

Comunicación II: Consola Comunicación desde programa externo: import serial print "Conectando a Arduino...", try: ser = serial.Serial("/dev/ttyUSB0", 9600) except: print "ERROR - No se ha podido conectar" print "OK" … ser.write(input)

← Escribe “input” en el puerto serial.

ser.read(n)

← Lee “n” bytes del puerto serial.

ser.close()

← Cierra la conexión con el puerto serial.

Comunicación III: IR Comunicación INFRAROJA:

http://tthheessiiss.wordpress.com/2009/08/05/dirt-cheap-wireless/

Motores PaP ¿Qué es un motor PaP? ¿Para qué usarlo? ¿Cómo funcionan? ¿Dónde comprarlos reciclarlos? Proyectos con motores PaP ●

Brazo robot



CNC's

Motores PaP

Motores PaP ●

Librería Stepper.h de Arduino #include miMotor Stepper(steps, pin1, pin2); miMotor Stepper(steps, pin1, pin2, pin3, pin4) miMotor.step(100);



Ejercicio

Relés ●

¿Para que sirve un relé?



¿Cómo funciona?



Distintos relés

I2C Protocolo de Comunicación en Serie Librería wiring.h: ●





Permite establecer una comunicación serial usando 2 pines digitales (SDA, SCL). El protocolo acepta múltiples dispositivos conectados al mismo bus. (ADDR). Modo estandar a 100Kbits por segundo.

Shifting ●

¿Qué es el shifting?



Tipos (Shift-in Shift-out)



¿Qué puede hacer por mi y cuando?



Integrado 74HC595N



Ejemplos



www.arduino.cc/es/Tutoriales/74HC595



www.arduino.cc/en/Tutorial/ShiftIn

Evaluación Están todos suspendidos, ...

...de momento

Otras herramientas ●

Fritzing (http://fritzing.org)



Pure Data (http://puredata.info)



Processing (http://processing.org)

Comunidades Arduino ●

Arduino.cc



Canarnova:

http://groups.google.com/group/canarnova

Bibliografía



Arduino.cc :)

Taller de Hardware Libre con Arduino Pablo Suárez Hernández Adrián Rodríguez Vargas

- [email protected]

- [email protected]

Oficina de Software Libre - http://osl.ull.es Universidad de La Laguna

¡Gracias por venir! Cursos ISLA: Mayo 2010

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.