Mostrando entradas con la etiqueta Lab Computo integrado. Mostrar todas las entradas
Mostrando entradas con la etiqueta Lab Computo integrado. Mostrar todas las entradas

martes, 22 de mayo de 2012

Tipos de sensores

El motivo de esta entrada es por que en mi proyecto yo utilice un sensor PIR Pasive Infra-Red , para detectar movimiento , pero despues me di cuenta que esa no era su funcion realmente , sino el mide los cambios de calor en el ambiente.


TIPOS DE SENSORES

Los detectores de ultrasonidos resuelven los problemas de detección de objetos de prácticamente cualquier material. Trabajan en ambientes secos y polvorientos. Normalmente se usan para control de presencia/ausencia, distancia o rastreo.
Se consiguen interruptores de tamaño estándar, miniatura, subminiatura, herméticamente sellados y de alta temperatura. Los mecanismos de precisión se ofrecen con una amplia variedad de actuadores y características operativas. Estos interruptores son idóneos para aplicaciones que requieran tamaño reducido, poco peso, repetitividad y larga vida.
Descripción: El microswitch es un conmutador de 2 posiciones con retorno a la posición de reposo y viene con un botón o con una palanca de accionamiento, la cual también puede traer una ruedita.
Funcionamiento: En estado de reposo la patita común (COM) y la de contacto normal cerrado (NC), están en contacto permanente hasta que la presión aplicada a la palanca del microswitch hace saltar la pequeña platina acerada interior y entonces el contacto pasa de la posición de normal cerrado a la de normal abierto (NO), se puede escuchar cuando el microswitch cambia de estado, porque se oye un pequeño clic, esto sucede casi al final del recorrido de la palanca.
Estos son los sensores más básicos, incluye pulsadores, llaves, selectores rotativos y conmutadores de enclavamiento. Estos productos ayudan al técnico e ingeniero con ilimitadas opciones en técnicas de actuación y disposición de componentes.
Diseños robustos, de altas prestaciones y resistentes al entorno o herméticamente sellados. Esta selección incluye finales de carrera miniatura, interruptores básicos estándar y miniatura, interruptores de palanca y pulsadores luminosos.
El grupo de fibra óptica está especializado en el diseño, desarrollo y fabricación de componentes optoelectrónicos activos y submontajes para el mercado de la fibra óptica. Los productos para fibra óptica son compatibles con la mayoría de los conectores y cables de fibra óptica multimodo estándar disponibles actualmente en la industria.
La optoelectrónica es la integración de los principios ópticos y la electrónica de semiconductores. Los componentes optoelectrónicos son sensores fiables y económicos. Se incluyen diodos emisores de infrarrojos (IREDs), sensores y montajes.
Se incluyen sensores de efecto Hall, de presión y de caudal de aire. Estos sensores son de alta tecnología y constituyen soluciones flexibles a un bajo costo. Su flexibilidad y durabilidad hace que sean idóneos para una amplia gama de aplicaciones de automoción.
Los sensores de caudal de aire contienen una estructura de película fina aislada térmicamente, que contiene elementos sensibles de temperatura y calor. La estructura de puente suministra una respuesta rápida al caudal de aire u otro gas que pase sobre el chip.
Los sensores de corriente monitorizan corriente continua o alterna. Se incluyen sensores de corriente lineales ajustables, de balance nulo, digitales y lineales. Los sensores de corriente digitales pueden hacer sonar una alarma, arrancar un motor, abrir una válvula o desconectar una bomba. La señal lineal duplica la forma de la onda de la corriente captada, y puede ser utilizada como un elemento de respuesta para controlar un motor o regular la cantidad de trabajo que realiza una máquina.
Son semiconductores y por su costo no están muy difundidos pero en codificadores ("encoders") de servomecanismos se emplean mucho.
Los sensores de humedad relativa/temperatura y humedad relativa están configurados con circuitos integrados que proporcionan una señal acondicionada. Estos sensores contienen un elemento sensible capacitivo en base de polímeros que interacciona con electrodos de platino. Están calibrados por láser y tienen una intercambiabilidad de +5% HR, con un rendimiento estable y baja desviación.
Los sensores de posición de estado sólido, detectores de proximidad de metales y de corriente, se consiguen disponibles en varios tamaños y terminaciones. Estos sensores combinan fiabilidad, velocidad, durabilidad y compatibilidad con diversos circuitos electrónicos para aportar soluciones a las necesidades de aplicación.
Los sensores de presión son pequeños, fiables y de bajo costo. Ofrecen una excelente repetitividad y una alta precisión y fiabilidad bajo condiciones ambientales variables. Además, presentan unas características operativas constantes en todas las unidades y una intercambiabilidad sin recalibración.
Los sensores de temperatura se catalogan en dos series diferentes: TD y HEL/HRTS. Estos sensores consisten en una fina película de resistencia variable con la temperatura (RTD) y están calibrados por láser para una mayor precisión e intercambiabilidad. Las salidas lineales son estables y rápidas.
Los sensores de turbidez aportan una información rápida y práctica de la cantidad relativa de sólidos suspendidos en el agua u otros líquidos. La medición de la conductividad da una medición relativa de la concentración iónica de un líquido dado.
Sensores magnéticos
Los sensores magnéticos se basan en la tecnología magnetoresisitiva SSEC. Ofrecen una alta sensibilidad. Entre las aplicaciones se incluyen brújulas, control remoto de vehículos, detección de vehículos, realidad virtual, sensores de posición, sistemas de seguridad e instrumentación médica.
Sensores de presión
Los sensores de presión están basados en tecnología piezoresistiva, combinada con microcontroladores que proporcionan una alta precisión, independiente de la temperatura, y capacidad de comunicación digital directa con PC. Las aplicaciones afines a estos productos incluyen instrumentos para aviación, laboratorios, controles de quemadores y calderas, comprobación de motores, tratamiento de aguas residuales y sistemas de frenado.

