¿Cuáles son algunos proyectos sencillos que puedes realizar para aprender los conceptos básicos de la programación integrada?[cerrado]

StackOverflow https://stackoverflow.com/questions/111254

  •  02-07-2019
  •  | 
  •  

Pregunta

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

Estamos hablando de alguien que conoce los conceptos básicos de los circuitos electrónicos (resistencias, condensadores, circuitos integrados digitales, etc.) y puede realizar soldaduras básicas.Un aficionado a la electrónica que busca ingresar a la programación integrada, o tal vez un estudiante de segundo o tercer año en una carrera universitaria 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 algo.

Si hay un libro que cubra algo así, ¿podrías publicar un enlace?

¿Fue útil?

Solución

compré un arduino recientemente, que es fácil de poner en marcha.Es una placa pequeña y bastante económica que ejecuta un Atmega168 con las E/S desconectadas, alimentación, USB y otras cosas divertidas.Ejecuta código C nativo (como cabría esperar de un chip Atmega) y puede usarse para controlar circuitos a través de software.

Otros consejos

El siguiente proyecto es para el CSC460:Clase de Sistemas Operativos en Tiempo Real en la Universidad de Victoria.Este proyecto está diseñado para que los estudiantes de informática sin conocimientos de sistemas integrados se sientan cómodos programando en microcontroladores.

Meta:

Diseñar un sistema sensor-actuador 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 CC (sensible a voltajes entre 3,3 V y 5,0 V)
  • Hélice o aspa de ventilador que se adapta al motor de CC
  • Uno L293D puente H
  • 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 las aspas del ventilador conectadas).Al ajustar la velocidad del ventilador, teóricamente se enfriará la habitación.

El sensor de temperatura ya está integrado en el AT90USB1287 y cableado 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 sobre PWM consulte el documento grande y detallado (tal vez 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 H L293D y el regulador de 5 V se pueden utilizar para aumentar la potencia proporcionada al motor de CC (de 3,3 V a bordo frente a 5,0 V del puente H).

En mi experiencia, hay un "obstáculo" inicial de aprendizaje, por así decirlo, en los sistemas integrados que puede ser difícil de superar, pero una vez que lo logras Te decepcionarás si el primer proyecto que eliges es muy simple..

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

Sugiero hacer algo más atractivo que un par de LED parpadeantes.Para mí, la parte más difícil del desarrollo de una nueva plataforma integrada es siempre 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, nuevamente votaría firmemente a favor de embarcarnos en un proyecto moderadamente complicado de inmediato.Me viene a la mente algo así como un control remoto por infrarrojos.En cualquier caso, espere invertir mucho tiempo si realmente quiere aprender algo.

También sugeriría NO optar por algo como un SELLO BÁSICO o incluso un Arduino, ya que estos dispositivos no le enseñarían las verdaderas habilidades necesarias para realizar programación integrada.Son más bien 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.El lado positivo es que 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 una placa de demostración (la placa de demostración funciona si no está familiarizado con la electrónica) para uno de esos chips.Lo más importante es leer las hojas de datos adjuntas e intentar crear 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 haber perdido el tiempo aprendiendo una plataforma que nadie en su sano juicio usaría para un producto comercial y comprenderá mejor cómo lidiar con las limitaciones de los sistemas integrados, ya que no hay nada mejor. fuente de información que la hoja de datos.

Hay un libro bastante bueno sobre el tema llamado "Embedded Linux Primer" (Christopher Hallinan es el autor).Este libro le explica los aspectos prácticos del desarrollo de software en una plataforma Linux integrada.Si a esto le sumamos un sistema de desarrollo relativamente económico, el cielo es el límite.

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

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

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

Esto le enseñará sobre los pines de E/S, cómo usar un temporizador, tal vez cómo usar una interrupción para el interruptor (o podría usar el sondeo).

Personalmente, construiría una grabadora de sonido sencilla.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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top