2010-08-24 25 views
19

Ho avuto il desiderio di imparare almeno un po 'di hardware di programmazione per un po' di tempo e ho pensato di chiedere qui per ottenere alcuni punti di partenza. Sono un programmatore ragionevolmente esperto con Delphi e l'esperienza Objective-c ma non ho mai nemmeno ascoltato una porta/interruzione del dispositivo (non conosco nemmeno la terminologia) per non parlare di programmare un pezzo di hardware.Dove posso iniziare con l'hardware programmabile?

Per iniziare con quello che mi piacerebbe essere in grado di fare è,

  • Compra un po 'di semplice kit con 2,3 o 10 tasti
  • collegare il dispositivo al mio pc tramite USB
  • Ascolta il dispositivo e scrivi del codice per fare qualcosa una volta premuto il pulsante.

Suppongo che questo sia un buon punto di partenza, chiunque ha indicazioni su hardware da acquistare o su come posso iniziare questo?

risposta

20

Mi piace il Arduino, facile da usare, open source e una grande comunità!

Buono per iniziare e utilizza un sottoinsieme di C/C++.

Inoltre, ha un sacco di hardware addon disponibili, come il GPS, Bluetooth, Wifi ecc

Le mie esperienze con Arduino sono stati altro che bene, dal punto si ottiene fuori di esso di scatola (e installare il compilatore gratuito su Windows/Mac/Linux), per creare il tuo primo 'schizzo' (un progetto o un'applicazione per Arduino).

Fare un'applicazione è facile, si dispone di un metodo Setup, che viene chiamato all'avvio, e quindi un metodo loop che viene eseguito in loop mentre Arduino è in esecuzione.

Quindi tutto ciò che dovete fare è collegare gli ingressi o le uscite ai pin sulla scheda Arduino, dire al codice cosa sono e speriamo che otterrete l'output desiderato.

Un'altra cosa veramente buona di Arduino (e altri ne sono sicuro) è che ora hai un uso per quelle vecchie stampanti rotte, o 2x CD-Rom che nessuno vuole, e ogni altro piccolo pezzo di fuori tecnologia datata. È incredibile quello che puoi trovare in una sala server!

Ora, ho lavorato solo su piccoli progetti, come collegare un LCD, e leggere la temperatura della stanza e vari progetti del genere. Ma basandomi su quello che ho fatto, sono contento dell'Ardunio, offre una buona base per la programmazione integrata e, se non è abbastanza, puoi sempre diventare più grande!

I miei 2 centesimi!

+0

Arduino arriva anche con un'app demo in cui è possibile leggere i pin di input sul collegamento USB (che fungono da porta seriale) –

+2

Sì, è davvero fantastico e ricco di funzionalità . Praticamente trattenuto dalla tua immaginazione. È come giocare con il lego, tranne che per un adulto :) IMO – PostMan

+0

Esiste anche il Teensy, http://www.pjrc.com/teensy/ – cmcginty

1

Suggerisco senz'altro di provare vari microcontrollori. Arduino I controller sono belli e hanno oftutorials.

Tuttavia, non è la tua unica opzione. A scuola, ho lavorato con lo Microchip PICs, che sono anche molto carini per la scena hobbista.La cosa bella del PIC era che il nostro manuale di microcontrollori lo supportava, quindi abbiamo visto l'applicazione mentre stavamo imparando la teoria.

+0

Consiglierei l'uso di un PIC18F4550 o più recente. Puoi richiedere campioni gratuiti - fino a 5 di loro al mese. Non dirlo a Microchip, ma ho molti di questi prodotti dalla richiesta di campioni nel corso degli anni.Il n è il kit PICkit2 (nessun campione gratuito per questo ragazzo ma comunque economico) che ti permette di programmare il tuo chip via USB. –

3

C'è anche la stampante hot-off netduino che utilizza .NET Framework e Microsoft Visual C# Express. Non so che è meglio dell'Arduino, ma è un'altra opzione.

+1

Cool, ma ho un osso da scegliere con la persona che ha scritto la sceneggiatura per il video introduttivo: se sto cercando di programmare su hardware, probabilmente so già cosa fa un ciclo 'while'. – Omar

+0

@Baddie Buon punto ... – gary

2

Il precedente poster menzionava l'Arduino, ma si dovrebbe anche considerare uno Teensy. È fondamentalmente la stessa cosa, ma il prezzo è un po 'meglio. Hai anche la possibilità di usarlo in modalità "Arduino", o in modalità AVR raw. Non so se gli Arduino ti offrono entrambe le opzioni.

