¿Qué es Inteligencia Artificial?

La Inteligencia Artificial (IA) estudia el comportamiento inteligente de las máquinas.

  • El comportamiento inteligente supone percibir, razonar, aprender, comunicarse y actuar en entornos complejos
  • Una meta a largo plazo de la IA es desarrollar máquinas capaces de hacer esto igual o mejor que los humanos

¿Un robot futbolista tiene un comportamiento inteligente? ¿Si es capaz de ir por la pelota y llevarla a la portería contraria podría considerarse que si lo es?

¿Pueden pensar las máquinas?

  • Pregunta que ha interesado tanto a filósofos como a científicos e ingenieros
  • Depende de cómo se definan las palabras máquina, pensar (Alan Turing) y pueden

Estas preguntas y respuestas se presentan como parte del material usado en la asignatura Inteligencia Artificial, en el tema de introducción, que el autor impartió algunas veces a nivel universitario. Abarca brevemente temas como ¿qué es la inteligencia artificial? ¿pueden pensar las máquinas?, algunas aproximaciones a lo que implica la inteligencia artificial, así como una breve historia de la IA.

Presentation · June 2009
DOI: 10.13140/RG.2.2.31841.30565
Disponible en https://www.researchgate.net/publication/317244264.

Instalación de Java Development Kit en Windows XP/Vista/7

El objetivo de esta guía es mostrar al programador nuevo en el lenguaje Java cómo instalar y poner a punto el Java Development Kit Standard Edition en Windows XP/Vista/7, con la finalidad de poder compilar y ejecutar aplicaciones de consola (programas que corren en una ventana de símbolo de sistema).

public class Hola {
  public static void main(String[] args) {
    System.out.println("Hola mundo");
  }
}

Presentation February 2010
DOI: 10.13140/RG.2.2.35144.32004
Disponible en https://www.researchgate.net/publication/317275548

¿Cómo construir un dispositivo para monitoreo ambiental con Arduino y el Internet de la cosas?

Por Ana Luisa Balderas García
4to semestre de Bachillerato
Colegio de Bachilleres Simón Bolívar del Sureste

Participante en el Programa de Fomento al Interés por la Carrera Científica en Niños y Jóvenes con el Mtro. Julio Sandria en el Instituto de Ecología, A.C.

Dí­a 1

Aprendí los principios básicos del Arduino. Sus caracterí­sticas, conexiones, su enlace a la computadora y el lenguaje de programación a utilizar.

Realice ejercicios con un programa base (uno predeterminado). Este programa ordenaba a la tarjeta (Arduino) que encendiera un led y lo apagara con un tiempo de espera determinado entre cada orden. Ejercicio: El led enciende para dar una señal de SOS en código morse.

Dí­a 2

¿Qué es el cambio climático?, y ¿Qué es el monitoreo ambiental?

  1. El cambio climático es la alteracion de proporcion y composición de gases de efecto invernadero que atrapan el calor de la atmósfera.
  2. El monitoreo ambiental discute desarrollos técnicos y el surgimiento de datos de monitoreo ambiental, principalmente en el diseño de sistemas de monitoreo y en el uso de la información recabada, analizando consecuencias del manejo de recursos naturales y riegos de la contaminación.

Trabajamos con 3 sensores; el DHT22, que mide la humedad y temperatura, el BMP180, que mide la presión barométrica, la temperatura y la altura en metros sobre el nivel del mar; y el sensor de luz, con valores de luz del 0 al 1023, teniendo como referencia que el 0 es total iluminación y el 1023 para obscuridad.

Se tení­a programas base para cada uno de los sensores, y se descargaron librerías para poder trabajarlos.

Ejercicio: Enlazar dos programas en uno, haciendo trabajar dos sensores al mismo tiempo. Los programas se entrelazaron., tomando las instrucciones del algoritmo base que el otro no tenía y eran fundamentales para su funcionamiento.

Ejercicio: Acoplar el tercer sensor. Se utilizó un Protoboard para anexar las conexiones del tercer sensor y modificar el programa. Se conectó a internet para el registro de datos con una tarjeta de red, con entrada para cable Ethernet.

