viernes, 30 de octubre de 2015

Enviar correo con Matlab y Gmail


UserName = 'emisor@gmail.com';
passWord = '';
setpref('Internet','E_mail',UserName);
setpref('Internet','SMTP_Server','smtp.gmail.com');
setpref('Internet','SMTP_Username',UserName);
setpref('Internet','SMTP_Password',passWord);
props = java.lang.System.getProperties;
props.setProperty('mail.smtp.auth','true');
props.setProperty('mail.smtp.socketFactory.class', ...
                  'javax.net.ssl.SSLSocketFactory');
props.setProperty('mail.smtp.socketFactory.port','465');
emailto = 'receptor@gmail.com'; % recipient's email
sendmail(emailto, 'My Subject', 'My message');

miércoles, 23 de septiembre de 2015

Obtener imagen de Cámara IP con Matlab


% Obtener imagen de cámara IP
clc;
clear;
figure;
while(1)
%--Definición de variables
url='http://192.168.2.157/image/jpeg.cgi'; 
snapshot1='image_cam_1.jpg';
user='admin';
pass='admin';
%--
urlwrite(url,snapshot1,'Authentication','Basic','Username',user,'Password',pass);
I1 = imread(snapshot1);
imshow(I1);
delete(snapshot1);
end

Sensor HC-SR04 de ultrasonido y Arduino Mega 2560

#define PIN_TRIG 12
#define PIN_ECO  13

void setup() {
  // Inicializacion de la comunicacion serial
  Serial.begin (9600);
  // Inicializacion de pines digitales
  pinMode(PIN_TRIG, OUTPUT);
  pinMode(PIN_ECO, INPUT);
}

void loop() {
  long duracion, distancia;  // Variables
  /* Hacer el disparo */
  digitalWrite(PIN_TRIG, LOW);  
  delayMicroseconds(2); 
  digitalWrite(PIN_TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(PIN_TRIG, LOW);
  /* Recepcion del eco de respuesta */
  duracion = pulseIn(PIN_ECO, HIGH);
  /* Calculo de la distancia efectiva */
  distancia = (duracion/2) / 29;
  /* Imprimir resultados a la terminal serial */
  if (distancia >= 500 || distancia <= 0){
    Serial.println("Fuera de rango");
  }
  else {
    Serial.print(distancia);
    Serial.println(" cm");
  }  
  // Retardo para disminuir la frecuencia de las lecturas
  delay(500);  
}

Leer entrada analógica en Arduino con potenciómetro

Lee la entrada analógica A0 cuyo valor está determinado por un potenciómetro y lo muestra a través de la consola serial.
void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(A0);
  Serial.println(sensorValue);
  delay(1);
}

Encender un led con Arduino

void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

miércoles, 21 de enero de 2015

Operador de resolución de visibilidad en C++

El operador de resolución de visibilidad (scope resolution operator) '::' permite acceder a una variable global que está solapada por una variable local del mismo nombre.
#include <iostream>

using namespace std;

int variable = 10;

int main()
{
 int variable = 5;
 cout << "La variable local es " << variable << endl;
 cout << "La variable global es " << ::variable;
 cin.get();
 return 0;
}
Este operador no permite acceder a una variable local que está declarada en un bloque más exterior y que se encuentra oculta por una variable del mismo nombre.