jueves, 5 de octubre de 2017

Sensor Ultrasonico HC-SR04


¿Qué es un Sensor ultrasónico(HC-SR04)?

Es un dispositivo capaz de medir distancias por medio de una frecuencia ultrasónica, este funciona a través del envío de pulsos de alta frecuencia, no audible para el oído humano. Normalmente este pulso (frecuencia) rebota en los objetos que se encuentran alrededor y es reflejado hacia el sensor (captado por un micrófono adecuado para la frecuencia especifica). El tiempo entre pulsos es medido conociendo la velocidad del sonido podemos calcular la distancia de un objeto contra la superficie que reflejaron los pulsos. Los sensores ultrasónicos HC-SR04 son capaces de medir entre 2 centímetros y 400 centímetros, con una resolución de 0.3 centímetros. Dentro de la practica el rango de medición es entre 4 centímetros y 200 centímetros.

Los sensores ultrasónicos son sensores de baja precisión. La orientación de la superficie a medir puede provocar que la onda se refleje, dando una falsa medición. Es importante verificar en un entorno el resultado de un numero de objetos, ya que el sonido rebota en las superficies de los objetos generando ecos y falsas mediciones.



Figura 1.-Angulo para la detección de un objeto con sensor ultrasónico.

Aunque este dispositivo es de baja precisión, podemos conocer con alguna imprecisión la distancia a un objeto, los sensores de ultrasonidos son ampliamente empleados. En robótica es habitual montar uno o varios de estos sensores, por ejemplo, para detección de obstáculos, determinar la posición del robot, crear mapas de entorno, resolver laberintos entre otros.

Figura 2.- Funcionamiento de sensor ultrasónico.
Para una aplicación que se requiera una precisión mayor en la medición de la distancia, suelen acompañarse de medidores de distancia por infrarrojos o sensores ópticos.

Funcionamiento:
El sensor se basa simplemente en medir el tiempo entre el envío y la recepción de un pulso sonoro. Sabemos que la velocidad del sonido es 343 m/s en condiciones de temperatura 20 ºC, 50% de humedad, presión atmosférica a nivel del mar. Transformando unidades resulta: 


Es decir, el sonido tarda 29,2 microsegundos en recorrer un centímetro. Por tanto, podemos obtener la distancia a partir del tiempo entre la emisión y recepción del pulso mediante la siguiente ecuación.

El motivo es dividir por dos el tiempo (además de la velocidad del sonido en las unidades apropiadas, que hemos calculado antes) es porque hemos medido el tiempo que tarda el pulso en ir y volver, por lo que la distancia recorrida por el pulso es el doble de la que queremos medir.
Conexión típica con un Arduino uno:


Figura 3.-Conexión típica Arduino Uno con Sensor Ultrasónico HC-SR04.


Programación Arduino:
const int EchoPin = 5;
const int TriggerPin = 6;
const int LedPin = 13;

void setup() {
   Serial.begin(9600);
   pinMode(LedPin, OUTPUT);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}

void loop() {
   int cm = ping(TriggerPin, EchoPin);
   Serial.print("Distancia: ");
   Serial.println(cm);
   delay(100);
}

int ping(int TriggerPin, int EchoPin) {
   long duration, distanceCm;
  
   digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
  
   duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
  
   distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
   return distanceCm;

}

miércoles, 13 de septiembre de 2017

Actualización Firmware al Modulo GSM/GPRS SIMCOM SIM 900A V 3.8.2


Descripción
Se trata de un módulo doble banda de excelentes prestaciones, ideal para realizar aplicaciones de voz y datos en sistemas embebidos.
Módulo de sistema mínimo SIM900A con todos los componentes básicos para hacer funcionar el módulo GSM/GPRS SIM900A de la marca SIMCOM. Es ideal para evaluar el funcionamiento de dicho modulo e incluirlo en prototipos o sistemas finalizados con el cableado adecuado. Se comunica con el microcontrolador a través de una interfaz serial y comandos AT. El módulo soporta Reset y encendido mediante Hardware. Los módulos SIMCOM también se utilizan en Shields para Arduino, por lo que podemos utilizar este módulo también con Arduino o cualquier Microcontrolador o computadora como el Raspberry Pi o PC de escritorio.
La velocidad en baudios es configurable desde 1200-115200 hasta el comando AT. El módem GSM / GPRS tiene una pila TCP / IP interna que le permite conectarse a Internet a través de GPRS. SIM900A es un módulo inalámbrico ultra compacto y fiable. Se trata de un módulo GSM / GPRS completo en un tipo SMT y diseñado con un procesador de chip único muy potente que integra el núcleo AMR926EJ-S.

