¿Dónde comienza un principiante con conocimientos mínimos de programación y microcontroladores a aprender sobre los sistemas integrados?

Puede comenzar aprendiendo C o C ++, al menos la estructura básica (es decir, funciones, variables y ámbitos de variables, estructura del programa).

Después de eso, probablemente pueda invertir comprando algunos “juguetes” para sus sesiones de práctica. Recomiendo adquirir un Arduino Uno como su chip de práctica. Además, compre un par de resistencias y LED.

¿Sabes cómo los desarrolladores de software comienzan a aprender a programar mediante la creación de una sencilla aplicación ‘Hello World’? ¡En sistemas embebidos, nosotros también lo tenemos! ¡Lo llamamos Blinky!

Aquí hay un código C simple para su Arduino:

int led = 13; // Pin LED

configuración nula () {
// Establecer el pin del LED como SALIDA
pinMode (led, SALIDA);
}

// la rutina de bucle se ejecuta una y otra vez para siempre:
bucle vacío () {
digitalWrite (led, ALTO); // enciende el LED (ALTO es el nivel de voltaje)
retraso (1000); // Espera un segundo
digitalWrite (led, BAJO); // apaga el LED haciendo el voltaje BAJO
retraso (1000); // Espera un segundo
}

Y aquí está el esquema:

Como ya sabrá, siempre hay dos preocupaciones por los sistemas integrados: el hardware y el software. El ejemplo que proporcioné anteriormente es la forma más sencilla de presentarle los sistemas integrados. Por supuesto, es posible que desee explorar nuevos proyectos para elevar su conocimiento gradualmente.

