|
Amicus: Software libre para PIC 18F25K20 | ||||
Proton es uno de los mejores lenguajes BASIC (considerado de alto nivel) que se encuentra en el mercado. Fácil de usar y muy potente, es una herramienta muy codiciada por los programadores que comienzan a transitar el apasionante mundo de los microcontroladores. Su costo resultaba muy elevado para muchas personas pero ahora, con Amicus IDE, ese problema se resuelve. Desarrollado en forma específica para el PIC 18F25K20, Amicus IDE es la versión libre y gratuita del popular software Proton. En realidad, Amicus es mucho más que un simple software. Es toda una plataforma de desarrollo que te permite comenzar a crear desde el primer día. Toda la potencia de Proton disponible en tu ordenador para trabajar libremente con un PIC muy veloz y robusto como es el 18F25K20. |
|
||||
¿Tienes uno? ¡Comencemos a programar! Amicus 18 es una creación de la gente de Crownhill que, mediante el uso de un PIC capaz de trabajar a 64Mhz y con la programación elemental que brinda el lenguaje BASIC, intenta plantarse frente a la súper-popular plataforma Arduino y demostrarle que es capaz de superarla en prestaciones y facilidad de uso. Amicus 18 es una placa que combina un poderoso PIC 18F25K20 con un FT232 para facilitar su conectividad USB. El hardware de Amicus 18 es compatible pin a pin con Arduino, y los módulos creados para ambas plataformas pueden ser utilizados e intercambiados entre sí.Es decir, lo que existe para Arduino funcionará en Amicus 18 y viceversa. Observa en la imagen superior que existe un puente (jumper) que, según la referencia, es un Arduino Compatibility Jumper. |
|
||||
|
El Hardware de Amicus 18 en detalle |
||||
ON-OFF de un toque |
El uso apropiado de ese jumper te permitirá utilizar módulos Arduino en esta plataforma Amicus 18. Siguiendo el concepto de “apilar” módulos para lograr combinaciones útiles de hardware, Amicus cuenta con una amplia variedad de posibilidades para aquellos que quieren iniciarse en el mundo de los microcontroladores. Y aquí debemos remarcar lo siguiente: el software de Arduino no es compatible con Amicus 18 (y viceversa) a pesar de que las placas de ampliación y aplicación sí puedan serlo. |
||||
|
Circuito del Hadware Amicus 18 |
||||
Lo más importante del
proyecto Amicus se plantea en base a tres pilares fundamentales: |
|||||
|
Circuito mínimo para trabajar con Amicus y el PIC 18F25K20 |
||||
|
El software |
||||
Con sólo seis líneas de programa, un novato puede armar su primer LED intermitente |
|||||
Amicus IDE ya conoce o (cree entender) de antemano las condiciones del hardware. Por lo tanto, no debes declararlas; sólo necesitas decirle lo que debe hacer. Es decir, si tú le indicas que escriba en un display LCD la típica frase “Hola Mundo”, él ya sabrá que tú has conectado el LCD alfanumérico de 2 renglones y 16 caracteres a los pines del puerto B utilizados en la placa Amicus 18. De este modo, no tendrás la necesidad de declarar decenas de líneas de código. Aquí vas directo a la acción. Le dices: “anda, ve y haz esto que te indico”. Amicus IDE sabe el resto y lo prepara por ti. Por eso se le llama “Lenguaje de Alto Nivel”. Por supuesto, si deseas declarar patrones de trabajo diferentes a los que el sistema contempla como predeterminados, puedes hacerlo. Es decir, Amicus sabe que SCL es PORTC.3 y que SDA es PORTC.4. Pero si deseas reasignar estas conexiones hacia otros pines de otros puertos, puedes hacerlo de la misma forma en que lo hacías en Proton. Es decir, el software no nos hace esclavos del hardware. Otro ejemplo de la genialidad que este software presenta es el uso de un display LCD alfanumérico. Por defecto, siempre considerará 2 renglones, 16 caracteres, datos de 4 bits y la utilización del puerto B. Por lo tanto, si respetamos las conexiones (al LCD) que nos muestra el manual de Amicus, la acción de mostrar texto sería tan sencilla como la siguiente: |
|||||
¿Librerías de qué? No, sólo dile que escriba y Amicus lo hará. |
|||||
|
Dicho en pocas palabras,
si utilizamos el hardware por defecto que utiliza la placa Amicus 18,
podemos disponer de un compilador extraordinario al que no hay que
indicarle nada más que las instrucciones que deseamos que haga. El resto
ya lo sabe todo. Realmente si deseas transmitir a algún amigo el interés
por los microcontroladores, o si deseas comenzar a practicar y hacer tus
primeros pasos sin toneladas de declaraciones e instrucciones, Amicus
llegó para hacerte la vida muy fácil. Única aclaración: para descargar e
instalar Amicus IDE debes tener instalado MPLAB en tu ordenador. |
||||
Rutina y circuito que impiden una repetición indeseada de una acción |
|||||
En nuestro ejemplo, el pulsador se utilizará para enviar a través de la USART del PIC una cadena de caracteres. ¿Te imaginas el desastre que podría suceder si el pulsador no actuase de manera correcta? No enviaría la cadena de caracteres o lo haría repetidas veces de acuerdo al tiempo que se tome el usuario pulsando el botón. Entonces, resumamos el trabajo: tendremos un LED intermitente que encenderá y apagará cada medio segundo y estará conectado al pin 0 de puerto B. Además, incluiremos un LCD que nos mostrará en su primer renglón un texto fijo, mientras que el texto del segundo renglón cambiará de acuerdo a la actividad del LED. Por otro lado, un pulsador (al ser presionado) enviará un mensaje de texto a través de la USART del PIC en cualquier momento cuando se pulse el botón conectado al pin 0 del puerto C. |
|||||
sencilla matriz de LEDs |
Listado completo del programa ejemplo |
||||
|
Esta última oración no es un dato menor. El envío ocurrirá al pulsar el botón en cualquier momento sin tener que esperar a que el LED apague o encienda. Por último, no importa que al botón lo accione cualquier niño travieso: el sistema sólo permitirá un único envío de datos por cada vez que el botón se active por flanco descendente. La rutina para lograr un funcionamiento adecuado es muy sencilla: cuando el micro detecta que el botón ha sido pulsado, se dirige hacia la rutina “anti-rebote”. Una vez ahí ya habrá enviado la trama de datos a través de la USART. En ese momento observará y evaluará la situación eléctrica del pulsador. Si aún permanece presionado (estado bajo), entrará en un lazo hasta detectar que ha sido soltado. Es decir, la tensión en el pin 0 del puerto C deja de ser cero y pasa a un estado lógico alto gracias a R4. Es muy simple y efectivo. |
||||
Con el monitor cardíaco que te presentamos puedes controlar, escuchar y ver tu ritmo cardíaco |
Circuito propuesto para nuestro ejemplo |
||||
|
En el circuito podemos ver
las conexiones a las tensiones de 3,3Volts y de 5Volts que extraeremos
de la fuente modular para protoboard (que resultó ser muy cómoda, eficaz
y atractiva para algunos lectores). Y llevaremos la salida desde la
USART del PIC hasta la placa que construimos con el MAX232 dedicada a la
entrenadora NeoTeo. Algunos capacitores de desacoplo de 100nF, 10nF y
1nF, sumados a pequeños capacitores electrolíticos, componen el resto
del montaje sobre el protoboard. El cristal NO puede dejar de ser de
16Mhz para obtener los tiempos adecuados de demoras (DELAY) y, por
supuesto, una correcta comunicación serial de datos. En nuestros ensayos
llegamos a comunicar, como puedes ver en el video, a 9600 bps. Un
pulsador de RESET, un conector ICSP para programar el PIC, y listo.
¡Nuestro sistema Amicus está preparado para su primera prueba! |
||||
Una aplicación con un contador ascendente / descendente que puedes utilizar en cualquier proyecto. |
El hardware montado sobre el protoboard con Amicus en acción |
||||
|
Conclusiones |
||||
|
|||||
|
Quizás no haya vencedores
ni vencidos en esta “batalla” y todos ganemos en creatividad,
experiencia y aprendizaje al aprovechar múltiples sistemas de
desarrollo. Pero seguramente tú ya tendrás un favorito en tu mente para
futuras aplicaciones, ¿verdad? Cuéntanos, tu opinión nos interesa para
futuras entregas. Y lo último por agregar: ¿Has visto el tamaño del
código del ejemplo que te hemos mostrado, es decir, la cantidad de
líneas necesarias para lograr el funcionamiento del sistema? ¿Aceptarías
el desafío de realizarlo en cualquier otro lenguaje de programación
utilizando una menor cantidad de texto escrito? ¿Leíste bien? No
hablemos del tamaño final del HEX obtenido luego de compilar el
programa; eso no interesa cuando estamos dando nuestros primeros pasos.
Por ejemplo, cuando estamos aprendiendo a hablar, mamá sabe que estamos
llamándola a ella y se muestra orgullosa aunque digamos porquerías como
“babá, madagascar o mamá-me-mima”. Ella sabe que dijimos mamá. Luego, ya
habrá tiempo para crecer y recibirse de locutor profesional. Aquí sucede
algo similar. Primero hablemos de la cantidad de texto que debes
escribir para lograr un resultado exitoso, y luego hablaremos de
optimización de código, capacidad de memoria y tamaño del HEX. Tú
quieres ver y sentir la acción. Anda, ve por ella, tráela e invítanos a
conocer tus listados de programa. ¡Hasta hemos inaugurado un foro para
que te luzcas con tus creaciones, trabajos e ideas! ¡Te esperamos!
|
||||
Indice de montajes | |||||