Dí­a 3

El Internet de las Cosas (Internet of Things, IoT), es una iniciativa global para la interconexión digital de objetos cotidianos mediante internet, la cual permite subir datos a un servidor para que se almacenen. El maestro Julio César Sandria Reynoso generó un programa en donde los datos obtenidos pasan a un servidor del INECOL y en otro servidor de forma gratuita en el IoT.

En conclusión, este prototipo nos sirve para monitorizar variables que pueden reflejar el cambio climático y estar disponibles en servidores gratuitos.

Instalación de WampServer 3

Esta presentación muestra la instalación de WampServer 3, el cual es un ambiente de desarrollo para Windows que permite crear aplicaciones web con Apache2, PHP y bases de datos MySQL. También se muestra con ejemplos el uso de WampServer. Este material es parte de los cursos “Programación Web” y “Diseño de Bases de Datos Relacionales” que el autor ha impartido a estudiantes de nivel licenciatura y maestría en varias ocasiones.

Presentation · October 2016
DOI: 10.13140/RG.2.2.30976.23042
La intención de esta entrada es tener un punto de referencia sobre la instalación de Apache, MySQL y PHP en Windows, lo que nos permitirá tener un ambiente de desarrollo de aplicaciones web y de bases de datos para proyectos y aplicaciones en robótica e internet de las cosas, entre otras.

Sensor de luz con Arduino UNO

En esta página se muestra el uso del sensor de luz (Light Sensor Brick) con Arduino UNO. Este sensor puede funcionar como sensor analógico o sensor digital. Aquí se ejemplifica el uso analógico, con valores entre 0 y 1023.

Material usadoLightSensorBrick

1 Arduino UNO
1 Sensor de luz (Ligth Sensor Brick)
3 Cables hembra-macho

El sensor tiene una fotorresistencia, la cual se usa para detectar la cantidad de luz en el ambiente. También tiene un interruptor, con el cual se configura el sensor para enviar valores digitales o analógicos. Para el programa siguiente debe estar en la posición A (analógico).

Programa LightSensorBrick.ino

/* LightSensorBrick.ino
* Julio C. Sandria Reynoso - 24-Mayo-2017
* Este programa monitorea un sensor de luz del tipo
* Light Sensor Brick
*/

int lightValue = 0; // Muy iluminado 0..1023 Muy obscuro
 
void setup() {
  pinMode(A0, INPUT);
  Serial.begin(9600);
  Serial.println("Iniciando programa...");
  Serial.println("Valor\tSituacion");
}

void loop() {
  lightValue = analogRead(A0);
  Serial.print(lightValue);
  Serial.print("\t");
  if( lightValue < 205 )
    Serial.println("Muy iluminado");
  else if( lightValue < 410 )
    Serial.println("Iluminado");
  else if( lightValue < 615 )
    Serial.println("Sombreado");
  else if( lightValue < 820 )
    Serial.println("Obscuro");
  else
    Serial.println("Muy obscuro");
  delay(1000);
}

 

Sensor de presión BMP180 con Arduino UNO

BMP180En esta página se muestra el uso del sensor de presión barométrica BMP180 con Arduino UNO. Con este sensor también se puede obtener la temperatura y altura sobre el nivel del mar.

Material usado

1 Arduino UNO
1 Sensor BMP180
4 Cables hembra-macho

Libería

SFE_BMP180.zip que se puede descargar de esta misma página. La página oficial de la librería está en la dirección https://github.com/sparkfun/BMP180_Breakout.

El programa que se muestra aquí está basado en el Tutorial sensor de presión barométrica, en el cual se hace una muy buena explicación de la librería.

Diagrama de conexión del sensor BMP180 con Arduino UNO:

UNO-and-BMP180

Programa SensorBMP180.ino

/* 
* SensorBMP180.ino
* Julio C. Sandria Reynoso - 23-Mayo-2017
* Este programa toma la Temperatura y Presión de un sensor
* BMP180 conectado a Arduino UNO
* Esta basado en el Tutorial sensor de presion barometrica
* http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-presi%C3%B3n-barom%C3%A9trica-BMP180.html
*/