Puede dirigirse al sitio web de Arduino [http://www.arduino.cc/] para explorar nuevos proyectos, y probablemente unirse a la comunidad y llevarse bien con otros entusiastas desarrolladores de sistemas integrados. 🙂

No quiero asustarte, pero ser un desarrollador de sistemas integrados significa mucho dolor de cabeza. A veces codifica un software perfecto, pero cuando lo prueba no funciona, entonces se da cuenta de que olvidó conectar un cable. A veces es al revés. 🙂 Pero es la verdadera emoción de crear sistemas embebidos.

Solo asegúrate de divertirte. ¡Buena suerte!

Es un momento emocionante. Es un momento aterrador.

Sistemas embebidos, Microcontroladores, Programación. Todos se están volviendo tan ubicuos y de fácil acceso para todos y es genial que uno se interese y quiera aprender.

Primero dices que tienes una experiencia mínima de programación. Por lo tanto, diría que incluso antes de tener en sus manos cualquier hardware, se familiarizará con la programación y la buena etiqueta de programación. El idioma que elija para esta tarea no es tan importante como hacer que el idioma funcione para usted. Sin embargo, hay algunas instrucciones básicas que debe tener en cuenta al elegir el idioma.

Muy poca programación incrustada hoy, se está haciendo en lenguajes de alto nivel. Java, Visual Basic y sus parientes no son los lenguajes preferidos. La programación absoluta a nivel del sistema (RTOS, manejo de interrupciones, etc.) se realiza casi exclusivamente en C. Hay un cierto C ++ que se arrastra en el espacio de la aplicación incorporada, pero solo está llegando allí. Embedded Python también parece prometedor, pero aún no he escuchado a nadie importante usarlo.

La razón por la que digo aprender programación antes de saltar al hardware es esta. Incluso los programadores integrados experimentados cuando tienen la tarea de aprender nuevo hardware tienen que pasar por una curva de aprendizaje empinada. Estuve en esa posición no mucho tiempo atrás y después de trabajar durante unas 10 horas sólidas (en un sistema basado en ATMEGA32) conseguí que el LED parpadeara a 1 Hz. Estaba orgulloso de este logro y debo decirlo con razón. Se lo mostré a un compañero de trabajo de 8 años que estaba en la oficina en ese momento y nunca había visto tanta decepción en mi vida. Era como si estuviera pensando: “Muy bien, este tipo se ve genial, pero todo lo que puede hacer es hacer que un LED parpadee. Hay alrededor de un millón de LED parpadeantes que ya he visto”.

Mientras aprende a programar, desea ver resultados inmediatos y necesita tener un fácil acceso a la depuración. La programación en la PC satisface ambos requisitos. Programación en C – Aprenda programación en C y C ++ – Cprogramming.com Este es un buen sitio que le ofrece algunos buenos desafíos y lo guía a través de la configuración de un entorno de desarrollo. Estoy seguro de que hay otros, pero he trabajado con esto. Cuando se trata de compiladores de C gratuitos, hay mucho para elegir Esta página tiene enlaces a buenos compiladores gratuitos para C. También puede comenzar a aprender Python, que es completamente gratuito, pero esas habilidades aún no se traducirán directamente a incrustadas, pero puede hacer más en el entorno de PC con Python que con el viejo C.

OKAY. Así que ahora te sientes cómodo con la programación. Siguiente paso: haz que el LED parpadee. Hay una serie de plataformas de desarrollo de microcontroladores con las que puede comenzar. Todos los fabricantes tienen una plataforma de desarrollo de menos de $ 30. La mariposa AVR viene a mi mente de inmediato, pero hay otras que puedes encontrar. En estos sistemas, se siente cómodo al comprender el hardware y utilizarlo para lograr su resultado final. Entiende las fortalezas y debilidades de las partes involucradas, comprende las otras partes que están alrededor del microcontrolador. Este tipo de comprensión es inmensamente valioso porque en el mundo real incrustado, a pesar de que su código se ejecuta en el microcontrolador, otras cosas alrededor de la micro, toda la placa, es lo que debe comprender para aprovechar al máximo su código. Mientras experimenta, siéntase libre de empujar programáticamente el hardware hasta el punto de que se rompa. Nada es una experiencia de aprendizaje más grande y más divertida que dejar que la magia se escape.

Hoy existen sistemas que se llamaron SBC o computadoras de placa única en el pasado. Estos son sistemas que pueden brindarle lo mejor de ambos mundos en términos de hardware integrado y software para PC. El “Raspberry Pi” viene a la mente. Esta es una computadora (con USB, Ethernet, HDMI, etc.), ejecuta Linux (Rasbian, un derivado de Debian) y tiene E / S analógicas y digitales para interactuar con hardware externo. Puede conectarlo a un monitor y un mouse y teclado y programarlo en Python, por lo que básicamente puede combinar los dos pasos anteriores. Sin embargo, el Pi no es una buena plataforma para aprender hardware porque es todo de código cerrado. La placa Beagle Black es una plataforma similar que puede ejecutar Android y Linux y es una plataforma de código abierto, pero es un poco más cara que la Pi.

Esta fue una respuesta larga, pero espero que te ayude a ti oa otros.

Como estás en tu primer año, creo que este es el momento perfecto para que comiences. Tu universidad te enseñará todas las cosas teóricas que necesitas. No lo descuides. Lo que más falta en el programa de estudios es la inclusión de prácticas. Así que concéntrate en eso. Aprenderás más haciendo cosas prácticas. Construir Construir y construir. Con eso no me refiero a ir por diseños complicados. Comience con la instalación de circuitos simples en una placa de prueba y observe sus salidas en un CRO. Manipule los valores de los componentes y encuentre el cambio en el resultado. Eso lo ayudará a comprender cómo cada componente desempeña su papel en los resultados finales.

Comience por comprender un circuito simple, comenzando desde las podadoras y abrazaderas o incluso un circuito LCR simple. Intenta manipular circuitos de revistas como ElectronicsForYou, tienen toneladas de cosas que puedes practicar. Hay sitios web como Electrical Engineering & Electronics Community. Ellos también te enseñan muchas cosas que la universidad no te enseñará. Esa es la mejor manera de comenzar. Lentamente a medida que avanza, comience a aumentar sus niveles de dificultad. Lentamente amplíe su horizonte en múltiples transmisiones en electrónica, para que pueda conocer todas las opciones de carrera que tiene. Una vez que hayas encontrado tu verdadero amor, trabaja duro por él.

Estas son solo algunas cosas que pueden ayudarlo inicialmente, lentamente a medida que aprende y aprende, puede probar cosas nuevas.

Respuesta corta: comienza a construir cosas.

¿Por qué?

Bueno, déjame compartir mi experiencia de aprendizaje de diferentes cosas.

Aprendí química, teoremas matemáticos leyendo textos. No los recuerdo. Si tuviera que volver a hacer los exámenes, fracasaría.

Aprendí ciclismo simplemente haciéndolos sin pasar por la teoría y todavía puedo hacerlo fácilmente.

Estoy seguro de que lo mismo se aplica a ti.

Mi experiencia con embebido: comencé el desarrollo embebido hace unos 34 años sin comprender la arquitectura interna o incluso los pinouts, simplemente copié un circuito e hice un producto.d

Aprendí cosas internas, pin out, cómo conectar cristales más tarde. Lo mismo ha estado sucediendo durante los últimos 34 años.

Recientemente, aprendí el desarrollo de aplicaciones de Android al hacerlo primero.

Y no he hecho esto para obtener calificaciones en los exámenes, sino para ganar dinero vendiendo productos. Hoy en día, tengo más de 200 diseños comercialmente exitosos trabajando en el campo y sé todo en detalle (sin embargo, el aprendizaje detallado sucedió lenta y gradualmente).

Sí, ha habido muchas críticas. Uno de mis seguidores de fb y quora no está de acuerdo y cada vez que digo “hacer cosas” me aconseja que el desarrollo del producto se haga solo en las multinacionales y que también después de completar la graduación, los maestros del IIT y luego el doctorado.

¿Estoy solo? – No, hay muchos desarrolladores de productos como yo, que diseñaron, vendieron productos, ganaron dinero y están contentos sin aprender todo primero.

Así que eliges sabiamente lo que quieres hacer.

YMMV

Learning Embedded Systems requiere los siguientes requisitos previos.

Fundamentos eléctricos
Uso de V = IR y P = VI también circuito divisor de voltaje.
Usando Embedded vas a controlar y monitorear dispositivos eléctricos. Entonces este conocimiento es imprescindible.

Fundamentos de electrónica analógica
Uso de Ic = β.Ib.
Dado que los microcontroladores son dispositivos de baja tensión y baja potencia, debe amplificar las señales para controlar los dispositivos eléctricos de alta potencia. Además, la salida de los sensores está en mV, esta necesidad de amplificación para monitorizar mediante microcontroladores. Además, la mayoría de las salidas del sensor son de naturaleza analógica, este conocimiento será realmente útil.
l
Fundamentos de electrónica digital
Aunque pensará que va a utilizar el programa C para implementar la lógica de control, un buen conocimiento en electrónica digital será realmente útil al comprender las funciones.

– Sistemas de numeración

     Conversiones de decimal a binario, binario a decimal, binario a hexadecimal, hexadecimal a binario y comprensión La lógica binaria realmente hará que sus sistemas integrados aprendan más rápido y mejor.

– Lenguaje C

Conocimiento del lenguaje C. Después de todo, Embedded Systems tiene que ver con la programación y la mayoría de los Embedded Systems usa solo programación C. Un conocimiento profundo del lenguaje C es imprescindible para cada ingeniero de sistemas integrados.

– Programación C

. Si domina la programación en C, aprenderá Sistemas Embebidos en el menor tiempo. La programación en C es una habilidad. No puedes conseguirlo de la noche a la mañana. Cuanto más practiques, más lo dominarás. Esta es la habilidad más esencial que todo estudiante de ECE debe adquirir durante sus estudios. La habilidad de programación en C lo ayudará a ingresar a la industria de TI o Core Industry. Si cree que necesita una guía de la industria, puedo ayudarlo. Envíeme un mensaje. Esto es solo una ayuda. No es un compromiso. Cada vez que soy libre, respondo a sus correos. Entreno a cientos de estudiantes de ECE en programación en C por correo electrónico. Una vez que haya aprendido la programación en C, también puedo enseñarle la Programación de sistemas integrados por correo electrónico. Compre una placa de desarrollo de microcontrolador y comience a practicar en casa. Primero uno o dos días, le resultará un poco difícil, más tarde lo disfrutará. La programación es una habilidad que solo puedes aprender haciendo un esfuerzo. Una habilidad no se puede comprar con dinero. Práctica práctica práctica.

>>> ¡Su búsqueda de un curso de programación de microcontroladores en profundidad termina aquí! <<<

El curso está diseñado para principiantes a audiencia avanzada.

Enlace de curso: Microcontrolador de masterización con desarrollo de controladores integrados: Curso de programación de microcontroladores en profundidad

Aprenda de Scratch Microcontroller & Peripheral Driver Development para GPIO, I2C, SPI, USART usando la Programación Embedded C

¿Que aprenderás?

  • Comprender las formas correctas de manejo y programación de periféricos MCU
  • Desarrolle controladores periféricos para su microcontrolador
  • Comprenda los pasos completos de desarrollo de controladores desde cero para GPIO, SPI, I2C y USART.
  • Aprenda a escribir encabezados de controladores periféricos, API de prototipos e implementación
  • Explore las hojas de datos de MCU, manuales de referencia, códigos de inicio para hacer las cosas
  • Aprenda formas correctas de manejar / configurar interrupciones para varios periféricos
  • Aprenda sobre IRQs periféricos / tabla de vectores / interfaces NVIC y muchos
  • Aprenda acerca de los registros de configuración / estado / control de varios periféricos
  • Desmitificando detalles de trabajo detrás de escena de SPI, I2C, GPIO, USART, etc.
  • Explore los secretos ocultos de las interfaces de bus MCU, las fuentes de reloj, las configuraciones de reloj MCU, etc.
  • Comprender las formas correctas de habilitar / configurar relojes periféricos / relojes seriales / velocidades de transmisión de varios protocolos seriales
  • Conozca los protocolos de bus MCU AHB, APB
  • Aprenda sobre diferentes relojes MCU como HCLK, PCLK, PLL, etc.
  • Aprenda a capturar / decodificar / analizar rastros de protocolos en serie en el analizador lógico
  • Obtenga información sobre formas rápidas de depurar problemas periféricos con estudios de casos

Requisitos

  • El conocimiento básico del controlador C y Micro podría ser una ventaja añadida pero no obligatoria.

Breve descripción por instructor del curso

Este curso desmitifica el funcionamiento interno del microcontrolador y sus periféricos.

Codificación de los periféricos PASO A PASO y desarrollo de controladores de software completamente desde cero extrayendo la máxima información de hojas de datos, manuales de referencia, especificaciones, etc.

Decodificación de protocolos mediante analizadores lógicos, depuración, pruebas junto con sugerencias y consejos.

Descripción larga:

El aprendizaje de la programación de sistemas integrados puede ser un desafío . Dado que es un campo relativamente poco complejo, todavía no existe un estándar de oro real sobre cómo se practican o enseñan las cosas, lo que puede frustrar a las personas que solo están tratando de aprender cosas nuevas y no pudieron conectar los puntos, y esta es la motivación detrás de creando este curso para ayudar a los ingenieros y estudiantes a aprender diferentes aspectos de los sistemas integrados al proporcionar conferencias avanzadas de alta calidad con un precio relativamente bajo.

Aprenda a su propio ritmo utilizando el método progresivo, con cada una de mis breves conferencias llenas de información.

¡Maestro detrás de escena trabajando!
Creé este curso porque creo que su tiempo es precioso y no debería tener que buscar para obtener una base práctica en la programación de sistemas integrados. En este curso, aprenderá a escribir su propio controlador de periféricos para la mayoría de los periféricos de uso común como GPIO, I2C, SPI, USART, etc. y lo interesante es que aprenderá todo desde cero.

Numero 3

rd

bibliotecas de fiesta!

¡Sin codificación ciega!

¡Escriba sus propias API de controlador al tratar con los registros periféricos de MCU!

Codifique e implemente API desde cero, sumergiéndose en la hoja de datos y el manual de referencia de la MCU. Explicaré a fondo cómo extraer la máxima información de las hojas de datos, manuales de referencia técnica para configurar y manejar periféricos. Estas técnicas las puedes utilizar y aplicar a cualquier MCU que tengas a mano.

En este curso, lo guiaré paso a paso sobre cómo configurar varios periféricos como GPIO, SPI, USART, I2C, llevándolo al manual de referencia y a la hoja de datos. Desarrollaremos un código de controlador completamente funcional, interruptores de manejo, aplicaciones de muestra, todo desde cero para comprender el panorama general.

En cada conferencia, le aseguro que definitivamente aprenderá algo nuevo que definitivamente puede usar en su trabajo o proyectos. Te encontrarás manejando estos periféricos con mucha más claridad y podrás especular y depurar rápidamente el problema y te mostraré trucos y consejos para depurar los problemas más comunes usando herramientas de depuración como analizadores lógicos.

¡Este no es el estilo de programación Arduino!

Creo que Arduino es para la creación rápida de prototipos de productos, pero no para Mastering Working de microcontroladores y sus periféricos. A diferencia de la programación de Arduino, en la que se encuentran soluciones rápidas y creación de prototipos de productos utilizando bibliotecas de terceros, este curso es completamente diferente. En este curso, no se utilizan bibliotecas de terceros. Todo lo codificaremos consultando el manual de referencia técnica de MCU y crearemos nuestra propia biblioteca. El poder de este enfoque es que cuando las cosas salen mal en el trabajo de su proyecto debido a errores, puede especular rápidamente y depurar problemas como un profesional. Si algo en lo que somos buenos mis alumnos y yo es “depurar”. Para lograr buenas habilidades de depuración es muy importante que codifiques entendiendo cómo funcionan las cosas detrás de la escena, pero no solo usando ciegamente algunas bibliotecas de terceros y esa es la mayor APRENDIZAJE de este curso .

El curso está diseñado y explicado de tal manera que es genérico en cualquier tipo de microcontrolador. El código que desarrollamos puede usarse como plantillas para venir rápidamente con un controlador periférico para sus MCU en periféricos de chip.

Software / Hardware utilizado:
En este curso, el código se desarrolla de tal manera que se puede portar a cualquier MCU que tenga a mano. Si necesita ayuda para transferir estos códigos a diferentes MCU, ¡siempre puede comunicarse conmigo! El curso no está estrictamente vinculado a ningún tipo de MCU . Entonces, si ya tiene una placa de desarrollo que se ejecuta con el procesador ARM-Cortex M3 / M4, le recomiendo que continúe usándola. Pero si no tiene ninguna placa de desarrollo, consulte las siguientes placas de desarrollo.

1. Placa de descubrimiento basada en STM32F407xx (Esta es la placa utilizada en este curso)

Proveedor de MCU: STMicroelectronics

2. Placa de desarrollo STM32 Nucleo-64 (nueva en el mercado)

Proveedor de MCU: STMicroelectronic

3. FRDM-K64F: Plataforma de Desarrollo de la Libertad

Proveedor de MCU: NXP

4. STM32F429IDISCOVERY con LCD

Proveedor de MCU: STMicroelectronics

¿Quién es el público objetivo?

  • Profesionales interesados ​​en explorar sistemas embebidos
  • Aficionados y estudiantes que desean comenzar su carrera en el mundo integrado.
  • Si piensa en ‘incrustado’, piense en tomar este curso. no serás decepcionado
  • Este curso puede no ser adecuado para aquellas personas que buscan prototipos rápidos utilizando tableros como Arduino

Enlace de curso: Microcontrolador de masterización con desarrollo de controladores integrados: Curso de programación de microcontroladores en profundidad

Es bueno saber que todos ustedes están preparados y ansiosos por aprender el sistema integrado. Puedes seguir los siguientes pasos para convertirte en experto en sistemas integrados.

  1. El primer paso es elegir los microcontroladores / microprocesadores adecuados para usted de acuerdo con su conocimiento base.
  2. Cambie estos controladores / procesadores gradualmente después de adquirir experiencia en cada uno de ellos, ya sea practicando el módulo de entrenador de ese controlador / procesadores o practicándolo con pequeños proyectos.
  3. El mejor orden para aprenderlos es comenzar con lo básico para la ilustración, comenzar con 8085,8051 y luego pasar a arduino / beagleboard / rasberry pi, etc.
  4. El alma esencial de los sistemas embebidos radica en su programación. Comience a programar los sistemas embebidos primero en ensamblar que cambiarlo por c.
  5. Puede usar el simulador Proteas y el software de microvisión keil para simulación y programación.
  6. Después de finalizar su programación, necesita soldar todo esto en PCB en blanco. De este modo, su próximo paso consiste en la fabricación adecuada de estos en el PCB en blanco o, si desea ingresar al núcleo, puede seguir el diseño de PCB con varios software como Eagle ( Busca en Google si estás interesado).
  7. Mantenga un diario privado para tomar nota de su progreso, que puede incluir su punto de vista en estos chips.
  8. Si tiene tiempo más una buena conexión a Internet, puede iniciar sesión en varios cursos en línea de algunas universidades increíbles y aprender mucho sobre los sistemas integrados (si está interesado, visite edX o Coursera, tienen algunas cosas sobre estos sistemas integrados). )
  9. Siga algunos canales de YouTube increíbles que cuentan con buenos tutoriales para principiantes como nosotros en sistemas integrados o, en cambio, siga algunos sitios web interesantes como MAKE y DIY Cómo hacer instrucciones para mantenerse actualizado sobre los sistemas integrados.
  10. Todo lo mejor sigue aprendiendo ….. !!!!

