uso de hardware y software libre en laboratorios de ... · •ejemplos: –arduino: plataforma...

18
Uso de hardware y software libre en laboratorios de Ingeniería Química G. Luzón González, A. Fernández-Arteaga, D. Altmajer Vaz, A.I. García López, M. Fernández Serrano Dpto. Ingeniería Química Universidad de Granada

Upload: others

Post on 11-May-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Uso de hardware y software libre en laboratorios de Ingeniería Química

G. Luzón González, A. Fernández-Arteaga, D. Altmajer Vaz, A.I. García López, M. Fernández Serrano

Dpto. Ingeniería Química

Universidad de Granada

Page 2: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Proyecto

Proyecto financiado por el Vicerrectorado de Ordenación Académica y Profesorado de la Universidad de Granada: “13-202: Uso de hardware y software libre en la instrumentalización de prácticas de Ingeniería Química”

• Participantes: – G. Luzón González

– D. Altmajer Vaz

– A. Fernández-Arteaga

– M. Fernández Serrano

– A.I. García López

– M. García Román

– A. Burgos Cara

Page 3: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Objetivos del proyecto

• Identificar las prácticas más adecuadas para la instalación de sistemas de monitorización y/o control y seleccionar los equipos adecuados para llevarlos a cabo.

• Diseñar los sistemas de control y monitorización.

• Buscar y acoplar dispositivos de bajo coste adecuados para las prácticas seleccionadas.

• Programar el sistema de monitorización/control.

• Programar un interfaz de visualización/control para sistemas android.

• Elaborar de materiales docentes para compartirlos y que puedan ser aprovechados y mejorados por otros departamentos interesados.

Page 4: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Objetivos del proyecto

De cara al alumnado, el proyecto permitirá alcanzar los siguientes objetivos:

• Identificar las variables a controlar en las prácticas y el rango en el que debe realizar el control.

• Trabajar con sistemas de control y monitorización de sistemas, aplicando los conocimientos teóricos.

• Integrar conocimientos de distintas materias.

• Conocer y utilizar software y hardware libre, participando en las comunidades que lo forman para difundir su filosofía. OSL-UGR

Page 5: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Problemas

• Prácticas antiguas que funcionan bien pero con baja instrumentalización

• Toma manual de datos experimentales

• Bajo presupuesto para renovar prácticas

• Alto coste de equipos de medida y control

• Limitados conocimientos en electrónica y comunicación

Page 6: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Software libre

• Free Software Foundation: el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, y estudiar el mismo, e incluso modificar el software y distribuirlo modificado.

• Paquete ofimático: Open Office

• Cálculo numérico: Octave, Freemat, Scilab

• Paquetes estadísticos: R, PSPP

• Tratamiento de imágenes: Gimp

• …

Page 7: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Software libre

Page 8: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Hardware libre (open source hardware)

• Dispositivos de hardware cuyas especificaciones y diagramas esquemáticos son de acceso público.

• Aplicable la filosofía del software libre. • Ambos corresponden a las partes tangibles de un sistema

informático. • Ejemplos:

– Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

– Cámaras digitales reconfigurables de red: Elphel, Inc. – BUG, plataforma abierta de dispositivos electrónicos de

consumo – SquidBee: basado en Arduino para desarrollar redes de sensores – SHPEGS: generación eléctrica de bomba de calor solar libre

Page 9: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Arduino

• Placa con un microcontrolador y puertos de entrada/salida.

• Software: entorno de desarrollo (lenguaje de programación Processing/Wiring) y cargador de arranque, ejecutado en la placa.

Page 10: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Arduino

• Características:

– 16-84 MHz, según modelo/procesador

– Entradas analógicas 6-12 (según modelo)

– 14-54 entradas/salidas digitales, 6-12 pueden ser salidas de ancho de pulso modulado y usadas como salidas analógicas con circuitería mínima

– Cada placa puede operar independientemente, utilizando solo su compilador incorporado

Page 11: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Arduino: medida de caudal

// Code adapted by C. Gantt from PC Fan code written by Crenn @thebestcasescenario.com // http:/themakersworkbench.com http://thebestcasescenario.com http://seeedstudio.com volatile int NbTopsFan; //medida del pico alto de la señal int Calc; int flowmess = 2; //Pin donde se localiza el sensor void rpm () //Función llamada por la interrupción { NbTopsGiro++; //Mide subida y bajada de la señal del sensor } // El metodo setup() se ejecuta una vez al principio del programa void setup() { pinMode(flowmess, INPUT); //inicializa el pin digital 2 como entrada Serial.begin(9600); //Se inicializa el puerto de transmisión attachInterrupt(0, rpm, RISING); //se adjunta la interrupcion } // El ciclo loop() se ejecuta mientras el Arduino esté encendido void loop () { NbTopsGiro = 0; //Se pone a cero el contador de giros sei(); //Activa la interrupcion delay (1000); //Espera 1 segundo cli(); //Desactiva la interrupcion Calc = (NbTopsGiro * 60 / 7.5); //(Frecuencia x 60) / 7.5Q, = caudal en L/min Serial.print (Calc, DEC); //Muestra el caudal calculado Serial.println (" L/min"); //Muestra las unidades /retorno de linea

