Cómo aprender sistema embebido

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 lenguaje principal. Si desea escribir software embebido para algo más que unas pocas plataformas de aficionados, necesitará aprender C (y con suerte, eventualmente, Rust).

2. Aprenda 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 sobrevivir con solo unos pocos tutoriales en línea y algunos experimentando con simuladores en línea y / o circuitos reales.

3. Obtenga el equipo básico

Como se trata de un software integrado y realmente interactuarás con el mundo físico, eventualmente necesitarás algunos equipos físicos. Al menos necesitarás:

  • Soldador
  • Multímetro digital (DMM)
  • Un depurador de hardware / adaptador JTAG (como un adaptador ST-Link u OLMEX)

También recomiendo 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 llegar a la codificación?

Casi. Para ejecutar realmente sus programas, 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 respaldados 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 micros incrustados (especialmente 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 el destino con gdb. Ni siquiera necesita ejecutar openOCD en la computadora en la que está desarrollando y ejecutando gdb.

5. Elija componentes y profundice en sus hojas de datos

Ahora tiene suficiente para comenzar realmente con algo. ¡Todo lo que tiene que hacer es seleccionar algunos componentes y luego armarlos! Algunos buenos lugares para buscar componentes son chispas divertidas y adafruit. Y para una selección más amplia y económica, también digikey y mouser.

Una vez que haya encontrado algunos componentes que cree que harán lo que desea, tendrá 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, funcionará para su aplicación. La mayoría de las preguntas que tiene sobre un componente pueden responderse mediante sus hojas de datos. Pero las hojas de datos pueden ser complicadas. Lo suficientemente complicado como para tener mis propias 3 reglas de programación incrustada:

  • Primera regla de programación incrustada: lea la hoja de datos.
  • Segunda regla de programación integrada: lea la hoja de datos.
  • Tercera regla de programación integrada: no confíe en la hoja de datos.

Las hojas de datos son la fuente de todo el conocimiento, 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 ayudarlo 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

Esta es realmente una pregunta realmente complicada. No es como, “¿Cómo comenzaría con Haskell?” O “¿Cómo comenzaría 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 mucha RAM. No estoy seguro de por dónde empezar.

Creo que las personas que preguntan tienen uno de dos objetivos:

  1. “Quiero 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 eche un vistazo a las muchas buenas plataformas integradas para aficionados disponibles ahora (Arduino, Raspberry Pi, Partículas, etc.). Tienen muchas comunidades excelentes para participar y aprender.

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 lenguaje principal. Si desea escribir software embebido para algo más que unas pocas plataformas de aficionados, necesitará aprender C (y con suerte quizás eventualmente Rust).

2. Aprenda 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 sobrevivir con solo unos pocos tutoriales en línea y algunos experimentando con simuladores en línea y / o circuitos reales.

3. Obtenga el equipo básico

Como se trata de un software integrado y realmente interactuarás con el mundo físico, eventualmente necesitarás algunos equipos físicos. Al menos necesitarás:

  • Soldador
  • Multímetro digital (DMM)
  • Un depurador de hardware / adaptador JTAG (como un adaptador ST-Link u OLMEX)

También recomiendo 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 llegar a la codificación?

Casi. Para que sus programas realmente se ejecuten, 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 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 micros integrados (especialmente 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 el destino con gdb. Ni siquiera necesita ejecutar openOCD en la computadora en la que está desarrollando y ejecutando gdb.

5. Elija componentes y profundice en sus hojas de datos

Ahora tiene suficiente para comenzar realmente con algo. ¡Todo lo que tiene que hacer es seleccionar algunos componentes y luego armarlos! 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 haya encontrado algunos componentes que cree que harán lo que desea, tendrá 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, funcionará para su aplicación. La mayoría de las preguntas que tiene sobre un componente pueden responderse mediante sus hojas de datos. Pero las hojas de datos pueden ser complicadas. Lo suficientemente complicado como para tener mis propias 3 reglas de programación incrustada:

  • Primera regla de programación incrustada: lea la hoja de datos.
  • Segunda regla de programación integrada: lea la hoja de datos.
  • Tercera regla de programación integrada: no confíe en la hoja de datos.

Las hojas de datos son la fuente de todo el conocimiento, 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. 🙂

El sistema integrado es parte inseparable de nuestra vida, en el hogar, las oficinas o en movimiento. Siempre estamos rodeados de sistema integrado. Hay varios ejemplos de sistemas integrados disponibles en tiempo real como calculadora digital, refrigerador, lavadora, horno de microondas , Máquina de transacción automática, semáforo automático, brazos de robótica son todos un ejemplo de sistema embebido.

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

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

Para hacer que el sistema incrustado primero comience a codificar en Lenguaje C y luego Embedded C y paralelo comience a aprender el comportamiento del componente electrónico.

En el mercado hay tantos microcontroladores (PIC, 8051, controlador Atmel) disponibles para hacer un sistema embebido. Me refiero, elegirás el microcontrolador PIC de 8 bits (PIC16F887a) al comienzo. Existen los temas básicos para el sistema incorporado que debe hacer.

  1. Arquitectura de microcontrolador
  2. Diagrama de pin del microcontrolador
  3. Organización de la memoria del controlador
  4. Propósito general Entrada 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, es solo el inicio del sistema integrado.

De la misma manera que aprenderías a construir una casa. O un bote. O un carro. Empiezas pensando en qué tipo de sistemas embebidos quieres hacer. ¿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 saber qué tipo de sistemas integrados desea crear, ya que determina si necesita concentrarse 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 cantidad de 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. (Que permanecerá en la memoria hasta que cargue otro programa). Esta es la programación de metal puro más pura que puede hacer y se centra principalmente en enviar señales a través de pines. Para Arduino, debe aprender el lenguaje C estándar y tener en cuenta que Arduino usa 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 código C ++ con Arduino, pero C es el preferido para su código principal, mientras que C ++ se usa principalmente para bibliotecas.

La Raspberry Pi es una computadora más completa, por lo que básicamente puede instalar uno de los 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 sería donde pondría su sistema operativo. El R-Pi es básicamente como una computadora normal, pero no tan poderoso. Y el R-Pi tiene conectores para pines para que pueda agregar hardware adicional a esos pines.

Para sistemas embebidos un poco avanzados, puede combinar tanto Raspberry Pi como Arduino. Hay muchos transmisores y receptores de RF que puede usar en su hardware. Agregaría un transmisor y un receptor a su R-Pi para que pueda enviar y recibir señales. Luego usaría un Arduino para una estación meteorológica donde solo recopila datos como la humedad, la presión del aire, la temperatura y la cantidad de luz que enviaría usando 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, que recibiría los datos que luego le mostraría. 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 así calcular valores promedio y hacer cálculos adicionales.

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

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

Y sí, eso es lo que necesita para su 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 hacer una programación compleja, ya que el uso de un módulo GSM / GPRS requiere un protocolo especial que deberá aprender. Y necesitaría 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 / altavoz!) (¡El dispositivo que se muestra también es una placa completa con un procesador tipo Arduino, por lo que no necesita otra placa Arduino con ella!)

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

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

-books Para lenguaje Cc en profundidad por srivastava o

DEJARNOS C por yashwant kanetkar

-Para estructuras de datos: estructuras de datos de reema thareja

-》 adquirir conocimiento sobre 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 le ayudan a comprender fácilmente)

