2009-07-09 19 views
7

Ho fatto programmazione desktop per un po ', ma voglio iniziare con l'interfaccia con l'hardware. In particolare, vorrei imparare come utilizzare le porte seriali per prendere un evento esterno e avvisare la mia applicazione (quindi, ad esempio, posso accendere una telecamera quando il movimento viene rilevato da un sensore esterno). Per favore dimmi come iniziare, che tipo di sensori, quali libri (o risorse online) sono disponibili. Ho provato Bing e Google, ma ho bisogno di più suggerimenti.Come iniziare con la programmazione dell'interfaccia hardware?

risposta

0

Se riesci a trovare un vecchio modem online o craigslist che potrebbe essere un buon inizio. Le specifiche di comunicazione seriale per quelle sono abbastanza ben documentate.

Dopodiché avrei iniziato a indagare su ciò che ti interessa: il tuo interesse per il progetto guiderà l'apprendimento e il progresso più di ogni altra cosa IMO.

credo che questo sito ha alcune cose divertenti da provare:

http://blogs.msdn.com/coding4fun/

0

ti consiglierei il libro Linux Device Drivers 3rd Edition

Anche se non ho programmato alcun interfaccia hardware ancora, credo che questo libro ti prepareremo per iniziare l'hacking.

1

non ci sono davvero un sacco di one-size-fits-all suggerimenti per questo. Avrai bisogno di consultare la documentazione del tuo dispositivo, dovrebbe specificare il protocollo di ciò che invierà sulla porta seriale e quali comandi puoi inviare in cambio.

Assicurati di capire cosa significa avere una codifica di testo come ASCII o UTF8. La maggior parte dei dispositivi che inviano e aspettano il testo useranno una codifica ASCII.

Non sono sicuro di quale sistema operativo o lingua utilizzi, ma tieni presente che stai inviando dati binari non elaborati tramite una porta seriale, quindi ad esempio se stai utilizzando C# vorrai avvolgere il tuo seriale porta il flusso di dati con StreamWriter o StreamReader con la corretta codifica del testo.

0

Se si desidera imparare a utilizzare la porta seriale, procurarsi un altro PC con HyperTerminal (incluso gratuitamente con Windows) e utilizzarlo per inviare e ricevere dati dalla macchina di sviluppo tramite la porta seriale. Questo ti darà un controllo molto manuale su ciò che viene inviato alla tua casella di sviluppo, così puoi avere una certa sicurezza che quello che stai leggendo e scrivendo è corretto. Una volta che hai le nozioni di base sull'I/O seriale, puoi passare alla videocamera/al sensore di movimento/ecc.

Non si parla di quale sistema operativo o ambiente di sviluppo si sta utilizzando, ma in VS 2005/.NET 2.0, esiste effettivamente una classe SerialPort. Se stai eseguendo API raw di Windows, MSDN ha un articolo su http://msdn.microsoft.com/en-us/library/ms810467.aspx che copre le nozioni di base. Se stai usando un altro sistema operativo, mi spiace non essere così familiare (lo so, fischio sibilano su di me).

La cosa più importante è ricordarsi di impostare i parametri di comunicazione su entrambi i lati della connessione allo stesso modo. Ci sono quattro parametri che governano se entrambi i lati possono capirsi: velocità di trasmissione, bit per byte (di solito 8), bit di parità (parità pari, parità dispari, nessuno, o sempre 1 o 0) e bit di stop. HyperTerminal elenca anche un'opzione "Controllo del flusso", consiglio di impostarla su "Nessuno" finché non ti senti a tuo agio. Il controllo del flusso Xon/Xoff è un modo abbastanza comune di mettere in pausa l'altro lato mentre si elabora un buffer di dati.

0

Compra un microcontrollore e costruire un semplice robot, fresa CNC o qualcosa del genere. Atmel AVR e/o PIC è il più comune da quello che ho capito.

dà anche un sacco di esperienza di elettronica

2

interfacce seriali sono abbastanza semplici da lavorare. Ma richiedono una sorta di un decodificatore sull'altra estremità (ad esempio un UART.) Un'altra opzione sarebbe utilizzando il parellel port. Il vantaggio di usare una porta parallela è iniziare con una interruzione dei pin I/O. In genere puoi controllare 8 dispositivi con un'interfaccia molto semplice da compilare.

maggior parte delle piattaforme ha dato un modo semplice per accedere alle porte LPT senza troppa fatica e di nuovo sono molto facili da interfacciare.

risultati rapidi per i tutorial ...

LPT Port Info ...

+0

Computer oggi non hanno porte parallele. Fanno? – atiyar

+0

La maggior parte non, ma questo post in 7 anni ed è ancora possibile utilizzare questi modelli con 'USB per LPT' dispositivi. Meglio ancora ci sono ora centinaia di opzioni per farlo senza LPT. https://www.amazon.com/s/?field-keywords=usb+gpio+module –