Que tal, tengo varios años usando linux, especialmente Mandriva, el cual recomiendo por estar siempre actualizado y sus repositorios tan completos ademas que a la hora de hacer las particiones es muy comodo y facil con la herramienta grafica que trae, el otro sistema que recomiendo el suse esta igual o un poco (muy poco) mas al dia que mandriva, pero no utilizo este ultimo porque requiere una maquina mas potente. la cuestion es que trabajo de maravilla en linux todo lo hago aqui el problema comienza cuando voy a trabajar con micros o con algun tipo de CAD, siempre despues de una larga busqueda intentando solucionar mi reto con linux, termino arrancando mi maquina con el casi nuevo windows que le instale en algun momento a mi pc.
Lo que usualmente hago es desarrollar la parte electronica en windows y la parte de software en linux, pero si estoy escribiendo en este foro es porque todabia busco la manera de deshacerme de ese sistema operativo tan maleado y realizar mis diseños electronicos en linux.
uno de mis ultimos proyectos en linux con pics fue el de un osciloscopio un tanto rudimentario realizado en gambas, que para los que no lo conocen es la solucion de linux al visualbasic de windows. trae bastante documentacion, logre hacer mi programa en unas horas (todo el dia y noche sin despegarme del monitor, lo que llamo "una sentada") sin tener el mas minimo conocimiento de visual basic.
lo que hace de linux un ambiente mas comodo para un electronico de crear nuestra interface a nuestro dispositivo electronico, es que los puertos se manejan como simples archivos y nosotros no tenemos que preocuparnos de como lo hacen como en windows y !que si no tengo el driver para usar el puerto! y que no puedo leer el puerto etc etc.
en linux es tan sensillo como leer un archivo o escribir en el.
un ejemplo:
en la consola de linux (algo como el msdos de windows)
entren a la carpeta de dispositivos /dev/
con el comando
ls muestran el contenido de una carpeta con el comando
cd se mueven entre carpetas ejemplo
cd /home entramos al directorio home que es donde linux almacena los directorios de ususarios del sistema.
ya en la carpeta /dev/ hagan un listado de archivos con
ls, despues entren a la carpeta input, vuelvan a hacer un listado de archivos con
ls, convietanse en super usuarios, con el comando
su, les va a pedir la contraseña de superusuario o root, y lean el archivo que les paresca es de su mouse, puede ser mouse0 o mouse1, con el comado
cat, que es un comando para leer archivos. y listo, van a ver como sale un flujo de datos en su consola, cuando mueven su mouse o dan un clic y lo mejor de todo es que no importa si su mouse es usb o serial, lo lee igual, como un flujo de datos puede hacer lo mismo con un joystik o lo que gusten.
ejemplo resumido
[PromptDeSuDistro ~]$ cd /dev
[PromptDeSuDistro dev]$ ls
(va amostrar varios archivos y carpetas)
[PromptDeSuDistro dev]$ cd /input
[PromptDeSuDistro input]$ ls
(va a mostrar varios archivos y carpetas entre ellas las de mouse0 mouse1 o mouse)
[PromptDeSuDistro input]$ cat mouse1
(va a mostrar un flujo de datos)
!para detener la lectura del archivo precionen Control+c!
Actualmente me encuentro migrando a QT4 un exelente IDE para C++, el cual tiene unas exelentes librerias y puedes compilar tu codigo para windows, linux, mac, maebo, simbyan, entre otros, sin la necesidad de cambiarle una linea a tu codigo.
Mi conclucion es que si quieres desarrollar algo electronico vas a ocupar windows (por lo pronto), pero si quieres implementar tu circuito con algun tipo de interaccion con la pc, linux es la mejor alternativa.
les dejo el link del osciloscopio, por si les sirve de referencia para leer el pic
osciloscopio gambas, el programa del pic lo unico que hace es enviar los datos de los puertos adc por serial (ttyS0 en linux). lo mismo puede hacerlo con cualquier otro dispositivo cambiando el archivo a leer.
espero que les sirva y se aceptan comentarios.