martes, 21 de julio de 2015

Introducción a los microcontroladores PIC

Saludos, en esta entrada les voy a explicar de la forma mas sencilla las bases para la programación de microcontroladores PIC, dentro de las cuales estan:

1.¿Qué es un PIC?
2..Lenguajes de programación.
3.Software necesario.
4.Grabado del programa.

Entonces primero lo primero haha.


1.¿Qué es un PIC?

Los PIC's son dispositivos electrónicos fabricados por la empresa Microchip Technology Inc., a los cuales a diferencia de otros dispositivos electrónicos, tu le puedes decir cuales son las tareas que tiene que realizar y cuando las tiene que realizar, un ejemplo muy sencillo:

Imagina que tienes un proyecto el cual consiste en que, al apretar un botón, se encienda un led y un motor; tu tienes 2 dispositivos electrónicos para cumplir con este proyecto, un lm2803 y un microcontrolador (cualquiera que sea), al microcontrolador le puedes decir: si aprieto este botón, enciende el led y hecha a andar el motor; en cambio si le dices al lm2803 lo mismo, no va a entenderte y no hará nada.

El ejemplo anterior es algo tonto, pero realmente tu puedes "hablar" con un microcontrolador, y te estarás preguntando ¿Como le voy a hablar a un dispositivo electrónico?, pues aunque parezca mentira, ellos te pueden entender si utilizas el lenguaje que ellos hablan, así pasamos al apartado numero 2.

2.Lenguajes de programación.

En este apartado les voy a hablar de los lenguajes mas utilizados para la programación de los PIC's, el lenguaje de programación C y el lenguaje ensamblador o assembler.

El lenguaje C es un lenguaje de alto nivel y el lenguaje ensamblador es un lenguaje de bajo nivel, pero, ¿Qué significa esto? Lenguaje de alto nivel significa que es mas fácil de comprender para las personas, incluso si no tiene experiencia programando, mientras que el lenguaje de bajo nivel es mas fácil de comprender para el microcontrolador.

Al programar en lenguaje de alto nivel, nos podemos ahorrar muchas lineas de código que si programáramos en ensamblador, puesto que una sola linea de instrucciones puede encerrar hasta 10 lineas de ensamblador, ademas de que es mucho mas fácil detectar errores, ademas de que el código puede ser fácilmente utilizado para otro microcontrolador con solo cambiar algunos parámetros.

Sin embargo al programar en ensamblador podemos tener un mayor control del flujo de información que se maneja, ademas de ser por si mismo código optimizado, es decir sin lineas basura.

Ventajas de los lenguajes:

C
  • Fácil comprensión.
  • Compatibilidad entre microcontroladores
  • Facilidad de corregir errores
Ensamblador
  • Velocidad de ejecución
  • Control sobre el flujo de información

El lenguaje a utilizar depende de cada quien.

Una opinión que tengo sobre los lenguajes de programación es, si en la actualidad contamos con herramientas las cuales nos permiten comprender que es lo que estamos programando, ademas de ahorrarnos tiempo escribiendo y que al final nos va a dar los mismo resultados, ¿Porqué declinar de su uso?.

3.Software necesario.

Ya conocemos que es un PIC y ya sabemos como nos podemos comunicar con ellos, ahora ¿Qué necesitamos para hacerle saber al PIC lo que tiene que hacer?.

Para lograr esto necesitamos de software, el cual se encarga de "traducir" lo que escribimos en instrucciones que el PIC puede ejecutar, existen muchas soluciones para esto, cada una para un respectivo lenguaje, algunos son:

Lenguaje C
  • PIC C Compiler
  • MikroC
  • Mplab X
Ensamblador
  • Mplab
