Microcontrolador autónomo VS Arduino para un principiante [cerrado]

0

Wes geo hal,

Soy relativamente nuevo para los microcontroladores, y tengo la intención de comenzar con ellos en mi hobby de electrónica y proyectos escolares. Aunque, estoy bastante confundido si iniciaré con Arduino, PICAXE o directamente en microcontroladores estáticos, es decir, PIC, AVRs?

Antes de identificar que Arduino es un microcontrolador, quiero decir, ¿qué entorno debo practicar, es decir, los tableros de desarrollo y la programación de Arduino totalmente compatibles, o la programación directa de microcontroladores estáticos? Pregunto esto, porque he encontrado personas que dicen en otros foros de discusión que Arduino no ayuda a los principiantes a entender los microcontroladores al mismo tiempo que investigan esta investigación.

Esencialmente, mi pregunta es: ¿es mejor comenzar con Arduino environemnt, o PICAXE, o un desarrollo de microcontrolador independiente?

    
pregunta Lieutenant Ivan

5 respuestas

5

Actualmente estoy en mi segundo año de estudios en una universidad pública en los Estados Unidos. Comencé en el Arduino por mi cuenta en la escuela secundaria, aunque mis clases posteriores (mi clase de introducción incorporada) usaban un MSP430 de TI.

El Arduino tiene la ventaja de contar con el apoyo de aficionados con buenos tutoriales para principiantes, pero, al parecer, realmente no le ganará el respeto de un desarrollador de "verdaderos sistemas integrados", por lo que puedo decir, más o menos lo que recoges.

Si está buscando una introducción suave a los sistemas integrados, yo diría que Arduino es el camino a seguir. De lo contrario, como mencionó, hay muchos otros lugares a los que ir, y francamente, el Arduino a menudo no es la mejor opción cuando se consideran proyectos de aficionados. En ese caso, creo que un chip como el MSP430 (la junta de desarrollo de la línea de valor) es una forma económica y efectiva de aprender sobre los microcontroladores, que probablemente le ofrezcan más opciones, a costa de una curva de aprendizaje más pronunciada.

En cualquier caso, como hay muchos tableros de desarrollo de microcontroladores hoy en día, quizás sea más importante que adquiera experiencia con un sistema y luego amplíe sus conocimientos para poder manejar las cosas de manera más general. Saltarse y mojarse los pies es probablemente más importante que encontrar un chip específico, ya que no está tratando exactamente de diseñar un producto con una aplicación específica en mente, simplemente está aprendiendo acerca de los microcontroladores.

    
respondido por el inkyvoyd
2

Un Arduino generalmente consiste en un chip AVR y una gran cantidad de software.

Son las bibliotecas de software las que abstraen gran parte de las peculiaridades del hardware del microcontrolador y diferencian a los Arduinos de la mayoría de las otras placas de desarrollo. Sin embargo, no estás obligado a usar siempre estas bibliotecas; sus programas pueden acceder al hardware directamente.

Así que puedes comenzar con las bibliotecas de Arduino (que son más fáciles ), y luego cambiar a tratar el Arduino como si fuera una placa AVR simple.

Tenga en cuenta que existen bibliotecas compatibles con Arduino para muchas otras placas de microcontroladores (por ejemplo, Energia para los LaunchPads de TI, o Arduino para STM32 ). Elija el que mejor se adapte a su entorno.

    
respondido por el CL.
-1

Tal como mencionaste, Arduino es un microcontrolador diseñado para principiantes y aficionados. Hay muchos tutoriales para comenzar, comunidad activa y muchos controladores para sensores (u otro tipo de dispositivo) disponibles en código abierto. Ya que es un diseño para aficionados, no es necesario entender la arquitectura, el registro o el ensamblaje para hacer que su código funcione.

Si desea obtener más información del microcontrolador, prefiere utilizar el PIC de Microchip o el MSP430 de TI. Es más difícil de usar, ya que necesita entender cómo funciona el µC, pero este conocimiento será útil para su escuela.

Te aconsejo que aprendas cómo funciona el PIC de Microchip, ya que es más común en la industria (en mi experiencia)

Espero que esto te ayude;)

    
respondido por el M.Ferru
-1

Es de mayor interés para los proveedores de chips proporcionar bibliotecas para sus productos, bibliotecas que ocultan los detalles (y gran parte de la experiencia). Haciendo lo mismo que escribir un programa en Windows o Linux o Mac, solo estás haciendo llamadas a API. Si esa es la experiencia que buscas, entonces una es tan buena como la otra, arduino es muy popular, pero también hay mbed.

El AVR no es el primer microcontrolador que elegiría si desea profundizar más. Recomendaría el msp430 o algo basado en cortex-m. La documentación de TI es una de las mejores (Microchip en el extremo inferior), ST y NXP es bastante bueno. Ti tiene tablas de plataforma de lanzamiento para msp430, cortex-ms y sus dsps, en el parque de juegos o mucho menos que un arduino pero muy capaz en algunos casos mucho más capaz que un arduino. ST ofrece los tableros de la serie de núcleos que se encuentran entre la experiencia arduino y mbed, quizás apoyados en ambos mundos. Súper fácil de programar, simplemente arrastre y suelte su binario en una unidad USB virtual provista por el final del tablero del depurador y, al ser muy competitivo en precio, puede obtener una buena por $ 10.