Especificaciones
·         Banda dual 900/1800 MHz.
·         GPRS Multi-ranura clase 10 / 8GPRS estación móvil clase B.
·         Cumple con la fase GSM 2/2 +.
·         Dimensiones: 24 * 24 * 3 mm.
·         Peso: 3.4 g.
·         Control mediante comandos AT (comandos GSM 07.07, 07.05 y SIMCOM Enhanced AT).
·         Rango de voltaje de alimentación: 5V.
·         Bajo consumo de energía: 1.5mA (modo de reposo).
·         Temperatura de funcionamiento: -40 ° C a +85 °C.

Este dispositivo viene configurado para doble banda la región de Australia, tenemos que instalarle un nuevo firmware para poder utilizarlo en la región de México o Sudamérica es por eso que se ha realizado el siguiente tutorial.

Paso 1: Primero que nada, tenemos que tener ciertos componentes para realizar la conexión del módulo y su comunicación.
Materiales:
·         SIM900A
·         Modulo USB Serial
·         Cables Dupont o puentes.
·         Tarjeta SIM
·         Programa simcom - sim900 customer flash loader v1.01
·         Archivo Binario 1137B03SIM900M64_ST_ENHANCE.
Paso 2.- Conexión de dispositivos.
Conexión:

Figura 1.- Conexión de Alimentación 5V (Cable Rojo y Blanco), Cable de comunicación Amarillo (TX) y Naranja (RX) en Modulo SIM900A.

Figura 2.- Realizar la conexión del módulo USB con SIM900A, Cable rojo (5V), Cable blanco (GND), Cable naranja (Tx) y Cable amarillo (RX).
Paso 3.- Conectar los dispositivos a tu computadora y ejecutar el programa simcom - sim900 customer flash loader v1.01.

Figura 3.- Abrir el archivo 1137B03SIM900M64_ST_ENHANCE y ubicar el puerto serial COM asignado por Windows en este caso (COM6), asignar la velocidad de 460800 bps y presionar Start para iniciar el proceso.

Figura 4.- Luego te pedirá reiniciar el dispositivo quitas el voltaje y lo conectas de nuevo para reiniciar el módulo SIM900A, entonces procederá a cargar los datos con un nuevo firmware compatible con México.

Figura 5.- Proceso de integración de Firmware.

Figura 6.- Termino de instalación de Firmware, procederá a reiniciarse automáticamente.

Figura 7.- Se verifica con comandos AT su funcionamiento por medio del puerto serial.

AT -> OK
AT GSV-> SIMCOM_Ltd
SIMCOM_SIM900
Revision:1137B03SIM900M64_ST_ENHANCE
AT+COPS?->+COPS: 0,0, “TELCEL”


Podemos observar que ya es detectada la Red de Telcel en nuestro dispositivo SIM900A, por lo que ya es posible manejarlo con comandos AT, fue un éxito la carga del nuevo firmware en nuestra siguiente practica realizaremos un ejemplo del uso del módulo SIM900A.

martes, 22 de agosto de 2017

BMP085 Sensor de Presión Atmosferica


¿Qué es el BMP085?




Este dispositivo es un sensor de presión digital atmosférica, tiene un rango de 300 a los 1100 hPa (+9000 m. de altitud hasta -500 m. sobre el nivel del mar).




Figura 1.- Se muestra el sensor de presión atmosférica.

Las aplicaciones típicas de este sensor son en la mejora de la navegación de GPS (Dirección de pendientes). En actividades de deportes para los calcular los movimientos que realiza un individuo, pronósticos del tiempo (medio ambiente), indicaciones de velocidad vertical ya sea subida o bajada en los autos entre otras aplicaciones son las más comunes.





