Muchas veces, como ingeniero electrónico, he escuchado y me han preguntado que si es mejor ocupar un PLC (controlador lógico programable) o un microcontrolador o con arduino, si es mejor programar en basic, lenguaje C o lenguaje ensamblador y en realidad no hay una respuesta perfecta.
Cuando desarrollamos algún sistema, con microcontrolador, es un producto que se puede vender como propio, ya que el diseño de los circuitos impresos, el firmware y todo lo que tenga que ver con el diseño, tendrá que ser hecho casi desde cero, esto causa que tengamos poder de decision sobre nuestro producto final y tengamos la posibilidad de decidir el margen de ganancia deseado y el soporte o mantenimiento que se le va a ofrecer al usuario.
La contra, posiblemente sea el costo, ya que siempre, el costo de la ingeniería del producto será alto por el tiempo de investigación, mano de obra, logística y todo lo que conlleva conducir un producto a buen término y venta.
En el caso de los PLCs, el desarrollo es relativamente rápido, y el aprendizaje tanto para el integrador como para el usuario es en poco tiempo y limitado, pero el costo del producto por si mismo es alto, y al ser un producto que no es diseñado a la medida, tiende muchas veces a estar sobrado en prestaciones.
Si a esto le añadimos el costo del software, las interfaces de programación y cosas que nos ofrezca el fabricante como necesarias para usar sus sistemas, pues tendremos que el producto por si mismo tendrá un precio alto y el margen de ganancia puede ser menor (mucho menor).
De nuevo, No hay respuesta perfecta, pero podemos considerar algunas cosas al tomar las decisiones.
El caso de Arduino es un punto y aparte, ya que la plataforma por si misma es muy fácil de usar, sin embargo, se requiere de tener cierto conocimiento avanzado para poder arreglar/modificar/cambiar muchas de las librerías, que si bien son gratuitas, muchas de ellas son inestables al tratar de usarlas en aplicaciones más allá de simples demostraciones.
Muchos de los desarrolladores de experiencia que conozco habían optado usar Arduino como herramienta de desarrollo, sin embargo, han desistido por problemas con el software, firmware o hardware del sistema.
La parte curiosa es que algunos siguen usando las tarjetas, pero programandolas sin el entorno Arduino, es decir, como un sistema mínimo para AVR.
1. Dinero Vs. Tiempo
Si se tiene un limite de tiempo muy cercano, lo mejor es optar con soluciones integradas. ya que estas ya han sido sometidas a diferentes pruebas de rendimiento y confiabilidad. Lo cual nos ahorrará muchos dolores de cabeza, ya que muchas veces es imposible considerar todas las variables y por lo mismo muchas veces se tienen retrasos en el diseño, en la manufactura, en el armado o en las mismas pruebas de los productos. y esto puede hacer que nuestro tiempo límite sea sobrepasado fácilmente.
2. Tiempo y Dinero
Si se tiene tanto tiempo y dinero para poder desarrollar un proyecto, lo mejor podría ser, realizarlo con microcontrolador, ya que es más económico y puede ser programado con un firmware propio, si se busca que el producto tenga la calidad ideal para lo que va a ser utilizado y además que tenga un buen precio, pues el producto como tal, tendrá un buen rendimiento en cuanto a utilidades se refiere.
Al ser un producto propio, no se venderán productos de terceros si no de la misma empresa lo cual llevará a la empresa por si misma a lograr un posicionamiento en el mercado.
3. Ni tiempo, Ni dinero
Es la peor de las opciones, pero casi siempre la mas común.
En este caso, no queda más que confiar en la preparación de los ingenieros para lograr, mucho, con muy poco.
En resumen:
Los sistemas y lenguajes de programación que son de alguna empresa, ya tienen un arduo trabajo de ingeniería que los soporta, gracias a ello, para nosotros es mas fácil hacer algo con ellos.
Los sistemas desarrollados por uno mismo, son de nuestra propiedad, y se pueden vender a terceros para que esos terceros no tengan que hacer la ingeniería que hicimos nosotros.
Así que tu decides… compra ingeniería hecha, o desarrolla ingeniería.
(este es un tema que puede ser atacado bajo muchos puntos de vista, esto es solo una opinión que me tomo la libertad de compartir)