Interfacciarsi con il mondo esterno. Lezione 0

Di tutorial che insegnano più o meno bene a collegare un pc ad una scheda esterna ne esistono a bizzeffe. C’è gente che privilegia collegare delle schede di interfaccia alla parallela o alla seriale, c’è gente che usa Arduino o similari, c’è gente che le sue interfacce se le costruisce. A quanto pare, però, di tutorial in questo senso ne esistono ancora troppo pochi, o, mi viene da pensare, danno delle informazioni parziali o danno alcuni assunti che rendono frustrante cose che sono, in realtà, abbastanza semplici.

Questo vuole essere un tutorial passo passo senza presupposti se non la buona volontà ed un minimo di manualità, le cose che faccio sono tutte SPERIMENTATE PERSONALMENTE ed il codice che allegherò può essere preso e compilato (contrariamente alla mia abitudine di allegare solo snippet). Il “caveat”, leggasi warning, che lascio è che giocare con l’hardware può avere effetti anche distruttivi, e, nel caso di danni, avrete tutta la mia umana comprensione e solidarietà… ma sono cavoli vostri. Le cose che pubblico funzionano. Se friggete il PC con le foto del vostro matrimonio e vostra moglie vi fucila ha ragione di farlo.

Da una parte quello che voglio dare è un insieme di informazioni su come fare le cose, dall’altro quello che immodestamente vorrei che passasse ai disperati che leggono queste mie è piuttosto un metodo di lavoro, anche perché lavorare con l’hardware è bello ma può portare a molte frustrazioni quando le cose non vanno come devono, ed uno si ritrova con una scheda che non funziona o funziona male.

Prima regola: si fa sempre un passo alla volta. Non si passa allo step successivo finché non si è fatto, collaudato (e possibilmente capito) quanto c’è in un passo.

Seconda regola: non si parte da metà. Le cose devono essere fatte in un determinato ordine. E c’è un perché le cose devono essere fatte in quell’ordine. Non è detto che il mio metodo sia il migliore, ma funziona.

Terza regola: siate ben consci delle vostre capacità. Non potete pretendere di fare una scheda che gira ad 1 GHZ se non ne avete mai fatta una (peraltro non è così difficile, ma da soli e su una basetta dubito che ce la farebbe anche mister FF).

Se potete investire qualche decina di migliaia di euro, allora mettete nella lista della spesa un paio di logic analyzer, un buon compilatore per microcontrollori, licenze per lo sviluppo di driver, un bell’oscilloscopio, lo sviluppo e lo sbroglio di un paio di schede di interfaccia, un microscopio, un saldatore ad infrarossi ed uno ad aria calda e quant’altro.

Come? Non li avete? Tranquilli. Si può fare anche senza. Non costruiremo interfacce custom, ma sceglieremo di usare Arduino o similari, oppure ci attacchiamo alla seriale o alla parallela. Un momento… il mio portatile del 2003 non ha più la parallela e la seriale, e neanche i 5 che ho preso dopo, quindi non saprei come provarli, e a che serve se le porte legacy sono state definite come outdated nella PC Hardware Design Guide del 1996 (eppure c’è gente che le usa ancora, magari insieme al Geloso ed alla macchina da scrivere).

Quindi, gioco forza la scelta è usare una scheda ESTERNA, possibilmente già fatta, sulla quale risiede un firmware che consenta di fare le operazioni che ci servono. Il lavoro che dovremo fare sarà quindi costituito non solo di una parte, ovvero l’ennesimo sarchiapon…. ahem… programma da sviluppare sul pc, ma dovremo occuparci di fare 3 cose:

  1. Costruire un hardware
  2. Scrivere sulla scheda esterna il firmware che si occupi della gestione di questo hardware e della comunicazione con il PC
  3. Scrivere il programma di interfaccia che gestisca la comunicazione lato PC

Quale scheda esterna? A dire la verità sono stato molto combattuto, ma dovendo pensare ad una cosa “per tutti” sono giunto alla conclusione che la scelta ideale sia quella di lavorare su piattaforma ARDUINO, per motivi sia di reperibilità (non dico che le troviate anche dal farmacista, ma poco ci manca), che di costi (io farò esatto riferimento ad una scheda acquistata per 13,5 sterline), ma anche di espansioni.

Avrei potuto usare una Netduino, tanto per rimanere in ambiente .NET, ma è decisamente più costosa e meno diffusa.  Tant’è, molto (per non dire tutto) può essere rifatto su Netduino o similari. Il metodo è lo stesso.

Cosa serve, quindi?

La lista della spesa per la prossima lezione comprende:

1 scheda Arduino o similare (la mia è una compatibilaccia FUNDUINO MEGA 2560)

1 cavo usb AB standard

L’ambiente di sviluppo di Arduino, liberamente scaricabile dal sito www.arduino.cc

Il visual basic o c# installato sul PC

un emulatore di terminale (io uso Teraterm, ma  anche l’Hyperterminal va benissimo, peccato che non ci sia sotto W7).

A parte l’Arduino che ha un costo modesto, oscillate tra i 10 ed i 30 euro, tutto il resto è liberamente scaricabile.

L’invito è, dunque, a quanti interessa la problematica, di procurarsi il materiale mentre io preparo la prossima lezione. 

posted @ giovedì 17 ottobre 2013 11:06

Print

Comments on this entry:

# Interfacciarsi con il mondo esterno. Lezione 0

Left by Danyc74 at 30/10/2013 10:37
Gravatar
Ottimo inizio, sono in trepidante attesa della lezione 1. Mi interessa molto l'approccio al progetto di cui parli. Spesso ho provato quella frustrazione che hai citato...

Your comment:



 (will not be displayed)


 
 
 
Please add 1 and 4 and type the answer here:
 

Live Comment Preview: