5 pasos para comenzar con la programación integrada
Esta es realmente una pregunta realmente difícil. No es como “¿Cómo podría empezar con Haskell?” O “¿Cómo podría comenzar con Rust?” El desarrollo integrado es una cosa tan extraña y diversa que es casi como preguntar: “¿Cómo empiezo con la programación?” excepto en un universo alternativo donde 128k todavía es una gran cantidad de RAM. No estoy seguro de por dónde empezar.
Creo que la gente que pregunta tiene uno de dos objetivos:
- “Quiero hacer que mi software afecte las cosas físicas”.
- “Quiero aprender lo que realmente está sucediendo allí abajo en la parte inferior”.
Si está interesado principalmente en el primer objetivo, le recomendaría que consulte las numerosas plataformas integradas de aficionados que están disponibles ahora (Arduino, Raspberry Pi, Particle, etc.). Tienen muchas grandes comunidades para participar y aprender de ellas.
- Cómo aprender el idioma hindi de manera efectiva.
- Cómo aprender un nuevo idioma pronto
- ¿Por qué la gente insiste en que aprenda a conducir?
- ¿Cuánto tiempo se tarda en aprender a dibujar personas?
- ¿En qué punto las matemáticas se vuelven casi imposibles de aprender intuitivamente?
Sin embargo, si está más interesado en el segundo objetivo, su tarea es un poco más difícil.
1. Aprende C
Por una variedad de razones, la gran mayoría de las cadenas de herramientas integradas están diseñadas para admitir C como el idioma principal. Si desea escribir software incrustado para más que unas pocas plataformas de aficionados, tendrá que aprender C (y, con suerte, quizás Rust).
2. Aprende algo de electrónica básica
No te preocupes, no necesitas tomar una clase ni nada. Solo necesita una comprensión básica de voltaje, corriente, potencia, resistencia, ley de ohmios. Probablemente pueda hacerlo con solo unos pocos tutoriales en línea y algunos experimentando con simuladores en línea y / o circuitos reales.
3. Consigue el equipo básico.
Dado que se trata de un software integrado y que en realidad interactuará con el mundo físico, eventualmente necesitará algunos equipos físicos. Al menos necesitarás:
- Soldador
- Multímetro digital (DMM)
- Un depurador de hardware / adaptador JTAG (como un adaptador ST-Link o OLMEX)
También recomiendo encarecidamente obtener un analizador lógico. Mi favorito es de Saleae, pero son muchos otros más baratos.
4. Elija un microcontrolador y una cadena de herramientas
Bien, ahora que tenemos los fundamentos, ¡¿podemos ya programar ?!
Casi. Para que sus programas se ejecuten realmente, necesitará un microcontrolador para ejecutarlos, un compilador que pueda compilar sus programas para su microcontrolador de destino y otras herramientas para cargar sus programas en su hardware y depurarlos.
Personalmente, me gusta la familia de microcontroladores STM32. Están bien soportados por mi cadena de herramientas incrustada favorita: arm-gcc junto con opopOCD. Esta combinación no es tan fácil de usar como un Arduino, pero también es adecuada para muchas más aplicaciones del mundo real.
- Una buena opción de inicio es obtener un kit de descubrimiento STM; Son baratos, relativamente accesibles y fáciles de comenzar.
- ARM es, con mucho, la arquitectura más común para los micros incorporados (especialmente los micros de 32 bits), y arm-gcc puede apuntar a casi todos ellos.
- openOCD es una pieza de software de código abierto que se comunicará con un depurador de hardware y proporcionará un servidor de depuración gdb para que pueda cargar un programa y recorrer su código que se ejecuta en target con gdb. Ni siquiera necesita ejecutar openOCD en la computadora en la que está desarrollando y ejecutando gdb.
5. Escoger componentes y cavar en sus hojas de datos
Ahora tienes suficiente para comenzar realmente con algo. Todo lo que tienes que hacer es seleccionar algunos componentes y luego juntarlos. Algunos buenos lugares para buscar componentes son sparkfun y adafruit. Y para una selección más amplia y económica, también digikey y mouser.
Una vez que hayas encontrado algunos componentes que crees que harán lo que quieres, tendrás que profundizar en sus hojas de datos. Las hojas de datos son esencialmente los manuales para componentes electrónicos. Son la clave para descubrir cómo usar un componente y para asegurarse de que, de hecho, funcione para su aplicación. La mayoría de las preguntas que tiene sobre un componente pueden ser respondidas por sus hojas de datos. Pero las hojas de datos pueden ser complicadas. Bastante complicado que tengo mis propias 3 reglas de programación embebida:
- 1a regla de la programación integrada: leer la hoja de datos.
- 2ª regla de la programación integrada: leer la hoja de datos.
- Tercera regla de la programación integrada: No confíe en la hoja de datos.
Las hojas de datos son la fuente de todos los conocimientos, pero tampoco son del todo intuitivas ni precisas. Recomiendo leer cómo leer una hoja de datos y el tutorial de la hoja de datos de Parkfun para ayudar a comenzar.
Menos mal, eso es mucho por lo que pasar, pero te dará una base bastante sólida cuando realmente lo superes. 🙂