#include <SFE_BMP180.h>
#include <Wire.h>

SFE_BMP180 bmp180;
char statusBmp180;
double P,T,A,PNivelMar=1013.25; //presion sobre el nivel del mar en mbar

void setup() {
  Serial.begin(9600);
  Serial.println("Iniciando programa...");
  delay(1000);

  if (bmp180.begin()) {
    Serial.println("Sensor BMP180 iniciado correctamente");
    Serial.println();
    Serial.println("  P mbar = Presion barometrica en milibares");
    Serial.println("  T *C = Temperatura en grados Celcius");
    Serial.println("  A msnm = Altura en metros sobre el nivel del mar");
    Serial.println();
  } else {
    Serial.println("Error al iniciar sensor BMP180");
  }
  Serial.println("P mbar\tT *C\tA msnm");
}

void loop() {
  delay(1000);
  if( leerBmp180() ) {
    Serial.print(P,2);
    Serial.print("\t");
    Serial.print(T,2);
    Serial.print("\t");
    Serial.println(A,2);
  } else
    Serial.println("pp.pp\ttt.tt\taa.aa?");
}

boolean leerBmp180() {
  //Inicio de lectura de temperatura
  statusBmp180 = bmp180.startTemperature(); 
  if (statusBmp180 != 0) {
    //Pausa para que finalice la lectura
    delay(statusBmp180); 
    //Obtener la temperatura
    statusBmp180 = bmp180.getTemperature(T); 
    if (statusBmp180 != 0) {
      // Inicio lectura de presión
      statusBmp180 = bmp180.startPressure(3); 
      if (statusBmp180 != 0) {
        //Pausa para que finalice la lectura
        delay(statusBmp180); 
        //Obtenemos la presión
        statusBmp180 = bmp180.getPressure(P,T); 
        if (statusBmp180 != 0) {
          A = bmp180.altitude(P,PNivelMar);
          return true; // Se tomo lectura de Temperatura, Presion y Altitud
        }      
      }      
    }   
  }
  return false; // No se tomo lectura de Temperatura, Presion y Altitud
} // leerBmp180

Ejemplo de corrida

Iniciando programa...
Sensor BMP180 iniciado correctamente
  T *C = Temperatura en grados Celcius
  P mbar = Presion barometrica en milibares
  A msnm = Altura en metros sobre el nivel del mar
T *C	P mbar	A msnm
26.11	866.66	1298.90
26.10	866.64	1299.06
26.10	866.61	1299.38
26.10	866.60	1299.45
26.08	866.61	1299.37
26.09	866.63	1299.15
26.09	866.64	1299.08
26.09	866.65	1298.94
26.10	866.65	1298.97
26.10	866.63	1299.17

 

Sensores de humedad y temperatura DHT11 y DHT22 con Arduino UNO

En este artículo se ejemplifica el uso de los sensores de humedad y temperatura DHT11 y DHT22 con Arduino UNO. El segundo sensor es más preciso en las mediciones, aunque, un poco más caro.

Material usado:

1 Arduino UNO
1 Sensor DHT11
1 Sensor DHT22
1 Protoboard
6 Cables hembra-macho
2 Cables macho-macho

Los ejemplos que se muestran aquí están basados en la libreria DHT de Mark Ruys disponible en https://github.com/markruys/arduino-DHT. Una característica de esta librería es que autodetecta el modelo de sensor, por lo que con el mismo programa se puede usar cualquiera de los dos sensores.

Conectores

En la siguiente imagen se muestran los cuatro conectores de ambos sensores.

DHT11-DHT22-v1-ch

En los programas mostrados a continuación los pines se conectan de la siguiente forma:

  1. VCC: al Pin 5V de Arduino.
  2. Data: al Pin 2 ó 3 de Arduino.
  3. NC: No conectado.
  4. Gnd: al Pin Gnd de Arduino.

Programa DHTxx_Ejemplo.ino

