Seminario Arduino UAH - CAPTA

1.062 visualizaciones

Publicado el

Presentación del Seminario CAPTA sobre Arduino de la Universidad de Alcalá de Henares y Telefónica

Publicado en: Dispositivos y hardware
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
1.062
En SlideShare
0
De insertados
0
Número de insertados
90
Acciones
Compartido
0
Descargas
63
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Seminario Arduino UAH - CAPTA

  1. 1. INTRODUCCIÓN Proyecto Arduino ● Nace en 2005 ● David Cuartielles y Massimo Banzi Problemas existentes ○ Limitación tecnológica ■ El usuario no es experto ■ Las plataformas existentes son muy complejas, especializadas o cerradas. ○ Limitación económica ■ El usuario final cambia: particulares, equipos docentes, entidades sin ánimos de lucro, ... Solución ○ Crear nuestra propia plataforma. Filosofía OpenSource. Compartir conocimiento.
  2. 2. INTRODUCCIÓN Desarrollando la idea - Placa Arduino "Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos." Elementos básicos ● Entradas ● Salidas ● Entrada de programación
  3. 3. PLACAS ARDUINO Evolución de placas Placa Original ● Impresión por una cara ● 14 salidas digitales ● 6 salidas analógicas ● Pines de alimentación de 5V y 9V ● Puerto ICSP (in circuit serial programming) ● Puerto serie DB9 Placa Severino ● Impresión por una cara ● 14 salidas digitales ● 6 salidas analógicas ● Pines de alimentación de 5V y 9V ● Puerto ICSP ● Puerto serie DB9 ● Puerto serie rx-tx-gnd
  4. 4. PLACAS ARDUINO Evolución de placas Arduino Serial ● Impresión por dos caras ● 14 salidas digitales ● 6 salidas analógicas ○ Pines de alimentación de 5V y 9V ○ Puerto ICSP ○ Puerto serie DB9 ○ Puerto serie rx-tx-gnd Arduino serie USB ● Versiones: Arduino USB, Arduino USB 2.0, Extreme, Extreme v2, NG, NG Rev. ● Incorporan pines hembra. ● Masa de rejilla. ● USB FTDI R232RC ● Atmega128
  5. 5. PLACAS ARDUINO Evolución de placas Arduino Diecimila y Duemilanove ● Reset desde PC ● Regulador de baja caída ● Fusible reseteable ● Pines de alimentación de 5V y 3.3V ○ Mayor compatibilidad con sensores Arduino Mega ● Atmega1280 - 16MHz ● 44 entradas/salidas digitales ○ 14 de ellas PWM ● 16 entradas digitales ● 4 UARTS ● Puerto ICSP ● Comunicación SPI (serial peripheral interface)
  6. 6. PLACAS ARDUINO Evolución de placas Arduino Fio ● Orientado a aplicaciones inalámbricas ● Atmega328P - 8MHz ● 14 Entradas/Salidas digitales ○ 6 de ellas PWM ● Pines de alimentación de 3.3V ● Conector para baterías ion ● Conector para módulos xbee Arduino LilyPad ● Diseñado para prendas textiles ● ARmega168V / ATmega328V - 8MHz ● 14 Entradas/Salidas digitales ○ 6 de ellas PWM
  7. 7. PLACAS ARDUINO Evolución de placas Arduino BT (bluetooth) ● Incorpora módulo bluetooth ● Atmega168 ● 14 Entradas/Salidas digitales ○ 6 de ellas PWM ● Pines de alimentación de 3.3V y 5V ● Convertidor DC-DC (1.2V - 5.5V) ● Pin 7 conectado con reset bluetooth ● Baudrate a 115200 bps ● Sin protección de carga o polarización Arduino Nano ● Idénticas características que Duemilanove ● Micro Atmega168 ó Atmega328 ● Alimentación a través de Mini-USB
  8. 8. PLACAS ARDUINO Evolución de placas Arduino Mini ● Basado en Atmega168 ● 14 Entradas/Salidas digitales ○ 6 de ellas PWM ● 8 Entradas analógicas ● Sin protección de carga o polarización ● Programable con el adaptador MiniUSB Arduino Mini USB ● Equivalente a Arduino Mini ● Se añade conectividad a través de USB
  9. 9. PLACAS ARDUINO Arduino no está sólo Microcontroladores ● Microchips PIC ● Basic Stamp ● BX-24 de Netmedia ● Phidgets ● ... Otros proyectos similares ● Programma 2003 ● Wiring - semilla Arduino ● Instantsoup ● Processing Basic Stamp $99 $30 PIC BX-24
  10. 10. ARDUINO Conociendo Arduino (Duemilanove) Elementos en la placa AREF Voltaje de referencia para entrada analógica Masa I/O digitales Valores high/low. PWM para escritura analógica USB PWM Serie Comunicación serie tx/rx Comunicación con el PC
  11. 11. ARDUINO Conociendo Arduino (Duemilanove) Elementos en la placa Alimentación externa Batería, pared Reset Extensión de botón reset 3V3,5V Fuentes de alimentación de 3.3V y 5V estabilizados Vin Conecta con Alimentación externa In analógicas Lecturas analógicas 0-1023 niveles
  12. 12. ARDUINO Referencia del lenguaje Estructura ● setup( ) ○ Al inicio de un sketch ○ Inicia variables, estado de pins ○ inicio de librerías, ... ● loop() ○ Función principal del sketch. ○ Ejecución indefinida Estructuras de control ○ if ○ if...else ○ for ○ while ○ do...while ○ switch case ○ break ○ continue ○ return ○ Basado en C/C++ ○ Vincula la librería AVR Libc
  13. 13. ARDUINO Referencia del lenguaje Más sintáxis ○ ; (punto y coma) ○ {} (llaves) ○ // (comentarios de una sola línea) ○ /* */ (comentarios multilínea) ○ #define (definición de precompilador) ○ #include(inclusión de código externo) Operadores aritméticos ○ = (operador de asignación) ○ + (suma) ○ - (resta) ○ * (multiplicación) ○ / (división) ○ % (módulo)
  14. 14. ARDUINO Referencia del lenguaje Operadores de comparación Operadores booleanos ○ == (igual que) ○ != (distinto que) ○ < (menor que) ○ > (mayor que) ○ <= (menor o igual que) ○ >= (mayor o igual que) ○ && ('y' lógico) ○ || ('o' lógico) ○ ! (negación lógica) Operadores de acceso a punteros ○ * operador de indirección ○ & acceso a memoria Operadores a nivel de bits ○ & ('y' a nivel de bits) ○ | ('o' a nivel de bits) ○ ^ (xor a nivel de bits) ○ ~ (not a nivel de bits) ○ << (desplazamiento de bits a la izquierda) ○ >> (desplazamiento de bits a la derecha)
  15. 15. ARDUINO Referencia del lenguaje Operadores compuestos ○ ++ (incremento) ○ -- (decremento) ○ += (suma compuesta) ○ -= (resta compuesta) ○ *= (multiplicación compuesta) ○ /= (división compuesta) ○ &= ('y' a nivel de bits compuesto) ○ |= ('o' a nivel de bits compuesto) Constantes ○ HIGH | LOW ○ INPUT | OUTPUT ○ true | false ○ constantes enteros ○ constantes en coma flotante
  16. 16. ARDUINO Referencia del lenguaje Tipos de datos ○ void ○ boolean ○ char ○ unsigned char ○ byte ○ int ○ unsigned int Conversión ○ word ○ long ○ unsigned long ○ float ○ double ○ string ○ array ○ char() ○ byte() ○ int() ○ word() ○ long() ○ float()
  17. 17. ARDUINO Referencia del lenguaje Ámbito de variables y cualificadores ○ variables locales ○ variables globales ○ static ○ volatile ○ const Funciones ● E/S digital ○ pinMode() ○ digitalWrite() ○ digitalRead() ● E/S analógica ○ analogReference() ○ analogRead() ○ analogWrite() ● E/S avanzada ○ tone() ○ notone() ○ shiftOut() ○ pulseIn()
  18. 18. ARDUINO Referencia del lenguaje Funciones ● Tiempo ○ millis() ○ micros() ○ delay() ● Cálculo ○ min() ○ max() ○ abs() ○ constrain() ○ map() ○ pow() ○ sqrt() ● Trigonometría ○ sin(),cos(),tan() ● Números aleatorios ○ randomSeed() ○ random() ● Bits y Bytes ○ lowByte() ○ highByte() ○ bitRead() ○ bitWrite() ○ bitSet() ○ bitClear() ○ bit()
  19. 19. ARDUINO Referencia del lenguaje Funciones ● Interrupciones externas ○ attachInterrupt() ○ dettachInterrupt() ● Interrupciones ○ interrupts() ○ noInterrupts() ● Comunicación / Serial ○ begin() ○ end() ○ available() ○ read() ○ flush() ○ print() ○ println() ○ write()
  20. 20. ARDUINO Conociendo Arduino Framework Control de sketch Edición de sketch Consola de salida y errores
  21. 21. ARDUINO Conociendo Arduino Framework - Configuración previa ¿"Quemar" el cargador de inicio (bootloader)? No suele ser necesario Selección del tipo de placa ○ Arduino Uno ○ Arduino Duemilanove ○ Arduino Diecimila ○ ... Selección del puerto serie correcto
  22. 22. ARDUINO Conociendo Arduino Hola Mundo Declaración de variables: int pin_led = 13; //asociamos pin a variable Definición de configuración: void setup(){ pinMode(pin_led,OUTPUT); } //configuramos dicho pin en modo salida Bucle principal del programa: void loop(){ //alternamos estados en salida con retardo digitalWrite(pin_led,LOW); delay(1000); digitalWrite(pin_led,HIGH); delay(1000); }
  23. 23. ARDUINO Conociendo Arduino Comunicación Serie Declaración de variables: char *mensaje = "Hola mundo"; int tecla_byte; Definición de configuración: void setup(){ Serial.begin(9600); } Bucle principal del programa: void loop(){ Serial.println(mensaje); while(!Serial.available()){} if(Serial.available()){ tecla_byte = Serial.read(); Serial.println(tecla_byte, DEC); } }
  24. 24. ARDUINO - EL ARTE DIGITAL PROCESSING Y LA INTERACTIVIDAD ● Lenguaje de programación ● Entorno de desarrollo ● Orientado a la enseñanza, diseño digital y proyectos multimedia
  25. 25. ARDUINO - EL ARTE DIGITAL INTERACTIVIDAD ● Exposiciones, ferias de arte ● Educación, publicidad kasabian futbol hero rhifid speakers game of life virtual gravity
  26. 26. ARDUINO - MERCADO ASOCIADO PROCESSING Y LA INTERACTIVIDAD ● Placas de prototipado ● Arte en venta ● Soluciones a medida, servicios ardupilot photoduino quadcopter arducopter winem airpiano
  27. 27. ARDUINO - HOGAR DIGITAL - AUTONOMÍA PERSONAL - SENSORES HOGAR DIGITAL - AUTONOMÍA PERSONAL ● DOMÓTICA: domus (casa) + tica (automática) ● Autonomía Personal: ○ Tomar decisiones propias que afectan a su vida personal. ○ Poder vivir en el lugar que uno quiera.
  28. 28. ARDUINO - HOGAR DIGITAL - AUTONOMÍA PERSONAL - SENSORES HOGAR DIGITAL - AUTONOMÍA PERSONAL ● Ejemplo de dispositivos de sistemas de domótica ● Posibles aplicaciones relacionadas con la autonomía personal ○ Discapacidades: ■ Movilidad - silla inteligente ■ Mobiliario inteligente ■ ... ○ Enfermedades: ■ Geolocalización ■ Aplicaciones de alerta ■ Atención remota ■ ... ○ Otras ■ Control de niños ■ ...
  29. 29. ARDUINO - HOGAR DIGITAL - AUTONOMÍA PERSONAL - SENSORES Sensores ● Sensor de humedad ○ Control de toldos, ventanas, persianas... ○ Riego de plantas ○ Alerta de inundación Domótica Autonomía personal Digital Consumo 30 μW 0-100% HR Temperatura Analógico Salida Lineal AREF 5V Consumo 200 μW 0-100% HR Temperatura ● Sensor de luminosidad ○ Control de luces, ventanas, persianas... ○ Alerta de seguridad ○ Alerta de Analógico 1kOhm - 10kOhm 0-100% HR Temperatura Comportamiento similar a transistor
  30. 30. ARDUINO - HOGAR DIGITAL - AUTONOMÍA PERSONAL - SENSORES Sensores ● Sensor de presión atmosférica ○ Control de toldos, Ventanas, Persianas... ○ Riego de plantas, Aviso meteorológico... Domótica Autonomía personal Digital Conexión I2C Bajo consumo 30KPa - 110KPa Temperatura Digital Conexión SPI Bajo consumo 30KPa - 120KPa Temperatura ● Sensor de presencia ○ Control de luces, Control de energía, calefacción... ○ Alerta de seguridad ○ Accionamientos mecánicos Comportamiento similar a transistor Comunicación Serie 9600bps Salida analógica 10mV/pulgada 0-255 niveles (6,45 metros)
  31. 31. ARDUINO - HOGAR DIGITAL - AUTONOMÍA PERSONAL - SENSORES Sensores ● Sensor de temperatura ○ Control de calefacción, ventanas, persianas,... ○ Alertas de seguridad, Aplicaciones gráficas ○ Accionamiento de sistemas contra hielo ○ Seguimiento temperatura pacientes Domótica Autonomía personal Resistencia Analógico 10kOhm Analógico Salida Lineal 10mV/ºK 2.98V = 298ºK = 25ºC Digital Resolución 12 bits (0.065ºC) -25ºC / 80ºC Conexión I2C Atmega + sensor Atmega 328P Sensor temp. infrarrojo Solución pequeño tamaño
  32. 32. ARDUINO - HOGAR DIGITAL - AUTONOMÍA PERSONAL - SENSORES Sensores ● Sensor biométrico ○ Control de acceso e identificación ○ Alerta y control de intoxicación (calderas) Domótica Autonomía personal Analógico Detector Monóxido de carbono 20-2000ppm Digital Comunicación serie 9600bps Devuelve una única id Analógico Detector partículas de humo 0.5V/0.1mg/m3
  33. 33. ARDUINO - HOGAR DIGITAL - AUTONOMÍA PERSONAL - SENSORES Sensores ● Acelerómetros, giroscopios, brújulas, GPS ○ Anticipación y control del sistema domótico ○ Control automático de dispositivos móviles ○ Localización de personas, Captura de movimientos Domótica Autonomía personal Acelerómetro Analógico Dos ejes Salida lineal Acelerómetro Analógico Tres ejes +/- 3G eje vertical (z) Salida lineal Giroscopio Analógico Dos ejes Salida lineal Velocidad angular 500º/s GPS Comunicación serie NMEA / SIRF 20 canales 5m de precisión Brújula Comunicación I2C Resolución 0.2º
  34. 34. ARDUINO - HOGAR DIGITAL - AUTONOMÍA PERSONAL - SENSORES Comunicación ● Solución inmediata - Comunicación Puerto Serie Domótica Autonomía personal ○ Ideal para comunicación con periféricos (junto con I2C y SPI) ○ Tasas de transferencia hasta 120kbps ○ Inconveniente: conexión cableada Comunicación puerto serie Ratio de tx: 2Mbps Alcance < 10m Comunicación Serie / SPI Hasta 4Mbps TCP/IP wpa2 8Mb memoria Soporte TCP, UDP, FTP, ... ● Bluetooth ○ Transferencia de datos entre dispositivos ○ Múltiples aplicaciones ● Wifi 802.11b/g ○ Control remoto de sistemas domóticos ○ Atención remota, vigilancia, seguimiento médico
  35. 35. ARDUINO - HOGAR DIGITAL - AUTONOMÍA PERSONAL - SENSORES Comunicación Domótica Autonomía personal Comunicación puerto serie Potencia: 1mW 256kbps max Alcance: 100m ● Xbee / Zigbee ○ Creación de redes sensoriales móviles ○ Hogar digital vs Comunidad digital ○ Información en tiempo real "sobre la marcha" Comunicación puerto serie Potencia: 50mW 256kbps max Alcance: 1600m Comunicación puerto serie Potencia: 1W 256kbps max Alcance: 64km
  36. 36. ARDUINO - HOGAR DIGITAL - AUTONOMÍA PERSONAL - SENSORES Más demos
  37. 37. + INFORMACIÓN Páginas de interés ● http://arduino.cc/es ● http://processing.org ● http://wiring.org.co/ ● http://www.creativeapplications.net ● http://www.instructables.com/ Contacto e.marin.izquierdo@gmail.com
  38. 38. Gracias por vuestra atención Eduardo Marín Izquierdo

×