Aquí hay un enlace a uno de los cursos que creo que podría serle útil: Buscar cursos
Puede aprender los conceptos básicos de cómo trabajar con un kit de microcontrolador, interfaz y cosas por el estilo. Si pudiera, puede comprar un kit de microcontrolador mencionado en este curso y aprender a programarlo a medida que avanza en el material del curso. La mayoría de los kits de microcontroladores que compre tendrán ejemplos (el que usan para este curso es un Tiva Launchpad de Texas Instruments). Te sugiero que revises esos ejemplos, intentes comprenderlos, los modifiques y juegues un poco por módulos.

Una vez que piense que tiene la confianza suficiente, puede intentar construir algunos mini proyectos como un juego pequeño o algo así (si necesita una GUI / pantalla y si no puede permitirse comprar pantallas y otro hardware, puede hacer que el microcontrolador hable con una PC mediante comunicación USB / serie y hacer que las cosas se muestren en la pantalla de la PC)

También puede intentar construir su propio compilador cruzado para estos microcontroladores (si hay fuentes disponibles para su dispositivo) y experimentar con ellos también. Saber cómo construir las herramientas que necesita, desde cero, sería un punto a favor, en lugar de simplemente usar las herramientas directamente.

Además, después de que aprenda la mayoría de las cosas, le sugiero que revise el funcionamiento de algunos dispositivos integrados, como un controlador de juegos o algo así, y trate de comprender cómo funcionan realmente, su interfaz de software de hardware, etc. Le da una idea más amplia sobre cómo funciona la interfaz y las cosas en los dispositivos reales. Aprender Linux integrado e intentar portarlos a su microcontrolador puede ayudarlo mucho, pero no estoy seguro de si podríamos hacerlo con el microcontrolador que mencioné anteriormente.

