2010-08-24 11 views
19

He tenido el deseo de aprender al menos un poquito sobre el hardware de programación desde hace bastante tiempo y pensé que podría pedir aquí para obtener algunos puntos de partida. Soy un programador razonablemente consumado con experiencia en Delphi y Objective-c, pero nunca he escuchado un puerto de dispositivo/interupt (ni siquiera conozco la terminología) y mucho menos programé una pieza de hardware.¿Dónde puedo comenzar con el hardware programable?

Para comenzar con lo que me gustaría ser capaz de hacer es,

  • Comprar un poco simple de kit con 2,3 o 10 botones
  • conecte el dispositivo a mi PC a través de USB
  • Escuche el dispositivo y escriba un código para hacer algo una vez que se presiona el botón.

Creo que este es un buen lugar para comenzar, ¿alguien tiene indicaciones sobre hardware para comprar o cómo podría comenzar?

Respuesta

20

Me gusta el Arduino, fácil de usar, de código abierto y una gran comunidad!

Es bueno empezar, y usa un subconjunto de C/C++.

Además, tiene una gran cantidad de hardware de complemento disponibles, como el GPS, Bluetooth, Wifi, etc.

Mis experiencias con Arduino han sido más que buena, desde el punto de llegar fuera de él es caja (e instalar el compilador gratuito en Windows/Mac/Linux), para construir su primer 'boceto' (un proyecto o aplicación para Arduino).

Hacer una solicitud es fácil, tiene un método Setup, que se llama al inicio, y luego un método loop que se realiza un bucle mientras Arduino se está ejecutando.

Luego, todo lo que tiene que hacer es conectar entradas o salidas a las patillas de la placa Arduino, decir el código cuáles son y con suerte obtendrá la salida deseada.

Otra cosa realmente buena sobre el Arduino (y otros estoy seguro) es que ahora tiene un uso para esas viejas impresoras rotas, o 2x CD-Rom que nadie quiere, y cualquier otro poco de salida tecnología anticuada. ¡Es increíble lo que puedes encontrar en una sala de servidores!

Ahora, solo he trabajado en proyectos pequeños, como conectar una pantalla LCD y leer la temperatura ambiente y varios proyectos como ese. Pero basado en lo que hice, estoy contento con el Ardunio, proporciona una buena base para la programación integrada y, si no es suficiente, ¡siempre puede crecer más!

¡Mis 2 centavos!

+0

Arduino incluso viene con una aplicación de demostración en la que puede leer qué pines de entrada están en el enlace USB (actuando como un puerto serie) –

+2

Sí, es bastante impresionante y está lleno de funciones . Bastante retenido por tu imaginación. Es como jugar con lego, excepto un adulto :) IMO – PostMan

+0

También está el Teensy, http://www.pjrc.com/teensy/ – cmcginty

1

Definitivamente recomendaría probar varios microcontroladores. Arduino Los controladores son agradables y tienen un numberoftutorials.

Sin embargo, no es su única opción. En la escuela, trabajé con Microchip PICs, que también son bastante agradables para la escena de los aficionados.Lo bueno del PIC fue que nuestro libro de texto de microcontroladores lo admitió, así que pudimos ver la aplicación mientras aprendíamos la teoría.

+0

Yo recomendaría usar un PIC18F4550 o más nuevo. Puede solicitar muestras gratuitas, hasta 5 de ellas por mes. No se lo digas a Microchip pero tengo muchos de estos abastecidos a partir de la solicitud de muestras a lo largo de los años.El n está el kit PICkit2 (no hay muestras gratuitas para este tipo pero todavía es barato) que le permite programar su chip a través de USB. –

3

También existe la prensa de apagado automático netduino que utiliza .NET Micro Framework y Microsoft Visual C# Express. No sé si es mejor que el Arduino, pero es otra opción.

+1

Genial, pero tengo un hueso para elegir con la persona que escribió el guión para el video introductorio: si estoy buscando programar en hardware, probablemente ya sé lo que hace un ciclo 'while'. – Omar

+0

@Baddie Buen punto ... – gary

2

El cartel anterior mencionaba el Arduino, pero también debería considerar un Teensy. Básicamente es lo mismo, pero el precio es un poco mejor. También tiene la opción de usarlo en el modo "Arduino" o en modo AVR sin formato. No sé si Arduinos te dará ambas opciones.