Obtener valores del serial

Bueno esta entrada es para explicarles como poder obtener datos del serial para poder utilizar los datos después.

Esta entrada la publico ya que yo batalle un poco en eso , empezamos.

 Mediante un Arduino y un Sensor PIR que detecta los cambios de calor en el lugar donde se encuentra , regresa valores de (1-0) estos llegan a nuestro puerto serial y son mostrados en el serial monitor.

Para poder tomar esos valores utilice un programa escrito en python que es este


import serial,time
ser = serial.Serial('/dev/ttyACM0', 9600)
a = open("/var/www/LEDstate.txt","w")

for i in range(10):
    dato = ser.readline()
    dato = dato.strip() # quitar enter   
    print "<%s>" % dato
    if dato != '0':
        print >>a, "SE DETECTO CAMBIO EN EL CALOR DE EL LUGAR"
    elif dato == '0':
        print >>a, "NO HAY CAMBIO DE CALOR"
    try:
        time.sleep(2)
    except:
        pass

a.close()



Aquí lo que se puede leer es que si detecta un valor diferente a cero imprimir esa linea .


Ustedes pueden tomar este código y aplicarlo a su conveniencia en algún proyecto que tengan , además tiene una linea de código para quitar los enter ya que al hacer las comparaciones de datos me mostraba error , ya que no tenia en cuenta eso.



lunes, 14 de mayo de 2012

Como encender un LED utilizando PHP + PROCESSING

En esta entrada les mostrare los paso a seguir y lo que deben hacer , sera un pequeño tutorial.


Primeramente debemos de tener nuestro Arduino y un led que sera el que haremos prender.

 Yo utilice un Arduino UNO para esta practica y quizás antes de hacerla si es de las primeras veces que utilizas el Arduino seria bueno que revisaras una de las entradas anteriores que publique en ellas te informa sobre como conectar el LED con el Arduino y que hacer .

Continuando con esta entrada lo que se necesitara que tengas es :

El Arduino IDE que la puedes descargar desde el centro de software Ubuntu
El Processing IDE que se descarga de su pagina
Un editor de textos el que desees , así como el LED
Arduino UNO
También necesitaras un webhosting con servicio de PHP pero en mi caso utilice Apache y lo realize localmente , les recomiendo que hagan lo mismo ya que eran muchos problemas hosting gratuitos porque se necesita alterar un archivo .txt y los permisos me los negaba. Así que utilizándolo localmente servira y sera un ejemplo de lo que debería de hacer.

Ya después de dejarles mi recomendación lo siguiente sera  la creacion de 3 archivos que se necesitaran.

index.html
led.pho
LEDstate.txt




Ese sera el archivo HTML que sera por decir asi nuestra interfaz grafica y se vera de este modo , como les dije arriba yo lo realize localmente.


Ahora lo siguiente sera nuestro archivo en PHP llamado led.php





Ahora sigue el archivo LEDstate.txt este archivo debes de crearlo pero se puede quedar vacion no importa.

Continuando ahora se debera codificar el Arduino para esto aqui dejo el codigo. Para comprobar que funciona simplemente ve a el serial monitor y escribe H o L , de abreviacion de High y Low esto debera hacer que encienda y se apague el Led.






Ya no me metere tanto en explicarles como conectar el Arduino ni el Led ni como compilarlo ya que debe estar y sino pues una entrada mas abajo pueden leerlo.

Ahora ya teniendo todo falta la parte que enlazara a todos los elementos que es esta.

Abre el Processing IDE y escribe este codigo



Si seguiste todos los pasos correctamente deberia funcionar y tener algo como esto .


Aqui arriba se logra ver en la terminal que le esta diciendo al arduino que se cambie de ON a OFF.

 Aqui se ve prendido y en la foto de abajo esta apagado cuando ya cambio a Low.

Aqui le volvi a decir que ahora cambiara el LED a ON y vean lo que ocurre , aqui utilize otro led para que se viera mejor el brillo .

Y esto es todo cualquier duda comenten y se les respondera.

viernes, 11 de mayo de 2012

Practica con Arduino

En una de las entradas pasadas explique una practica con un Arduino y un sensor PIR , pero en esta explicare algo mucho mas básico para personas que aun no saben muy bien como manejarlo , o que quieren empezar en esto.

Lo que hará básicamente sera prender un Led con el  Arduino.

