embedded - sistemas - software embebido
¿Proyectos de sistemas incrustados de nivel principiante? (12)
Un estudiante mío vino a mí esta mañana y me pidió algunas ideas para un proyecto de sistemas integrados (idealmente diseño de hardware y software) que se completará en los próximos 6 meses más o menos. Es un estudiante de primer año e inexperto, pero tiene la motivación para aprender si apunta en la dirección correcta. El propósito de completar este proyecto, además de mojarse en Ingeniería Eléctrica / Computación e Informática, es hacer que su currículum sea más atractivo en términos de enganchar una pasantía en el verano del ''09.
Mi pregunta es:
¿Cuáles son algunos buenos recursos generales para comprender el hardware simple, un microcontrolador y las bases de lo que es el firmware / software, dada poca o ninguna experiencia en cualquiera de los anteriores? Mi propia experiencia no me ayuda mucho aquí, ya que aprendí mucho a través de la capacitación formal (que a él le interesa, pero ahora quiero comenzar) y, a través de la pasantía, obtuve el primer año de mi primer año de nepotismo ;-) (que él quiere hacer , pero hay un problema de huevo y gallina
¿Cuáles son algunas ideas de proyectos interesantes del alcance apropiado?
Algunas ideas iniciales:
- Un juego estilo Jeopardy que iluminaría un LED, y el jugador que presionó primero su botón es el ganador, y tal vez el microcontrolador podría mantener el puntaje en un par de pantallas de 7 segmentos.
- Un generador de tonos (el usuario configura interruptores DIP (o más ambiciosamente, presiona teclas en un teclado PS2) para establecer una frecuencia), y el microcontrolador usa un convertidor D / A para emitir una sinusoide de esa frecuencia
- Algún tipo de sensor pequeño (tal vez un sensor de temperatura para su dormitorio que sirvió los resultados como una fuente RSS). El aspecto basado en la web de este proyecto se haría significativamente más fácil con un RabbitCore de Rabbit Semiconductor .
¡Todas las sugerencias sobre kits de microcontroladores son geniales! Realmente agradecería ideas de proyectos adicionales (es decir, "El alumno debería diseñar X" también. ¡Gracias!
Hay varias compañías que fabrican pequeños kits de robots usando PIC o microprocesadores similares.
He escuchado y leído un montón de cosas buenas sobre las plataformas Arduino y PicAxe. Arduino parece tener la comunidad más grande detrás de esto, y el costo advenedizo es bastante mínimo (~ 20-30USD para el kit).
LadyAda de adafruit industries vende un kit de tutorial que viene con una placa Arduino y 8 tutoriales que enseñan electrónica básica y programación de microcontroladores.
He estado trabajando en sistemas integrados durante más de una década, y para un principiante Rabbit Semiconductor es difícil de superar.
Sin embargo, puede comenzar mucho más barato con Arduino y algunos otros sistemas. Pero siempre hay una curva de aprendizaje de instalación y configuración de la herramienta. Rabbit stuff está muy cerca de ser diseñado como "hardware para programadores de software" y es muy fácil de usar, además de bastante poderoso. Mi primer esfuerzo fue poner páginas web dinámicas para mostrar gráficos de sensores relacionados con el clima (viento, temperatura, presión, etc.).
Si tuviera que hacerlo de nuevo, rellenaría las técnicas de Ajax allí, y usar canvas o svg para generar gráficos mucho más agradables.
Otras opciones son los nuevos procesadores de 32 bits de Microchip y el AVR32 de Atmel. Puede comenzar con esos por alrededor de $ 100. El AVR32 es compatible con Linux ahora, y por no mucho más dinero puede obtener una pantalla LCD y otras cosas para que sea un sistema integrado de muy alta gama. También vienen con el software de demostración WinCE para que pueda verificar el final del desarrollo. El PIC de 32 bits aún no tiene Linux, y no sé si admitirá WinCE.
Descargo de responsabilidad: trabajé para Rabbit hace algún tiempo. Técnicamente, los procesadores no son terriblemente poderosos, pero el compilador y las bibliotecas incluidas son tan completos y fáciles de usar que mucha gente los usa.
De cualquier manera que vaya, ¡buena suerte!
-Adán
Lego Mindstorms puede ser un lugar para comenzar. El firmware es de código abierto, por lo que su estudiante podría experimentar añadiendo nuevas funciones de E / S o creando algunos periféricos nuevos.
Muchos fabricantes de microcontroladores ofrecen tableros experimentales baratos y herramientas de desarrollo con las que es divertido jugar.
Ejemplos:
(Otros se sienten libres de agregar a esta lista).
Una tabla Tern Acore86 es un buen kit para trabajar.
Creo que la mejor manera de empezar a trabajar en sistemas integrados es trabajar en BeagleBoard.
BeagleBoard es Texas Instruments OMAP3 Processors, que incluye procesador ARM y DSP. Además de que el costo es demasiado barato en comparación con otras juntas de desarrollo, es solo 150 $.
Y la mejor parte es que el software para él es completamente de código abierto, puede hacer una compilación utilizando componentes como kernel de Linux, uBoot y xloader.
Inicialmente juegue a su alrededor, intente hacer una construcción estable. Puede pensar en muchos proyectos que pueden usar el poder de la placa.
Mis mejores deseos para eso.
El Chumby proporciona una plataforma increíble para los programadores de sistemas integrados novatos. Proporciona un gran conjunto de periféricos (LCD, USB, altavoces, wifi), es completamente de código abierto (si ignora las cosas FLASH), y proporciona una excelente interfaz para una placa de prototipos.
Yo recomendaría un kit Lego Mindstorms NXT. El kit de robótica actualizado tiene muchas características atractivas, como servo motores con codificadores integrados, Bluetooth y sensores de distancia ultrasónicos . Los terceros también han desarrollado acelerómetros , giroscopios , brújulas y mucho más. Puede desarrollar fácilmente su propio sensor ya que todos los sensores operan en el bus i2c estándar.
El año pasado, con algunos otros estudiantes, construimos un pequeño robot tipo Segway usando el giroscopio Hitechnic y el firmware LeJos de fuente abierta . Hubiera sido muy posible construir una interfaz cliente-servidor para que pudiéramos controlar el robot de forma inalámbrica utilizando un dispositivo bluetooth (es decir, un teléfono móvil).
Esta plataforma es muy versátil si quieres que tu proyecto se mueva y la comunidad es excelente. Vea las siguientes ideas de proyectos usando sensores personalizados.
Recomiendo fuertemente los productos Parallax que puedes encontrar aquí
Basic Stamp y el chip de la hélice son excelentes. Hay muchos tableros adicionales disponibles que le permiten hacer muchos proyectos simples y complejos.
Mindstorms es bueno pero un poco caro comparado con lo que Parallax ofrece. Sin embargo, para facilitar su uso, nada puede ser Mindstorm.
Algo más que considerar ...
Debes decidir qué es lo que quieres que aprenda el niño. Hay muchos kits diferentes que puedes comprar (ver respuestas anteriores para muchos buenos); sin embargo, tenga en cuenta que los kits están diseñados para que el usuario inicie y ejecute rápidamente, generalmente para evaluar algún microcontrolador o chip de interfaz.
Para realmente enseñar a alguien los sistemas integrados, "rápidamente" no es necesariamente la mejor manera de hacerlo. Los kits proporcionarán algunos IDE (entorno de desarrollo interactivo) que agrega múltiples niveles de abstracción entre el estudiante y el tema de "aprendizaje de firmware". Como resultado, el niño puede estar escribiendo aplicaciones de "hello world" el primer día, pero todavía no tiene ni idea de cuál es la diferencia entre RAM / ROM / Address / Data / etc ...
En pocas palabras ... estos días, hay tantos kits por ahí, que realmente no tiene más remedio que elegir uno (ver otras respuestas para obtener buenas sugerencias); sin embargo, si realmente desea que el niño aprenda los fundamentos, luego de que escriba la aplicación "hello world", y hace parpadear algunos LED. Deténgalo allí y enséñele qué hay detrás de todo eso.
Sí, eso no respondió directamente a tu pregunta, pero con suerte te guiará en cómo realmente enseñarle la "carne". Un buen lugar para comenzar puede ser un libro que escribí hace unos años: "Embedded Systems Firmware Demystified". También hay otros, como "Programación de sistemas integrados en C y C ++". Mi libro también presenta un monitor de arranque que es un buen lugar para comenzar a aprender el firmware. Visite http://www.umonfw.com para obtener información sobre eso.
Consulte http://www.embedds.com
Es una lista de proyectos de sistemas integrados de toda la web. La mayoría son principiantes o aficionados generados y serían un buen comienzo o inspiración.