Hay un comparison page donde se puede ver que el Teensy tiene un hardware mejor. El USB incorporado le da un rendimiento mucho mejor.

1

Si entiendo correctamente su pregunta, no está interesado en la programación integrada. Desea comprar algo que funciona desde el principio y controlarlo desde Windows.

Cuando se trata de botones, no hay mucho que hacer en Windows. Estos son controles HID y Windows maneja todas las interfaces para usted. Nada muy emocionante allí.

En ese caso puede agarrar cualquier Joystick y usar DirectInput (una parte de la tecnología DirectX) para interactuar con él. Con la fuerza de retroalimentación puede hacer algunas cosas interesantes.

Un proyecto más divertido sería comprar un control de Wii y escribir algunas aplicaciones divertidas. vistazo a este sitio para obtener algunas ideas de lo que quiero decir:

http://johnnylee.net/projects/wii/

Puesto que Windows no tiene soporte para un contrller Wii, que realmente llega a hacer algo de trabajo aquí :)

1

veo que te gusta Delphi, así que puedes echar un vistazo a AvrCo Multitasking Pascal para AVR. Puede intentarlo al http://www.e-lab.de. La versión MEGA8/88 es gratis. Hay toneladas de controladores, simulador, depurador en línea JTAG y programador con visualización de todos los dispositivos estándar (para un inicio, puede hacer un programador LPT simple con solo unas pocas resistencias). También puede hacer programas para todos los dispositivos Arduino, ya que AVR está en su corazón. La STK500 de Atmel es una buena placa para principiantes, con leds, interruptores y algunos otros periféricos. Si prefiere código abierto, entonces WinAVR con GCC podría ser su camino.

1

Como ya se ha mencionado, Arduino es una buena opción. La comunidad es grande y servicial. Lo bueno es que puede hacer la transición a un idioma "real" utilizando el puerto GCC para micros AVR, si lo desea. En mi último proyecto, hice esto: prototipo de la mayoría con Arduino y luego volver a escribirlo en C.

Comenzar con botones y LED es una gran idea. ¡Construye un poco de confianza en el trabajo con hardware básico primero, antes de modelar la Wii!

Algunos enlaces:

  • de Windows GCC compilador cruzado (1 paso de instalación) para AVR: WinAVR
  • kit clon
  • Un Arduino
  • Adafruit es otra buena fuente de hardware de arranque y asesoramiento técnico
  • El incrustado StackOverflow
1

Cualquier programa que alr eady write interactúa con el hardware, está el monitor, el teclado, el mouse, el altavoz, etc. Obtener una configuración simple donde su programa pueda manejar los botones de un dispositivo USB no le enseñará mucho sobre cómo trabajar con el hardware. En parte, se trata de qué tan bajo quiere ir en la pila de software y cuánto quiere saber sobre lo que sucede en el punto donde termina el software.

  1. Obtenga una copia de "The Art of Electronics". Es una lectura fácil de relativamente y cubre todo entre la ley de Ohm y el microprocesador y le dará una buena idea de lo que hace el sistema completo.
  2. Léelo.
  3. Echa un vistazo a Digikey. Puede comprar cualquier hardware relacionado con resistencias, condensadores, circuitos integrados, tarjetas de bajo costo fácilmente en línea y por precios razonables.

Otras respuestas mencionaron Microchip PIC y Atmel AVR que son microcontroladores pequeños y simples. Ambas compañías tienen una gran cantidad de notas de aplicación, visiten su sitio web y leen algunas notas de la aplicación. Puede obtener placas de evaluación de bajo costo para lo anterior o algo así como el Arduino mencionado en otras respuestas. Considere diseñar y construir su propio tablero para forzarse a sí mismo a aprender los conceptos básicos. Encuentra un amigo que sea EE o un aficionado serio a quien no le importe ayudarte con algunos consejos.

Si desea obtener más información sobre el hardware de la PC, puede ver algunos controladores de dispositivos simples (por ejemplo, impresora o puerto serie) en Windows (descargue WinDDK), Linux o incluso DOS. La programación en algo parecido a DOS en una PC permite una interacción relativamente fácil con el hardware de la PC, puede usar un puerto de impresora para leer botones, etc.

Enlaces (soy un usuario nuevo, así que no puedo vincular directamente) :

www.amazon.com/Art-Electronics-Paul-Horowitz/dp/0521370957

www.digikey.com/

www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE & nodeId = 2879

www. atmel.com/products/avr/

Cuestiones relacionadas