Cómo aprender el sistema embebido.

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:

  1. “Quiero hacer que mi software afecte las cosas físicas”.
  2. “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.

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. 🙂

5 pasos para comenzar con la programación integrada

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 realmente ejecutar sus programas, necesitará un microcontrolador para ejecutarlos, un compilador que pueda compilar sus programas para su microcontrolador objetivo 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 openOCD. 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 la diversión con chispas y la fruta. 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 Spark-fun para comenzar.

Menos mal, eso es mucho por lo que pasar, pero te dará una base bastante sólida cuando realmente lo superes. 🙂

El sistema integrado es una parte inseparable de nuestra vida, en el hogar, en las oficinas o en movimiento. Siempre estamos rodeados del sistema integrado. Hay varios ejemplos de sistemas integrados disponibles en tiempo real, como la calculadora digital, el refrigerador, la lavadora y el horno microondas. La máquina de transacciones automáticas, el semáforo automático y los brazos robóticos son todos ejemplos de sistemas integrados.

El sistema integrado es una combinación de software y hardware para hacer un dispositivo de propósito específico.

Para hacer el sistema embebido necesitamos microcontroladores y componentes electrónicos básicos.

Para hacer que el sistema incorporado comience primero a codificar en lenguaje C y luego a C embebido y en paralelo comience a aprender el comportamiento del componente electrónico.

En el mercado hay muchos microcontroladores (PIC, 8051, controlador Atmel) disponibles para hacer un sistema integrado. Me refiero, usted elegirá el microcontrolador PIC de 8 bits (PIC16F887a) en el inicio. Hay temas básicos para el sistema integrado que debes hacer.

  1. Arquitectura del microcontrolador.
  2. Diagrama de pin del microcontrolador
  3. Memoria de organización del controlador.
  4. Entrada de propósito general de salida
  5. 5–10 Programa en lenguaje ensamblador (para comprender mejor el comportamiento del microcontrolador)
  6. 5–10 programa en Embedded C
  7. Interfaz de varios dispositivos con microcontroladores como LED, Siete segmentos, Matriz de teclado, Botón, etc.
  8. Aprenda varios temas (temporizador / contador, UART, I2C, ADC, PWM), etc.

Este no es el final del sistema integrado, solo está empezando el sistema integrado.

De la misma manera que aprendes a construir una casa. O un barco. O un coche. Empiezas pensando en qué tipo de sistemas embebidos quieres crear. ¿Quieres tu propio robot? ¿Tu propia estación meteorológica? ¿Tu propia domótica? ¿Tu propia radio? ¿Incluso tu propio teléfono móvil?

Sí, con los componentes adecuados podría construir un teléfono móvil razonablemente fácil.

Pero sabiendo qué tipo de sistemas integrados desea hacer, ya que determina si necesita centrarse más en el hardware o el software.

Para la perspectiva del hardware, comience con una placa Arduino o una placa Raspberry Pi. Hay más opciones, pero estas dos tienen la mayoría de los usuarios y la mayor información disponible.

El Arduino es básicamente un procesador simple con algún hardware adicional que lo hace más fácil de usar. Esto significa que ni siquiera tiene un gestor de arranque para un sistema operativo, sin teclado, mouse, monitor o disco duro. Solo una pequeña cantidad de memoria y una conexión USB para alimentar y cargar un programa en la memoria. (Lo que permanecerá en la memoria hasta que cargue otro programa). Esta es la programación más sencilla que puede hacer y se enfoca principalmente en enviar señales a través de los pines. Para Arduino, debe aprender el lenguaje C estándar y tener en cuenta que Arduino utiliza un subconjunto del lenguaje C, ya que cualquier función relacionada con el teclado, la pantalla o el disco no tiene ningún propósito. ¡Ese hardware no está ahí! Sin embargo, es posible usar el código C ++ con el Arduino, pero se prefiere C para su código principal, mientras que C ++ se usa principalmente para las bibliotecas.

La Raspberry Pi es una computadora más completa, por lo que básicamente puedes instalar uno de muchos sistemas operativos diferentes. También tendrá algunos idiomas más que puede elegir y, como el R-Pi tiene un puerto USB, puede usar un teclado y un mouse. También tiene conectores para un monitor e incluso una cámara y tiene un lector de tarjetas SD que es donde pondría su sistema operativo. El R-Pi es básicamente como una computadora normal, pero no tan potente. Y el R-Pi tiene conectores para pines para que pueda agregar hardware adicional a esos pines.

