You are on page 1of 6

1.

Processing

2. Propuesta de Diseo

7.1 Consumo de Potencia


El Arduino Leonardo es una placa que consume muy baja potencia,
esencialmente con un suministro de 3.3 Voltios tiene un consumo de
corriente mxima de 50 mA.
3. Proteccin contra picos de corriente en el USB

La placa Arduino Leonardo posee un polifusible reseteable que protege


los puertos USB de nuestro ordenador de las variaciones de corriente.
Aunque, si no todos, la mayora de los ordenadores ofrecen una
proteccin interna, el fusible nos proporciona una proteccin extra. Si
aplicamos ms de 500 mA al puerto USB del ordenador, el fusible
automticamente corta la conexin hasta que el cortocircuito o
sobrecarga desaparezca.
4. Diseo del HMI
La interfaz Hombre-Mquina se desarroll con el IDE desarrollado por el
MIT el 2001 y mejorado y soportado por Ben Fry & Caser Reas a partir
del 2004.

import arduinoscope.*;
import processing.serial.*;
import controlP5.*;
// Cuantos canales de medicion quieres?.
Oscilloscope[] scopes = new Oscilloscope[1];
Serial port;
ControlP5 controlP5;
ControlP5 cp5;
PFont fontLarge;
PFont fontSmall;
int LINE_FEED=10;
int[] vals;
int Time_Div = 100;
for (int i=0;i<scopes.length;i++){
int[] posv = new int[2];
posv[0]=0;
posv[1]=dimv[1]*i;
scopes[i] = new Oscilloscope(this, posv, dimv);
scopes[i].setLine_color(color(125, 155, 255));
controlP5.addButton("pause",1,dimv[0]+10,posv[1]+10,32,20).setId(i);
controlP5.addButton("logic",1,dimv[0]+52,posv[1]+10,29,20).setId(i+50);
controlP5.addButton("save",1,dimv[0]+92,posv[1]+10,29,20).setId(i+100);
}

port = new Serial(this, Serial.list()[0], 128000);


port.clear();
port.bufferUntil(LINE_FEED);
}
void draw()
{
frameRate(Time_Div);
background(30);
for (int i=0;i<scopes.length;i++){
scopes[i].addData(vals[i]);
scopes[i].draw();
float multiplier = scopes[i].getMultiplier()/scopes[i].getResolution();
// Convertir los valores del Arduino a Voltajes
float minval = scopes[i].getMinval() * multiplier;
float maxval = scopes[i].getMaxval() * multiplier;
int[] values = scopes[i].getValues();
float pinval = values[values.length-1] * multiplier ; //valor numerico
mostrado
scopes[i].drawBounds();
stroke(255);
int[] pos = scopes[i].getPos();
int[] dim = scopes[i].getDim();
line(1, pos[1], width, pos[1]);
fill(255);
textFont(fontLarge);
text(pinval, width-60, pos[1] + dim[1] - 10);
textFont(fontSmall);
text("min: " + minval, dim[0] + 10, pos[1] + 40);
text("max: " + maxval, dim[0] + 10, pos[1] + 48);
fill(scopes[i].getLine_color());
text("pin: " + i, dim[0] + 10,pos[1] + dim[1] - 10);
}
int[] dim = scopes[0].getDim();
stroke(255);
line(dim[0], 0, dim[0], height);
controlP5.draw();
}
void controlEvent(ControlEvent theEvent) {
int id = theEvent.controller().id();
if (id < 50){
scopes[id].setPause(!scopes[id].isPause());
}else if (id < 100){
scopes[id-50].setLogicMode(!scopes[id-50].isLogicMode());
}else if(id < 150){
String fname = "data"+(id-100)+".csv";
scopes[id-100].saveData(fname);
println("Saved as "+fname);
}
}

void serialEvent(Serial p) {
String data = p.readStringUntil(LINE_FEED);
if (data != null) {
println(data);
vals = int(split(data, ' '));
}
}

5. Trabajos Futuros
6. Conclusiones Y Comparaciones
7. Preguntas

You might also like