Idea para combatir las imprudencias que cometemos como conductores

Posted: miércoles, 31 de julio de 2013 by Adrian in Etiquetas: , , ,
0

Aunque sucede todos los días, este fin de semana fue muy notorio ya que vi en varias ocasiones, como conductores irrespetaban un semáforo en rojo por acelerar cuando éste estaba en amarillo, en uno de estos eventos participaba un vehículo pesado... repito cosa de todos los días.

El vehículo delante del mío afortunadamente no salió de inmediato al cambiar de rojo a verde , cuando vimos pasar a gran velocidad este camión de carga, y en su impotencia y la de todos solamente le quedó pitar por un largo tiempo a modo de protesta, aunque el irresponsable ya estaba lejos.

Me desvío de mi testimonio para enlazarlo con otro que a primera vista no tiene relación; con la caída del meteorito en Rusia hace unos meses  fue curioso que la gran mayoría de los videos fueron grabados desde cámaras instaladas en los vehículos.

Por qué ésta afición de los rusos por grabar mientras conducen? La respuesta no fue difícil de encontrar; debido a la gran cantidad de accidentes por conducción irresponsable, deficiencias en la infraestructura vial y corrupción a nivel de la policía de tránsito; los ciudadanos han optado por documentar en video mientras conducen para así poder tener una evidencia de lo ocurrido en caso de accidentes o algún otro evento.

Volviendo a Costa Rica, si bien no podemos poner un oficial de tránsito en cada esquina, una cámara en cada tramo donde se excede la velocidad, tal vez si podamos armarnos la mayoría con una cámara (dash-cam) y así tendríamos un ejército de cámaras documentando a los pésimos conductores.

Bajo ese escenario, alguno de los conductores que vimos cómo un camión de carga se saltó un semáforo, con una cámara hubiéramos documentado el hecho y si es del caso seguir al irresponsable para grabar la placa.

Unidos los 2 temas, planteo la pregunta a la policía de tránsito o alguna persona que conozca del tema: Tendríamos fundamento legal para denunciar estos hechos mostrando evidencia aunque no estemos afectados directamente? POLICIA DE TRANSITO DE COSTA RICA

No sé qué mucho o poco ha ayudado esta medida a los rusos, me queda de tarea averiguarlo, pero no veo hasta ahora una razón en contra para no hacerlo; yo por mi parte pronto compraré mi dash-cam.

Buscador de Procedimientos SQL

Posted: domingo, 24 de febrero de 2013 by Adrian in Etiquetas: ,
0

Como profesional en informática trabajando principalmente en SQL Server desde la versión 7 hasta el momento con SQL Server 2008 R3,  hace algunos años me encontré con el escenario de poder identificar cuales procedimientos se veían afectados por un cambio en una tabla. 

Esta problemática me llevó a crear un pequeño procedimiento almacenado que retorna todos los procedimientos y vistas donde una porción especifica de texto es utilizada. 

Desde entonces y hasta ahora, cada vez que inicio en un nuevo ambiente, servidor, instancia de SQL, entre las tareas iniciales está crear éste procedimiento que espero les sea de utilidad tanto como lo ha sido para mi.


CREATE PROCEDURE dbo.BuscaSP  
  @texto varchar(100)  
AS  
BEGIN  
Declare @cmd varchar(1000)  
  
Set @cmd = 'Select '+'''Exec Sp_HelpText  '''+' + name from sysobjects where id IN  
  (select Id from syscomments   
                  where text like '+'''%'+@texto+'%'')'  
  
exec(@cmd)  
END



Forma de utilizarlo

Supongamos que necesitamos saber cuales procedimientos utilizan la tabla  customer en la base de datos AdventureWorks.

corremos el procedimiento  exec buscasp 'customer'  y nos devuelve los procedimientos que contienen en su script el texto  'customer',  de tal forma que podemos ejecutar la sentencia que nos devuelve para ver el script completo.