Espero que esto ayude.

Suponiendo que tiene conocimiento de programación básica y electrónica básica, le voy a sugerir algunos MOOC que puede seguir para comenzar con los Sistemas Embebidos e IoT.

Arduino es una buena opción para los principiantes que están comenzando la Programación de sistemas integrados. Los siguientes cursos son el mejor recurso paso a paso para aprender Arduino junto con Raspberry Pi. Se recomienda encarecidamente que obtenga hardware físico para practicar ejercicios de laboratorio. Después de completar esta especialización, también tendrá más claridad sobre las diferencias y el uso práctico de Arduino y Raspeberry Pi.

  • Una introducción a la programación de Internet de las cosas (IOT) | Coursera : Esta es una especialización en Coursera que consta de 6 cursos del profesor Ian Harris de la Universidad de California Irvine. Después de completar esta especialización, se sentirá cómodo con Arduino (plataforma de creación de prototipos electrónicos de código abierto que permite a los usuarios crear objetos electrónicos interactivos) y Raspberry Pi (una famosa computadora de placa única basada en Linux). Si eres estudiante y no tienes suficiente dinero para obtener un certificado verificado de Coursera, puedes solicitar ayuda financiera. Consulte esto: Enlace

Ahora que se ha sentido cómodo con Arduino y también tiene una idea sobre Raspberry Pi, debe pasar a un microcontrolador superior y su entorno de desarrollo como AVR, PIC, Cortex-M, etc. La siguiente serie de cursos se basa en un Microcontrolador Cortex-M4: TI Tiva C Series TM4C123GXL Launchpad, otro hardware como TI MSP-432 Lauchpad, TI MK-II I / O BoosterPack, módulo Bluetooth TI CC2650 (BOOSTXL-CC2650MA o LAUNCHXL-CC2650) también serán necesarios como hardware de soporte en el Curso 3 (Redes Bluetooth en tiempo real).

  • Shape the World : es una serie de 3 cursos sobre edX de la Universidad de Texas en Austin por el Prof. Jonathan Valvano y el Prof. Ramesh Yerraballi. Se basa en el hardware ya mencionado y Keil como entorno de desarrollo
  • Curso 1: Sistemas integrados: Shape The World: Entrada / salida de microcontroladores: introducción al mundo de los sistemas integrados con un enfoque en la entrada / salida de microcontroladores en este curso práctico basado en el laboratorio.
  • Curso 2: Sistemas integrados: Shape The World: Interfaz multiproceso: cree soluciones integradas del mundo real utilizando un enfoque ascendente de simple a complejo en este curso práctico basado en el laboratorio.
  • Curso 3: Redes Bluetooth en tiempo real: forma el mundo: aprende los fundamentos del diseño de un sistema operativo en tiempo real (RTOS) y cómo construir una red Bluetooth en este curso práctico basado en proyectos.

