[SOLUCIONADO] Programar puerto Serial recibir un bit

Iniciado por juankrlos, 3 Abril 2015, 04:17 AM

0 Miembros y 1 Visitante están viendo este tema.

juankrlos

Hola camaradas
les cuento que estoy intentando de crear un programa que me permita contar pulsos desde el puertoserial pero necesito orientacion de que lenguaje utilizar para tal efecto.

la situación es la siguiente...
Existe un dispositivo que sirve para medir la velocidad de balines de plomo en rifles de aire comprimido --> http://www.ebay.es/itm/COMBRO-CB-625-Mk4-Air-Rifle-Gun-Chronograph-Chronoscope-Power-Ft-lbs-Shooting-/230845009472

y me da una lata comprarlo y prefiero utilizar los recursos que tengo a mano para hacer lo mismo con mi PC

el asunto es que este dispositivo detecta la pasada del balin y calcula su velocidad
creo que se puede hacer algo parecido utilizando algún fotodiodo o algo similar que me envíe pulsos de la pasada del balin y recibir estos pulsos en el puerto serial de mi notebook luego mediante código realizar los cálculos y obtener la velocidad de pasada del balin

el tema es .. como  programar el puerto serial para recibir un pulsos ? ya que la mayoría de la info en la web hace referencia a recibir bytes pero NO de recibir un solo bit
que lenguaje de programación seria el mas adecuado?

estaba pensando en vb y su serialport
o en C que es mas tedioso pero da posibilidades mayores en cuanto al control

cabe señalar que no soy un maestro en programación solo soy aficionado

Saludos

LaThortilla (Effort)

#1
yo hice un proyecto con Visual Basic  y pics...
creo que visual basic es suficiente para que puedas crear lo que quieres....

puede que necesites un modulo ( no se la serie ni el nombre) que sirve como interfaces entre el pc y tu dispositivo....

ivancea96

Tal vez te interese agrupar los bits de 8 en 8 y enviar un paquete de datos de 1 byte. O simplemente enviar un byte y leer solo el primer bit.

juankrlos

#3
BINGOOO!!! lo tengo..

lo encontré en VB6 usando el MSComm

el tema es mediante el uso de un bucle que revise el estado de algún pin de entrada en el conector RS232 como por ejemplo el pin DSR ( el n° 6 ) de esta forma cuando recibo un pulso en este  el bucle me notifica de esta situación jajajaja

lo he probado de la siguiente forma

If MSComm1.DSRHolding = True Then
Label4.Caption = "ON"
Else
Label4.Caption = "OFF"
End If

para que el pin 6 reciba pulso he activado el pin 4 de salida que es el DTR  con la instrucción "MSComm1.DTREnable = True"

Con esto puse un switch entre el pin 4 y el 6 y cuando lo presiono me llega la señal que hace que el label cambie a estado "ON " bueno de aquí en adelante se puede hacer lo que la mente creativa me de :)




ahora tengo que resolver el tema del hardware a utilizar.
Había pensado en un fotodiodo que al paso del balin cree sombra la cual hará que el fotodiodo reaccione y envíe señal ya sea un 0 o un 1 que esto lo puedo interpretar en el software.
Existirá algún otro dispositivo que no toque el balin?



juankrlos

jajaja conclusion final...
NO es factible el proyecto.

VB ni el mismo sistema operativo Windows ofrece alguna función que permita obtener el tiempo con precisión de microsegundos. Solo llegan a precisión de milisegundos que no me sirve para este proyecto.

por ahí hay ejemplos usando la funcion "gettimeofday" en lenguaje C pero se dice que no es muy precisa.

tal vez en lenguajes mas cercanos a maquina ASM encuentre algo util  o ya tendria que salirme del pc y programar en microcontroladores pero esto se aleja del proposito inicial que era bajo costo.

ahora pienso.. Tengo un maldito procesador i7 con 2.40Ghz y no puedo contar el tiempo en microsegundos .. jajajaj que porquerias de sistemas operativos !!!