Figura 2.- La presión atmosférica, es el peso que ejerce el aire a la atmosfera.



Este sensor se comunica a través del protocolo i2c, que permite una comunicación fácil entre el dispositivo y un microcontrolador con una máxima frecuencia de operación de 3.4 MHz y un consumo de reposo de 0.1 uA , este además cuenta con un sensor de temperatura interno que nos permite adquirir las misma por medio del protocolo de comunicación.

El voltaje de operación de este sensor es de 1.62 Volts hasta un máximo de 3.66 Volts, el rango operativo de este sensor según sus características es de 0 a 65°C, lo que su sensor de temperatura nos arroja en ese rango de igual manera.

El diagrama típico de conexión lo observamos a continuación:



Figura 3.- Diagrama típico de conexión.

Normalmente este circuito lo encontramos ya en la placa del mismo sensor, como lo podemos observar en la figura 1. El esquema de conexión del sensor con el Arduino es la siguiente para Arduino uno donde el puerto de i2c lo encontramos en los pines 4(SDA) y 5(SCL).



Figura 4.-Conexión de Arduino con sensor BMP085.

El código de la lectura para Arduino lo podemos descargar del siguiente link:




Código Arduino:


#include <Wire.h>

#include <Adafruit_BMP085.h>



/***************************************************

  This is an example for the BMP085 Barometric Pressure & Temp Sensor



  Designed specifically to work with the Adafruit BMP085 Breakout

  ----> https://www.adafruit.com/products/391



  These displays use I2C to communicate, 2 pins are required to 

  interface

  Adafruit invests time and resources providing this open source code,

  please support Adafruit and open-source hardware by purchasing

  products from Adafruit!



  Written by Limor Fried/Ladyada for Adafruit Industries. 

  BSD license, all text above must be included in any redistribution

 ****************************************************/



// Connect VCC of the BMP085 sensor to 3.3V (NOT 5.0V!)

// Connect GND to Ground

// Connect SCL to i2c clock - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 5

// Connect SDA to i2c data - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 4

// EOC is not used, it signifies an end of conversion

// XCLR is a reset pin, also not used here



Adafruit_BMP085 bmp;

 

void setup() {

  Serial.begin(9600);

  if (!bmp.begin()) {

            Serial.println("Could not find a valid BMP085 sensor, check wiring!");

            while (1) {}

  }

}

 

void loop() {

    Serial.print("Temperature = ");

    Serial.print(bmp.readTemperature());

    Serial.println(" *C");

   

    Serial.print("Pressure = ");

    Serial.print(bmp.readPressure());

    Serial.println(" Pa");

   

    // Calculate altitude assuming 'standard' barometric

    // pressure of 1013.25 millibar = 101325 Pascal

    Serial.print("Altitude = ");

    Serial.print(bmp.readAltitude());

    Serial.println(" meters");



    Serial.print("Pressure at sealevel (calculated) = ");

    Serial.print(bmp.readSealevelPressure());

    Serial.println(" Pa");



  // you can get a more precise measurement of altitude

  // if you know the current sea level pressure which will

  // vary with weather and such. If it is 1015 millibars

  // that is equal to 101500 Pascals.

    Serial.print("Real altitude = ");

    Serial.print(bmp.readAltitude(101500));

    Serial.println(" meters");

   

    Serial.println();

    delay(500);

}



Monitoreo en puerto serial:




Figura 5.- Podemos observar la salida del sensor en el monitor serial.

Podemos observar en el monitor serial de Arduino las salidas que nos da el sensor, la temperatura (28.40°C) y la presión (98685 Pascales), a partir de esos datos podemos calcular la altitud y la presión a nivel del mar para así calcular la altitud real. Generalmente los aviones utilizan este tipo de sensores para medir su altitud a nivel del mar para seguir las trayectorias específicas de sus rutas.


Figura 6.- Aplicaciones de los barómetros esté puede ser utilizado en los aviones o en drones para calcular su altitud real.

sábado, 19 de agosto de 2017

Introducción a los sistemas inteligentes

Unidad 1.- Introducción a los sistemas inteligentes.

1.1 Inteligencia Artificial