Gracias por la A2A

  1. Conozca bien la electrónica digital: aprenda / revise diferentes operaciones lógicas, puertas lógicas, sus funciones, etc. Puede construir algunos circuitos utilizando los circuitos integrados de puerta lógica disponibles para probar su comprensión.
  2. Domina la electrónica analógica . Hay excelentes libros, buenos tutoriales en línea que lo ayudarán con esto. Una vez que tenga una buena comprensión de lo analógico, comience a construir circuitos en una placa de pruebas. Está absolutamente bien tomar la ayuda de Internet inicialmente, pero debe descubrir la razón detrás del uso de todos y cada uno de los componentes del circuito. Luego debe modificar los circuitos, usar un componente de menor calificación, pensar en una implementación alternativa. Esto mejorará sus habilidades de solución de problemas, lo familiarizará con varios principios y propiedades físicas que puede usar para medir diferentes parámetros en los sistemas integrados que va a diseñar.
  3. Revisar los conceptos de programación C. Debería centrarse más en las operaciones lógicas que en la sintaxis de C. La razón por la que usamos C en sistemas embebidos es porque C nos ayuda a hacer funciones, estructuras, etc. fáciles de usar. Cuando haces lo mismo usando lenguaje ensamblador, debes ocuparte de muchas cosas, como insertar registros en la pila, etc, etc. Por lo tanto, debe familiarizarse con diferentes técnicas para pasar variables a las funciones como pasar por valor, pasar por referencia, etc., cuándo usar qué técnica, etc. C siempre le sorprenderá, por lo que siempre debe permanecer un estudiante de C.
  4. Compre una buena placa de microcontrolador. Hay muchos microcontroladores fabricados por AVR, PIC, ARM, etc. Puede elegir uno bueno y económico. Algunas placas tienen periféricos como LCD, pantalla de 7 segmentos, conjuntos de LED, interruptores de botón, etc., estas placas son buenas para un aprendizaje tranquilo. Si desea aprender de una manera más desafiante, simplemente compre un microcontrolador y un programador. Aprenda a programar el controlador y luego busque los componentes y aprenda cómo interactuar con ellos. Yo personalmente recomiendo la segunda forma porque lo que sentí es que esta técnica te enseña muchos consejos y trucos para conectar los componentes. Cualquier técnica que elija, debe familiarizarse con las siguientes cosas:
  1. GPIO: LED de interfaz, interruptores de botón, pantallas de siete segmentos, etc. Pruebe con LED brillantes en diferentes patrones, interfaz LCD, etc.
  2. Temporizadores / PWM: nuevamente los LED de interfaz, esta vez debe escribir un programa para atenuar los LED. Control de velocidad de motores DC, servomotores de interfaz, etc.
  3. Interrupciones: Mida las RPM de un motor de CC mediante la interfaz de un par IR LED-fotodetector.
  4. Interfaz de memoria externa: la mayoría del código que escriba se ajustará a la memoria de su controlador, pero debe intentar conectar EEPROM, tarjetas SD, etc. a su controlador.
  5. Interfaz ADC: la mayoría de los microcontroladores tienen ADC en chip. Interfaz de sensores como LM35, termistores, LDR, etc. al microcontrolador. También puede conectar los circuitos analógicos que había diseñado anteriormente.

