Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola,
Estoy en un proyecto de desarrollo de un robot que envie al PC por el puerto serie asincrono datos de odometria y distancia a los objetos cercanos. Para ello he estado usando el hyperterminal para depurar la transmission Robot->PC.
Cuando he querido pasar a hacerme un programita en C para hacer graficas y procesar los datos, he desempolvado el Turbo C y me he peleado con el puerto serie usando bioscom(), inport(). Sin exito, cuando descubro que Windows XP no permite acceso a los puertos directo. Se tiene que hacer via API.
No me gustaria tener que dedicar tiempo a aprender Visual C++ o Visual Basic, no tengo mucho tiempo y el poco que tengo lo quiero dedicar a experimentar con el robot. Como lo que quiero hacer: recoger datos del robot por el puerto serie me parece tan sencillo, seguro que alguno de vosotros teneis alguna idea de como podria hacerlo sin recurrir a complicarme la vida aprendiendo a programar en Windows con APIs y demas.
Muchas gracias por vuestros comentarios.
zapa
Te comento un par de consejos:
1.- Olvidate del turboC a no ser que tengas un windows 95/98 y entres en msdos.
2.-Si quieres trabajar en windows pero sin tener que usar entornos "propietarios", instala el devcpp que ya trae entorno c/c++ gnu y generar ejecutables válidos win32.
Con devcpp puedes trabajar con programas escritos en C con las librerías estándar de c (el bios.h no lo es, igual que el borland graphics del turbo c) y/o trabajar con la api de windows.
Yo ya he estado bicheando el puerto serie con el devcpp y al final tienes que recurrir a "incrustar" las funciones el io.dll / winio.dll o usar unas librerías "envolventes" (wrappers) que lo hagan por tí, y tu llamar a las funciones de esa nueva librería.
Te dejo algunos enlaces donde verás los mismos códigos de llamada a la api de windows una y otra vez.
http://msdn.microsoft.com/en-us/library/ms810467.aspx
http://www.daniweb.com/forums/thread56329.html
http://ontrak.net/mfc.htm
http://sites.google.com/site/xrobot17/project-1/ai-car/rs-232-interface
http://dtejedacetis42.blogspot.com/2009/10/codigo-fuente-de-serial-port-file.html
EDITO:
Echale un vistazo a la libreria inpout32.dll:
http://www.elrincondelc.com/nuevorincon/foros/viewtopic.php?t=3054
Ni por asomo tiene que decirse que en linux es todo más sencillo, con llamadas al sistema posix....
Cuando te aburras del terminal consola de windows puedes probar con las librerías SDL, hay código para el puerto serie y demás.
Gracias victorblue.
Parece que no me quedará otra que meterme con la programacion en entorno Windows. Me dá un poco de pereza pero como compensacion el resultado de lo que haga será mas vistoso.
He seguido tu consejo y he instalado el Dev C++ 4.9.9.2 (parece que es la ultima version). Resulta que aunque dice que viene con el compilador Mingw, cuando arranco el IDE me avisa que no tengo un Make GNU y que por tanto no puedo compilar.
Tambien me doy cuenta que el "Herramientas" "Configuracion del Compilador" tengo los Directorios y Programas sin configurar.
¿Alguna pista de como puedo poner el DevC++ operativo y en marcha? Y empezar a juguetear?
Muchas gracias
javier
Jeje, ahora que lo dices me suena que la pagina del bloodshell tenia las descargas algo confusas.
Seguramente te habrás descargado sólo el entorno de programación y no el compilador. Tranquilo que yo siempre que me lo he descargado me lo he descargado completo (ide+compilador).
Pincha en este link y te vas al final de la pagina en "Browse all files" donde pone "binaries", te vas a la 4.9.9.2 y pillas el setup (unos 9 MB). Verás que al lado está el mismo setup pero sin el compilador (2MB) que sera seguramente lo que te has descargado.
http://sourceforge.net/projects/dev-cpp/files/
Aqui tienes el ide+compilador+linker+librerias,etc:
Que haya alivio!
ED: El entorno no hay que toquetearlo mucho, te vendrá todas las rutas bien puestas y demás. Puedes empezar nuevos proyectos de consola, aplicación grafica, etc. Ojo que esto no es el visual basic ni IDEs que vas poniendo botoncicos y cajicas, es como el turboC pero en windows.
En el caso de que quieras trabajar con más librerías (SDL, openGL), tendrás que añadir los flags en el compilador y enlazador, en las pestañas de las opciones del compilador.
Yo empeze con el devcpp porque quería portar a windows algun programa cad en opengl. Si estás interesado en cosas de gráficos te recomiendo estos tutoriales que vienen ya los proyectos para compilarlos con el devcpp : http://nehe.gamedev.net/ " onclick="window.open(this.href);return false;
Ahora si. 🙂 Ahora ya tengo compilador y todos los programas, porque he compilado y ejecutado el Hello World y ha funcionado.
Gracias victorblue.
Me pongo a ello. Ya te digo, mi objetivo es hacerme una aplicacion sencilla que escriba y lea por el puerto serie, procesar los datos y hacer algunas graficas con el resultado. Echare un vistazo a todos los links que me has pasado. :geek:
Gracias de nuevo.
zapa