Entiendo Arduino: ¿ahora qué?

18

Está bien, he jugado lo suficiente con Arduino para sentirme bastante cómodo con él. Todo lo que se haga ahora es más aprender la electrónica que el lado de 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 de controlador separado del controlador, supongo. ¿Alguien puede señalarme en la dirección correcta?

    
pregunta Chris B. Behrens

5 respuestas

9

Aquí hay algunos consejos para trabajar con AVR y C.

Comience con una C incrustada con ATmega32 (Serie ATmega AVR)

    
respondido por el Toby Jaffey
12

Estoy de acuerdo con Joby: Arduino es genial, pero siempre me siento sofocado por el marco con el que me rodean. Pasaría a utilizar C directamente en tu Arduino y crearía una gran cantidad de la funcionalidad de biblioteca que proporcionaban desde cero. Por lo general, prefiero la profundidad antes que la amplitud: no se limite a comenzar con otra familia de microcontroladores utilizando más marcos provistos. Aprenda un poco más acerca de 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 en profundidad la hoja de datos de ATMega328: todo lo que necesita está allí.

Pruebe un IDE diferente como AVR Studio o Code :: Blocks. Aprende la cadena de herramientas de GCC. Pruebe técnicas de codificación más avanzadas: pruebas unitarias, cobertura, perfilado, comprobación de pelusas / férulas. Ponga un RTOS en el Arduino.

Un programador / controlador combinado no es un signo de debilidad, es solo una opción de diseño. La única 'debilidad' que podría surgir es la falta de depuración en el circuito. Compra un AVR Dragon y tendrás ese valor por $ 50.

    
respondido por el AngryEE
9

Creo que lo que hay que aprender a continuación depende de lo que quieras hacer que el Arduino no pueda hacer. Es decir, no veo mucho sentido en la programación de un chip similar para hacer las mismas cosas, pero con medios más difíciles.

Aquí hay algunas debilidades de Arduino:

  • Subprocesos, es decir, ejecutar dos secciones de código intercalado para que parezca que se ejecutan al mismo tiempo
  • Material de Internet de ancho de banda medio o alto, como transmisión de audio
  • Computación seria, o tareas que requieren computación rápida para una respuesta rápida
  • Cualquier cosa que sea más fácil teniendo un sistema de archivos cerca, como el registro de datos o el manejo de imágenes

Puedo imaginar dos direcciones para ir:

  1. Tableros integrados más potentes con sistemas operativos pequeños, como el Beagleboard o Gumstix
  2. Exprime más rendimiento de los pequeños chips Atmega usando interrupciones de hardware.

Puedo agregar más detalles si comentas sobre qué dirección es más atractiva. (El segundo es definitivamente más barato.)

    
respondido por el pingswept
7

Aprenda I2C, SPI, 1wire e intente conectar los sensores con dichas interfaces. Lea muchas hojas de datos de dichos sensores e intente comprender todo lo que contienen. Haga preguntas cuando esté atascado. Conozca MODBUS (RTU / ASCII / TCP) o un protocolo similar que puede abrir su dispositivo al mundo una vez que lo integre. Aprenda electrónica general e intente conectar interfaces de relés, triacs, lo que es pull up y pull down, lo que es fuente y hundimiento, cómo dibujar esquemas y conectar controladores básicos a su MCU.

    
respondido por el avra
6

Para empezar, es posible que desee pasar de Arduino como plataforma a AVR como plataforma. Es decir, aprenda cómo 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 haga, o para hacer proyectos con amigos. Este es un paso bastante simple (un Arduino es solo un microcontrolador Atmel AVR convencional pero con un tablero especial y un cargador de arranque), pero es uno grande para vender / entregar proyectos a amigos. La cadena de herramientas también es similar: utiliza avr-gcc o avr-g ++ con make junto con una utilidad de programación para instalar su programa.

    
respondido por el J. Polfer

Lea otras preguntas en las etiquetas