Y finalmente, comienza a hacer proyectos !!!

La respuesta depende de tu objetivo. Que tan lejos quieres ir?

Si solo quiere estar con la electrónica de cualquier manera, puede ser como un aficionado o un fabricante local de equipos electrónicos, entonces aprender por golpe y prueba le ahorrará tiempo y dinero. Conozco a muchas personas a las que les está yendo bastante bien en su vida profesional por este tipo de aprendizaje y comprensión de la ciencia electrónica. Menos ingeniería, más copiar y pegar y reinventar las ruedas, pero es bastante fácil de usar.

Pero si su objetivo es ser parte de una organización de renombre mundial donde se realiza una verdadera I + D, se crean nuevas tecnologías que modifiquen los escenarios tecnológicos globales, entonces primero debe concentrarse en sus académicos. En estas organizaciones, a los entrevistadores no les importa si sabes soldar o si has visto un microcontrolador en tu vida, quieren personas con buenos conocimientos fundamentales de electrónica. Estos son los lugares donde se realiza la ‘ingeniería’. Estas son las personas que realmente pueden asociar el término ‘innovación’ con ellos.

Ahora la elección es tuya.

Primero tendrá que decidir a qué campo desea ir, es decir, Software Embebido o Hardware Embebido.

Para el software incorporado, debe tener buenas habilidades y mucha experiencia en lenguaje C / C ++. Si es bueno en C, comience con el lenguaje Embedded C, que es el mismo que C pero incluye muchas funciones relacionadas con el Micro Controlador o Procesador. Ahora, para saber qué funciones necesita para un microcontrolador o procesador en particular, tendrá que consultarlo en su hoja de datos. Entonces sí, la hoja de datos es su único amigo en Embedded Systems. Compre algunas placas de desarrollo y comience a escribir software para periféricos simples como leds, botones, 7 segmentos, lcds, motores y muchos más. Hay muchos tutoriales disponibles en línea o puede visitar mi blog ¡Bienvenido a Embedded MastreX! .

Para el hardware embebido , primero debe conocer los conceptos básicos de la electrónica, como voltaje, corriente, BJT de potencia, MOSFET, diodos y muchos más. Comience haciendo circuitos simples en placas de prueba. Si ese circuito funciona, entonces comience a diseñar PCB. Comience con PCB de una sola capa y luego doble capa. Finalmente, si tiene la confianza suficiente, diseñe una placa de desarrollo completa. Obviamente, hay muchos tutoriales disponibles en línea sobre cómo diseñar PCB

o si quieres ser Desarrollador Embebido, entonces todo lo que he incluido en lo anterior debe ser un Ingeniero Embebido

Además de haber respondido a esta pregunta muchas veces, o para que el OP use la función de búsqueda;).

El mejor lugar es obtener una comprensión sólida de los principios básicos relacionados con la informática y la ingeniería electrónica / eléctrica. Temas como:

  • Matemáticas discretas
  • Algoritmos
  • Estructuras de datos
  • Diseño e ingeniería de sistemas.
  • Prácticas de desarrollo
  • Programación avanzada
  • Diseño electrónico básico y teoría
  • Compiladores (aunque esto no es demasiado importante para la programación de productos básicos ahora)
  • Construir sistemas
  • Perfilado y optimización
  • Programación segura y modelado de amenazas
  • Bases de la base de datos

