Si USTED estuviera comenzando ahora, ¿qué IDE y compilador compatible con PIC16F elegiría y por qué?

¡Esto va a ser un poco largo ya que quería cubrir todas las preguntas obvias antes de que surjan, dar una razón a algunas de mis ideas y demostrar que he hecho mi trabajo preliminar! Si el tiempo es corto, salte a la sección tl; dr para llegar a la carne. El banner de arriba también dice que esto parece una publicación subjetiva, así que voy a expandir la publicación un poco para reducir exactamente lo que quiero lograr.

He echado un buen vistazo a stackexchange y hay preguntas similares a las mías, y encontré útil la pregunta Comenzar la programación PIC , pero la mayoría fueron preguntadas y respondidas antes del nuevo lanzamiento de MPLAB X, que ahora se basa en el código abierto. fuente NetBeans IDE, que es un gran cambio, por lo que podría inclinar la balanza.

Antecedentes: compré un Arduino recientemente y nunca antes había manipulado MCU, y mi conocimiento de programación se limitaba a PHP, estaba bastante satisfecho con los resultados.

Hay algunas cosas "divertidas" que quiero hacer para comenzar antes de las cosas "adecuadas"...

  • Haz un cronómetro de cuenta regresiva en la cocina que haga sonar una campanita durante unos segundos.
  • Haz un abridor de puertas de pollo.

Al final quiero....

  • Cree un registrador de datos que interceptará y registrará el estado de la bomba de calor NIBE y los datos de tiempo de funcionamiento de la unidad externa F2015 al controlador SMO 05 que funciona con un cable CAT5 (¡una vez que haya descubierto el protocolo de datos!).

  • Interactúe con el "ojo" de interfaz IR de mi medidor de electricidad y registre lecturas por hora del uso real de energía (a diferencia de los monitores de sujeción de cables altamente inexactos pero baratos).

Parece que tengo algunas opciones aquí:

Arduino/Freeduino: inicio increíblemente rápido: lo hice decir las palabras "listo", luego "botón arriba" o "botón abajo" (dependiendo del estado) usando la biblioteca PCM, el altavoz y el Uno a las pocas horas de abrir la caja y con 30 líneas de código. Pero para todos y cada uno de los proyectos simultáneos, necesita un Arduino.

**El Picaxe **- utiliza PicBasic y chips PIC precargados especiales. El sistema es increíblemente barato y rápido de aprender, permite sacar el chip programado y usarlo de forma independiente en una placa de prueba, pero en algún momento necesitaré expandirme más allá de PICBasic.

Incluso yo podría hacer frente a estas dos primeras opciones. Principalmente porque cada uno tiene un lenguaje simplificado de alto nivel para aprender, y un IDE/compilador/programador integral simple.

PIC independiente : luego está el chip PIC estándar de £ 2 y ​​el programador K150 súper económico que permite sacar el chip programado y usarlo de forma independiente en una placa de prueba.

Entonces, cuando ayer por la mañana llegó un K150, un cable, un CD con software de flasheo hexadecimal y un par de chips PIC16F690, estaba comenzando con una hoja en blanco. Puedo escribir php y entender los conceptos básicos de los lenguajes orientados a objetos, e hice un poco de C en la universidad, lo suficiente para comenzar más rápido con Arduino que si no hubiera hecho nada. Pero también entiendo que el 'Cableado' de Arduino es un superconjunto extremadamente simplificado de C, por lo que tendré que ensuciarme más para programar el K150, por supuesto. Tal vez ensamblador algún día, pero para abrir la puerta de un gallinero cuando hay luz, ¡estoy bastante seguro de que C será suficiente para comenzar!

El problema que tengo es... ¡Tantas opciones!

Espero haber demostrado haber hecho mi tarea con esta hoja de cálculo de 12 hojas con más de 200 listados y enlaces a diferentes tipos de proyectos, sitios de referencia y ayuda, etc. Según Chrome, miré 118 sitios relacionados el día que obtuve el K150, y más de 330 sitios relevantes en los últimos 4 días. ¡Así que definitivamente he hecho un poco de trabajo preliminar!

Sí, sé que debería comprar el PicKit3 y que, de alguna manera, haber comprado el K150 me convierte en el engendro de satanás según las respuestas que otros propietarios de K150 han recibido en los foros. Algún día seguro que me lo compro, pero ahora mismo sólo me estoy poniendo en marcha como hobby. ¡Compré un Arduino oficial, así que salvé mi alma de esa manera!

tl; dr - suficiente gofre, ¿cuál es la pregunta?

Según tengo entendido, siempre que pueda compilar hexadecimal, puedo programar un chip PIC con el K150 o prácticamente con cualquier programador compatible.

A menos que me equivoque, tengo las siguientes opciones:

Tanto MPLAB X como PIKlab son IDE gratuitos compatibles con la mayoría de los chips PIC de Microchips.

Hi-Tech C Compiler, Sourceboost, Codeblocks y SDCC son todos compiladores compatibles con Microchips, algunos gratuitos como SDCC, algunos gratuitos con funcionalidad limitada, algunos solo gratuitos para un chip específico.

Luego está PicBasic Pro , £ 99 por el paquete completo o £ 30 solo por la edición para estudiantes del compilador. En este momento, £ 99 es una cantidad bastante alta para "tener una obra de teatro". ¿Algo que recomiende Picbasic en lugar de C?

También he estado viendo algunos de los videos de entrenamiento oficiales y no oficiales para algunos de los anteriores.

En este momento, mi intención no es dominar el mundo o la próxima RaspberryPI, es poder hacer parpadear un LED, tal vez tomar la entrada del teclado, tal vez incluso hacer un LEDcube Charlieplexed para Navidad.