Programa ejemplo que obtiene la humedad y temperatura del sensor DHT11 o DHT22.

/*
* DHTxx_Ejemplo.ino
* Julio C. Sandria Reynoso - 22-Mayo-2017
* Ejemplo de uso de sensores de humedad y temperatura 
* DHT11 y DHT22
*
* Basado en la libreria DHT de Mark Ruys disponible en
* https://github.com/markruys/arduino-DHT
*/

#include "DHT.h"

DHT dht;

void setup() {
  dht.setup(2); // Pin data del DHT en Pin 2 de Arduino
  Serial.begin(9600);
  Serial.println("Iniciando DHTxx_Ejemplo...");
  Serial.println("Humedad\tTemperatura");
}

void loop() {
  delay(2000); // Pausa de 2 segundos
  Serial.print(dht.getHumidity());
  Serial.print("\t");
  Serial.println(dht.getTemperature());
}

Teniendo conectado a Arduino el sensor DHT11, este programa envió al Monitor Serie lo siguiente:

Iniciando DHTxx_Ejemplo...
Humedad Temperatura
57.00   29.00
57.00   30.00
57.00   30.00
57.00   30.00
57.00   29.00

Cuando se conectó el sensor DHT22 a Arduino, el resultado fue el siguiente:

Iniciando DHTxx_Ejemplo...
Humedad Temperatura
58.40   29.50
58.50   29.60
64.70   29.60
69.80   29.60
74.10   29.80
77.70   30.00
80.40   30.30
82.50   30.50

A diferencia del sensor DHT11, el DHT22 es más preciso, ya que también obtiene decimales para humedad y temperatura. A partir de la línea 7 empezaron a subir los valores de humedad y temperatura porque el sensor se sujetó dentro del puño cerrado.

Programa DHTxx_Ejemplo2.ino

En este ejemplo se usaron ambos sensores para comparar sus mediciones. El pin Data del DHT11 está conectado al pin 3 de Arduino, mientras que el pin Data del DHT22 está conectado al pin 2 de Arduino.

Arduino_UNO-DHT11-DHT22

Este programa toma la lectura de ambos sensores, DHT11 y DHT22 conectados a una tarjeta Arduino UNO.

/*
* DHTxx_Ejemplo2.ino
* Julio C. Sandria Reynoso - 22-Mayo-2017
* Ejemplo de uso de sensores de humedad y temperatura
* DHT11 y DHT22
*
* Basado en la libreria DHT de Mark Ruys disponible en
* https://github.com/markruys/arduino-DHT
*/
#include "DHT.h"
DHT dht11;
DHT dht22;

void setup() {
  dht22.setup(2); // Pin data del DHT22 en Pin 2 de Arduino
  dht11.setup(3); // Pin data del DHT11 en Pin 3 de Arduino
  Serial.begin(9600);
  Serial.println("Iniciando DHTxx_Ejemplo2...");
  Serial.println("DHT11\t\tDHT22\t");
  Serial.println("Hum\tTemp\tHum\tTemp");
}

void loop() {
  delay(2000); // Pausa de 2 segundos
  Serial.print(dht11.getHumidity());
  Serial.print("\t");
  Serial.print(dht11.getTemperature());
  Serial.print("\t");
  Serial.print(dht22.getHumidity());
  Serial.print("\t");
  Serial.println(dht22.getTemperature());
}

Para este programa, el Monitor Serie mostró los siguiente:

Iniciando DHTxx_Ejemplo2...
DHT11	     	DHT22	
Hum  	Temp 	Hum  	Temp
55.00	29.00	58.20	29.60
56.00	29.00	58.20	29.60
56.00	29.00	58.10	29.50
55.00	29.00	58.10	29.50
55.00	29.00	58.10	29.50
56.00	29.00	58.10	29.50
56.00	29.00	58.10	29.50
56.00	29.00	58.10	29.50
55.00	29.00	58.20	29.50
56.00	28.00	58.30	29.60

Referencias

  • Libreria DHT de Mark Ruys.
  • Ficha técnica del sensor DHT22.