Dependiendo del camino, uno puede ser más importante que el otro, pero la exposición a sus hermanos, independientemente de la elección, es altamente beneficiosa. Es decir, comprender los componentes eléctricos básicos ayuda si desea lidiar con los controladores o la inicialización del gestor de arranque. La apertura o propiedad del sistema operativo también afectará sus elecciones …

Puse una buena guía en alguna parte de mis respuestas anteriores … Vea si puede encontrarla, pero efectivamente … Tome la iniciativa, desarrolle habilidades para resolver problemas y sumérjase.

Mucha gente trata los sistemas embebidos como ingeniería de software porque implica la programación. De hecho, en mi opinión, el término ingeniería de software es distorsionado y engañoso. En teoría, la ingeniería de software puede emplear modelos de desarrollo y técnicas para resolver problemas utilizados o influenciados por otros campos de la ingeniería. Pero en realidad, si algunas de las prácticas se transfirieran al revés, nuestra forma de vida moderna sería casi imposible.

A modo de comparación, con qué frecuencia ve software de producción con grandes errores y / o fallas de seguridad, y con qué frecuencia escuchamos sobre retiros de autos de producción. Los retiros casi siempre están asociados con penalizaciones, tanto materiales como intangibles. Los parches de software, los service packs y lo que no son lugares comunes, y casi se espera ahora.

Los sistemas integrados son un campo fuera de lugar, o más bien mal entendido. Esto se debe a que no se trata de software, se trata de hardware. Por supuesto, hoy en día, con los teléfonos inteligentes y las tabletas, los wearables, etc., que se clasifican como sistemas integrados (que creo que no son sistemas integrados en el sentido tradicional), los sistemas integrados más comunes son más invisibles y ubicuos.

Un verdadero ingeniero de sistemas integrados, que puede estar programando para cualquier cosa, desde una computadora de vuelo para un avión jet, hasta el sistema de control y el módulo IoT para su refrigerador, TV o decodificador, no tiene los mismos privilegios que su funcionamiento -el programador de fábrica que desarrolla software de consumo. Algunos sistemas no solo controlan la maquinaria, sino que deben tener interfaces de usuario que tengan todas las cualidades de una buena interfaz de usuario, solo se pueden programar una vez y nunca se actualizan, se requieren para ejecutar modelos matemáticos complejos mientras interactúan con otros agentes, como en un sistema distribuido red de control, etc., etc. etc. Todas estas cosas están muy centradas en el hardware. Entonces, un sistema embebido es para todos los efectos, es un ingeniero de hardware (electrónica, eléctrica, mecánica, química, dependiendo del proceso o máquina) que tiene que programar para esa máquina.

Y así, las calificaciones y los criterios son muy similares a los de otros campos de la ingeniería. A diferencia de la imagen de los ingenieros transmitidos por la industria de la tecnología, una persona descuidada, socialmente torpe y excéntrica, los ingenieros de sistemas integrados serían realmente bien arreglados (usar corbata, si no es un traje, o un overol y casco en algunas industrias) y personas bien habladas. Yo, por ejemplo, tengo que ir a fábricas y trabajar en máquinas con un equipo, compuesto por una persona de ventas / marketing e ingeniero mecánico, y tengo que doblar como ingeniero eléctrico y programador de firmware al mismo tiempo.

En pocas palabras, podría decir que podría aprender un lenguaje de programación como C o Ada y tal vez hacer un par de proyectos, y comenzar a trabajar como ingeniero de sistemas integrados, y en estos días, podría ser suficiente para obtener el Curro. Pero para trabajar como un verdadero ingeniero de sistemas embebidos, es posible que deba ser un gato de todos, con un grado relevante.

Veo un título como un requisito, porque en ingeniería, el aprendizaje es una fuente clave de habilidad y conocimiento, que creo que la forma más conveniente aún es bajo un entorno pedagógico.

El mejor enfoque es el autoaprendizaje.

1. Comience con el microcontrolador 8051. Elija este libro -http: //www.amazon.in/gp/aw/d/813…

2. Compre un kit 8051 simple en línea o en una tienda de electrónica. Puede que tenga que comprar un programador por separado para grabar el código en el micro.

3. Comience a escribir programas en c integrado usando el libro y cree aplicaciones simples.

4. Alternativamente, puede comenzar con MSP430 (kit de plataforma de lanzamiento) de Texas Instruments. TI ofrece un amplio soporte en línea para el aprendizaje de sistemas integrados a través de la plataforma de lanzamiento y hay una variedad de proyectos creados con MSP430 micro.

5. Seguir trabajando en proyectos. A medida que construyas proyectos más complejos que involucren varios sensores, ganarás más conocimiento.

Y recuerde, es su voluntad de aprender lo que importa.

¡Buena suerte!