Page 12: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Arduino: medida de temperatura (NTC)

//define variables

int ntc=0; // sonda conectada a la entrada 0

int temperatura=0; //asigna a la variable temperatura el valor 0

//comienza la configuración

void setup()

{

Serial.begin(9600); // inica la comunicación con el puerto serie (pantalla de salida)

}

//bloque principal del programa, se repite continuamente

void loop()

{

temperatura=analogRead(ntc); // lee el valor de la entrada analógica entre 0 y 1024

temperatura= 224.55 - 28.9*log(temperatura);

Serial.print(“T/°C = ");

Serial.println(temperatura3);

delay(1000);

}

Page 13: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Arduino: medida de temperatura

//TMP36 Pin Variables int sensorPin = 0; //el pin analogico se conecta al voltaje de salida de la sonda //resolucion 10 mV // grado centigrado con 500 mV de offset para permitir temperaturas negativas // El metodo setup() se ejecuta una vez al principio del programa void setup() { Serial.begin(9600); //Se inicializa el puerto de transmisión } // El ciclo loop() se ejecuta mientras Arduino esta encendido void loop() { //getting the voltage reading from the temperature sensor int reading = analogRead(sensorPin); float voltage = reading * 5.0/1024.0; // muestra el voltaje leido, eliminar para solo lectura temperatura Serial.print(voltage); Serial.println(" V"); // muestra la temperatura float temp = (voltage - 0.5) * 100 ; //convierte de 10mV/°C con 500 mV de offset Serial.print(temp); Serial.println(" °C"); Delay(1000); //espera 1 segundo }

Page 14: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Arduino: medida de la temperatura (infrarrojos)

#include <i2cmaster.h>

void setup()

{

Serial.begin(9600);

i2c_init(); //Initialise the i2c bus

Serial.println("Return from i2c_init");

PORTC = (1 << PORTC4) | (1 << PORTC5);//enable pullups

}

void loop()

{

int dev = 0x5A<<1;

int data_low = 0;

int data_high = 0;

int pec = 0;

double temp=0;

int rep=5; //Number of data to read for calculate the average

for (int i=0;i<rep;i++)

{

i2c_start_wait(dev+I2C_WRITE);

i2c_write(0x07);

i2c_rep_start(dev+I2C_READ);

data_low = i2c_readAck(); //Read 1 byte and then send ack

data_high = i2c_readAck(); //Read 1 byte and then send ack

pec = i2c_readNak();

i2c_stop();

//This converts high and low bytes together and processes temperature, MSB is a error bit and is ignored for temps

double tempFactor = 0.02; // 0.02 degrees per LSB

double tempData = 0x0000;

// This masks off the error bit of the high byte, then moves it left 8 bits and adds the low byte.

tempData = (double)(((data_high & 0x007F) << 8) + data_low);

tempData = (tempData * tempFactor)-0.01;

tempData = tempData - 273.15;

temp=temp+tempData;

delay(100/rep);

}

temp=temp/rep;

Serial.println(temp); //Print temp in degrees C to serial

}

Page 15: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Miniautómata PLC Arduino Winkhel

• Basado en un microprocesador ATMega328

• Bootloader de Arduino: se programa desde el IDE Arduino

Page 16: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Miniautómata PLC Arduino Winkhel

• Características: – 2 salidas a relé 16 A – 6 salidas a relé 10 A – 2 salidas 24 V aisladas. Configurables mediante jumper como salidas TTL (5V) – 3 entradas digitales 12..24 V DC – 3 pines GPIO. Configurables como entradas/salidas analógicas/digitales – Puerto RS 485. Conexión de hasta 128 equipos en un mismo bus sin repetidor – Puerto USB – Puerto I2C con conector RJ11 – Alimentación: 24 V DC. – Para programar, admite alimentación mediante USB (no se activan los relés) – Resistencia terminadora en placa mediante jumper – Montaje en carril DIN normalizado – Bornas enchufables. – Conector para expansión I/O

Page 17: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo

Conectando dispositivos móviles

• Modo de conexión: wifi/bluetooth

• Sistema operativo:

• ¿Dificultad técnica?

• Grandes posibilidades

Page 18: Uso de hardware y software libre en laboratorios de ... · •Ejemplos: –Arduino: plataforma libre de computación física basada en una tarjeta de I/O y un entorno de desarrollo