miércoles, 9 de junio de 2010

Comunicación PC-PIC mediante USB


Resumen totalmente esclarecedor del objetivo:

Proyecto para hacer (en el entorno Anjuta) un programa (en JAVA o C++) de control de la comunicación bidireccional (con entorno gráfico diseñado en GLADE) de un PIC 16C765 (placa receptora diseñada en KiCad) con un ordenador (digamos un AspireOne con S.O. Ubuntu), a través de USB.

¿Posible placa de pruebas?


Fecha estimada de actualización de esta entrada: mañana, si mañana.

Desarrollo:

Tras pasearme por la "experiencia colectiva" veo que es totalmente real la posibilidad de, no ya hacer, sino de que yo haga una conexión bidireccional PC-PIC. Las aplicaciones son infinitas: comunicaciones, domótica... control vía PC de un invernadero (humedad, temperatura e irradiancia) para digamos marihuana, un super (y super útil) marcador  de Blood Bowl que ingrese los datos directamente en la página... o incluso que almacene todas las tiradas de dados y estadísticas varias. O por que no, un convertidor de potencia de DC a AC, no ya para descargarla en la red, que requiere una calidad muy alta, pero perfectamente utilizable en un sistema isla para tener AC para usos comerciales. Al final la velocidad de trabajo se vería limitada por el USB (la comunicación). Claro está todo esto a un precio nimio, en comparación con los sistemas de regulación comerciales.

Que necesitamos: 

Conocimiento. Facil, todo está en internet. :D bueno aparte de los datos en bruto, también sería bueno unas ideas claras, por que a la postre tendríamos que estudiar todo para acabar desechando todo - útil.

Primero el equipo: Mi portatil ACER aspireone. Si los programas los muevo con éste, seguro que los moveré con cualquier posible futuro sustituto. Y un PIC 16C765. Tengo un programador y no me voy a comprar o hacer otro, en la lista de posibles, aparece el 16C765 y no el 18F2455. ¿Por qué uno de estos dos? De los que conozco, son los que tienen puerto USB. Un fallo que tal vez decante el proyecto al 18F2455: el 16C765 es un USB1.1 mientras que el otro alcanza el 2.0. He revisado mi proyecto final de carrera y el DSP muestreaba a la friolera de 8 MHz, así que estresarse por qué sea 1.1 ó 2.0 no viene al caso en este momento. Por añadir que no falte, también he visto que ya se distribuyen PIC destinados a trabajar con señal a alta frecuencia, por lo que también se puede soñar, en este caso con el dsPIC30F3011 (yo lo hice con un TEXAS). Sigamos soñando...

Después el programa controlador del sistema: Java. En mis tiempos mozos hice cosillas con Pascal (que tiempos), bastante con Borlan C++ y metí horas como un ceporro en el VB6. Los tiempos cambian y finalmente se ve la luz. Viva la código abierto y los multiplataformas, aun me acuerdo cuando programaba y para enseñar las tonterías que hacía tenia que llevar chorrecientasmil bibliotecas (nunca quise saber del todo que eran esos engendros) para que funcionasen mis .exe... que ahora me acuerdo, nunca sabias cuales eran (todas) las necesarias y tenias que hacer 35 (para reunirlas todas) viajes según te fuese pidiendo el ordenador usuario. Para hacerse a la idea, la mayoría de mis amigos no han visto nunca ninguno de los juegos, o intentos ;) que hice, por que en su ordenador (primo hermano del mio) no tenía nosequearchivo.dll. Basta ya, lo haré en Java (así de paso aprendo algo). Ya he decidido que haré con JAVA un entorno visual para el PC... o en C :)

Que otros programas necesitaremos: Como he dicho antes, ya me he pasado a LINUX, y poco a poco empiezo a asumir la postura de "con todas las consecuencias" ya que hasta ahora tenía el windows en otra partición y acaba recurriendo para cosas como el ensamblador, programa que me encantaba PCB (por lo sencillo) para hacer diseños de placas y cualquier otra cosa que me fuese difícil de localizar para UBUNTU. Pues eso, el diseño de la placa donde residirá el 16C765, elementos auxiliares, led de control y relés para salidas de potencia, etc lo haré con el KiCad. El entorno de programación... uno que encontré para Ubuntu que la gente parece apoyar: Anjuta (prima bastarda de Enjuto, que por cierto ayer estreno serie).

Exhausto de tanto soñar, me retiro.