Lab-003 Sensor de Temperatura

Posted: martes, 5 de febrero de 2013 by Adrian in Etiquetas:
0

Los sensores son componentes que nos permiten capturar a través de sus mediciones una situación especifica del medio externo en nuestro circuito.  Son muchos los tipos de sensores que podemos implementar en una placa Arduino, por ejemplo  encontramos  acelerómetros, Alcoholímetros, Temperatura, Humedad, Luz, Ultrasónicos  (distancias) entre muchos otros tipos.


En el siguiente laboratorio se trabajará con el sensor de temperatura TMP35, este componente provee una salida de voltaje directamente proporcional a la temperatura ambiente y su medición puede oscilar entre -40°C  y 125°C  con una precisión de +/- 2°C.   Es común encontrarlo en aplicaciones de tipo Control Ambiental, Protección Térmica, Procesos Industriales, Alarmas, etc.


Para hacer funcionar el Sensor TMP35, basta con conectar la patilla izquierda a  los 5 volts y la patilla derecha a 0 volts (tierra).  A continuación el conector central tendrá una tensión analógica que es directamente proporcional a la temperatura ambiente. Es importante señalar que esta temperatura no se ve afectada por la fuente de alimentación del circuito. 

El sensor devuelve un voltaje que es proporcional a la temperatura ambiente, para poder traducir este valor a  grados Cº o Fº  requerimos de 3 pasos:

1. Capturar la lectura del sensor y enviarla a una entrada análoga de Arduino.
2. Convertir esa lectura a voltaje de la siguiente forma  
Volt =  lectura del sensor * 0.5
3. Convertir el voltaje a Temperatura: 
Temperatura grados Celsius =   ( voltaje - 0.5 )/ 1024
Temperatura Farenheit      =  ( TempCelsius * 9.0 / 0.5 ) + 32.0

Objetivos:

  • Conocer de forma básica como funciona un sensor de temperatura de estado sólido (no tiene partes móviles, no tiene Mercurio).
  • Implementar un sensor TMP35 en Arduino y capturar sus lectura en el monitor serial.

Materiales:

  • Placa Arduino UNO
  • Sensor TMP35
  • Jumpers

Montaje del Circuito:


Una vez empotrado el sensor de temperatura en la protoboard, alimentamos con 5 volts  la patilla izquierda,  la derecha va a tierra ( 0 voltios )  y la patilla central que es la que nos devuelve la lectura,  la conectamos a una entrada análoga del Arduino.  
Recordemos que una entrada o salida Análoga es la que puede darnos un valor en un rango determinado, mientras que la Salida o Entrada digital nos dará solamente 2 estados ( 0 - 1).

Este sería el esquema del montaje (en Arduino Diecimila, similar sería en Arduino UNO):


Programación del Circuito


Monitor Serial:







Posted: domingo, 3 de febrero de 2013 by Adrian in Etiquetas:
0

Lab-002   Encendido y apagado incremental de un LED.


El laboratorio anterior nos sirve de base para el siguiente laboratorio, a continuación los objetivos

Objetivos:

-  Utilizar salidas analógicas PWM   (Pulse With Modulation).
-  Habilitar el motinor serial para mostrar los valores del circuito.

Materiales

- Placa Arduino
- Led 1.5 volts
- Jumpers

Montando el Circuito


En el laboratorio anterior utilizamos el Pin 13 fuente que alimentaba el LED, para este laboratorio, cambiamos por el Pin 9 que es un pin como pulso modulado.   Esto quiere decir que su valor de alto o bajo (1 o 0)  puede situarse en un valor entre 0 y 255, lo que permite manipular la intensidad de luz que emite el LED.

Este sería el esquema del montaje:





Programación del Circuito

En el bloque Setup,  definimos el pin con el que se va a trabajar (Pin 9)  y se parametriza el monitor serial para identificar los valores que estan llegando del pin.