Suponiendo que es un principiante con un conocimiento mínimo de programación, sugiero lo siguiente:

  1. Mejora las habilidades de programación. Este libro me ayudó mucho: http://www.amazon.ca/The-Practic
  2. Otro libro para mejorar sus habilidades de programación de programas, teniendo en cuenta los sistemas integrados: http://www.amazon.com/Programmin
  3. Una vez que se sienta cómodo escribiendo programas, compre un kit de microcontrolador de inicio. Consulte: http://allaboutee.com/2011/07/08
  4. Escribir programas para controlar temporizadores, gpios, LCD.
  5. Una vez que se sienta cómodo, compre más tarjetas adicionales para su kit de inicio. Comience a aprender protocolos: I2C, SPI (USB, CAN puede ser abrumador para principiantes). Escribir programas para controlar motores paso a paso.
  6. Cuando trabaje en los puntos 1-5, aprenda Linux. Esto lo ayudará a desarrollar sistemas embebidos que necesitan un sistema operativo para administrar tareas. Este curso debería ayudarlo a tener una idea básica de Linux: https://www.edx.org/course/intro
  7. Para obtener más información sobre la construcción de un sistema Linux integrado, este libro lo ayudará: http://www.amazon.com/Building-E
  8. Finalmente compre una tabla de frambuesa pi 🙂

Gracias por la A2A

También puede consultar las preguntas relacionadas. ¿Cómo hago una carrera en Sistemas Embebidos? y también mi respuesta a ¿Cómo hago una carrera en Sistemas Embebidos? y mi respuesta a ¿Cuáles son los pasos correctos para obtener una base sólida en sistemas integrados sabiendo que tengo una buena experiencia en microcontroladores C, C ++?

En resumen, aprenda más sobre hardware y software además de los fundamentos de las ciencias de la computación y algunas matemáticas para ser competitivo y eficiente en el desarrollo de sistemas integrados. En cuanto a cómo aprender de manera eficiente, creo que no hay atajos como aprender cualquier otro conocimiento. Yo diría que lo más importante es interesarse en el área y obtener una verdadera pasión por el tema, y ​​motivarse para dedicar su tiempo y esfuerzo en ello. Luego, estará en el camino correcto para aprender eficientemente siguiendo algunas de las sugerencias, de otras respuestas y de los enlaces anteriores, que mejor se adapten a su estilo de aprendizaje.

Espero que ayude.

Aprendí los conceptos básicos de la programación integrada este año. En enero no tenía ni idea de cómo funciona un sistema embebido y cómo comenzar a programarlo. Ahora puedo manejar proyectos simples desde cero, tanto piezas eléctricas como de codificación.

Lo que hice fue juntarme con 2 amigos que se graduaron de ingeniería eléctrica y se inscribieron para un concurso de construcción de robots. Traté de involucrarme en la mayoría de las partes del proyecto y me uní a ellas para aprender lo básico. Una vez que entendí mejor, empecé a trabajar un poco solo. Hicimos todo por nosotros mismos (hardware + software + mecánica) y usamos C simple para programar sin bibliotecas externas.

En pocas palabras, no logramos construir el robot antes de la fecha límite, pero sí pude aprender lo básico de la programación integrada. Y ese era mi objetivo allí.

Luego comencé a garabatear con algunas placas Arduino y todo tipo de sensores y LED, etc. A continuación, podría pasar a un nivel superior y comenzar a trabajar en Raspberry Pi.

Pero mi sugerencia es comenzar de a poco, desde un nivel bajo, para tener una buena comprensión de lo que realmente está sucediendo allí. Hará tu vida mucho más fácil más tarde. Si es posible, intente hacerlo para una competencia, con plazos y todo. Esto le dará un objetivo y una línea de tiempo y lo obligará a aprender y realmente hacer cosas: lo mantendrá enfocado en el proceso de aprendizaje y lo ayudará a superar esa frustrante parte inicial.

Lo más importante es que desea mejorar su conocimiento. Debe conocer los microcontroladores (AT89C51 / AVR / Arduino / ARM7 / STMF4), lenguaje C, diferentes IDE (Arduino, Keil uVision, utilidad STM), SMD y componentes de orificio pasante, diseño de PCB, cómo grabar el cargador de arranque.

Según mi opinión, primero construyes algunos kits de bricolaje, que te darán el concepto claro de cómo funciona un sistema integrado y su funcionalidad.

Tenemos algunos kits de bricolaje de acuerdo con la complejidad, por favor, eche un vistazo

Kits por industria

Si tiene alguna consulta, háganoslo saber (proporcionamos experiencia práctica completa en el sistema integrado)

correo: [correo electrónico protegido]

Gracias por el A2A. Intentaré responder a lo mejor de mi comprensión y experiencia.

He respondido una pregunta similar aquí y he dado los pasos que creo que uno debe seguir para convertirse en un buen desarrollador de sistemas integrados. Esos son adecuados para alguien que intenta aprender la Programación Embebida. Aqui esta el link

La respuesta de Aashish Patel a los sistemas integrados: ¿Qué pasos hay que seguir para convertirse en un desarrollador de sistemas integrados?

También edité la respuesta y agregué recursos que creo que pueden usarse para aprender. Hay muchos otros recursos disponibles, pero te sugiero que tengas una idea sólida de los conceptos básicos antes de ir a las cosas avanzadas.

Esa es una forma. También puede ir a un instituto de capacitación para obtener una base sólida sobre la cual pueda construir más adelante. Hay 2 institutos en India que los estudiantes prefieren CDAC y Vector. He comparado los dos aquí

La respuesta de Aashish Patel a ¿Cuál es el mejor instituto para aprender sistemas integrados?

Puede optar por el enfoque de autoaprendizaje siguiendo los pasos o unirse a un instituto para aprender los conceptos básicos según lo que se adapte a su estilo de aprendizaje.

Espero que esto ayude.

¡¡¡Feliz aprendizaje!!!