Muy bien, he jugado lo suficiente con Arduino que me siento bastante cómodo con él. Todo lo que se hace ahora es más aprender la electrónica que el lado Arduino.
¿Cuál es el siguiente paso para mi aprendizaje? Arduino es un programador / controlador combinado, por lo que presumiblemente necesito romper ese enlace y comenzar a trabajar con un chip controlador separado del controlador, supongo. ¿Alguien puede señalarme en la dirección correcta?
Respuestas:
Aquí hay algunos consejos para trabajar con AVR y C.
Comience con C integrado con ATmega32 (serie ATmega AVR)
fuente
Estoy de acuerdo con Joby: Arduino es genial, pero siempre me siento sofocado por el marco con el que me rodean. Pasaría a usar C directo en su Arduino y construiría una gran cantidad de la funcionalidad de la biblioteca que proporcionaron desde cero. Por lo general, prefiero la profundidad antes que la amplitud: no solo comience en otra familia de microcontroladores utilizando más marcos proporcionados. Aprenda un poco más sobre cómo implementar algunas de estas funciones usted mismo.
Comience con un programa que funcione y reemplace las llamadas de la biblioteca Arduino con sus propias versiones, una función a la vez. Aprenderá mucho sobre los registros de control, el tiempo, las operaciones de bits, etc., si aún no lo ha hecho. Lea la hoja de datos ATMega328 en profundidad: todo lo que necesita está ahí.
Pruebe con un IDE diferente, como AVR Studio o Code :: Blocks. Aprenda la cadena de herramientas GCC. Pruebe técnicas de codificación más avanzadas: pruebas unitarias, cobertura, creación de perfiles, verificación de pelusas / férulas. Pon un RTOS en el Arduino.
Un programador / controlador combinado no es un signo de debilidad, es solo una elección de diseño. La única 'debilidad' que podría surgir es la falta de depuración en circuito. Compre un AVR Dragon y lo lamirá por $ 50.
fuente
Creo que lo que debe aprender a continuación depende de lo que quiera hacer que Arduino no pueda hacer. Es decir, no veo mucho sentido en programar un chip similar para hacer las mismas cosas, pero con medios más difíciles.
Aquí hay algunas debilidades de Arduino:
Puedo imaginar dos direcciones a seguir:
Puedo agregar más detalles si comentas qué dirección es más atractiva. (El segundo es definitivamente más barato).
fuente
Aprenda I2C, SPI, 1wire e intente interconectar sensores con tales interfaces. Lea muchas hojas de datos de dichos sensores e intente comprender todo lo que contienen. Haga preguntas cuando esté atascado. Aprenda MODBUS (RTU / ASCII / TCP) o un protocolo similar que pueda abrir su dispositivo al mundo una vez que lo inserte en el dispositivo. Aprenda electrónica general e intente interconectar relés, triacs, qué es pull up y pull down, qué es abastecimiento y hundimiento, cómo dibujar esquemas y conectar controladores básicos a su MCU.
fuente
Para empezar, es posible que desee pasar de Arduino como plataforma a AVR como plataforma. Es decir, aprenda a programar / usar un microcontrolador AVR virgen para sus proyectos en lugar del Arduino. De esa manera, no tendrá que comprar otra placa Arduino para cada proyecto que realice, o para hacer proyectos con amigos. Este es un paso bastante simple (un Arduino es solo un microcontrolador Atmel AVR convencional pero con una placa especial y un gestor de arranque), pero es grande para vender / dar proyectos a amigos. La cadena de herramientas también es similar: usa avr-gcc o avr-g ++ con make junto con una utilidad de programación para instalar su programa.
fuente