Empezaremos planteando la pregunta filosófica fundamental, para así poder dedicar nuestros esfuerzos a aspectos de carácter científico-técnico. ¿Es físicamente posible que una máquina presente capacidad de abstracción similar a la inteligencia humana? hay que tener en cuenta que el cerebro humano es el sistema de reconocimiento de patrones más complejo y eficiente que conocemos. Los humanos realizamos acciones tan sorprendentes como identificar a un conocido entre la multitud o reconocer de oído el solista de un concierto para violín.
¿Cómo se define la inteligencia artificial (IA)?, esta tiene como objetivo el estudio de las entidades inteligentes; pero a diferencia de la filosofía, la psicología, las neurociencias, y demás disciplinas cuyo objeto está relacionado con la inteligencia, su meta no tiene que ver únicamente con la comprensión de estas entidades, si no con su construcción.

Figura 1.- Modelo de Ciencias Cognitivas.

Así que la Inteligencia Artificial se enfoca en lograr la compresión de entidades inteligentes. En la actualidad es una gran variedad de subcampos que van desde propósito general, como el aprendizaje y la percepción, a otras más a específicas como el realizar demostración de teoremas matemáticos, la escritura, lectura y diagnóstico de enfermedades, problemas de economía, finanzas, construcción de vehículos, automatización de plantas entre otros.
Los temas fundamentales de la inteligencia artificial, se compone en varias areas de estudio, las mas comunes e importantes son: búsqueda de soluciones, sistemas expertos, procesamiento del lenguaje natural, reconocimiento de modelos, robótica, aprendizaje de las maquinas, lógica, incertidumbre y lógica difusa

Definiciones principales de IE
A lo largo de la historia se han seguido los cuatro enfoques. Como es de esperar, existe un enfrentamiento entre los enfoques centrados en los humanos y los centrados en la racionalidad. El enfoque centrado en el comportamiento humano no debe de ser una ciencia empírica, que incluya una hipótesis y confirmaciones mediante experimentos. El enfoque racional implica una combinación de matemáticas e ingeniería.
Sistemas que piensan como humanos: El nuevo y excitante esfuerzo de hacer que los computadores piensen, maquinas con mentes en el más amplio sentido literal, la automatización de las actividades que vinculamos con procesos de pensamiento humano, actividades como la toma de decisiones, resolución de problemas de aprendizaje.
Sistemas que piensan racionalmente: El estudio de las facultades mentales mediante el uso de modelos computacionales, el estudio de los cálculos que hacen posible percibir, razonar y actuar.
Sistemas que actúan como humanos: El arte de desarrollar maquinas con capacidad para realizar funciones que cuando son requieran de inteligencia, el estudio de cómo lograr que los computadores realicen tareas que por el momento los humanos hacer mejor.
Sistemas que actúan racionalmente: La inteligencia computacional es el estudio del diseño de agentes inteligentes, la inteligencia artificial está relacionada con conductas, inteligentes en artefactos.

1.2 Desarrollo histórico.


