¿Algo de ayuda con C# + puerto serial?

DN_Mephisto

Bovino maduro
#1
Lamentablemente necesito recurrir a molestarlos compañeros del foro; apenas estoy metiéndome con C#, ésto es por que necesito hacer un programa.

Consiste en mandar una sóla señal por el puerto serie, y si recibe alguna, deberá mostrarla en una gráfica pero me conformo con que salga un indicador de que "algo" está llegando a la PC.

Por si alguien necesita saberlo, ya sé mínimo lo básico sobre variables, clases, tipos de datos, tipos de retorno, y bucles; lo más básico. El entorno de Visual Studio también lo conozco, utilizo la versión Express para C#.

Por favor, si alguien cuenta con el tiempo (digamos que un día completo) le agradeceré muchísimo y lo más que les prometo será avanzar muy rápido para no quitarles más tiempo y hasta pondré una guía "how to" =P saludos mis estimados.

Info extra: no he visto que eso se pueda hacer con Java, que es con el que más experiencia tengo trabajando, ya lo habría hecho de haber cómo.
 
#2
mmm primeramente carnalito sabes electronica?
mira para tu proyecto se divide en 2 partes, el hardware y el software:

hardware: medios electronicos para representar la señal en el mundo real(el mas sencillo la impresora) y otro con elementos como compuertas, convertidores, transistores, y filtros,
lo mas sencillo es hacer un plataformita con un microcontrolador, un MAX232, y una resistencia,

el software: el programa que vas a realizar en C#, si tomas el ejercicio del microntrolador la programacion del mismo, tambien puedes utilizar simulacion con proteus eso te los explico al ultimo.

bueno para el software estos temas dicen varias cosas de programacion

http://social.msdn.microsoft.com/forums/es-ES/vcses/thread/b95676f5-e07f-478b-b3b1-f0abb0d9e94b/
http://msmvps.com/blogs/peplluis/ar...as-tramas-recibidas-en-el-puerto-serie-c.aspx

para entender como trabaja la comunicacion en serie tienes que buscar como trabaja el protocolo de transmision RS232(el mas comun), este puede ser asincrona o sincrona, maestra o subordinada, hay mucha informacion de esa en san google, ya que le hayas entendio, el que recomiendo es la asincrona y tipo maestro.
El programa para hacerlo en C# tienes que enter como se trabaja con tramas ya que una cosa es un byte que envias y otra cosa son palabras o datos, pero espero que le entiendas con los link que te puse :D