Serial.begin(9600);

Se insertan dos ciclos For, el primero para incrementar la intensidad de 0 a 10 y el segundo para reducir la intensidad de 10 a 0. A diferencia el laboratorio anterior la escritura en el LED se hace mediante la instrucción analogWrite([pin], intensidad), ya que estamos usando una salida analógica.



Una vez que inicia la ejecución del programa, en el menú de processing seleccionamos  Herramientas - Monitor Serial   esto nos abre la ventana que muestra los datos que están llegando al pin 9.



Lab-001 Arduino - Blink Led

Posted: by Adrian in Etiquetas:
0

Lab-001  Encender un led.

Como informático, uno de los cursos que forman parte de la carrera fue  "Diseño Digital y Laboratorio",  básicamente era conocer los componentes electrónicos básicos ( compuertas AND, OR, NOT, NAND, NOR, XOR)  y conjuntarlos para hacer pequeños proyectos programando algún circuito integrado. Mi proyecto final, no recuerdo bien los detalles pero fue un juego de azar.

Ese curso en particular me impactó mucho, a tal punto que decía en ese momento (1998) que más adelante estudiaría ingeniería electrónica; hoy difícilmente pueda retomar una carrera universitaria pero mi reencuentro con la electrónica se ve mucho más factible con las herramientas e información disponible en linea.

Así que descubrí Arduino que es una pequeña placa que puede ser programada mediante processing y con la que puedo experimentar y de alguna forma conocer un poco más de la electrónica,  buscando en la web se encuentran muchos proyectos, bastante de ellos muy complejos para mi escaso conocimiento en estos componentes; pero definitivamente es un reto y un pasatiempo increíble poner experimentar y conocer.

Así es que comparto este primer experimento, que en el caso de un lenguaje de programación sería el clásico "Hola Mundo", o lo que sería para un escolar  1 + 1.

Objetivos:

- Conocer como hacer un montaje básico de un led en una placa Arduino.
- Controlar mediante programación el encendido y apagado del led.

Materiales:

- Placa Arduino UNO 
- LED de 1.5 volts
- Jumpers (Cables)



Montando el circuito


Los componentes deben montarse en una protoboard que será alimentada desde Arduino conectando la salida de 5v al carril  positivo  de la protoboard, y la salida  de tierra  (GND) al carril negativo.







Hecha esta conexión,  estaremos trabajando con 5 voltios para los componentes que agreguemos a la protoboard,  sin embargo algunos de ellos como los Led, toleran cierta cantidad de voltaje siendo estos 5 voltios un exceso que podría ocasionar una sobrecarga y quemarlos.

Es aquí donde entran en juego las resistencias, ya que nos permiten "reducir" la corriente que vaya a recibir un led o determinado componente. El tema de las resistencias es muy amplio y no se abarcará en este blog, pero comparto un link que explica muy bien la función y cómo calcular la resistencia que necesitamos.  (  resistencias )

Para usuarios de Android, recomiendo buscar alguna aplicación que nos facilite la identificación de la resistencia de acuerdo a sus bandas de colores y también el tipo de resistencia que necesitamos según nuestro circuito.  ( S2 Resistor Color Code).

Todo led tiene una patilla más larga que la otra,  ésta nos indica la patilla positiva,  a esta patilla conectamos los 5v  y debemos interponer la resistencia que para este caso es una resistencia de 330 ohm entre la patilla negativa y la conexión GDN.

Esta sería la conexión básica,  Fritzing es una aplicación que nos permite hacer montajes virtuales en una placa arduino,  funciona como diagramador no como simulador. ( Fritzing.org )

Esquema  (Generado por Fritzing.org)



Programación del circuito:

La programación podemos hacerla mediante  processing   con el siguiente código podemos lograr el objetivo que es encender y apagar el LED con un intervalo de 3 segundos.







Funcionamiento