-》 revise los procesadores de brazo e intente comprender las hojas de datos.

-》 compre un kit 8051 y comience a experimentar.

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

-》 lo importante aparte de todo es dedicación e interés.

Todo lo mejor … no te rindas

Para estudiar el sistema embebido debes comenzar a aprender. Lo mejor sería involucrarse en algún proyecto o trabajar con alguien incluso de forma gratuita durante unos meses o un año.

Conocimientos básicos de hardware electrónico, creación de prototipos, programación en C es esencial.

Hace unas semanas, creé un artículo porque descubrí que muchos ingenieros no saben cómo pueden aprender sistemas embebidos y todo lo que necesitan para ser un buen ingeniero de diseño embebido. Entonces, aquí está la receta.

Espero que esto te ayude.

  1. Lenguaje C (punteros y funciones de devolución de llamada) conocimiento profundo
  2. Lenguaje ensamblador (8085, 8086)
  3. Microcontrolador 8051 conocimiento
  4. Conocimientos relacionados con el microprocesador y el 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 integrado es difícil

Cursos gratuitos

  1. Sistemas integrados: Shape the World: entrada / salida de microcontrolador

Ve paso a paso 🙂

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

Luego aprenda el lenguaje C incrustado. Realiza los proyectos con controlador. Comience con 8051 y AVR. Por favor, manténgase alejado de ARDUINO. Obtendrá muchos proyectos en línea con su diseño de circuito, diseño de pcb y código fuente. No copie y pegue. Analiza 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 revistas efy ​​para ideas únicas.