ahora la parte de hardware:
mira la comunicacion serial maneja valores de -13 y +13 volts por eso ocupas el MAX232 para bajar el voltaje a -5 y +5 volts que la mayoria de los elementos electronicos trabaja a esta se le llama señal TTL, bueno ahora ya tienes tu señal manejable, tienes 2 opciones una hacer un arreglo de flip flops esto lo encuentras en logia secuencial(igual hay mucha informacion en san google) con este arreglo puedes sacar a las señales a leds o un convertidor digital-analogico y este mismo a un foquito para ver la variacion. Para meter los datos puedes hacerlo por medio de interruptores o de un resistencia variable con un convertidor analogico-digital y buscas la informacion de cambiar señal paralelo a serial(maravilloso google lo encuentras o en libros), la otra opcion es el microcontrolador o un dispositivo programable(DDL, PDL, etc). Te recomiendo el microcontralor pues ahy unos que tiene ya todas las caracteristicas de comunicacion serial, convertidores analogicos-digitales, puertos para ingresar señales(te da la muestras gratis de elementos registrandote en la pagina de microchip.com y te llegan al mes), bueno ese es el que veo mas sencillo por que pues es facil la programacion y viene la programacion en el datasheet de los elementos(http://www.datasheetcatalog.com esta pagina encontraras los datasheet de cualquiere elementos), ahi solo le agregas cosas a los puertos y listo :aplausos: sencillitogulp!

el ultimo es por simulacion es el mas barato por que no te cuesta ni peso pero si te cuesta mucho empeño por que debes aprender amanejar el programa y una terminal virtual,
el programa se llama proteus, es especialmente para simular microcontroladores, adentro del mismo tiene un programa de ejemplo de como comunicarse en serie, aparte tienes que buscar como se implementa la terminal virtual para ver que envias y que recibes esto tambien esta en san google :D, y ahi estan todas las opciones baratas :D

La cara es que te compres el dispositivo hecho en steren creo lo venden o en tiendas de electronica suelen vender unidades de aprendizaje pero tristemente no creo que encuentres una que valga menos de 1000 pesos, han de andar por los 3000 supongo.

ahi esta carnalito. si creias que tu proyecto lo puedes hacer en 2 dias pues jiji no lo creo, en la universidad hice un control automatico de temperatura para el baño manejado por display y pues no nos llevo un semestre completo bueno el de nosotros por que fue complejo por la logica, pero si te vas a llevar 1 mes en eso ya que tienes que aprender demasiado, y lo de java recuerda que el C# es copia piratita del java entonces pues son muy parecidas las librerias

:vientos: sale mi estimado a empezar a investigar si te van surguiendo preguntas aqui en el foro te las respondemos
 
#3
mmm primeramente carnalito sabes electronica?
mira para tu proyecto se divide en 2 partes, el hardware y el software:

hardware: medios electronicos para representar la señal en el mundo real(el mas sencillo la impresora) y otro con elementos como compuertas, convertidores, transistores, y filtros,
lo mas sencillo es hacer un plataformita con un microcontrolador, un MAX232, y una resistencia,

el software: el programa que vas a realizar en C#, si tomas el ejercicio del microntrolador la programacion del mismo, tambien puedes utilizar simulacion con proteus eso te los explico al ultimo.

bueno para el software estos temas dicen varias cosas de programacion

http://social.msdn.microsoft.com/forums/es-ES/vcses/thread/b95676f5-e07f-478b-b3b1-f0abb0d9e94b/
http://msmvps.com/blogs/peplluis/ar...as-tramas-recibidas-en-el-puerto-serie-c.aspx

para entender como trabaja la comunicacion en serie tienes que buscar como trabaja el protocolo de transmision RS232(el mas comun), este puede ser asincrona o sincrona, maestra o subordinada, hay mucha informacion de esa en san google, ya que le hayas entendio, el que recomiendo es la asincrona y tipo maestro.
El programa para hacerlo en C# tienes que enter como se trabaja con tramas ya que una cosa es un byte que envias y otra cosa son palabras o datos, pero espero que le entiendas con los link que te puse :D

ahora la parte de hardware:
mira la comunicacion serial maneja valores de -13 y +13 volts por eso ocupas el MAX232 para bajar el voltaje a -5 y +5 volts que la mayoria de los elementos electronicos trabaja a esta se le llama señal TTL, bueno ahora ya tienes tu señal manejable, tienes 2 opciones una hacer un arreglo de flip flops esto lo encuentras en logia secuencial(igual hay mucha informacion en san google) con este arreglo puedes sacar a las señales a leds o un convertidor digital-analogico y este mismo a un foquito para ver la variacion. Para meter los datos puedes hacerlo por medio de interruptores o de un resistencia variable con un convertidor analogico-digital y buscas la informacion de cambiar señal paralelo a serial(maravilloso google lo encuentras o en libros), la otra opcion es el microcontrolador o un dispositivo programable(DDL, PDL, etc). Te recomiendo el microcontralor pues ahy unos que tiene ya todas las caracteristicas de comunicacion serial, convertidores analogicos-digitales, puertos para ingresar señales(te da la muestras gratis de elementos registrandote en la pagina de microchip.com y te llegan al mes), bueno ese es el que veo mas sencillo por que pues es facil la programacion y viene la programacion en el datasheet de los elementos(http://www.datasheetcatalog.com esta pagina encontraras los datasheet de cualquiere elementos), ahi solo le agregas cosas a los puertos y listo :aplausos: sencillitogulp!

el ultimo es por simulacion es el mas barato por que no te cuesta ni peso pero si te cuesta mucho empeño por que debes aprender amanejar el programa y una terminal virtual,
el programa se llama proteus, es especialmente para simular microcontroladores, adentro del mismo tiene un programa de ejemplo de como comunicarse en serie, aparte tienes que buscar como se implementa la terminal virtual para ver que envias y que recibes esto tambien esta en san google :D, y ahi estan todas las opciones baratas :D

La cara es que te compres el dispositivo hecho en steren creo lo venden o en tiendas de electronica suelen vender unidades de aprendizaje pero tristemente no creo que encuentres una que valga menos de 1000 pesos, han de andar por los 3000 supongo.

ahi esta carnalito. si creias que tu proyecto lo puedes hacer en 2 dias pues jiji no lo creo, en la universidad hice un control automatico de temperatura para el baño manejado por display y pues no nos llevo un semestre completo bueno el de nosotros por que fue complejo por la logica, pero si te vas a llevar 1 mes en eso ya que tienes que aprender demasiado, y lo de java recuerda que el C# es copia piratita del java entonces pues son muy parecidas las librerias

:vientos: sale mi estimado a empezar a investigar si te van surguiendo preguntas aqui en el foro te las respondemos
Hazle caso a lo que te dice, en el tecnogico en el que estoy (universidad) estoy aprendiendo la parte delos microcontroladores, y lo de arreglo flip flops es bastante cierto, xD por el lado de C#, tambien tiene razon, solo que Java es un poco mas primitivo que C#(diseñado por microsoft), asi que no te compliques demasiado con el C hazlo en java si estas acostumbrado a utilizarlo.
 

oldBoy

Bovino adicto
#4
Hazle caso a lo que te dice, en el tecnogico en el que estoy (universidad) estoy aprendiendo la parte delos microcontroladores, y lo de arreglo flip flops es bastante cierto, xD por el lado de C#, tambien tiene razon, solo que Java es un poco mas primitivo que C#(diseñado por microsoft), asi que no te compliques demasiado con el C hazlo en java si estas acostumbrado a utilizarlo.
Mmmmm que quisiste decir con "mas primitivo"?
 

DN_Mephisto

Bovino maduro
#5
mmm primeramente carnalito sabes electronica?
mira para tu proyecto se divide en 2 partes, el hardware y el software:

hardware: medios electronicos para representar la señal en el mundo real(el mas sencillo la impresora) y otro...
Bueno, antes que nada gracias por la respuesta, la verdad sí ando atrasado en ésto de la electrónica, pero pues el circuito ya está listo. En sí no voy a ocupar un microcontrolador, es un timer, digamos que es un juguetito de proyecto. En lugar de ver las señales del timer en un LED los voy a ver en la PC, a eso me referia en el primer post con "me conformo con que salga un indicador de que "algo" está llegando a la PC."

Y reitero, la parte electrónica (hardware pues) ya está lista. Lo del RS232 bueno, dices que protocolo asíncrono maestro, apenas lo voy a ver para saber a qué se refiere.

Si me surgen más dudas le doy bump al post. Gracias.
 
#6
Mmmmm que quisiste decir con "mas primitivo"?

:memeo: supongo que primitivo dijo por que es mas viejito el java que el C# :D pero tambien a mi me quedo la duda del por que primitivo :chin!:

y pues si ya tienes el hardware y si tienes señal entonces todo se va haciendo mas sencillo, ahora lo que tienes que ver como funciona "el juguete" si funciona por bits o por palabras despues de eso pues si es por palabras metete de lleno a ver la programacion por tramas, de ahi solo a enviar datos para ver que prende :D, bueno si no te prende para nada ni con bits ni con palabras buscate un oscilador y con ese debes de ver a producto de gallina si si envias bits o no envias nada, para graficar datos en computadora primero tienes que ver como es la señal que te llega igual que el envio solo que esto es un poco de mas de trabajo por ese si puede ser de 8 bits, 16 bits(palabra), 32 bits, 128 bits, etc, bueno ya que sabes lo que te llega la guardas en un arreglo despues mandas a graficar un dato, despues de que lo tienes graficado clonas la imagen despues vuelves a graficar pero esta ves agredas el otro punto, y asi te la llevas, entre mejor claridad de grafico tienes que acortar el tiempo de muestreo te recomiendo que sea entre 50 y 60hz por cuestiones de con que frecuencia maneja tu juguetito :D si quieres darte una idea con eso de la graficacion te puedo mandar un codigo de ejemplo de arrastrar imagenes ese te va dar un mejor entendimiento a lo que me refiero con clonar
 
#7
Lamentablemente necesito recurrir a molestarlos compañeros del foro; apenas estoy metiéndome con C#, ésto es por que necesito hacer un programa.

Consiste en mandar una sóla señal por el puerto serie, y si recibe alguna, deberá mostrarla en una gráfica pero me conformo con que salga un indicador de que "algo" está llegando a la PC.

Por si alguien necesita saberlo, ya sé mínimo lo básico sobre variables, clases, tipos de datos, tipos de retorno, y bucles; lo más básico. El entorno de Visual Studio también lo conozco, utilizo la versión Express para C#.

Por favor, si alguien cuenta con el tiempo (digamos que un día completo) le agradeceré muchísimo y lo más que les prometo será avanzar muy rápido para no quitarles más tiempo y hasta pondré una guía "how to" =P saludos mis estimados.

Info extra: no he visto que eso se pueda hacer con Java, que es con el que más experiencia tengo trabajando, ya lo habría hecho de haber cómo.
Hola:

Te dejo los manuales que hice hace tiempo en pdf sobre el control del puerto serie paso a paso. Usa el PIC 16F84.

Ver Vídeo:

http://www.abcdatos.com/tutoriales/tutorial/z9521.html
http://www.pic16f84a.org/index.php?option=com_content&view=category&layout=blog&id=54&Itemid=105
http://electronica-pic.blogspot.com/

Un cordial saludo.
 
#8
:memeo: supongo que primitivo dijo por que es mas viejito el java que el C# :D pero tambien a mi me quedo la duda del por que primitivo :chin!:

y pues si ya tienes el hardware y si tienes señal entonces todo se va haciendo mas sencillo, ahora lo que tienes que ver como funciona "el juguete" si funciona por bits o por palabras despues de eso pues si es por palabras metete de lleno a ver la programacion por tramas, de ahi solo a enviar datos para ver que prende :D, bueno si no te prende para nada ni con bits ni con palabras buscate un oscilador y con ese debes de ver a producto de gallina si si envias bits o no envias nada, para graficar datos en computadora primero tienes que ver como es la señal que te llega igual que el envio solo que esto es un poco de mas de trabajo por ese si puede ser de 8 bits, 16 bits(palabra), 32 bits, 128 bits, etc, bueno ya que sabes lo que te llega la guardas en un arreglo despues mandas a graficar un dato, despues de que lo tienes graficado clonas la imagen despues vuelves a graficar pero esta ves agredas el otro punto, y asi te la llevas, entre mejor claridad de grafico tienes que acortar el tiempo de muestreo te recomiendo que sea entre 50 y 60hz por cuestiones de con que frecuencia maneja tu juguetito :D si quieres darte una idea con eso de la graficacion te puedo mandar un codigo de ejemplo de arrastrar imagenes ese te va dar un mejor entendimiento a lo que me refiero con clonar


que tal , estoy trabajando en este tema de imagenes me podrias pasar tu codigo para el arrastre de imagenes, xfa.:eolo: mi correo es j.e.y.01@hotmail.com espero tu respuesta
 
#9
Lamentablemente necesito recurrir a molestarlos compañeros del foro; apenas estoy metiéndome con C#, ésto es por que necesito hacer un programa.

Consiste en mandar una sóla señal por el puerto serie, y si recibe alguna, deberá mostrarla en una gráfica pero me conformo con que salga un indicador de que "algo" está llegando a la PC.

Por si alguien necesita saberlo, ya sé mínimo lo básico sobre variables, clases, tipos de datos, tipos de retorno, y bucles; lo más básico. El entorno de Visual Studio también lo conozco, utilizo la versión Express para C#.

Por favor, si alguien cuenta con el tiempo (digamos que un día completo) le agradeceré muchísimo y lo más que les prometo será avanzar muy rápido para no quitarles más tiempo y hasta pondré una guía "how to" =P saludos mis estimados.

Info extra: no he visto que eso se pueda hacer con Java, que es con el que más experiencia tengo trabajando, ya lo habría hecho de haber cómo.

No se si ya te respondieron pero yo estoy haciendo casi lo mismo, lo que estou haciendo es graficar una palabra de 8 bits desde el puerto paralelo con un adc0808 para digitalizar la señales analogicas pero aun no lo termino me sobra una semana para terminarlo si te interesa notificame
 
#10
Qué tal compañeros. Perdonen la tardanza, ando con el tiempo encima. Lo bueno es que todavía cuento con un máximo de dos semanas para esto. Las guías en un rato más las checo, muchas gracias. Y bueno, lo del optoacoplador ya se descartó, el profe que tengo se conforma con que un programa en C# reciba señales en el puerto serial con el puro astable (así de sencillito, sin PICS y ese ya lo tengo) y mínimo que prenda un LED con un botón en la protoboard, el programa en C# es el que me falta. Pero si es fácil de crear pues igual y se podría postear aquí, yo como decía antes lo más que prometo es dar las gracias, posteraé el programa, cómo lo hice y pues la comunidad cuenta con mi ocasional ayuda jeje. Muchas gracias a todos.
 
#12
¿Qué palabras usaste? Yo me la pasé buscando con "C# serial port" y en algo así de 100 resultados no hallé nada como lo que posteaste. Gracias.
 

50C1

Bovino adicto
#13
use "c sharp serial port" jeje.... revizando tu query ps si salen varias cosas tambien...

ten paciencia y lee bien..

saludos
 
#15
Qué tal. Perdonden la tardanza de respuesta.

Dos semanas para éste proyecto eran pocas y para lo que quería hacer estaba muy ambicioso. Sin embargo logré salir del problema usando el puerto paralelo (demasiado sencillo los que saben de ésto). Sigo sin salir de compromisos, pero prometí un tuto sobre ésto (C# y puerto serie), así que no se impacienten jejeje, es para novatos como yo pero bien les podrá servir.



Saludos y gracias por su tiempo.
 
Arriba