En lo personal he trabajado con todos estos software y el que mas me gustó es PIC C Compiler, tiene una interfaz muy agradable, cuenta con muchas librerías, las cuales nos ahorran aun más el trabajo de escritura y comprensión, ademas de contar con mucha información acerca de su uso y ejemplos, es como si levantaras una piedra y salieran ejemplos corriendo por ahí hahaha, pero el hecho de que a mi me guste no significa que a ti también, no lo sabrás hasta haberlos probado.


4.Grabado del programa.

Ya elegimos el software para escribir nuestros códigos, ahora es tiempo de llevar nuestro programa al PIC, para esto es necesario compilar nuestro programa, esto significa que el programa va a "traducir" las lineas de comando en nuestro programa en instrucciones que el PIC pueda ejecutar.


Una vez compilado nuestro programa, se nos genera un archivo .hex, el cual tiene las instrucciones que va a ejecutar el microcontrolador, este archivo se tiene que cargar al PIC, el proceso es como pasar una canción a tu celular, con la diferencia de que la canción es nuestro .hex, el celular es el PIC y el cable da datos que usas con el celular en este caso sería un programador.


Existen muchos tipos de programadores en el mercado, pero a final de cuentas todos tienen la misma función, servir de puente entre la PC y el PIC. El programador que yo utilizo es el de la imagen, a pesar de no ser un programador super caro, me funciona.


Ahora que ya tenemos conocimientos de lo que es un PIC, como programarlos y lo que necesitamos para hacerlo, es tiempo de experimentar los diferentes lenguajes y probar los diferentes tipos de software de programación. 

Espero que te sea de utilidad y despeje algunas de las dudas que puedas tener.

La información contenida al igual que las imágenes son de mi autoría.

lunes, 6 de julio de 2015

Hola mundo

Un saludo a todos los que se pasean por esta entrada, me vi animado a crear este blog con las intenciones de compartir mis conocimientos en electrónica y algunos temas variados de ciencia, tecnología e incluso temas o problemáticas que se presentan en la vida laboral de las industrias, para entran mas en confianza les contare un poco de mi.

Soy originario de México, desde muy pequeño me gustó saber el porque de las cosas, como funcionan, que hace que las cosas hagan lo que hacen. Pase una infancia muy normalita como la de cualquier persona promedio, vida normal, escuela norma, nada de lo que valga la pena mencionar, fue hasta que entre a la preparatoria cuando tuve la primera "gran decisión", que iba a estudiar. Aunque parezca tonto, me pase mucho tiempo viendo el librito que nos dan cuando vas a elegir una escuela, el cual trae el nombre de la escuela y lo que puedes estudiar,  viendo cual me gustaba mas, ademas de que me quedara cerca de mi casa, al final me decidí a estudiar una carrera técnica en maquinas de combustión interna.

A lo largo de mi carrera técnica me sentí muy atraído por las materias como electricidad, magnetismo, termodinámica, dibujo técnico (siempre me ha gustado el dibujo), inclusive matemáticas. cuando concluí mi carrera técnica, busqué algo que me fuera agradable para seguir estudiando, analicé todas mis opciones y me encontré con una ingeniería que no era muy conocida en el 2006, ingeniería mecatrónica, investigue un poco de que se trataba, por el puro nombre ya me había gustado hahaha, cuando vi que trataba de robots, circuitos, dibujo en 3D, computadoras, estaba mas que decidido que eso era lo que quería para seguir estudiando, en ese momento no sabia en lo que me estaba metiendo hahahaha.

Hasta hoy en día, mi aprendizaje continua, y no creo que deje de aprender puesto que es una de las carreras que aborda temas y disciplinas en constante actualización.
A mi me hubiera gustado tener a alguien para despejar mis dudas fuera de maestros y los mismos alumnos de la escuela, es por eso que lo mucho o poco que pueda compartir con ustedes lo voy a hacer, espero sea un aprendizaje mutuo, que ustedes se lleven un conocimiento de mi como yo de ustedes.

Asi que no queda mas que aprender y compartirlo.

Un saludo de su amigo lemurdom.