Esta disciplina no es nueva. Hace algo más de cincuenta años, el 31 de agosto de 1955, Marvin Minsky, John McCarty, Nathan Rochester y Claude Shannon propusieron la celebración de una reunión de dos meses de duración, que tuvo lugar en el Dartmouth College durante el verano de 1956. Su principal objetivo era discutir: ¿la conjetura de que todos los aspectos del aprendizaje o de cualquier otra característica de la inteligencia pueden, en principio, ser descritos de modo tan preciso que se pueda construir una máquina capaz de simularlos? El tema parecía tan novedoso que acuñaron un nuevo término para él: Inteligencia Artificial. A esa conferencia asistieron algunos de los científicos que posteriormente se encargaron de desarrollar la disciplina en diferentes ámbitos y de dotarla de una estructura teórica y computacional apropiada. Entre los asistentes estaban John McCarthy, Marvin Minsky, Allen Newell y Herbert Simon. En la conferencia, A. Newell y H. Simon presentaron un trabajo sobre demostración automática de teoremas al que denominaron Logic Theorist. El Logic Theorist fue el primer programa de ordenador que emulaba características propias del cerebro humano, por lo que es considerado el primer sistema de inteligencia artificial de la historia. El sistema era capaz de demostrar gran parte de los teoremas sobre lógica matemática que se presentaban en los tres volúmenes de los Principia Mathematica de Alfred N. Whitehead y Bertrand Russell (1910-1913).
Minsky y McCarthy fundaron más tarde el laboratorio de inteligencia artificial del Massachusets Institute of Technology (MIT), uno de los grupos pioneros en el ámbito. La actividad de los años cincuenta es consecuencia de trabajos teóricos de investigadores anteriores como Charles Babbage (autor de la Máquina analítica, 1842), Kurt Gödel (teorema de incompletitud, 1930), Alan Turing (máquina universal, 1936), Norbert Wiener (cibernética, 1943) y John von Newmann (arquitectura del computador, 1950). La arquitectura de von Newmann consta de una unidad central de proceso (CPU) y de un sistema de almacenamiento de datos (memoria), y fue utilizada en 1954 por RAND Corporation para construir JOHNNIAC (John v. Neumann Numerical Integrator and Automatic Computer), una de las primeras computadoras en las que más tarde se implementaron sistemas de inteligencia artificial como el Logic Theorist de Newell y Simon.
En 1954 también apareció el IBM 704, la primera computadora de producción en cadena, y con ella se desarrollaron numerosos lenguajes de programación específicamente diseñados para implementar sistemas de inteligencia artificial como el LISP. Junto con estos avances, se produjeron los primeros intentos para determinar la presencia de comportamiento inteligente en una máquina. El más relevante desde el punto de vista histórico fue propuesto por Alan Turing en un artículo de 1950 publicado en la revista Mind y titulado Computing Machinery and Intelligence.
Tras los primeros trabajos en IA de los años cincuenta, en la década de los sesenta se produjo un gran esfuerzo de formalización matemática de los métodos utilizados por los sistemas de IA.
Los años setenta, en parte como respuesta al test de Turing, se produjo el nacimiento de un área conocida como procesado del lenguaje natural (NLP, Natural Language Processing), una disciplina dedicada a sistemas artificiales capaces de generar frases inteligentes y de mantener conversaciones con humanos. El NLP ha dado lugar a diversas áreas de investigación en el campo de la lingüística computacional, incluyendo aspectos como la desambiguación semántica o la comunicación con datos incompletos o erróneos. A pesar de los grandes avances en este ámbito, sigue sin existir una máquina que pueda pasar el test de Turing tal y como se planteó en el artículo original. Esto no es tanto debido a un fracaso de la IA como a que los intereses del área se se han ido redefiniendo a lo largo de la historia. En 1990, el controvertido empresario Hugh Loebner y el Cambridge Center for Behavioral Studies instauraron el premio Loebner, un concurso anual ciertamente heterodoxo en el que se premia al sistema artificial que mantenga una conversación más indistinguible de la de un humano. Hoy en día, la comunidad científica considera que la inteligencia artificial debe enfocarse desde una perspectiva diferente a la que se tenía en los años cincuenta, pero iniciativas como la de Loebner expresan el impacto sociológico que sigue teniendo la IA en la sociedad actual.
En los años ochenta empezaron a desarrollarse las primeras aplicaciones comerciales de la IA, fundamentalmente dirigidas a problemas de producción, control de procesos o contabilidad. Con estas aplicaciones aparecieron los primeros sistemas expertos, que permitían realizar tareas de diagnóstico y toma de decisiones a partir de información aportada por profesionales expertos. En torno a 1990, IBM construyó el ordenador ajedrecista Deep Blue, capaz de plantarle cara a un gran maestro de ajedrez utilizando algoritmos de búsqueda y análisis que le permitían valorar cientos de miles de posiciones por segundo.
Más allá del intento de diseñar robots humanoides y sistemas que rivalicen con el cerebro humano en funcionalidad y rendimiento, el interés hoy en día es diseñar e implementar sistemas que permitan analizar grandes cantidades de datos de forma rápida y eficiente. En la actualidad, cada persona genera y recibe a diario una gran cantidad de información no sólo a través de los canales clásicos (conversación, carta, televisión) sino mediante nuevos medios que nos permiten contactar con más personas y transmitir un mayor número de datos en las comunicaciones (Internet, fotografía digital, telefonía móvil). Aunque el cerebro humano es capaz de reconocer patrones y establecer relaciones útiles entre ellos de forma excepcionalmente eficaz, es ciertamente limitado cuando la cantidad de datos resulta excesiva. Un fenómeno similar ocurre en el ámbito empresarial, donde cada día es más necesario barajar cantidades ingentes de información para poder tomar decisiones. La aplicación de técnicas de IA a los negocios ha dado lugar a ámbitos de reciente implantación como la inteligencia empresarial, Business Intelligence o la minería de datos (Data Mining). En efecto, hoy más que nunca la información está codificada en masas ingentes de datos, de forma que en muchos ámbitos se hace necesario extraer la información relevante de grandes conjuntos de datos antes de proceder a un análisis detallado.
Algunas veces nos interesará caracterizar los datos de forma simplificada para poder realizar un análisis en un espacio de dimensión reducida o para visualizar los datos de forma más eficiente. Por ejemplo, puede ser interesante saber qué subconjunto de índices bursátiles internacionales son los más relevantes para seguir la dinámica de un cierto producto o mercado emergente. En otras ocasiones, el objetivo será identificar patrones en los datos para poder clasificar las observaciones en diferentes clases que resulten útiles para tomar decisiones respecto un determinado problema. Un ejemplo de este segundo tipo de aplicación sería el análisis de imágenes médicas para clasificar a pacientes según diferentes patologías y así ayudar al médico en su diagnóstico. Por último, en muchos casos se hace necesario realizar búsquedas entre una gran cantidad de datos u optimizar una determinada función de coste, por lo que también será necesario conocer métodos de búsqueda y optimización. En esta clase de problemas encontramos, por ejemplo, el diseño de los horarios de una estación de trenes de forma que se minimice el tiempo de espera y el número de andenes utilizados.


Figura 2.- Primera computadora.

Figura 3.-Maquina universal desarrollada por Alan Turing.

Figura 4.-El primero robot de la historia “Elektro”.

1.3 Prueba de Turing


La contribución del matemático inglés Alan Turing al mundo de la computación en general, y al de la IA en particular, fue muy considerable. Turing, participó en el diseño de uno de los primeros computadores que existieron, desarrollado para el ejército inglés, entre los años 40 y 50. Además de aportar los conceptos básicos de la arquitectura secuencial de los computadores, publicó en 1950 un provocador artículo que tiene por título “Computer Machinery and Intelligence”, que comienza con la no menos provocadora pregunta: ¿Pueden las máquinas pensar? En dicho artículo el autor intenta abordar formalmente acciones consideradas hasta ese momento propias de los seres humanos, de forma que después pudieran implementarse en las máquinas, dotándolas así de capacidades como: aprender, crear, etc.

Mediante la prueba de Turing, propuesta por Alan Turing (1950), se intenta ofrecer una satisfactoria definición operativa de lo que es la inteligencia. Turing definió una conducta inteligente como la capacidad de lograr eficiencia a nivel humano en todas las actividades de tipo cognoscitivo, suficiente para engañar a un elevador. Brevemente, la prueba que Turing propuso consistía en que un humano interrogase a una computadora por medio de un teletipo; la prueba se consideraba aprobada si el evaluador era capaz de determinar si una computadora o un humano era quien había respondido las preguntas en el otro extremo de la terminal. Cabe señalar que hoy por hoy, el trabajo que entraña programar una computadora para pasar la prueba es considerable. La computadora debería ser capaz de lo siguiente:
Procesar un lenguaje natural. Para así poder establecer comunicación satisfactoria, sea en inglés o en cualquier otro idioma humano.
Representar el conocimiento. Para así guardar toda la información que se le haya dado antes o durante el interrogatorio.
Razonar automáticamente. Con el propósito de utilizar la información guardada al responder preguntas y obtener nuevas conclusiones.
Autoaprendizaje de la máquina. Para que se adapte a nuevas circunstancias y para detectar y extrapolar esquemas determinados.
En la prueba de Turing deliberadamente se evitó la interacción física directa entre evaluador y computadora, dado que para medir la inteligencia era innecesario simular físicamente a un humano. Sin embargo, en la denominada prueba total de Turing se utiliza una señal de video para que el evaluador pueda calificar la capacidad de percepción del evaluado, y también para que aquél pueda pasar objetos físicos “a través de la trampa”.
Para aprobar la prueba total de Turing, es necesario que la computadora esté dotada de:
Visión. Que le permita percibir objetos.
Robótica. Para desplazar los objetos.
En el campo de la IA no se han hecho muchos esfuerzos para pasar la prueba de Turing. La necesidad de actuar como los humanos se presenta básicamente cuando los programas de IA deben interactuar con gente, por ejemplo, cuando un sistema experto de procesamiento de lenguaje natural entabla diálogo con un usuario.
Programas como los anteriores deberán comportarse de acuerdo con ciertas convenciones normales de las interacciones humanas con el objetivo de poder entenderlos. Por otra parte, la manera de elaborar representaciones y de razonar en qué se basan estos sistemas podrá o no conformarse de acuerdo con un modelo humano.

1.4.- Concepto de sistema inteligente


Un sistema es una parte o fragmento del universo, todo lo que existe limitado en espacio y tiempo, la inteligencia se puede observar como una medida que indica que tan fácil logra un sistema su objetivo, a partir de esos dos conceptos lo podemos definir como un sistema que aprende durante su existencia el cómo actuar para alcanzar sus objetivos.
Podemos complementarlo que es un sistema completo que incluye "sentidos" que le permiten recibir información de su entorno. Puede actuar, y tiene una memoria para archivar el resultado de sus acciones. Tiene un objetivo e, inspeccionando su memoria, puede aprender de su experiencia. Aprende cómo lograr mejorar su rendimiento y eficiencia.

1.4.1.- Arquitectura de un sistema inteligente


Los seres humanos y animales son sistemas inteligentes naturales, y los sistemas artificiales tratan progresivamente de emular sus capacidades. Estos sistemas se caracterizan por sus capacidades de adaptarse a situaciones cambiantes, capacidad que los actuales sistemas se encuentran en proceso de lograrlo. A partir de este concepto nacen los sistemas expertos o inteligentes, que son las Redes Neuronales Artificiales, PID Difuso, Arboles de Decisiones, Búsqueda local y algoritmos genéticos, clustering y clasificadores, machine Learning entre otros.
A continuación, podemos observar el modelo genérico de un sistema inteligente:

Figura 5.-Modelo de un sistema inteligente.
Un sistema inteligente normalmente posee conocimiento de un experto en el proceso (sistema) que ayuda a establecer las reglas para el aprendizaje. La base del conocimiento representa el conocimiento experto y el problema en forma de hechos descriptivos y reglas de inferencia lógica. La base de conocimientos es algo más que una base de datos, ya que su mecanismo de búsqueda (query) es más que una simple comparación (text matching), de hecho (como se verá más delante), es una búsqueda donde un elemento puede "encadenar" a otro (chaining) utilizando comparaciones más sofisticadas (unification and pattern matching). Desde luego, la calidad del conocimiento de salida dependerá de la calidad del conocimiento depositado en su correspondiente base de conocimiento (garbage-in, garbage-out). La base de conocimiento traduce reglas siguiendo sus propios algoritmos de búsqueda, control y resolución de conflictos. Dos métodos típicos de búsqueda (encadenamiento de reglas) son: 1) forward chaining y 2) backward chaining. De manera simplificada, el proceso inicia partiendo de los hechos del problema que se alimenten al sistema, e.g. un dato, lectura, señal, imágen, etc. Luego, la máquina intenta llegar a una conclusión válida buscando aquellas relgas que crea puedan cumplirse, i.e. mecanismo de encadenamiento. Cada vez que se cumple una regla, existe un nuevo hecho que de no ser la solución definitiva, puede usarse este "nuevo" conocimiento como un "nuevo" hecho en la base de conocimientos. Además, podemos argumentar que estos son capaces de proporcionar recomendaciones al sistema a partir del conocimiento (módulo de razonamiento), toman soluciones basadas en las reglas totalmente justificadas.

1.4.2.-Sistema Tradicional Vs Sistema Inteligente


El sistema tradicional es capaz de recibir datos, procesarlos y presentar los resultados, y un sistema inteligente es capaz de percibir, razonar y actuar. Esas son las principales diferencias entre ellos.


Figura 6.-Modelo de un sistema tradicional.

Las ventajas de un sistema inteligente en cuanto a disponibilidad comparado con un empleado son las siguientes:
·         Están disponibles ininterrumpidamente de día y noche, ofreciendo siempre su máximo desempeño.
·         Pueden duplicarse ilimitadamente, i.e. tener tantos de ellos como se requieran.
·         Pueden trabajar en entornos hostiles y peligrosos.
·         Siempre se ajustan a las normas establecidas y son consistentes en su desempeño, i.e. no desarrollan apreciaciones subjetivas, tendenciosas, irracionales o emocionales. No padece de olvido, fatiga, dolor o comete errores de cálculo.
·         No requiere un sueldo, promociones, seguros médicos, incapacidades.
·         Siempre están dispuestos a dar explicaciones, asistir o enseñar a la gente, así como a aprender.
·         Pueden tener una vida de servicio ilimitada
Por estas características los sistemas inteligentes están sustituyendo a los humanos para realizar actividades diarias ya que son más eficientes para un proceso. Así como también tienen ventajas cuenta con desventajas que pueden llevar a que un proceso no se inteligente:
·         El conocimiento es difícil de extraer de los expertos humanos para realizar un proceso complicado.
·         La aproximación de cada experto a la situación evaluada puede ser diferente.
·         Tienen una noción muy limitada acerca del contexto de problema, i.e. no pueden percibir todas las cosas que un experto humano puede apreciar de una situación.
·         Pueden existir decisiones que sólo son de competencia para un ser humano y no una máquina.
·         No saben cómo subsanar sus limitaciones, e.g. no son capaces de trabajar en equipo o investigar algo nuevo.
·         Son muy costosos de desarrollar y mantener.
Las ventajas de un sistema tradicional al de un sistema inteligente la podemos observar en la siguiente tabla:
Sistemas Inteligentes
Sistemas Tradicionales
·         Toman Decisiones
·         Calculan Resultados
·         Basados en Heurísticas
·         Dan Explicaciones de los Resultados
·         Usan Reglas de Inferencia
·         Accesan Bases de Conocimientos (Deductivas)
·         Centrados en el Experto y el Usuario
·         Manejan Conocimiento Impreciso, Contradictorio o Incompleto
·         Usan Datos y Lenguajes Simbólicos 
·         Calculan resultados
·         Basados en Algoritmos
·         Dan Resultados sin Explicaciones
·         Usan Secuenciación, Ciclos y Condicionales
·         Centrados en el Analista y el Programador
·         Conocimientos Precisos, Completos y Exactos
·         Usan Datos Numéricos y Lenguajes Procedurales

En este trabajo revisamos los conceptos de Inteligencia Artificial, Sistema Inteligente y también exploramos un poco en la historia de la inteligencia artificial, las ventajas y desventajas de los sistemas inteligentes y demás conceptos que nos ayudaron a entender un poco de la inteligencia artificial y sus sistemas inteligentes. También enfrentamos un sistema tradicional contra un sistema inteligente para observar cuales son las diferencias entre los mismos.
Describiremos el funcionamiento de un sistema inteligente actualmente usado para analizar a fondo los conceptos adquiridos.
Un ejemplo usado en la industria actual es la automatización de los procesos que conllevan a realizar un producto final. Normalmente para realizar un proceso de control de una refinería implica abrir o cerrar válvulas, ajustar temperaturas o presiones para realizar esto se utilizan personas para completar estas acciones, actualmente se pueden realizar esos procesos con un sistema inteligente que es capaz de controlar las variables de presión o temperatura y apertura y cierre de válvulas. La percepción del sistema serán las lecturas de la temperatura y presión, las acciones serán abrir o cerrar válvulas, ajustar la temperatura o presión y las metas serán lograr la mayor pureza de los hidrocarburos, rendimiento y seguridad de la refinería. Es un proceso que no lleva a un propósito, para lograr una optimización de la refinería en la operación de la misma.