C'è un comparison page in cui è possibile vedere il Teensy ha un hardware migliore. L'USB integrata offre prestazioni molto migliori.

1

Se ho capito bene la tua domanda, non sei interessato alla programmazione integrata. Vuoi comprare qualcosa che funzioni dall'inizio e che controlli da Windows.

Quando si tratta di pulsanti, non c'è molto da fare in Windows. Questi sono controlli HID e Windows gestisce tutte le interfacce per te. Niente di troppo eccitante lì.

In tal caso, è possibile utilizzare qualsiasi joystick e utilizzare DirectInput (una parte della tecnologia DirectX) per interagire con esso. Con un feedback di forza puoi fare cose interessanti.

Un progetto più divertente sarebbe quello di acquistare un controllo Wii e scrivere alcune divertenti applicazioni. Guardate questo sito per avere alcune idee su quello che voglio dire:

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

Poiché Windows non ha il supporto per un contrller Wii, dovrete davvero fare un certo lavoro qui :)

1

vedo che ti piace Delphi, quindi puoi dare un'occhiata ad AvrCo Multitasking Pascal per AVR. Puoi provarlo allo http://www.e-lab.de. La versione MEGA8/88 è gratuita. Ci sono un sacco di driver, simulatore, debugger online JTAG e programmatore con visualizzazione di tutti i dispositivi standard (per una startup, è possibile creare un programmatore LPT semplice con pochi resistori). Può anche far funzionare programmi per tutti i dispositivi Arduino, dal momento che AVR è nel loro cuore. L'STK500 di Atmel è una buona scheda per principianti, con LED, interruttori e poche altre periferiche. Se preferisci l'open source, allora WinAVR con GCC potrebbe essere il tuo percorso.

1

Come già detto, Arduino è una buona scelta. La comunità è grande e utile. La cosa bella è che puoi passare direttamente a una lingua "reale" usando la porta GCC per i micros AVR, se vuoi. Nel mio ultimo progetto l'ho fatto - prototipo la maggior parte di esso con Arduino, quindi riscrivilo in C.

Iniziare con pulsanti e LED è una grande idea. Costruisci un po 'di fiducia nel lavorare con l'hardware di base prima di modificare il Wii!

Alcuni link: (l'installazione di 1 punto)

  • di Windows GCC croce compilatore per l'AVR: WinAVR
  • Un Arduino kit clone
  • Adafruit è un'altra buona fonte di hardware di avviamento e di consulenza tecnico
  • The embedded StackOverflow
1

Qualsiasi programma si alr La buona scrittura interagisce con l'hardware, c'è il monitor, la tastiera, il mouse, l'altoparlante, ecc. Ottenere una configurazione semplice in cui il programma può gestire i pulsanti su un dispositivo USB non ti insegnerà molto sul funzionamento con l'hardware. In parte è una questione di quanto in basso si vuole andare nello stack del software e quanto si vuole sapere su cosa succede nel punto in cui finisce il software.

  1. Procurati una copia di "The Art of Electronics". È un relativamente di facile lettura e copre tutto tra la legge di Ohm e il microprocessore e ti darà una buona idea di ciò che fa il sistema completo.
  2. Leggilo.
  3. Check-out Digikey. È possibile acquistare qualsiasi cosa relativa all'hardware da resistori, condensatori, circuiti integrati, schede a basso costo facilmente online e a prezzi ragionevoli.

Altre risposte citate Microchip PIC e Atmel AVR che sono microcontrollori piccoli e semplici. Entrambe le aziende hanno una vasta gamma di note applicative, controlla il loro sito web, leggi alcune note sulle app. È possibile ottenere schede di valutazione a basso costo per quanto sopra o qualcosa come l'Arduino menzionato in altre risposte. Prendi in considerazione la possibilità di progettare e costruire la tua scheda personale per costringerti a imparare le basi. Trova un amico che sia un EE o un appassionato hobbyista a cui non dispiacerebbe aiutarti con qualche consiglio.

Se vuoi saperne di più sull'hardware del PC puoi dare un'occhiata ad alcuni semplici driver di dispositivo (ad esempio stampante o porta seriale) sotto Windows (scarica il WinDDK), Linux o anche DOS. Programmare sotto qualcosa come DOS su PC consente un'interazione relativamente facile con l'hardware del PC, è possibile utilizzare una porta stampante per leggere pulsanti ecc.

Collegamenti (Sono un nuovo utente quindi non posso collegarmi direttamente) :

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/