Los otros proveedores han perdido un poco el bote en los paneles de evaluación / pasatiempos realmente fáciles de usar, pero todavía puedes encontrar algo.

Si solo estás interesado en las llamadas a la API y no quieres saber qué está pasando, obtén un arduino y mbed y utiliza esos entornos. Incluso si desea profundizar en el tema, debe experimentar algunos entornos de alto nivel, incluido lo que ofrecen los proveedores de chips, es posible que deba / pueda usar esos profesionales de esa forma. Del mismo modo, dado que esas bibliotecas tienen problemas en varias formas, también es bueno ensuciarse las manos y entender cómo se inician los chips y cómo configurarlos en el nivel de registro, así como algunos conceptos básicos de conjuntos de instrucciones, todos tienen algo que ofrecer, msp430. cortex-m, avr, pic, cuanto más, mejor, hay simuladores de conjuntos de instrucciones que puede probar de forma gratuita para familiarizarse con el chip, ya que existe una alta tasa de fallos (no puede ver qué sucede cuando se cuelga su programa , más difíciles de depurar, pueden y serán chips de ladrillos, esto ocurre incluso con décadas de experiencia, pero son baratos).

Con una plataforma de lanzamiento msp430 y una de las placas de núcleo con puentes en la interfaz SWD, puede crear sus propias tablas o comprar tablas muy baratas en ebay desde asia, no es necesario que tenga estos encabezados de depuración a $ 2 ftdi usb to uart lo llevará a los cargadores de arranque en una serie de productos de estos proveedores. También puede obtener muestras de los fabricantes de chips (lo que significa algunas piezas gratis) y algunos tssop baratos u otros tableros de ruptura, una vez más enganchando para decir un núcleo superior o un launchpad u otro tablero de desarrollo.

Prueba uno como ti msp430 o stm32 cortex-m y moja tus pies, luego sumérgete en otros. Incluso si tiene una mala experiencia, vuelva un par de años más tarde y vea si ha cambiado, profesionalmente, hasta que sea el ingeniero principal, puede quedar atrapado en un proyecto con uno de los productos en su lista no favorita y solo tiene que negociar. Con él, sea flexible y capaz de adaptarse.

    
respondido por el old_timer
-1

Comenzar con Arduino es probablemente el mejor. Te dará la idea básica de ejecutar cosas en hardware real.

Como un colega descubrió recientemente, sin embargo, Arduino no es amigable para los expertos. No se puede desentrañar la versión "fácil" de Arduino y cambiar a un "modo experto" de AVR incondicional. Cuando se trata de E / S, debe deshacerse completamente del código de Arduino y comenzar de cero con AVR. Sin embargo, aún recomendaría seguir con Arduino, porque para el momento en que necesites ese tipo de piratería en modo experto para obtener el máximo rendimiento, tendrás las placas de circuito terminadas. Eso significa que solo está cambiando una cosa a la vez, en lugar de tener que averiguar cómo configurar la placa de circuito y un software muy complicado al mismo tiempo, y no estar seguro de cuál es la única causando tus fallas.

Conducir la E / S en un microcontrolador complejo a nivel de registro no es una misión para un novato. La simple E / S digital no es demasiado difícil (aunque incluso entonces tienes la alegría de pinmux, direcciones de pines y pull-up / down para considerar), pero cuando llegas a los temporizadores de programación, ADCs, DAC y periféricos de comunicaciones, es bastante Mucho requiere memorización línea por línea de esa parte de la especificación para hacerlo bien, a veces con viajes a Stack Overflow o foros de los fabricantes para las cosas que olvidaron documentar. He estado haciendo esto durante 25 años, así que lo hago bien la mayoría de las veces, ¡pero "no" sigue siendo una opción muy frecuente! No me gustaría estar pirateando esto a menos que tuviera alguna experiencia sólida con la programación general incorporada. Así que definitivamente empieza con la opción fácil y trabaja hacia arriba, porque comenzar con la opción más difícil es una curva de aprendizaje de vidrio cubierto de hielo puro.

Si está planeando reemplazar las funciones de E / S en algún punto, esto también lo guiará en la dirección de escritura de código bien construido con una capa de abstracción de E / S. Eso le permite escribir el código de la aplicación principal y hacer que las funciones de llamada de la aplicación principal se llamen algo así como set_power_led_red() . Puede implementar set_power_led_red() para que Arduino llame las cosas correctas, y luego, cuando cambia a AVR, puede eliminar ese archivo C e implementar set_power_led_red() para la nueva configuración de AVR. Eso le permite ubicar el código de E / S de Arduino, escribir un código AVR y, con suerte, no tener que realizar demasiados cambios en el resto de la aplicación. Y para obtener puntos de bonificación, también puede colocar un código auxiliar para set_power_led_red() y ejecutar pruebas en el código de la aplicación en Visual C en Windows, en lugar de tener que hacer toda su depuración en el hardware real, lo que a veces puede ser inconveniente. La abstracción del hardware es definitivamente tu amigo.

    
respondido por el Graham

Lea otras preguntas en las etiquetas