Pregunta ¿Cuáles son algunos proyectos simples que puede hacer para aprender los principios básicos de la programación incrustada? [cerrado]


Para alguien que quiere aprender los rudimentos de la programación integrada, ¿cuáles son algunos proyectos simples que podrían abordar?

Estamos hablando de alguien que conoce los conceptos básicos de los circuitos electrónicos (resistencias, condensadores, CI digitales, etc.) y puede hacer soldaduras básicas. Un aficionado a la electrónica que busca ingresar a la programación incrustada, o tal vez a un estudiante de segundo año o junior en un título universitario de EE.

La plataforma realmente no importa y tampoco el lenguaje (podría ser C o ensamblador o lo que sea). El punto es obtener ideas para un proyecto simple que no alguna cosa.

Si hay un libro que cubre algo así, ¿podría publicar un enlace al mismo?


8
2017-09-21 15:43


origen


Respuestas:


Compré un Arduino recientemente, que es fácil de poner en funcionamiento. Es un tablero pequeño y bastante económico que ejecuta un Atmega168 con la salida de E / S, alimentación, USB y otras cosas divertidas. Ejecuta código C nativo (como se esperaría de un chip Atmega) y se puede usar para conducir circuitos a través del software.


6
2017-09-21 20:44



El siguiente proyecto es para CSC460: clase de sistemas operativos en tiempo real en la Universidad de Victoria. Este proyecto está diseñado para que los estudiantes de CS que no tienen conocimiento de sistemas integrados tengan una programación cómoda en microcontroladores.

Gol:

Diseñe un sistema de actuador de sensor para controlar la temperatura de una habitación. Este proyecto te enseñará modulación de ancho de pulso y conversión AD (Analógico a Digital).

Partes:

  • Uno de 8 bits AT90USB1287 placa de demostración de microcontrolador
  • Un sensor de temperatura (a bordo del AT90)
  • Un motor de CC (sensible a voltajes entre 3.3V y 5.0V)
  • Hélice o álabe del ventilador que se ajusta al motor de CC
  • Uno L293D H-bridge
  • Un regulador de 5V

Diseño:

Este sistema utilizará el sensor de temperatura del AT90USB1287 para leer la temperatura ambiente actual y ajustar la velocidad del motor de CC (con la aspa del ventilador montada). Al ajustar la velocidad del ventilador, esto teóricamente enfría la habitación.

El sensor de temperatura ya está a bordo del AT90USB1287 y está conectado al puerto AD del microcontrolador. Debe leer la hoja de datos de este microcontrolador y escribir el código para configurar y sondear el sensor de temperatura.

El motor de CC se controlará con modulación de ancho de pulso. PWM puede controlar la velocidad de un motor de CC conectado variando el ciclo de trabajo de la señal PWM. Para obtener más información acerca de PWM, consulte la sección grande y detallada (tal vez un poco demasiado) ficha de datos para el AT90USB1287.

Una vez que tenga el sensor de temperatura y el motor de CC funcionando, habrá completado este proyecto. El puente en H L293D y el regulador de 5V se pueden utilizar para aumentar la potencia suministrada al motor de CC (de 3,3 V a bordo frente a 5,0 V del puente H).


4
2017-09-21 19:38



En mi experiencia hay una "joroba" de aprendizaje inicial, si se quiere, en sistemas integrados que pueden ser difíciles de superar, pero una vez que lo haces te decepcionará si el primer proyecto que eliges es muy simple.

Hay una inversión inicial en las herramientas de desarrollo (es decir, los chips y el programador como mínimo). Construir un proyecto muy simple no le permitirá explorar las áreas más útiles del chip, por lo tanto, la cantidad de conocimiento que obtendrá será desproporcionada en relación con la cantidad de recursos que invierte; tanto en tiempo como dinero.

Sugiero hacer algo más atractivo que un par de LED parpadeantes. La parte más difícil del desarrollo de una nueva plataforma integrada, para mí, siempre es obtener la compilación inicial y cargar el primer programa en el chip. Dado que este paso es el mismo sin importar cuán complicado o fácil sea su primer proyecto, volvería a votar fuertemente a favor de embarcarse en un proyecto medianamente complicado de inmediato. Algo así como un control remoto IR viene a la mente. En cualquier caso, espera invertir mucho tiempo si realmente quieres aprender algo.

También sugeriría NO buscar algo así como un BASIC STAMP o incluso Arduino, ya que estos dispositivos no te enseñarían las verdaderas habilidades necesarias para hacer la programación embebida. Son más una plataforma que ejecutará su código de alto nivel. Está utilizando una versión glorificada de dicha plataforma para leer esta publicación, su PC; difícilmente un dispositivo integrado. En el lado positivo, te ahorrarán muchos problemas si no estás familiarizado con la electrónica.

Obtenga un chip de 8 bits fabricado por Microchip o ATMEL, ambos muy populares y relativamente baratos para comenzar, obtenga un programador y tal vez un tablero de demostración, la placa de demostración funciona si no está familiarizado con la electrónica, para uno de esos chips. Lo que es más importante, lea las hojas de datos adjuntas e intente construir algo moderadamente útil. Programa en C o ensamblador. ATMEL es mucho mejor con compiladores y soporte para C. A la larga, se alegrará de no perder el tiempo aprendiendo una plataforma que nadie en su sano juicio usaría para un producto comercial y obtendrá una mejor comprensión de cómo lidiar con las limitaciones de los sistemas integrados, ya que no existe una mejor fuente de información que la hoja de datos.


2
2017-09-21 21:45



Tal vez algunos buenos libros?


1
2017-09-21 15:47



Hay un libro bastante bueno sobre el tema llamado "Embedded Linux Primer" (Christopher Hallinan es el autor). Este libro lo lleva a través de los aspectos prácticos del desarrollo de software en una plataforma Linux incorporada. Si unimos esto con un sistema de desarrollo relativamente económico y el cielo es el límite.

Obtenga una copia de la revista Circuit Cellar (un recurso realmente bueno para hardware y software integrado) y encontrará docenas de anuncios para sistemas pequeños que le permitirán ponerse en marcha rápidamente.


1
2017-09-22 02:00



Un proyecto simple (similar al Hello World) sería hacer un cazador de LED. Necesita: 6 a 10 LEDS y un interruptor simple.

Cada vez que presiona el interruptor, los LED parpadean en un patrón diferente. Algún patrón:
1 LED desplazándose hacia la derecha
1 LED desplazándose hacia la izquierda
LED alternantes
...

Esto le enseñará sobre los pernos de E / S, cómo usar un temporizador, tal vez cómo usar una Interrupción para el interruptor (o puede usar un sondeo).


0
2017-09-21 15:47



Personalmente, construiría una grabadora de sonido simple. Practiquemos el uso del convertidor AD y la salida de onda PWM. También enseñaría cómo modularizar el código para permitir el control de grabación y reproducción. La única limitación es la cantidad de memoria, pero incluso una muestra de 1 kB debería ser divertida.


0
2017-09-21 15:52