Ya respuestas muy útiles aquí. En lugar de recomendarle libros, etc., simplemente le diré lo que necesita saber (al menos). Aunque es su elección qué recursos utilizará, estas son las cosas que se esperan de alguien que dice ser un experto en sistemas integrados. Mencioné específicamente al menos porque no hay límite. El campo está cambiando día a día y ahora hay tantos subcampos o avenidas para explorar. IoT, Linux embebido, por ejemplo, Raspberry Pi, controladores ARM, plataformas de software y depuradores como MBED, SO como Ubuntu Snappy, etc. Pero siempre habrá algunos elementos básicos que debe tener para avanzar. A continuación están mis sugerencias;
Como sabemos que la palabra sistemas integrados es la combinación de hardware y software. Entonces, esto es lo que debes hacer,
Hardware
- ¿Cuáles son las cosas que uno debe aprender en un sistema integrado?
- ¿Cuál es la diferencia entre un sistema embebido y un sistema informático general?
- ¿Cuál es el preferido por la industria, AVR o Arduino?
- ¿Cuál es el nivel de precisión del uso de la visión por computadora para detectar el movimiento desde una plataforma en movimiento? ¿Y qué tan difícil es usar la biblioteca OpenCV y crear una aplicación de Android que procese video infrarrojo sobre la marcha y genere alertas cuando detecte movimiento? ¿cualquier otra sugerencia?
- Cómo comenzar a programar en C para sistemas embebidos
aprenda sobre los diferentes tipos de microcontroladores, 8 bits, 16 bits, 32 bits. Aprenda sobre el cronometraje, el tiempo, etc. Intente comprender adecuadamente los diferentes protocolos de comunicación SPI, I2C, UART, etc. Debe poder distinguir claramente la diferencia entre ellos y poder decidir cuál usar para una situación particular. Obtenga información sobre la conversión de analógico a digital (ADC), sus tipos, por ejemplo, SAR, delta-sigma, etc.
Software
Como no estamos hablando de ningún sistema específico, diría que aprendan el lenguaje de programación C. Debería poder programar en C y estar familiarizado con el uso de diferentes IDE, por ejemplo, Eclipse, Visual Studio, etc. Diferentes compañías usan diferentes IDE para su sistema.
Escala libre -> CodeWarrior
Texas Instrument -> Code Composer Studio
Microchip -> MPLAB
Atmel -> Atmel Studio
y así..
Tenga en cuenta que la mayoría de ellos están basados en eclipse, por lo que en caso de que sepa cómo usar uno, no le tomará mucho tiempo aprender a usar el otro IDE.
Debe aprender a leer la hoja de datos del dispositivo particular que está utilizando. Creo que este es uno de los consejos más importantes que puedo darle. Si aprende una vez correctamente cómo hacerlo, la transferencia a cualquier nuevo dispositivo / microcontrolador será muy fácil. Debería poder saber cómo encontrar el registro correcto del microcontrolador y cómo usarlo.
Diseño
Debe estar familiarizado con el diseño de diseño de PCB. Aprenda al menos un software, yo personalmente uso Eagle, otras opciones populares son Altium, OrCAD, etc. Lo importante aquí es que pueda crear un circuito básico y luego diseñar un PCB a partir de él.
Aprenda sobre las diferentes técnicas de diseño de software y cómo puede usarlas. Por ejemplo, máquinas de estado.
Al final del día, se trata de cuánto esfuerzo estás poniendo. Recuerda, no solo leas; ¡práctica! Simplemente tome un tablero, por ejemplo Arduino, y simplemente comience a jugar con él.
Guía paso por paso,
Comprar Arduino Uno,
descarga el IDE,
conecte el sistema, pruebe los ejemplos y lea el código.
Intenta entender cómo está funcionando. Ahora cambie el código y vea cómo está afectando el ejemplo. ¿Puede explicarlo si es así? Bueno, si no profundiza e intenta comprender.
Lea la hoja de datos del microcontrolador y asegúrese de haber entendido el funcionamiento general de este microcontrolador y cómo funcionan los periféricos de este controlador en la placa Uno.
Una vez que tenga suficiente experiencia, comience a crear sus propias aplicaciones, ya sea desde cero o utilizando cualquiera de los tableros disponibles en línea.
Mover a los controladores ARM. Intenta usar Raspberry Pi o Beagle Bone Black. Haz diferentes proyectos con ellos. Si realmente quieres cavar profundo, se recomienda BBB. Después de algunos proyectos, debería poder saber cómo usar Linux, cómo usarlo para dispositivos ARM, comprender adecuadamente el concepto de cadena de herramientas, superposición de prueba de dispositivo, descriptores de archivos en Linux, etc.
Con suficientes proyectos en su haber, pronto se volverá muy bueno en sistemas integrados.