Puede obtener información sobre los sistemas integrados de varios MOOC.

1. Serie de video conferencias sobre sistemas embebidos por NPTEL coordinados por IIT Delhi.

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

2. Serie de conferencias de la Universidad de Texas, Austin en edx.org . Personalmente, pocos de mis amigos han tomado esto y también han tenido experiencia práctica trabajando en varias declaraciones de problemas usando el microcontrolador de corteza de Texas.

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

También puede consultar los cursos en línea de coursera y el software de curso abierto MIT en sistemas integrados.

¡Feliz aprendizaje! 🙂

Es una llamada temprana si hace esta pregunta.

Al ser un ingeniero incorporado, tampoco sabía cómo comenzar desde dónde empezar. Pero tenemos que de algún lado o algo.

Entonces, la mejor manera de dominar el Sistema Embebido es:

Ingredientes:

  • A lenguajes de programación
  • C
  • Pitón
  • Un kit de microcontrolador
  • Una laptop / pc
  • Eso es. Sigue practicando programas. Desde los más fáciles hasta los más complejos.

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

    Comience a hacer proyectos y experimente en real al unirlo con cosas reales. Al imaginar algo nuevo, algo innovador.

    Comienzan a participar en competencias nacionales como las organizadas por Texas Instruments o Govt. De la India.

    Seguramente se transformará después de este ejercicio.

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

    Entonces, simplemente únase a una de las mejores compañías de capacitación integradas.

    Entonces, antes de unirse, investigue un poco porque si aterriza en el lugar equivocado, perderá su dinero y el tiempo más importante e incluso puede perder el interés por el dominio incrustado.

    Entonces, descubra algunas de las mejores compañías de capacitación integradas.

    Según mi opinión, Cetpa Infotech http://www.cetpainfotech.com es una de las mejores empresas de capacitación para sistemas integrados. Entonces, puedes ir por ello.

    Deberías hacer este curso en línea: Sistemas Embebidos – Shape The World

    • Compra cualquier placa de desarrollo.
    • R-Pi y Beaglebone – https://www.crazypi.com/
    • Tiva Startet kit – EK-TM4C123GXL – TEXAS INSTRUMENTS – Tiva C Series TM4C123G LaunchPad Evaluation Kit
    • Comience a construir aplicaciones en él.

    Solo aprenderás cuando comiences 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 electrónica construido alrededor del temporizador 555 IC. Buenos tiempos…

    Gooduck!

    El sistema integrado es una combinación de hardware y software. Para el software, puede comenzar con el lenguaje C y para la parte del 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 la creación rápida de prototipos, puede usar la placa de pruebas.

    Feliz haciendo

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

    Déjame mantener esto crujiente. Comience con Arduino.

    Arduino, es un buen comienzo para desarrollar tus habilidades integradas. Es a la vez bueno y malo. Es bueno para los principiantes comenzar a interesarse y malo para aquellos que lo siguen incluso después de ser buenos en eso.

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

    Refiérase a esta respuesta mía:
    ¿Cómo puedo dominar los sistemas integrados desde principiante hasta profesional?