Estoy entrando en mis años y soy de cerebro y tiempo limitados; lo obvio sería tener tiempo para probar todo lo anterior y ver cuál me convenía. No es realmente práctico.

Necesito elegir uno, aprenderlo y apegarme a él. Sí, Google ha sido mi amigo, pero muchas de las reseñas de estos IDE y compiladores se refieren a versiones anteriores. Incluso encontré enlaces a sitios en Demon Internet y Geocities: 1994-1996 parece ser la burbuja de actividad máxima para la discusión sobre cómo grabar su propio código PIC. Y muchas cosas cambian en 8 años.

Entonces mi pregunta sería:

Si USTED estuviera comenzando ahora, ¿qué IDE y compilador elegiría y por qué?

¡Gracias, y lo siento, este fue un post tan largo!

Con respecto a Arduino, " Pero para todos y cada uno de los proyectos simultáneos, necesita un Arduino " - En realidad no. Puede crear una placa de pruebas y programar el microcontrolador del Arduino, por ejemplo, Atmega168 o 368, o incluso sus primos más pequeños y económicos, el AtTiny25/45/85, todos disponibles en paquetes DIP, todos utilizables de forma independiente. Todo lo que necesita es el cargador de arranque Arduino, que es de código abierto y se puede cargar en las MCU 168/328. Existen versiones más pequeñas para ATTiny.
Una historia similar con el TI MSP430 Launchpad, que cuesta solo $ 4.30, incluido el envío, y también viene con una MCU de repuesto. Una vez más, estos pueden programarse, luego incorporarse o usarse independientemente del Launchpad.
1º: ¡salud por publicar toda esta tarea! 2do: me gustaría incluir CCS en la mezcla. Es otro IDE para PIC.
Gracias por esos consejos, @AnindoGhosh. No me di cuenta de que podías cargar tu propio cargador de arranque Arduino. Estoy muy interesado en TI MSP430 Launchpad que me pasó por alto por completo. Lo encontré aquí en el Reino Unido: ¡el kit completo más 2 MCU MSP430 parece ser £ 2 MÁS BARATO que el MSP430 individual más barato que puedo encontrar en eBay! Esto debe ser para promover el uso del chip? He pedido uno, gracias por este consejo.
@NickAlexeev: gracias también por tu comentario. Veo que CCS cuesta $ 50 por 12 bits y $ 200 por un compilador de 16 bits. Tomé nota de ello, ¡pero primero veré qué tan lejos llego con los compiladores gratuitos! Gracias a ambos.
Existen ediciones gratuitas de @lardconcepts Code Composer Studio para al menos el MSP430 (tamaño de código limitado) y, si no recuerdo mal, también para algunos otros microcontroladores. Además, el kit de plataforma de lanzamiento MSP430 (incluidos los 2 chips MCU) tiene un costo fijo de US $ 4,30, incluido el envío mundial de FedEx desde estore.ti.com , por lo que comprar en eBay o en vendedores locales tiene poco sentido. Si sus proyectos superan al MSP430, el nuevo TI Stellaris Launchpad contiene un potente controlador Arm Cortex M4.

Respuestas (2)

Si realmente quieres aprender sobre los microcontroladores, entonces es necesario deshacerse del arduino y todas sus capas que ocultan los detalles. Un PIC 16 es ciertamente un microcontrolador simple.

Definitivamente desea usar MPLAB, al menos para la depuración. Usar cualquier otra cosa no tiene sentido, ya que MPLAB es gratuito y cuenta con el respaldo oficial del fabricante. Microchip ahora también tiene una línea completa de compiladores que son gratuitos, con la única diferencia de las versiones completas en que algunas optimizaciones están desactivadas. Eso no debería tener consecuencias para alguien que está aprendiendo y experimentando, y puede usar los mismos compiladores que la mayoría de las personas usan y que, por lo tanto, tienen la mayoría de los errores llamativos.

Sin embargo, si su objetivo es realmente aprender algo, debería hacer algunos proyectos en ensamblador. Esto te obligará a aprender los niveles inferiores y te abrirá los ojos a lo que realmente sucede a nivel de hardware e instrucción. Esa información es muy útil incluso cuando se escribe código de nivel superior, y no será reacio a implementar un módulo clave aquí y allá en ensamblador, ya que puede ser apropiado.

Gracias Olin. Tomo tu punto sobre el ensamblador. A primera vista me asusta muchísimo, pero supongo que es como aprender cualquier cosa. Respuesta aceptada.

No veo ninguna razón para deshacerse del IDE de Arduino. Es simple y rápido, y como dijiste, un conjunto más simple de c + hay tantas contribuciones a la cosa que hace que el trabajo sea demasiado fácil. Completé un gran proyecto de dos procesadores usando el IDE de Arduino en menos de 2 meses y funciona perfectamente.

Pero, por supuesto, si alguien supiera lo que usé, sería criticado por no usar uno de los ide más convencionales. La idea general es generar código de máquina lo más rápido posible para obtener un producto que funcione.

¿Por qué complicar las cosas?

La línea arduino/atmel es infinitamente más fácil que cualquier otro estudio de diseño de productos integrados en cualquier lugar, especialmente si necesita resultados rápidos y una curva de aprendizaje muy corta. Simplemente no le digas al jefe.

Gracias Doug. Te voy a calificar porque estoy totalmente de acuerdo: "¿Por qué complicar las cosas?". Pero voy a aceptar la respuesta de Olin, ya que la suya se refería específicamente a los chips PIC. (¡Lo siento!)