Materializes necesitados:



 LED

Arduino


 El se conectara el cátodo a el ping 13 del Arduino y la mas corta a GND que es tierra en Arduino.

Aquí si uno dispone de un protoboard seria quizás mejor implementarlo ahí utilizando obviamente una resistencia.

Ahora se conecta el Arduino a la computadora , y quizás algunos saben otros no , al instalar el Arduino IDE viene una serie de ejemplos guardadas  en este caso utilizare una de ellas para abrirla se hace lo siguiente.

Primero se abre el Arduino IDE , después en Open , se selecciona examples y en la opción de Basics se elige la que dice Blink que nos desplegara un código que sera este.

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.
 */

void setup() {               
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);    
}

void loop() {
  digitalWrite(13, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
}

Ahora solamente se le introduce el código a el Arduino y se compila y el resultado sera el siguiente.



Listo espero que este pequeño tutorial ayude a las personas que piensan utilizar por primera vez esta tecnología.

miércoles, 9 de mayo de 2012

Antenas

En la entrada pasada les hable sobre los Xbee y sus características pero algo que no les mencione fue un componente que tienen llamado antena , esa obviamente es la que utilizan para transmitir y recibir señales . 

Existen muchas opciones diseñadas con diferentes tipos de antenas , en esta entrada les mostrare las que están disponibles en la actualidad.

Whip or wire antenna:

 Esta es una de las mas comunes y en la mayoría de los casos la antena de cable es la que se ajusta a las necesidades básicas.  Ofrecen una radiación omnidireccional osea que la distancia de transmisión máxima es igual en todas las direccionas cuando el hilo es recto y perpendicular al modulo.

Chip antenna:

La chip antenna tiene un chip plano de cerámica que es alineado con el cuerpo del Xbee , esto hace que sea mas pequeño y mas resistente  aunque estas ventajas tienen un precio , estas antenas tiene un patron de radiación en forma de corazón que hace que la señal se atenué en muchas direcciones .  Sin embargo si se esta haciendo un dispositivo en el que la tensión mecánica de la antena cable podría romperse o si el espacio es muy pequeño esta podría ser su mejor opcion. Se dice que esta es la opción correcta para nada usable.

PBC antenna : 

Esta fue introducia con el S2B XBee-PRO , y esta se imprime direcamente en el circuito del XBee. 
Se compone de una serie de realizacion de trazas dispuestas en un patron fractal. La antena PCB ofrece muchas de las mismas ventajas y desventajas como la antena chip pero con un costo menor de fabricacion. 


U.FL connector:

Este es mas menor de los 2 tipos de conectores de antenas externas. Ya que muy a menudo una antena externa no es necesaria y es un gasto adicional si es un cable de antena muy simple de hacer.
Sin embargo cuando la radio se va a vivir en el interior de una caja de metal la antena se necesita para vivir en el exterior. De esta manera la señal no se atenúa por la caja metálica. Además muchas veces resulta ventajoso para orientar una antena externa diferente a la propia XBee.

El conector U.FL es pequeño y un poco frágil y por lo común se utiliza con un cable de conexion corto que tranporta la señal  a partir de una antena montada de forma remota.


RPSMA connector

Este conector es solo un tipo diferente de enchufe de el conector U.FL. Además es mas grande y voluminoso pero se puede usar con una antena externa, montado directamente en el XBee sin un cable de conexión. 



XBee


En esta entrada hablare sobre el XBee

Existen 2 versiones básicas de XBee radio que vendría siendo Xbee Series 1. Este usa un microchip echo por Freescale para poder proporcionar simplemente estándares basados en comunicaicones punto a punto , así como una implementación propietaria de una malla

Y la otra llamada Xbee Series 2 que igualmente utiliza un microchip de Ember Networks que XBee Series 2 hardware que permita diferentes estándares basados en la tecnología ZigBee.



Igualmente las Series 1 y las Series 2 son disponibles en 2 diferentes potencias de transmisión, la regular y la PRO.  La versión regular es simplemente llamada Xbee pero la otra es llamada Xbee-PRO que es mas potente y tiene un rango mas grande de señal.

La versión regular es es una manera económicamente hablando de empezar en esta rama  y quizás no seria muy conveniente explicar exactamente detallado las diferencias que tienen ya que se configuran de la misma manera , entonces dejemos en que simplemente uno tiene mas potencia que el otro.Por eso les dejare una tabla aquí abajo para que puedan comparar rápidamente.

Series 1

Es muy popular entre la gente que le gusta hacer proyectos personales o escolares mientras que la Series 2
es compatible con el protocolo completo de ZigBee y es mas utilizada para trabajos o proyectos especializados o que demandan mayores cosas.

Series 2 tiene un rango mayor  y utiliza menos energía  que la Series 1 , aunque sin embargo estos no son grandes motivos para elegir una u otra  ya que ambos ocupan el mismo espacio físico y pueden ser cambiados fácilmente. Aunque habría que dejar en claro que la Series 2 no "habla" con la Series 1 en absoluto osea no pueden interactuar así que para una red deberías utilizar el mismo tipo para que interactúen los Xbee.

Aquí les dejo la tabla de similitudes y diferencias que les mencione anteriormente .




martes, 8 de mayo de 2012

Arduino + Sensor PIR 2.0

Ahora siguiendo con la entrada anterior se le pueden realizar ajustes a el codigo para detectar la duracion de el movimiento.

igualmente le dejo aqui las imagenes de la pantalla.



Igualmente utilizando los mismos dispositivos solo modificando el codigo se puede obtener esto.


Arduino + Sensor PIR

Como en la entrada pasada ya les hable sobre los arduinos y sobre los sensores en esta entrada lo que realize fue probar como funciona y el modo correcto de conectarlo aqui les dejare el ejemplo.

Primeramente lo que se ocupo :

Sensor PIR
Arduino UNO
Cables




Ahora la forma de conectarla es la siguiente :



Se observa que tiene un lado positivo y uno negativo que van conectados a corriente y tierra directamente en el arduino como uno de salida que va a el numero 2 de el arduino.

Deberia quedar de esta forma ya viendolo en fisico :


Y aqui se puede observar como deberia verse frontalmente.



Ahora no queda mas que introducir el codigo a el arduino y compilarlo.

Por cierto aqui les dejo el codigo que lo encontre en internet

/* PIR sensor tester*/

int ledPin = 13; // choose the pin for the LED
int inputPin = 2; // choose the input pin (for PIR sensor)
int pirState = LOW; // we start, assuming no motion detected
int val = 0; // variable for reading the pin status

void setup() {
pinMode(ledPin, OUTPUT); // declare LED as output
pinMode(inputPin, INPUT); // declare sensor as input

Serial.begin(9600);
}

void loop(){
val = digitalRead(inputPin); // read input value
if (val == HIGH) { // check if the input is HIGH
digitalWrite(ledPin, HIGH); // turn LED ON
if (pirState == LOW) {
// we have just turned on
Serial.println("Motion detected!");
// We only want to print on the output change, not state
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // turn LED OFF
if (pirState == HIGH){
// we have just turned of
Serial.println("Motion ended!");
// We only want to print on the output change, not state
pirState = LOW;
}
}
}


Y aqui esta el resultado final.



lunes, 7 de mayo de 2012

Shields

Primeramente los Shields son placas que pueden ser conectadas encima de la placa Arduino extendiendo así sus capacidades.

Existen diferentes tipos de shield pero siguen una misma filosofía que el conjunto original y es que son fáciles de montar y baratas de producir.

Estas placas amplían la función de un Arduino y puede ser utilizado para controlar diferentes aparatos, adquirir datos, etc.
  • Shield Xbee - Este shield permite conectar inalámbricamente varios Arduino a distancias de 100 pies en edificios y 300 pies en el exterior usando el módulo Maxstream Xbee Zigbee. 
  • Shield Motores- Este shield permite a Arduino controlar motores eléctricos de corriente continua, servos y motores paso a paso y leer codificadores.
  • Shield Ethernet - Este shield permite a una placa Arduino conectarse a una red Ethernet y tener acceso a y desde Internet.



El Xbee el arduino Xbee permite a múltiples placas de Arduino comunicarse entre si de una forma inalámbrica y permite distancias de 30 a 900 metros de distancia dependiendo en interiores o al aire libre usando módulos Maxstream Xbee Zigbee.




Motor Control V1.1


El  Arduino Motor shield te permite controlar motores DC y leer codificadores.





Arduino Ethernet Shield

Esta permite a una placa Arduino conectarse a Internet. Está basada en el chip Ethernet Wiznet W5100 (datasheet). El Wiznet W5100 provee de una pila de red IP capaz de TCP y UDP. Soporta hasta cuatro conexiones de sockets simultáneas. Usa la librería Ethernet para escribir programas que se conecten a internet usando la shield.


La Ethernet shield dispone de unos conectores que permiten conectar a su vez otras placas encima y apilarlas sobre la placa Arduino.
Arduino usa los pines digitales 10, 11, 12, y 13 (SPI) para comunicarse con el W5100 en la ethernet shield. Estos pines no pueden ser usados para e/s genéricas.

La shield provee un conectores ethernet estándar RJ45
El botón de reset en la shield resetea ambos, el W5100 y la placa Arduino.
La shield contiene un número de LEDs para información:
  • PWR: indica que la placa y la shield están alimentadas
  • LINK: indica la presencia de un enlace de red y parpadea cuando la shield envía o recibe datos
  • FULLD: indica que la conexión de red es full duplex
  • 100M: indica la presencia de una conexión de red de 100 Mb/s (de forma opuesta a una de 10Mb/s)
  • RX: parpadea cuando la shield recibe datos
  • TX: parpadea cuando la shield envía datos
  • COLL: parpadea cuando se detectan colisiones en la red
El jumper soldado marcado como "INT" puede ser conectado para permitir a la placa Arduino recibir notificaciones de eventos por interrupción desde el W5100, pero esto no está soportado por la librería Ethernet. El jumper conecta el pin INT del W5100 al pin digital 2 de Arduino.
El slot SD en la shield no está soportado por el software Arduino.

Arduino

En esta entrada hablare sobre que es un arduino y los diferentes tipos que existen.

Primeramente la definición de Arduino: Es una plataforma de hardware libre, basada en una placa con un microconrolador y un entorno de desarrollo diseñado para facilitar el uso de la electrónica en proyectos multidisciplinares.


El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada y salida.

El software que maneja consiste en un entorno de desarrollo que implementa el lenguaje Processing/Wiring y el cargador de arranque o boot loader que corre la placa.

La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el popular lenguaje de programación de alto nivel Processing. Sin embargo, es posible utilizar otros lenguajes de programación y aplicaciones populares en Arduino. Por mencionar algunos como Java , Flash , Ruby,C, C++ etc.

Una ventaja es que las placas pueden ser montadas a mano aunque quizás es mas fácil adquirirlas ya que existen diversos lugares donde las venden aunque principalmente son pedidos por paqueteria.

El entorno de desarrollo integrado es libre y puede ser descargado gratuitamente. Esta es una ventaja ya que al ser open hardware tanto su diseño como su distribución es libre. Es decir puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia.


Ahora existen muchos tipos de arduino y por lo común muchas veces se pregunta uno cual comprar pues habría que saber algunas características de ellos.

 Placas de E/S
  • Duemilanove - Esta es la ultima revisión de la placa Arduino USB básica. Se conecta al ordenador con un cable USB estándar y contiene todo lo necesario para programar la placa. Se puede ampliar con gran variedad de shields: placas de extensión con funcionalidades especificas. 
  • Diecimila - Esta es la revisión anterior de la placa USB básica. 
  • Nano - Una placa compacta diseñada para usar directamente en placas de desarrollo, el Nano se conecta al ordenador con un cable Mini-B USB. 
  • Mega - Mas grande y potente placa Arduino, compatible con los shields de Duemilanove y Diecimila. 
  • Bluetooth - El Arduino BT contiene un modulo bluetooth que permite comunicarse y programarse sin cables. Es compatible con los shields de Arduino. 
  • LilyPad - Diseñado para aplicaciones sobre prendas, esta placa puede ser cosida a la ropa y es de color purpura y con un diseño con estilo. 
  • Fio - Diseñada para aplicaciones inalámbricas. Incluye un zócalo para XBee, un conector para baterías LiPo y electrónica para cargar baterías. 
  • Mini - La placa Arduino mas pequeña. Funciona perfectamente en una placa de desarrollo o en aplicaciones donde el espacio es primordial. Se conecta al ordenador usando el adaptador Mini USB. 
  • Adaptador Mini USB - Esta placa convierte una conexión USB en 5 voltios , toma tierra, lineas TX y RX que puedes conectar al Arduino Mini o a otro micro controlador. 
  • Pro - Esta placa esta diseñada para aquellos que quien dejar la placa incrustada en el proyecto: es mas barata que la Diecimila y se puede alimentar facilmente con bateri­as. pero requiere de componentes extra y montaje. 
  • Pro Mini - Como la Pro, la Pro Mini esta diseñada para usuarios avanzados que requieren de bajo coste, menor tamaño y dispuestos a un poco de trabajo extra. 
  • Serial - Placa básica que utiliza una interfaz RS232 como comunicación con el ordenador para programar o intercambiar datos. Esta placa es facil de montar incluso como ejercicio didáctico. 
  • Serial a una cara (Single Sided) - Esta placa esta diseñada para ser trazada y montada a mano. es un poco mas grande que la Diecimila, pero compatible con los shields. 
Aquí pueden ver unas imagenes de el arduino nano y el arduino bluetooth.






Sensor PIR

Como muchos sabrán existen muchos dispositivos que pueden ser usados para la elaboración de circuitos y proyectos y uno de ellos son los sensores en este caso hablare sobre uno en especifico el sensor PIR.

Primero que nada PIR proviene de Passive Infra-Red o infrarrojo pasivo  es piroelectrico y detecta movimiento mediante cambios en los niveles de medición de rayos infrarrojos emitidos por objetos que lo rodean . 



Y como se explico aquí lo que mide es el cambio de calor y no la intensidad de este.Como respuesta a ese cambio el sensor cambia el nivel lógico de su pin (0-1). Una de las grandes ventajas de este sensor es que e de muy bajo costo y por eso es muy utilizado en alarmas , iluminacion y robótica.

Datos técnicos:

Voltaje de alimentacion = 5V
Rango de medicion hasta de 6 metros 
Salida = Estado de un pin TTL (Tranistor-Transistor Logic)
Polaridad de activación de salida seleccionable
Mínimo tiempo de calibración
El detector PIR integra una lente Fresnel en el mismo módulo.
No exponer al sol directo.
No mostrar tras un cristal , ni frente a calefactores o aire acondicionado.

Este ensor cuenta con 3 terminales 2 para la alimentación y uno de salida ( detección de movimiento) y en general la conexion a este al microcontrolador solo requiere de esta ultima terminal.

Como funciona:
 
El PIR esta fabricado de un material cristalino que genera carga electrica cuando se expone a la radiacion infrarroja. Los cambios en la cantidad de radiacion producen cambios de voltaje que son medidos por un amplificador. Este sensor contiene unos filtros especiales llamados Lentes Fresnel que enfocan las señales infrarrojas sobre el elemento sensor cuando las señales innfrarrojas del ambiente donde esta el sensor cambian el amplificador activa las ssalidas, para indicar movimiento esta salida permanece activa durante unos segundo lo que permite que el controlador sepa si es que hubo movimiento.

Igual una desventaja que presena seria que si un objeto que no emite calor se mueve el sensor no lo detectaria por ejemplo un vaso redondo, entonces viene como diseñado especificamente para personas o animales que despiden calor.

Para mi proyecto utilizare uno de estos sensores que en la siguiente entrada explicare como deberia funcionar y conectarse al arduino.

lunes, 16 de abril de 2012

Entrega del PIC

Presentación Pic

CÓDIGO

Este es el código creado para que muestre en pantalla lo tecleado.





Algunas librerías utilizadas


Las librerías no se deberán grabar en el PIC sino que estas debes de tenerlas guardadas en tu carpeta y el código escrito en ensamblador .asm las llamara y las utilizara , esto facilita mucho y es mucho mas eficiente ya que si no todo ese codigo debería estar dentro del .asm haciéndolo muy pesado.



viernes, 16 de marzo de 2012

QUE MICROCONTROLADOR USAR

Esta entrada es para orientar a las personas que no saben que microcontrolador utilizar.

Para escoger un microcontrolador se deben de tener en cuenta distintos factores , como el precio que muchas veces es un gran impedimento para estudiantes como nosotros , así que porque comprar un microcontrolador  de los mas caros si lo vamos a utilizar para una función básica , también se tiene que considerar herramientas de desarrollo disponibles , y sus características , osea la memoria del programa , numero de temporizadores , interrupciones etc.

Para seleccionar un microcontrolador ese necesita analizar los requisitos de la aplicación como

Procesamiento de datos esto puede ser necesario si el microcontrolador necesitara realizar cálculos críticos en un tiempo limitado. Entonces se debe seleccionar un microcontrolador rápido y eficiente para este trabajo, así como su precisión existen microcontroladores de 16 o 32 bits si el de 8 no es suficiente. Existe una alternativa que es utilizar librerías para manejar los datos de alta precisión.

Consumo Existen productos que incorporan microcontroladores están alimentados con baterías y su funcionamiento puede ser tan vital como activar una alarma de incendios , activar algo que de no activarse seria determinante ,  seria conveniente que el microcontrolador este en bajo consumo pero que despierte ante la interrupción y ejecute el programa adecuado para procesarla.

I/O  Para estos requisitos se recomienda que se dibuje un diagrama de bloques del mismo, de tal forma que sea sencillo identificar la cantidad y tipo de señales a controlar, asiendo esto podría ser necesario añadir periféricos externos o cambiar a otro mas adecuado con lo que se va realizar.

Memoria, Ancho de palabra y diseño de la placa son otros requisitos que deberían considerarse.


INSTRUCCIONES

INSTRUCCIÓN SUMA

Continuando con la entrada anterior hablare sobre el PIC16F84 y sobre como realiza las operaciones.

Este PIC puede realizar las operaciones aritméticas de sumar , restar ,incrementar y decrementar un registro ademas de operaciones logicas coomo OR, AND.

La suma se realizara en aritmética binaria pura sin signo y afecta a los flags del STATUS de la siguiente forma:
AL flag Z(ZERO) El bit Z se pone en 1 si el resultado de la operacion es cero(b´00000000) y se pone Z en 0 si el resultado tiene cualquier otro valor.

Al flag C(Carry) Si hay un acarreo del bit 7 , osea que si el resultado es mayor que b´11111111 el bit C se activa a 1 y en caso contrario resulta C = 0.

Al flag DC(Digital Carry). Si hay un acarreo del bit 3 al 4 , osea que la suma de las 2 mitades menos significativa (bits 0 a 3) resulta mayor que 15 , el bit DC se pone a 1 en caso contrario se pone a 0.

Un ejemplo de esto seria asi .
(ESTAS EN DECIMAL)
   163
  +79
   ____
   242

(ESTAS EN BINARIA)
   10100011
+ 01001111
   ________
   11110010

(EN HEXADECIMAL)
  A3
  4F
____
  F2

C        DC      Z
0          1         0

INSTRUCCIÓN RESTA


La resta se realiza sumando , en binario puro sin signo , el registro "f" mas el complemento a 2 del contenido del registro W. Al realizarse la resta en 8 bits con signo el resultado no podrá exceder de +127 ni de -128.
El flag Carry indica si el resultado es positivo C se pone a 1 o es negativo C se pondrá 0. Aquí pueden ocurrir 3 casos .

Si el resultado es positivo distinto de cero , C= 1 y Z = 0
si el resultado es cero , C = 1 y Z =1
Si el resultado es negativo , C =0 y Z = 0

INCREMENTAR Y DECREMENTAR


El contenido del registro f se incrementa en una unidad y se llama (incf de increment f) , Almacenara el resultado en w si d =0   y en el registro f si d =1. El flag Z se activa a 1 si el resultado de la operación es cero ,es decir si hay desbordamiento al pasar de b´11111111 a b´00000000.

El decremento se escribe asi decf de decrement f , el contenido se decrementara en una unidad , Este almacena el resultado W si d = 0 y en el registro f si d =1. El flag Z se activa a 1 si el resultado de la operación es cero.


INSTRUCCIÓN SLEEP


Esta instrucción es muy útil porque existe muchas ocasiones en las que el microcontrolador deberá de esperar sin hacer nada , esta instrucción se utiliza para ahorrar energía los microcontroladores PIC disponen de la instrucción especial sleep que les pasa al estado de reposo o también llamado bajo consumo.

En este estado el reloj principal se detiene y se detienen sus circuitos asociados , esperando la interrupción ocasionada para despertarlo.

INSTRUCCIONES ÚTILES 


Existen muchas instrucciones útiles por ejemplo incrementar un registro en un valor n , osea aumentarlo el valor que deseemos y se utiliza esta instrucción al igual que decrementarla en una valor de n y no solamente en una unidad .

Aumentar en n valor                                                 Decrementar en n valor
movlw d'7'                                                                movlw '8'
addwf  Nombredel registro,F                                    subwf  Nombredelregistro,F

Existen muchas otras instrucciones utiles , que quizas pueda incluirlas en otra entrada.


ARQUITECTURAS

Hay que saber que tradicionalmente en los sistemas digitales programables se basa en el esquema Von Neumann . En este modelo la unidad central de proceso o CPU esta conectada a una memoria unica que contiene las instrucciones del programa y los datos.



Una de las principales limitaciones de la arquitectura tradicional es que :

La longitud de las instrucciones esta limitada por la unidad de longitud de los datos, por lo tanto el microprocesador debe hacer varios accesos a memoria para buscar instrucciones complejas.

La velocidad de operación esta limitada por el efecto de cuello de botella que significa un único bus para datos e instrucciones que impide superponer ambos tiempos de acceso.

Arquitectura Hardvard


Esta arquitectura es utilizada en los microcontroladores PIC , que dispone de 2 memorias independientes a las que se conecta mediante 2 grupos de buses separados.

Memoria de datos
Memoria de programa

Ambos buses son totalmente independientes y pueden ser de distintos anchos, esto permite que la CPU pueda acceder de forma independiente y simultanea a la memoria de datos y a la instrucciones, consiguiendo que las instrucciones se ejecuten en menos ciclos de reloj. Esta Dualidad de la memoria permite la adecuación del tamaño de las palabras y los buses a los requerimientos específicos de las instrucciones y los datos.

Y sus principales ventajas son que :

El tamaño de las instrucciones no esta relacionada con el de los datos, entonces puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa. Entonces se logra una mayor velocidad y una menor longitud de programa.

El tiempo de acceso a las instrucciones puede superponerse con el de los datos , logrando una mayor velocidad de operación.


DIFERENCIAS DE MICROCONTROLADOR Y MICROPROCESADOR

Anteriormente realice una entrada sobre el microcontrolador y otra sobre el microprocesador , pero en esta entrada les mostrare sus diferencias , para personas que aun tienen algunas dudas sobre esto.

Un microprocesador es un chip que contiene la CPU y se encarga de controlar todo el sistema.
Un sistema digital que esta basado en un microprocesador es un sistema abierto ya que su configuración difiere según la aplicación a la que se destine.  Se acopla a los módulos necesarios para configurar con las características que se desee.
Es un sistema implementado por varios circuitos integrados todos dentro de una placa de circuito impreso.


Aqui se muestra una estructura digital basada en un microprocesador.

Ahora un microcontrolador es un sistema cerrado, osea esto es que un solo circuito integrado se encierra un sistema digital programable completo.  Y como se sabe solo se destina para una sola tarea que no se puede modificar mientras no se vuelva a programar . Los microcontroladores disponen de los bloques esenciales : CPU, memorias de datos y de programa , reloj , perifericos I/O etc.
Y su principal diferencia es que un sistema digital basado en un microcontrolador esta formado por un solo circuito integrado lo que obviamente reducirá su tamaño y su costo , mientras que uno basado en un microprocesador al estar compuesto de varios circuitos integrados para soportar las memorias módulos de entrada salida et tiene un mayor coste y una menor fiabilidad.


MEMORIA DE PROGRAMA

Un microcontrolador esta diseñado para que en su memoria de programa se almacenen todas las instrucciones del programa de control.

El programa a ejecutar es el ultimo que se graba en el esto es una ventaja o una característica y al no ser volátil garantiza que la memoria mantenga su contenido aun sin alimentación, así que el programa no necesitara ser cargado en el sistema cada vez que se utilice.

La información grabada debe ser grabada previamente  y la forma de hacerlo ya lo mostré anteriormente mediante un programador de PIC y utilizando el software para su grabación .

Cada microcontrolador varia de uno a otro por ejemplo el  PIC16F84 tiene una capacidad de 1k (1024 posiciones) y esta organizada en palabras de 14 bits entonces la memoria comienza en la posición 00h(posición inicial de reset) y llega hasta la 3FFh, este PIC admitirá unas 1000 grabaciones y se garantiza que la información durara durante varias decenas de años.

O el microcontrolador PIC16C84 que es por decir así una versión anterior al 16F84  tiene una memoria de menor tamaño  , con 32 registros de propósito general su mapa de memoria llega hasta 2HF , frente a los 68 registros disponibles de el 16F8.

Así que se necesita estar informado sobre el PIC a utilizar para conocer su capacidad y las vece que pueda re grabarse , como por ejemplo lo echo por el compañero Avendaño creo era un contador o algo parecido que solo pudo llegar hasta 99 cuando el quiso hacerlo hasta 999 esto porque la memoria de el PIC no era suficiente , así que hay que informarse sobre las capacidades para que no pase algo como esto en nuestros proyectos.


GRABACIÓN DE MICROCONTROLADORES PIC

Como ya todos saben un microcontrolador es un circuito integrado programable que contiene todos los componentes necesarios para controlar el funcionamiento de una tarea determinada.

El microcontrolador dispone de una memoria de programa interna donde se almacena el programa que lo controla  y que consiste realmente en una serie de números hexadecimales.

El programa de control se graba en la memoria de programa mediante un equipo físico llamado programador.


El grabador o programador es el equipo físico donde se procede a grabar la memoria del microcontrolador.Tiene un zócalo libre sobre el que se inserta el circuito integrado a grabar se debe recordar que existe una orientación en la que se debe colocar el chip. Existen muchos programadores de distintas marcas ya esta a consideración de cada persona y su capacidad adquisitiva para comprar el que desee.

Este es el zócalo de fuerza que se usa para fijar el microcontrolador.


PERIFÉRICOS BÁSICOS PARA LOS PROYECTOS

En esta entrada les hablare un poco sobre los perifericos basicos que podrian utilziar para sus proyectos o practicas que tengan.

DIODO LED

este es un dispositivo que permite comprobar el funcionamiento de los circuitos de forma cómoda mediante la emisión de luz. Es muy barato y fácil de conectar a la salida de un microcontrolador.

Se polariza en directo con una tensión en extremos entre 1.2 y 2.2 V según cada modelo y solamente requiere de 5 a 30 mA para su encendido.

INTERRUPTORES Y PULSADORES

Estos dispositivos permiten introducir un nivel lógico "0" o "1" según la posición en que se encuentren, "cerrado" o "abierto".

ENTRADAS DIGITALES CON OPTOCOPLADORES

Esto porque en alguno proyectos es necesario utilizar como entrada señales de alta tensión o señales relacionadas con la tensión de la red eléctrica.

Estas tensiones no se pueden aplicar directamente al microcontrolador y es necesario aislar eléctricamente el circuito mediante un optocoplador con montaje. Su funcionamiento es cuando se aplica una tensión circula una corriente por el LED del optocoplador emitiendo un haz de luz que incide sobre el transistor y lo satura. En este caso a la entrada del microcontrolador se aplica un nivel bajo igual cuando estaba cerrado el interruptor. Y cuando no se aplica una tensión alguna en el LED esta apagado bloqueando el transistor. En la entrada se aplica un nivel alto igual que cuando estaba abierto el interruptor del circuito.

DISPLAY DE SIETE SEGMENTOS

Este es un periférico digital de salida y se utiliza para representar valores numéricos, cada display consta de 7 segmentos y un punto decimal, todos ellos son diodos LEDs. se pueden encontrar 2 tipos según los pones que tengan unidos un ánodo común o cátodo común.

Estos son algunos de los mas comunes obviamente existen muchisimos mas periféricos pero no tan comunes o tan usados , igual podría hacer una nueva entrada hablando de algunos otros mas como los rele  o lo buzzer etc.


lunes, 12 de marzo de 2012

Lenguaje maquina Distinto ????

Bueno el motivo de esta entrada que sera algo pequeña pero muy util para las personas que aun no estan muy familiarizadas con esto.


Existe la pregunta muchas veces si el lenguaje maquina que funciona en un  algún microprocesador  funcionaria en otro ?, bueno pues esto es incorrecto , el lenguaje maquina es especifico de cada maquina o arquitectura de la maquina , aunque el conjunto de instrucciones disponibles pueda ser similar entre ellas .


Esta es una dificultad añadida a este tipo de lengujes , ya que son dependientes de la maquina o mejor dicho del procesador , osea para dejarlo mas simple , utiliza lenguaje maquina distinto que se define en su propio hardware.


En consecuencia, un programa escrito para un tipo de procesador no se podrá usar en otro equipo que utilice un procesador distinto, ya que, el programa no será portable o transportable. Para que dicho programa pueda funcionar en una segunda computadora, habrá que traducir todas las instrucciones escritas en el lenguaje máquina del primer equipo al lenguaje binario de la segunda computadora.



Los microprocesadores difieren en el tipo y número de operaciones que soportan; también pueden tener diferente cantidad de registros, y distinta representación de los tipos de datos en memoria. Aunque la mayoría de los microprocesadores son capaces de cumplir esencialmente las mismas funciones, la forma en que lo hacen difiere y los respectivos lenguajes ensamblador reflejan tal diferencia.