¿Cómo se compara Arduino con PIC y AVR para estudiantes serios [cerrado]

Estoy tratando de familiarizarme con los microcontroladores, pero como puede suponer, elegir el primer microcontrolador para comenzar es una tarea difícil debido a las excelentes opciones disponibles.

He estudiado electrónica (tanto analógica como digital), organización de computadoras y actualmente estoy leyendo un libro sobre arquitectura de computadoras.

Qué mejor manera de cimentar mi comprensión que tener un microcontrolador real a mano. Tuve la tentación de comprar Arduino debido a su popularidad y su supuesta simplicidad. Sin embargo, al igual que programar en algo como C# y no saber necesariamente lo que sucede detrás de escena, tengo miedo de que con Arduino, solo lo haya estado usando como C# sin entender cómo funciona la arquitectura, que es lo que espero aprender.

Entonces, en resumen, ¿me equivoco en mis evaluaciones anteriores del Arduino anterior? Y cómo se compara el Arduino en términos de comprender cómo funcionan los sistemas integrados con otros microcontroladores de las familias PIC y AVR.

Gracias

Arduino es AVR. Simplemente le brinda una colección de funciones de biblioteca que puede usar para hacer su vida más fácil.
¿Debo obtener una placa de desarrollo AVR o un Arduino?
Siempre es útil tener un Arduino a mano independientemente. Se puede usar como programador para chips AVR sin procesar, y es un camino fácil para aprender: puede comenzar con lo básico usando su API y reducir gradualmente su dependencia y programar el metal desnudo sin tener que preocuparse por el soporte. circuitos, programadores de hardware, etc.
Arduino es un sistema de desarrollo de software/firmware que atrae a un público amplio (que no es de ingeniería), por lo que desafortunadamente usan una terminología no estándar: sheildsignifica placa enchufable, sketchsignifica programa de firmware. processingy wiringson nombres de algunas de sus bibliotecas. Y fritzinges un diagrama de cableado de placa de prueba, que a menudo se usa como un pobre sustituto de un esquema real. Pero aparte de los nombres extraños, es una herramienta de desarrollo capaz. Y dado que es de código abierto, puede profundizar en el código fuente y ver cómo funcionan las cosas debajo de las sábanas.
@MarkU En realidad, processinges el nombre del IDE que robaron y wiringes el nombre de la API que robaron.
Considere también la serie MSP de TI. Tienen una arquitectura significativamente diferente. Podría ser interesante comparar.

Respuestas (3)

A menos que tenga un presupuesto extremadamente ajustado (como los niveles de ahorro de dinero de bolsillo), entonces no me preocuparía demasiado por la decisión de cuál probar primero. Simplemente elija uno y espere que una vez que haya comenzado, probará otros.

En mi humilde opinión, no puedes equivocarte con un Arduino como primera opción:

  • Precisamente por su popularidad y su supuesta simplicidad (en comparación con PIC), encontrará una gran cantidad de información y apoyo en la red.
  • Y con el IDE estándar, puede contar con una primera experiencia alentadora, ya que realmente puede hacer que haga cosas (en comparación con ir directamente a un chip AVR).

Por lo tanto, es poco probable que caiga en el primer obstáculo y, como resultado, se sienta desencantado y frustrado.

No te preocupes demasiado por quedar atrapado en una caja negra que te impide aprender a niveles más profundos. Pero la responsabilidad recaerá en usted para ir más allá de lo básico, por ejemplo:

¡La única desventaja de comenzar con un Arduino que se me ocurre es tener que sufrir los comentarios despectivos ocasionales y las burlas de los ingenieros de Real ™! Algo así como programadores que admiten que su primer lenguaje fue BASIC ;-)

Si obtiene un Arduino Uno o una placa similar, puede ignorar por completo el hecho de que puede usar el IDE de Arduino para programarlo, y puede escribir todo su propio código en Atmel Studio e incluso importar las bibliotecas principales de Arduino si lo desea. .

Lo bueno de Arduino es que no tienes que aprender cosas de bajo nivel, como habilitar interrupciones y configurar máscaras para registros de temporizador, etc. Simplemente "funciona".

Esto ayuda a los novatos a comenzar y hacer las cosas rápidamente.

Si desea aprender la forma correcta desde el principio, vaya directamente a Atmel Studio con una placa de desarrollo AVR (o use una placa Arduino, simplemente ignore el IDE) y aprenda de los ejemplos y lea la hoja de datos para Atmel AVR ATMEGA328P.

Entonces, ¿es posible usar el chip ATMEGA328P de forma independiente?
siempre estás usando el Atmega328P, tanto en Arduino como en otro IDE. Es solo que Arduino ha abstraído a propósito el hardware y ha intentado crear una interfaz de programación de nivel superior, lo cual es genial y les permite tener muchos productos diferentes, todos usando el mismo código.
@KyranF, que es la "esencia" misma de la programación y los ingenieros más "experimentados" deberían reconocer eso en lugar de hablar con Arduino-kiddies. OpenGL y DirectX es un paradigma muy similar. Abstrayendo el hardware para permitir que los programadores (jadeo ... incluso principiantes) lo usen. +1

Si desea programar microcontroladores, debe aprender (si aún no lo sabe) 'C' y posiblemente algún lenguaje ensamblador.

Arduino es bueno si solo quiere que algo funcione (es decir, quiere ganar la programación suficiente para hacer el trabajo), lo cual está bien. El lenguaje que usa arduino es similar a C, pero tiene un montón de rutinas enlatadas para que no tengas que saber qué sucede debajo del capó.

Si se trata de control y una comprensión más profunda, obtenga un kit de desarrollo de microcontrolador (ya sea del fabricante o digikey). Por lo general, puede obtener esto por USD $ 30-50 o menos.

Para aprender C embebido, consulte los siguientes libros: Embedded C , Test Driven Development for Embedded Systems y sistemas embebidos

Comience tratando de resolver un problema. Revisé libros y me aburrí y no retuve tanto como lo hice al tratar de resolver un problema. ¡Buena suerte y diviertete!

Pero su respuesta de alguna manera contradice la dada por KyranF, quien dijo que puedo usar el Arduino como un ATMEGA328P normal si uso Atmel Studio en lugar del estudio Arduino. ¿Por qué comprar una placa de desarrollo AVR entonces?
@medwatt, PUEDE usar la placa arduino para desarrollar un código C normal en Atmel Studio. Así que realmente no puedes perder eligiendo una placa Arduino