Laboratorio de Electrónica USB.
PIC: 18F4550 / 18F2550
-
Plataforma De Desarrollo Pic: Proton Ide.
-
Plataforma De Desarrollo Pc: Visual Basic 2010.
Recuento Histórico: (Originalmente escrito para los alumnos de la universidad, que visitan mi web)
Jueves, 09 de octubre de 2014 (13:53:44) – La versión original del proyecto, fue suspendida el 30 de marzo del presente. Actualmente, el proyecto ha entrado en una fase de desarrollo; en donde el lenguaje de programación del lado del pc, es Python 2.7.3 + NINJA-IDE 2.3 y se esta estudiando la posibilidad de incluir una versión en Gambas3 (Actualmente he decidido no trabajar con Gambas).
No obstante, comienzo la publicación con los archivos y documentos originales; en parte porque no voy a abandonar el desarrollo original, pero no voy a hacer ninguna actualización hasta que ambas versiones se encuentren al mismo nivel.
En cuanto al lenguaje de programación del micro-controlador, existe un completo desarrollo en un lenguaje interpretado; del cual solo eso diré por los momentos, pero que en teoría y con la colaboración del equipo que se encuentra en esos andares oscuros, llevará por nombre el de un cuadrúpedo desvirtuado.
-
U= Universal.
-
S= Serial.
-
B= Bus.
-
LAB= Laboratorio.
INTRODUCCIÓN:
En mas de una oportunidad, alumnos que la vida ha conseguido acercar a mi, me han dicho que les enseñe programación. Yo pienso que todo en la vida se aprende si se estudia y ese es el problema hoy en día, se pretende aprender sin estudiar.
Usb_LAB no fue diseñado con la intención de aprender sin estudiar, está mas bien orientado a forzar el aprendizaje de tipo Aprender Haciendo; pero sin desvirtuar el hecho de que sin conocimientos formales específicos, sobre lo que se pretende aprender , solo se aprendería a copiar.
Usb_LAB es en esencia la conjunción de un hardware (DATA-USB) y un software PC (Usb_Lab) desarrollados con la intención de permitir el estudio de la programación en lenguaje BASIC; ya sea orientado a Micro-controladores (PIC), o ha Computadores Personales (PC).
Para el Hardware (DATA-USB) se utilizó Proton-Ide, que utiliza un lenguaje llamado Proton-Basic, que comparte infinidad de expresiones con BASIC.
Para el Software del PC se utilizó Visual Basic 2010 Express. Esto porque en la gran mayoría de los proyectos que se pueden conseguir por Internet, fueron realizados en Visual C++ y en nuestras universidades apoyan mas el estudio de Visual Basic.
El Porque De Usb_LAB.
Al principio de mis estudios sobre programación de software orientado a computadores personales, comencé utilizando C++; aún y cuando logré culminar satisfactoriamente muchos proyectos, nunca me sentí a gusto con el interprete de comandos, ni con la lógica de programación.
Mis primeros proyectos de interconexión de un PC y el mundo real; fueron implementados utilizando dispositivos discretos, conectados al computador, a través del puerto serial o paralelo. Hasta este punto la lógica de programación del dispositivo hardware, solo estaba limitada a mis conocimientos de electrónica digital y tomando en cuenta el hecho de que los cambios en ese tipo de dispositivos; aún y cuando fueron significativos, siempre mantuvieron una lógica de acoplamiento y desarrollo mas o menos estable.
Un ejemplo para explicar lo anterior, seria el cambio de encapsulado del dispositivo; es un cambio, pero en si mismo el dispositivo mantiene su condición y funciones casi inmutables.
El choque:
Así llamo yo a la forma como llega la tecnología a nuestro país. Justo como un fuerte golpe en la mejilla o una patada en un lugar no noble. En el preciso momento cuando se nivela la tecnología en algún sector de nuestra sociedad, “PUM” (onomatopéyica de un golpe), aparece algo nuevo y novedoso: más efectivo, más versátil, más potente, pero sin documentación en nuestro idioma; con restricciones sobre derechos de autor INTERNACIONALES, y orientado mas bien a hacernos desesperar y preferir, ya sea comprar tecnología de terceros, o diseñar y construir sobre tecnología de terceros.
Si, esto es una critica; pero constructiva. Son incontables las veces que he escuchado de conocidos del medio (Profesores, Ingenieros, Técnicos) contar entre sus anécdotas, el porque se inscribieron algunas veces en un curso, taller o foro; uno de ellos hasta me contó que fue a la universidad a estudiar, porque quería aprender programación.
¿Y con qué se encontró mi amigo?
Bueno, esto yo lo he simplificado a tres posibilidades; ya que lo que me contó mi amigo, es confidencial.
- Buenos profesores, sin laboratorio para las prácticas.
- Malos profesores, con excelentes laboratorios.
- Buenos profesores, buenos laboratorios, mal método.
Repito CHINO, persona que nació en ese país (CHINA). A los efectos de explicar un poco mi análisis personal, y no digo que sea el correcto. Casi la totalidad de la tecnología desarrollada en los últimos 50 años en el campo de la electrónica; aún y cuando fueron pagadas en dólares por compañías norteamericanas, no fueron desarrollos norteamericanos, ellos solo se limitaron a pagar a los CHINOS (mano de obra mas barata) la ejecución de proyectos de desarrollo.
Como resultado de esto, tenemos por ejemplo los micro-controladores, los de la casa MICROCHIP, solo tienen documentación en Ingles y Chino, y ofrecen software de programación para sus dispositivos en Ingles y Chino, pero con lógica China.
Yo he dedicado cientos de horas al estudio de MPLAB, y he escuchado a muchos decir que lo dominan. Esto último es falso, hay que ser chino para dominar MPLAB. Inclusive las incongruencias escritas en los manuales versión de idioma Ingles, son abismales. Están diseñados para el fracaso de los latinos, y garantizar la dominación sobre la tecnología. Yo no me estoy burlando de la capacidad de ningún colega; pero hay que tomar en cuenta, que justo cuando alguien conoce por completo el set de instrucciones de un micro, o lo sacan del mercado, o la nueva versión de MPLAB no lo incluye o soporta, o simplemente se necesita todo un tren de hardware altamente costoso y con muy poca entrada al país (Venezuela).
¿Que es Usb_LAB?
A nivel de Hardware:
- Voltímetro Digital de tres (3) entradas simultáneas.
- Amperímetro Digital de tres (3) entradas simultáneas.
- Generador de PWM, dos canales independientes. Rango del ciclo, desde cero(0) hasta (255)
- Óhmetro Digital.
- Vatímetro Digital.
- Termómetro Digital.
- Frecuencímetro.
- 8 canales de salida temporizados a la conexión o a la desconexión.(hasta 130 Voltios 15 amperios)
- Registrador de datos .(Datalogger)
- Medidor de capacitancia.
- Punta lógica.
- Grabador de Micro controladores PIC –ICSP.(Utiliza un PICkit2 modificado) – Interno en la memoria.
NOTA: El dispositivo Hardware es un micro-controlador 18F4550, y para garantizar que un usuario no pueda dañar el software grabado en él, se encuentra protegido contra escritura. Sin embargo; el código fuente se encuentra publicado en el repositorio. Para la versión sobre micro-controlador 18F2550, no existe el modulo ICSP y el número de salidas y entradas, se encuentra adaptado a las capacidades del hardware.
A nivel de Software
Como herramienta de laboratorio:
- La conexión entre el Hardware (DATA-USB) y el PC (Usb_Lab) es del tipo HID – Genérico, utilizando para esto un archivo descriptor de medio (USB_HID) y la biblioteca mcHID.dll de Microsoft, o para la versión GNU hid-libusb.c
- Software PC Usb_LAB construido con Visual Basic 2010. Este software permite la captura en tiempo real de los voltímetros, amperímetros, cálculo de potencia, capacitancia, resistencia, variación del ciclo DUTY del PWM, control de los puertos de salida temporizados, valores almacenados por el Datalogger, termómetro, etc.
- Guía interactiva de desarrollo de aplicaciones de hardware y software, sobre y orientada a los micro controladores de gama media y alta.
- Biblioteca de Electrónica Digital, orientada al diseño de aplicaciones para Micro Controladores.
- Tutorial de aprendizaje de la programación, bajo el entorno Proton-Ide.
- Tutorial de aprendizaje de la programación, bajo el entorno Visual Basic NET 2010.
- Incluye un grabador de micro controladores PICkit2 ICSP.
- Tutorial para utilizar un PICkit2 integrado a la plataforma Proton-IDE.
- Es hardware libre, los archivos fuente para la fabricación de las PCB definitivas, serán publicados por este medio a más tardar, marzo de 2015 cuando sea lanzada la versión GNU del software.
Adquisición De Datos.
Software para conexión USB
Software para conexión RS-232
Bootloader USB
Data_USB
Lo mejor de 2 tecnologías USB/RS-232
Este adaptador (No tiene nombre), lo fabriqué para ahorrarme una buena cantidad de dinero; debido a que funciona para Picaxe, PIC 16 y como herramienta de diagnostico. Aún no termino la aplicación para PC; sin embargo es fácil de trabajar por consola.
Es posible descargar el código del pic desde: http://forja.softwarelibre.gob.ve/projects/usblab/
Si lo prefieres puedes hacerlo desde: http://www.electronicaml.com.ve/usblab/
Si quieres los archivos en Visual Basic 2010, entonces escribe a [email protected] que con todo gusto te los proporciono.
Y si quieres formar parte del desarrollo sobre Linux: [email protected]
En un par de semanas debo tener a disposición unos componentes que me faltan y monto un vídeo del juguete, trabajando en tiempo real.
Los diagramas en Eagle 6 se pueden solicitar a: [email protected]
La entrada Proyecto USB_LAB apareció primero en Linux Hispano.