Para los sistemas integrados un poco avanzados, puede combinar Raspberry Pi y Arduino. Hay muchos transmisores y receptores de RF que puede utilizar en su hardware. Agregaría un transmisor y un receptor a su R-Pi para que pueda enviar y recibir señales. Luego, utilizaría un Arduino para una estación meteorológica en la que simplemente recopila datos como la humedad, la presión del aire, la temperatura y la cantidad de luz que enviaría utilizando su propio transmisor. Y otro Arduino estaría conectado a una placa con varias luces y pantallas LED y tendría un receptor de RF, recibiendo los datos que luego le muestra. Por lo tanto, su estación meteorológica enviaría información meteorológica a su R-Pi, que la procesa, la almacena y luego envía comandos a su pantalla Arduino, que lo mostrará todo. El R-Pi se usaría aquí ya que puede almacenar datos y, por lo tanto, calcular valores promedio y hacer cálculos adicionales.

Ese sería un primer sistema embebido, básicamente.

Para hacer su propio teléfono móvil, usaría un módulo GSM / GPRS que podría ser algo como esto: Elecrow GPRS Class 10 DIY Kit GPS Module. (¡O 32u4 con A9G GPRS GSM GPS Board para obtener más información técnica y un precio más alto!) Se ve así:

Y sí, eso es lo que necesitas para tu propio teléfono móvil. Todo lo que necesita agregar es altavoces, un micrófono y todo tipo de otras funciones para que funcione. Y necesitaría realizar una programación compleja, ya que el uso de un módulo GSM / GPRS requiere un protocolo especial que deberá aprender. Y necesitarías una tarjeta SIM de un proveedor de telefonía móvil. (¡El dispositivo que se muestra en realidad tiene un conector para un combo de micrófono / parlante!) (El dispositivo que se muestra es también una placa completa con un procesador similar a Arduino, ¡así que no necesitas otra placa Arduino con ella!)

¿Quieres probarlo? Vea las instrucciones aquí: https://www.elecrow.com/wiki/ind

Para estudiar el sistema embebido tienes que empezar a aprender. Lo mejor sería comprometerse en algún proyecto o trabajar con alguien, incluso de forma gratuita durante algunos meses o un año.

El conocimiento básico de hardware electrónico, prototipado, programación en C es esencial.

He creado un artículo hace unas semanas, ya que descubrí que muchos ingenieros desconocen cómo pueden aprender sistemas integrados y todo lo que necesitan para aprender a ser un buen ingeniero de diseño integrado. Así que, aquí está la receta.

Espero que esto te ayude.

-》 Empieza a aprender c lenguaje y estructuras de datos .

Libros para lenguaje Cc en profundidad por srivastava o

LET US C por yashwant kanetkar

-Para estructuras de datos – estructuras de datos por reema thareja

-》 ganar conocimiento en 8051 – 8051 por mazidi .

archivo pdf — http: //www.iust.ac.ir/files/ee/p…

-》 aprenda algunos protocolos inalámbricos como zigbee, bluetooth, rfid, dtmf, etc. (ya que estas son las tecnologías básicas que también le ayudan a entender)

-》 ir a través de procesadores de brazo y tratar de entender las hojas de datos.

-》 Compra un kit 8051 y comienza a experimentar.

-》 aprender los conceptos básicos de la programación del kernal.

-》 lo importante es la dedicación y el interés.

Todo lo mejor … no te rindas

  1. Lenguaje C (punteros y funciones de devolución de llamada) en el conocimiento profundo
  2. Lenguaje ensamblador (8085, 8086)
  3. Conocimiento microcontrolador 8051
  4. Conocimientos relacionados con microprocesadores y hardware (CPU, memoria, PCIe, etc.)
  5. Sistema operativo (sistema operativo en tiempo real), conocimiento del kernel y gestión de memoria
  6. Máquina de estados finitos
  7. La depuración de problemas en el sistema embebido es difícil

Cursos gratuitos

  1. Sistemas embebidos – Shape The World: entrada / salida de microcontroladores

Ve paso a paso 🙂

La mejor manera de estudiar el sistema integrado es leer revistas de efy. Primero intenta hacer proyectos sin controlador. Esto te ayudará a entender los circuitos electrónicos.

A continuación, aprender incrustado en C langauage. Realiza los proyectos con controlador. Comience con 8051 y AVR. Por favor, manténgase alejado de ARDUINO. Obtendrá muchos proyectos en línea con diseño de circuitos, diseño de PCB y código fuente. No hagas copia – pasta. Analizar el código y el diagrama del circuito.

Aprende algunos protocolos como uart, spi, i2c. Aprenda a programar módulos gsm, módulo bluetooth, tarjetas rf-id.

Siempre lea las revistas efy ​​para ideas únicas.

Puede aprender acerca de los sistemas integrados de varios MOOCs.

1. Serie de videoconferencias de sistemas integrados por NPTEL coordinada por IIT Delhi.

http://nptel.ac.in/courses/10810

Serie 2.Lecture por University of Texas, Austin en edx.org . Personalmente, pocos de mis amigos han tomado esto y también han tenido experiencia práctica trabajando en varios planteamientos de problemas utilizando el microcontrolador de la corteza de Texas.

https://www.edx.org/course/embed

También puede consultar los cursos en línea de coursera y MIT open courseware in Embedded Systems.

¡Feliz aprendizaje! 🙂

Es una llamada temprana si estás haciendo esta pregunta.

Ver como ser un ingeniero integrado, tampoco sabía cómo empezar desde dónde empezar. Pero tenemos que desde algún lugar o algo.

Así que la mejor manera de dominar el sistema integrado es:

Ingredientes:

  • Un lenguajes de programacion
  • do
  • Pitón
  • Un kit de microcontrolador.
  • Una laptop / pc
  • Eso es. Sigue practicando programas. De los más fáciles a los más complejos.

    Descargue los códigos fuente y modifíquelos frecuentemente para producir algo nuevo, algo más autónomo.

    Comience a hacer proyectos y experimente en real, adhiriéndolos a cosas reales. Imaginando algo nuevo, algo innovador.

    Ellos comienzan a participar en competiciones nacionales organizadas por Texas Instruments o Govt. De la India.

    Seguramente te transformarás después de este ejercicio.

    Para aprender cualquier cosa necesitamos dar nuestro esfuerzo en la dirección correcta. Y es por eso que necesitamos la ayuda de una persona experimentada. De lo contrario perderás tu precioso tiempo en cosas innecesarias también.

    Entonces, simplemente únete a una de las mejores compañías de entrenamiento integrado.

    Entonces, antes de unirte, haz un poco de investigación porque si llegas al lugar equivocado, desperdiciarás tu dinero y el tiempo más importante, e incluso puedes perder el interés por el dominio incrustado.

    Por lo tanto, descubra algunas de las mejores empresas de formación integrada.

    Según mi opinión, Cetpa Infotech http://www.cetpainfotech.com es una de las mejores empresas de capacitación para sistemas integrados. Por lo tanto, usted puede ir a por ello.

    Debería hacer este curso en línea: Sistemas embebidos – Shape The World

    • Compra cualquier placa de desarrollo.
    • R-Pi y Beaglebone – https://www.crazypi.com/
    • Kit de inicio Tiva – EK-TM4C123GXL – INSTRUMENTOS DE TEXAS – Kit de evaluación LaunchPad Tiva C serie TM4C123G
    • Comience a construir aplicaciones en él.

    Solo aprenderás cuando empieces a construir algo.

    La mejor manera es hacer las cosas tú mismo. Tableros como Arduino y Raspberry Pi son bastante asequibles y están muy bien documentados. Recomendaría comprar uno y probar varios proyectos en él. Si eres un novato, usa Arduino.

    Para mí, el comienzo fue con un pequeño kit de componentes electrónicos construido alrededor del 555 temporizador IC. Buenos tiempos…

    Gooduck!

    El sistema embebido es una combinación de hardware y software. Para el software, puede comenzar con el lenguaje C y para la parte de hardware puede comenzar con cualquier microcontrolador de 8 bits, por ejemplo, 8051, avr, pic o St. También puede usar un simulador como proteus para simular el circuito. Para prototipado rápido, puede utilizar Breadboard.

    Feliz haciendo

    “Si Embedded Systems es un océano, Arduino es la lancha a motor asequible más simple”. – Yo.

    Déjame mantener esto crujiente. Comience con Arduino.

    Arduino, es un buen comienzo para desarrollar tus habilidades integradas. Es bueno y malo a la vez. Es bueno para los principiantes comenzar a interesarse y para aquellos que se apegan a él incluso después de haberlo hecho bien.

    Dicho esto, espero que ahora sepas por dónde empezar y qué hacer a continuación. ¡Buena suerte!

    Consulte esta respuesta mía:
    ¿Cómo puedo dominar los sistemas integrados desde principiantes hasta profesionales?