HARDWARE SCUOLABUS S una missione, un robot PIRIT ...

113
LA RIVISTA DI ELETTRONICA APPLICATA, TECNOLOGIE E PRODOTTI TECNOLOGIE SPERIMENTALI TUTORIAL • PIC ® MICROCONTROLLER BY EXAMPLE VITAMINA C ROBOMANIA MANUALE SEMISERIO DI ROBOTICA BIOQUADRAPOD: REALIZZAZIONE PRATICA Spedizione in A.P. - 45% - ART. 2 COMMA 20/B LEGGE 662/96 - Filiale di Milano. In caso di mancata consegna, restituire all‘editore che si impegna a pagare la relativa tassa presso il CMP di Roserio - Milano HARDWARE ALIMENTATORE USB SPICE: LA SIMULAZIONE DEI CIRCUITI ELETTRICI ED ELETTRONICI CONTATORE MODULARE A DISPLAY NOTE SULL’UTILIZZO DI “EASY”, IL PROGRAMMATORE DI PICMICRO INTRODUZIONE ALLE LOGICHE PROGRAMMABILI www.farelettronica.com N° 225 - MARZO 2004 - ANNO 20 EDIZIONI 4,50 - Frs 9,00 SPIRIT, UNA MISSIONE, UN ROBOT IL BUS CAN SCUOLABUS ITIS “LEONARDO DA VINCI “ PISA MHz RICORDO DEI BOLLETTINI TECNICI DELLA GELOSO PRATICAMENTE INTERFACCIAMOCI CON LE PORTE LOGICHE (INTERRUTTORE TEMPORIZZATO) SCUOLABUS Prima tappa: PISA SPIRIT , una missione, un robot SPIRIT , una missione, un robot

Transcript of HARDWARE SCUOLABUS S una missione, un robot PIRIT ...

L A R I V I S TA D I E L E T T R O N I C A A P P L I C ATA , T E C N O L O G I E E P R O D OT T I

TECNOLOGIE SPERIMENTALI

TUTORIAL

• PIC® MICROCONTROLLER BY EXAMPLE

• VITAMINA C

ROBOMANIA

• MANUALE SEMISERIO DI ROBOTICA

• BIOQUADRAPOD: REALIZZAZIONE PRATICA

Sped

izio

ne in

A.P

. - 4

5% -

ART

. 2 C

OMM

A 20

/B L

EGGE

662

/96

- Fi

liale

di M

ilano

. In

caso

di m

anca

ta c

onse

gna,

res

titu

ire

all‘e

dito

re c

he s

i im

pegn

a a

paga

re la

rel

ativ

a ta

ssa

pres

so il

CM

P di

Ros

erio

- M

ilano

HARDWARE

• ALIMENTATORE USB

• SPICE: LA SIMULAZIONE DEI CIRCUITI

ELETTRICI ED ELETTRONICI

• CONTATORE MODULARE A DISPLAY

• NOTE SULL’UTILIZZO DI “EASY”,

IL PROGRAMMATORE DI PICMICRO

• INTRODUZIONE ALLE LOGICHE PROGRAMMABILI

www.farelettronica.com

N° 225 - MARZO 2004 - ANNO 20

EDIZIONI

€ 4,50 - Frs 9,00

• SPIRIT, UNA MISSIONE, UN ROBOT

• IL BUS CAN

SCUOLABUS

• ITIS “LEONARDO DA VINCI “ PISA

MHz

• RICORDO DEI BOLLETTINI TECNICI

DELLA GELOSO

PRATICAMENTE

• INTERFACCIAMOCI CON LE PORTE LOGICHE

(INTERRUTTORE TEMPORIZZATO)

SCUOLABUSPrima tappa: PISA

SPIRIT,una missione,un robot

SPIRIT,una missione,un robot

Tiziano [email protected]

Avevo sei anni, quando l’uomo è sbarcato sulla Luna, di quell’evento straordinario ho solo deivaghi ricordi, ma uno in particolare è rimasto indelebile nella mia mente: mio padre che miregala un modellino dell’Apollo 11 e mi dice, in parole semplici, che negli anni a venire avreiassistito alla conquista del cosmo, la strada era ormai aperta, era solo una questione di tempo.Da allora sono passati trentacinque anni e l’uomo, o meglio una sua estensione robotica, staesplorando Marte alla ricerca di acqua. È incredibile come l’importanza di questo evento siapassato, dopo l’impatto iniziale, quasi in secondo piano; al giorno in cui scrivo, i quotidiani (nontutti per fortuna), danno più evidenza ad un bacio appassionato tra i concorrenti del GrandeFratello che alla incredibile conferma che tanto tempo fa su Marte scorreva acqua in cui sisarebbero potute sviluppare primitive forme di vita.Siamo talmente assuefatti dall’evolversi incessante della tecnologia che un evento come questodiventa quasi “normale”. Così mentre il venti Luglio del 1969 milioni di persone erano incollateal video per assistere in diretta a quei primi passi dell’uomo sul nostro satellite naturale, oggil’esplorazione marziana non ci sconvolge più di tanto.Ma ci pensate? Spirit è su Marte a cinquecento milioni di km di distanza dalla Terra, noi locontrolliamo, gli diciamo cosa fare e come farlo.Sembra quasi che Marte sia proprio dietro l’angolo...Ci è sembrato quindi doveroso dedicare a Spirit, probabilmente la più alta espressionedell’umana tecnologia, la copertina di questo mese, affidando a Riccardo Ricci la stesuradell’articolo.

Come preannunciato nel numero precedente, inizia il viaggio di Scuolabus che questo mese fatappa all’ITIS “Leonardo Da Vinci” di Pisa, il quale presenta un bellissimo progetto sulla gestionedi un motore passo-passo. Abbiamo già ricevuto tante richieste di partecipazione, quindi sevolete che anche il vostro istituto appaia su queste pagine, scrivete senza esitare a:[email protected] giudicare dal numero di messaggi che ci avete inviato, la rubrica Praticamente ha centrato ilbersaglio, molti di voi hanno risolto il quiz proposto lo scorso mese, questo ci rende davverofelici, è una grande soddisfazione vedere che Fare Elettronica contribuisce all’accrescimento dellavostra conoscenza. In questa nuova puntata, Maurizio Del Corso spiega l’interfacciamento con leporte logiche e per la parte pratica vi guida alla realizzazione di un interruttore temporizzato.Abbiamo il piacere di annunciare che, da questo mese, riprende la nostra collaborazione conCarlo Pria, segretario dell'AIRE, quindi la conseguente disponibilità, per i lettori appassionati diradio d'epoca, del servizio gratuito per la fornitura di schemi ed informazioni tecniche.Completano il numero che state per leggere: Simone Bernardi con la quarta parte dell’articolodedicato alle logiche programmabili, Fabrizio Fazio con il progetto di un contatore modulare adisplay (ideale complemento dell’applausometro elettronico presentato precedentemente), NicoGrilloni con la terza ed ultima parte del corso su “Spice”, ancora Maurizio Del Corso con laseconda ed ultima parte dell’alimentatore USB, Sergio Tanzilli con la settima parte di “VitaminaC” e la quinta parte di “PIC Microcontroller By Example” (coadiuvato dal sottoscritto), NicolaUlivieri con un trattato sul bus CAN e Fabio Fioravanzo che, visto il grande successo di “Easy” ilprogrammatore di PICmicro da lui presentato nel numero 222, risolve i problemi più comuniincontrati dai lettori ed affronta la programmazione in-circuit per la quale Easy è predisposto.In Robomania trovate la quinta ed ultima parte del “Manuale semiserio di robotica” scritto daMarco Fabbri e la seconda parte della realizzazione pratica di “Bioquadrapod” il robot presentatosul numero 223 da Luigi Carnevale.Concludo questo mio intervento mensile introducendo la nuova versione della rubrica dedicataalle fiere e mostre mercato.

Non mi resta che augurarvi una piacevole lettura e vi do appuntamento al prossimo numero inedicola ad Aprile.

“MARTE È DIETRO L’ANGOLO…”

3

edito

riale

DIRETTORE RESPONSABILE:

GianCarmelo Moroni

DIRETTORE DI REDAZIONE:

Tiziano Galizia ([email protected])

PROGETTO GRAFICO E IMPAGINAZIONE:

Graficonsult - Milano ([email protected])

HANNO COLLABORATO:

Nicola Ulivieri, Fabrizio Fazio, Marco Fabbri, Sergio Tanzilli,

Maurizio Del Corso, Simone Bernardi, Nico Grilloni, Riccardo Ricci,

Fabio Fioravanzo, Carlo Pria, Luigi Carnevale

DIREZIONE - REDAZIONE - PUBBLICITÁ

INWARE srl

Via Cadorna, 27/31 - 20032 Cormano (MI)

Tel. 02.66504794 - 02.66504755 - Fax 02.66508225

[email protected] - www.inwaredizioni.it

STAMPA:

ROTO 2000

Via Leonardo da Vinci, 18/20 - 20080 Casarile (MI)

DISTRIBUZIONE:

Parrini & C. S.p.a.

Viale Forlanini, 23 - 20134 Milano.

Il periodico Fare Elettronica è in attesa del numero di iscrizione al ROC

UFFICIO ABBONAMENTI

PARRINI & C. S.p.a. Servizio abbonamenti

Viale Forlanini, 23 - 20134 Milano

Per informazioni, sottoscrizione o rinnovo dell’abbonamento:

Telefono: 02.66504794 - Fax: 02.66508225

Email: [email protected]

Spedizione in abbonamento postale 45% art. 2 comma 20/Blegge 662/96 - Milano.

Abbonamento per l’Italia: € 39,00

Abbonamento per l’estero: € 99,00

Per la sottoscrizione degli abbonamenti, utilizzare il modulo stampatoin ultima pagina.

Gli arretrati potranno essere richiesti, per iscritto, al seguente costo:

Numero singolo: € 7,50

Numero doppio: € 9,00

Autorizzazione alla pubblicazione del Tribunale di Milano n. 647 del 17/11/2003 INWARE srl.

© Tutti i diritti di riproduzione o di traduzione degli articoli pubblicati sono riser-

vati. Manoscritti, disegni e fotografie sono di proprietà di INWARE srl.

Diritti d’autore: La protezione del diritto d’autore è estesa non solamente al con-

tenuto redazionale di Fare Elettronica ma anche alle illustrazioni e ai circuiti

stampati. Conformemente alla legge sui Brevetti n.1127 del 29-6-39, i circuiti e gli

schemi pubblicati su Fare Elettronica possono essere realizzati solo ed esclusiva-

mente per scopi privati o scientifici e comunque non commerciali. L'utilizzazione

degli schemi non comporta alcuna responsabilità da parte della Società editrice.

La Società editrice è in diritto di tradurre e/o fare tradurre un articolo e di utiliz-

zarlo per le sue diverse edizioni e attività, dietro compenso conforme alle tariffe

in uso presso la società stessa.

Alcuni circuiti, dispositivi, componenti ecc. descritti in questa rivista possono be-

neficiare dei diritti propri ai brevetti: la Società editrice non assume alcuna re-

sponsabilità per il fatto che ciò possa non essere menzionato.

Elenco inserzionisti

Richieste di assistenza

Artek 27-61A.R.I. Pescara 45Blu Nautilus 23-75Contrive 107Elettroshop III copElettroterm 11ERF 13Futura 9-33-53G.P.E. kit 95Grifo II copParsic 37-85Pianeta Elettronica 43Sandit 110

Collaborare con Fare ElettronicaLa redazione di Fare Elettronica è alla ricerca dicollaboratori per la stesura di articoli, progetti,tutorials, rubriche e libri.Le richieste di collaborazione vanno indirizzate aTiziano Galizia ([email protected]) eaccompagnate, se possibile, con una brevedescrizione delle vostre competenze tecniche e/oeditoriali, oltre che da un elenco degli argomentie/o progetti che desiderate proporre.

Per richiedere assistenza o chiarimenti sugli articolipubblicati, vi preghiamo di contattare l’autore, ilcui nome ed indirizzo email è sempre riportatosotto il titolo dell’articolo stesso.Nel caso ciò non fosse possibile potete scrivere [email protected], ricordandovi dispecificare il numero della rivista ed il titolodell’articolo per il quale chiedete chiarimenti,oltre al vostro nome, cognome ed indirizzo email.Tutte le richieste con informazioni insufficienti oanonime non saranno prese in considerazione.

Come contattarciIndirizzo email della Redazione:

[email protected] email dell’Ufficio Abbonamenti:

[email protected] nostri numeri telefonici:

Telefono 02.66504794 Fax 02.66508225Il nostro indirizzo postale:

INWARE EdizioniVia Cadorna, 27/3120032 Cormano (MI)

www.farelettronica.com

SOMMARIO

tecnologie sperimentaliIl bus CAN 70di Nicola Ulivieri

Spirit, una missione, un robot 86(prima parte)di Riccardo Ricci

tutorialPIC® Microcontroller 24By Example (quinta parte)di Tiziano Galizia e Sergio Tanzilli

Vitamina C (Settima parte) 78di Sergio Tanzilli

praticamenteInterfacciamoci con le porte logiche 28(interruttore temporizzato)di Maurizio Del Corso

scuolabusITIS “Leonardo da Vinci” Pisa 54

MhzRicordo dei bollettini tecnici della Geloso 82di Carlo Pria

hardwareIntroduzione alle logiche 14programmabili (quarta parte)di Simone Bernardi

Note sull’utilizzo e la programmazione 34in-circuit con “Easy”, programmatoredi PICmicro™

di Fabio Fioravanzo

Contatore modulare a display 38di Fabrizio Fazio

Spice: la simulazione dei circuiti 46elettrici ed elettronici (terza parte)di Nico Grilloni

Alimentatore USB (seconda parte) 96di Maurizio Del Corso

rubricheMailbox 6

News 10

Le fiere e mostre mercato 76di Aprile 2004

In Vetrina:

Telecontrollo GSM EL35.002: 111un “teleassistente” al vostro servizio

robomaniaManuale semiserio di robotica 100(quinta parte): muovereun braccio roboticodi Marco Fabbri

Bioquadrapod un robot a quattro 104gambe: realizzazione pratica(seconda parte)di Luigi Carnevale

RELÈ DI PICCOLE DIMENSIONISalve,come sempre mi congratulo per la novità degliarticoli nella rivista. Vi mando questo messaggio perchiedervi chiarimenti su questo problema: ho un cir-cuito con uscita 0/5 V e vorrei collegarci un relé per ac-cendere, quando il segnale è di 5 V, una lampada colle-gata alla 220 V. Che tipo di relé posso utilizzare inquesto caso? Ne esiste uno di dimensioni piccole da cir-cuito stampato?

Francesco Rosati

Per quanto riguarda i collegamenti elettricitra l’uscita del suo circuito ed il relé, la rimandiamoalla nuova rubrica “Praticamente…” in cui questomese si analizzano i circuiti più comuni per interfac-ciare le uscite delle porte logiche.Per quanto riguarda il tipo di relé da impiegare,questo dipende dalla corrente assorbita dalla lam-pada che intende utilizzare. Tale valore si può de-durre dalla potenza della lampada stessa.Facciamo un esempio: supponiamo di dover accen-dere una lampada da 220V 25W tramite il relé. Unastima (approssimata per eccesso) della corrente as-sorbita dalla lampada è data da I=P/V dove P è lapotenza e V la tensione di funzionamento della lam-pada. Nel nostro esempio avremo I=0.12A per cuiun relé da 1A sarà più che sufficiente.Consigliamo di sovradimensionare ampiamente ilrelé per non incorrere in problemi dovuti al surri-scaldamento. Esistono relé da circuito stampato, madate le loro piccole dimensioni, normalmente nonsono adatti a pilotare direttamente carichi alimen-tati alla tensione di rete. Questi relé possono però

R

D pilotare altri relé ai quali verrà applicato il carico.

COS'È UN TRIMMERI complimenti sono dovuti, la vostra rivista è veramenteinteressante. Già che ci sono ne approfitto per farvi unadomanda che probabilmente per voi sarà banale, mache non lo è per qualcuno che non ha fatto corsi per pe-riti elettrotecnici.Cos'è un trimmer e come funziona? I corsi del Politecnicohanno coperto principalmente come didattica compo-nenti quali diodi, BJTt, MOS e JFET (oltre che ovviamenteresistenze, condensatori e induttori). Sarà anche impor-tante sapere come è fatto un 741 ma credo che trascu-rino poi altri componenti che sono poi quelli che po-trebbe capitare di vedere tutti i giorni (se uno si interessadi elettronica ovviamente).Grazie per l'attenzione dedicatami.

Luca Maccone

Un trimmer è una resistenza variabile il cuivalore può essere impostato spostando il cursoremobile proprio come avviene nei potenziometri. Ladifferenza principale fra un trimmer ed un potenzio-metro sta soprattutto nelle dimensioni e nella facilitàdi spostamento del cursore.Il trimmer è infatti di dimensioni piuttosto ridotte ed ilcursore può essere spostato solamente con l’ausilio diun cacciavite. Queste caratteristiche rendono il trim-mer un componente assai utile come elemento di ta-ratura, infatti, una volta posizionato il cursore nell’op-portuna posizione, risulta praticamente impossibilespostarlo in maniera accidentale. Per sicurezza in al-cuni apparati, dopo la taratura, il trimmer viene rico-

R

D

Dubbi, perplessità,malfunzionamenti, opinioni,commenti o richieste? Inviateli a: [email protected]

Oppure scriveta a:Mailbox - Redazione di Fare ElettronicaInware srlVia Cadorna, 27/31 - 20032 Cormano (MI)

Le lettere più interessanti saranno pubblicate in queste pagine.Per quanto possibile, inoltre, cercheremo di dare una risposta privata achiunque ci scriverà via email.

mai

lbox

MAILBOX6

perto con un collante che neimpedisce ulteriori manomis-sioni.I trimmer possono essere ditipo lineare o logaritmico: nelprimo caso la resistenza varia li-nearmente con lo spostamentodel cursore ovvero ruotando ilcursore ad esempio di 10° la re-sistenza varia di una quantitàfissa indipendentemente dalla

posizione iniziale del cursore. Nei trimmer logaritmiciinvece, a parità di spostamento del cursore, la varia-zione di resistenza è maggiore se la posizione inizialedel cursore è vicina ad una delle due estremità.Esistono inoltre trimmer monogiro e multigiro. Neiprimi il cursore può essere spostato per un arco di120° mentre nei multigiro il cursore si sposta me-diante 25 giri di una vite. È evidente che nel secondocaso la variazione di resistenza è più precisa.

SEGNALE VIDEOSalve, sto realizzando con i PIC dei sistemi per visualiz-zare immagini sul televisore attraverso il segnale video-composito. La mia domanda è questa: alcuni dicono cheil segnale deve essere tra 0,3 ed 1 V per l'immagine e di 0V per i sincronismi, altri dicono che l'immagine deve es-sere tra 0 e 0,7 V ed invece i sincronismi a -0.3 V. Qualeè la verità? Vi ringrazio tanto e buon lavoro.

Giovanni Galati

Un segnale video nello standard CCIR/PAL, ècaratterizzato da 625 linee per ciascuna schermata(frame) e ripete 25 schermate ogni secondo.Ogni frame è diviso in 2 campi (detti “pari” e “dis-pari”) ciascuno dei quali è composto da 312.5 linee. Icampi vengono quindi visualizzati 50 volte al secondo.Le linee relative ai campi pari-dispari vengono visualiz-zate in modo alternato (come mostrato nella figura 2)e questa tecnica è identificata con il termine “interla-cing” (interlacciamento).L’interlacciamento viene usato per ridurre l’effetto dilieve intermittenza nella luminosità dell’immagine vi-sualizzata. Il processo di esame intrecciato è indicatoin figura 2.

L’inizio di una linea orizzontale è contrassegnato da unimpulso di sincronizzazione orizzontale mentre l’inizio diogni campo è contrassegnato da un impulso di sincro-nizzazione verticale.Per quanto visto finora in ogni frame ci sono 625 im-

R

D

pulsi di sincronizza-zione orizzontale e50 impulsi di sincro-nizzazione verticaleper ogni secondo.Gli impulsi di sincro-nizzazione assicu-rano che l’imma-gine sia perfetta-mente bloccatasullo schermo.

Per segnali video monocromatici, l’immagine è costi-tuita da informazioni sulla luminanza (Y), 0 V è il livellodel nero, mentre 0,7 V corrisponde al bianco. Gli im-pulsi di sincronizzazione orizzontale hanno ampiezzadi 0,3 V negativi. Il segnale video relativo ad una lineaha quindi la struttura di figura 3.

BATTERIE RICARICABILI DA 1,2 VDevo alimentare un circuito auto-costruito con delle batteriericaricabili, ma non riesco a trovarne da 1,5 V. In pratica hobisogno di raggiungere la tensione di 4,5 V, ma utilizzando3 batterie al Ni-Cd da 1,2 V raggiungo soltanto 3,6 V, in-vece, utilizzandone 4 raggiungo 4,8 V. Insomma non riescoa centrare la tensione che mi serve. Perché non si trovanobatterie ricaricabili da 1,5 V ma solo da 1,2 V?Continuate così Fare elettronica è una rivista moltointeressante.

Francesca Amodio

Il motivo sta nella reazione chimica che ge-nera la differenza di potenziale: nelle pile alcalinel’elemento base genera 1,5 V mentre nelle ricarica-bili Ni-Cd è 1,2 V.Tutti i valori sono multipli dei valori base. Non èdetto quindi che se un dispositivo funziona con bat-terie alcaline funzioni anche con batterie ricaricabili.Tutto dipende dalla tolleranza che il dispositivo am-mette sulla tensione di alimentazione. Provare non ècomunque distruttivo se la differenza si mantiene in-torno a 0,5 V: al più il dispositivo non si accenderà.Le batterie ricaricabili sono comunque migliori perquanto riguarda la capacità di erogare corrente in-fatti si possono superare anche i 2 Ah (ovvero la

R

D

MAILBOX 7

Figura 2: Frame video nello standard PAL

Figura 3: Struttura del segnale video relativo ad una linea

batteria è in grado di erogare 2 A di corrente perun ora) contro i decimi di Ampere delle normalipile alcaline.

SENSORE DI TEMPERATURASpettabile Fare Elettronica, sfogliando la rivista 202(Aprile 2002), mi sono soffermato ad analizzare un po’nel dettaglio il funzionamento del modulo termometro (-0°/150°C) a pagina 82. Per curiosità ho anche scaricatoil datasheet del sensore LM35CZ (dal sito della NationalSemiconductor), ma mi sono accorto, controllando lapiedinatura, che il collegamento del sensore nella fotodella rivista (paina 84 figura 4), è errato. Infatti il termi-nale + è stato collegato a massa e viceversa. Sto sba-gliando io oppure è cosi?

Pier Magliani

Il sensore di temperatura LM35CZ è un dispo-sitivo che fornisce una tensione in uscita, proporzio-nale alla temperatura dell’ambiente in cui si trova im-merso.In particolare, la tensione di uscita si incrementa di10mV per un aumento della temperatura di 1°C. La

pedinatura del sensore èquella di figura 4, per cuile connessioni riportatenel progetto indicato dallettore, sono corrette. Sifaccia attenzione allascritta “bottom view”che indica la vista dalbasso del dispositivo.

SENSORE DI PROSSIMITÀPer arricchire un piccolo robot di mia costruzione, vorreirealizzare un sensore di prossimità impiegando un led adinfrarossi ed un fototransistor, in modo da eccitare un relénel caso in cui il robot rilevi un ostacolo. Avete uno schemada suggerirmi? Grazie per la vostra risposta.

Lorenzo Ferrari

È possibile realizzare un sensore di prossimità,utilizzando il circuito in figura 5.Quando il fototransistor è illuminato la tensione sul mor-setto invertente si abbassa e, se scende sotto il livello im-postato per quella sul morsetto non invertente, l’uscitadell’operazionale va a livello alto ed il relé si eccita.Il circuito funziona ad alimentazione singola.Se vuole agire sulla sensibilità del fototransistor può uti-lizzare lo schema in figura 6.

R

D

R

D

MAILBOX8

Figura 5: Schema del sensore di prossimità

Figura 6: : Schema del sensore di prossimità con regolazione della sensibilità

Figura 4: Terminali del sensore LM35CZPANRADIO MOD.111

Mi rivolgo a voi per avere notizie su di un ricevitore che honella mia collezione. Si tratta di un apparecchio il cui mo-bile ha lo stile tipico della produzione a cavallo fra la finedegli anni '40 ed i primi anni '50. Su di una targhetta è ri-portata l'indicazione "Panradio mod.111".Chiedo a voi notizie in merito a questa marca oltre che loschema elettrico del ricevitore per procedere al restauro.

Renato Bernardi

Il Panradio mod.111 è stato costruito negli anni1946/47 dalla FIMI/Phonola per conto della Refit.La Refit era una organizzazione commerciale, con sedea Roma, che distribuiva apparecchi radio con i marchiKosmovox e Panradio, la cui costruzione era affidata allaFIMI/Phonola di Saronno. Si tratta di apparecchi co-struiti con la cura e la qualità tipiche di questo fabbri-cante. La produzione di questi marchi risulta cessata in-torno alla metà degli anni '50.Per posta Le abbiamo inviato lo schema elettrico del-l'apparecchio.

R

D

ad altre soluzioni. Il fil-traggio attivo elimina ilringing in ingresso al con-vertitore DC-DC e miglio-ra la risposta ai transientidi carico e di linea. A dif-ferenza delle soluzionipassive, il QPI-1 attenua ilrumore sull’intera gammadi frequenze. Inoltre, nonvi sono elementi risonantiche possano amplificare ilrumore stesso. Il QPI-1risponde alle specifichedel bus Telecom interna-zionale da 36 a 75V CC,incluso il picco da 100 V –100 ms.

readerservice.it 412 - 56

DRIVER MOSFETLtc4440 di LinearTechnology (SilverstarCeldis) è un driver Mosfeta canale N high side tolle-rante ai transitori con gatedriver che minimizzanoperdite di commutazionein alimentatori. Alloggiatoin package ThinSot eMsop a 8 lead, il funziona-mento a 80 V (transitori100 V), corrente di uscitapull-up di picco di 2,4 A eimpedenza di uscita pull-down di 1,50 ohm lo ren-dono perfettamente adat-to per pilotare Mosfet disoglia standard a corren-te, tensione e capacità digate elevate. Migliora ilrendimento e la capacitàdi potenza in uscita diconvertitori Dc/Dc ridu-cendo, rispettivamente a7 e 10 ns, i tempi di salitae discesa di gate Mosfetallorché pilotino carichi di1.000 pF. Perfeziona leprestazioni di alimentatoriin sistemi telecom 48 V

NEWS412

Questo spazio è gentilmen-te offerto da EONews, ilQuindicinale di notizie ecommenti per l’industriaelettronica di VNU Business

Publications Italia.

IDEE DI PROGETTO: LANUOVA INIZIATIVA SULWEB DI ELETTRONICAOGGI

“Idee di progetto – DesignIdeas” è la nuova rubrica diElettronica Oggi che è statalanciata dal mese diSettembre 2003. Caratteri-stica saliente di questa nuo-va iniziativa è che sarà com-pletamente ed esclusivamen-te on line ed accessibile dalsito www.ilb2b.it.L’obbiettivo principale è crea-re una vera e propria libreriadi idee alla quale tutti coloroche operano in maniera pro-fessionale nel mondo dell’elet-tronica possano “catturare”informazioni e suggerimentiutili per il loro lavoro quotidia-no. Questo nuovo strumentovi permette di scaricare, conun solo click, tutte le risorsenecessarie per risolvere velo-cemente qualsiasi problemae, in ultima analisi, minimiz-zare il time to market.

SENSORE DITEMPERATURACesvit Microelettronicaha sviluppato un sensoreche sfrutta le potenzialitàcombinate della sensori-stica e delle tecniche diidentificazione in radio-frequenza. In particolare,nel progetto denominatoMAMA (Monitoring fishfor manufacturing pro-cess with AdvancedMinaturised subsystemand radiofrequency Ap-paratus) l’azienda hamesso a punto un senso-re di temperatura inte-grato in un transponder a13,56 MHz. Il sistema,attualmente in uso perl’azienda Circeo Pesca,consente di ottenere unreporting completo e affi-dabile sulla storia termicadel prodotto, accesso intempo reale ai dati diproduzione e monitorag-gio continuo delle tem-perature operative. Il dis-positivo è in grado dimemorizzare valori ditemperatura nel range di–20, +70 gradi C a inter-valli di tempo program-mabili, con un’autono-mia massima di 3 setti-mane di operatività.

readerservice.it 412 - 51

MICROCONTROLLORECON MEMORIA FLASHEMBEDDEDÈ disponibile da ClaitronH8S/2377/F, il nuovomicrocontrollore a 16 bitdi Renesas con memoriaFlash embedded, proget-tato per ridurre costi,tempi di sviluppo, ingom-bri e consumi dei sistemi

complessi, aumentando-ne al tempo stesso l’affi-dabilità. È stato sviluppatoper il mercato Epos, ma sipresta all’impiego inmolte altre applicazioniconsumer e industriali.Opera a 3,3 V alla fre-quenza di 33 MHz concirca 15 Mips Dhrystone.Il suo assorbimento tipicoè di soli 80 mA. È dotatodi 384 kbyte di memoriaFlash e 24 kbyte di Ram.Esiste anche una versioneRom mascherata a bassocosto, particolarmenteindicata per realizzare lapiattaforma Stip con Jeff.

readerservice.it 412 - 52

FILTRO EMI ATTIVO PERIL MERCATO DEIBUS TELECOM

Vicor ha presentato ilnuovo filtro EMI attivoQPI-1 per applicazionicon convertitori DC-DCda 48V. Il QPI-1 mette adisposizione oltre 40dB diattenuazione del rumoredi modo comune e più di80 in modalità differen-ziale a 500kHz, con unmontaggio in superficieda 24,5 x 24,5 x 5,1mm.Il QPI-1 è in assoluto ilprimo filtro EMI attivodestinato al mercato deibus Telecom, e offre dal50 all’80% di risparmio dispazio su scheda rispetto

NEWS10

come anche in sistemi apotenza distribuita utiliz-zati in applicazioni auto-motive e industriali.

readerservice.it 412 - 60

FUSIBILE MONOUSORaychem Circuit Protec-tion, divisione di TycoElectronics, ha annuncia-to il suo primo fusibilemonouso per applicazionitelecom e networking. Lanuova serie di fusibiliFt600 è progettata peraiutare i produttori diapparecchiature per letelecomunicazioni nelrendersi conformi aglistandard statunitensi inmateria di sicurezza per le

situazioni di sovraccorren-te, inclusi Telcordia Gr-1089, Fcc Parte 68 e laterza edizione diUl60950.

readerservice.it 412 - 63

FAMIGLIA DI PLL PERAPPLICAZIONI AD ALTAFREQUENZAFujitsu Microelectronicsha annunciato la serieMB15F7xUV, una nuovafamiglia di sintetizzatoridi frequenza PLL doppisub miniaturizzati pro-gettata per il mercatodelle comunicazionimobili ad alta frequenza.Rispondendo alla do-manda di miniaturizza-

zione espressa dal merca-to, il progetto di questanuova generazione diPLL Fujitsu ha permessodi alloggiare i dispositivinel contenitore per PLLpiù piccolo attualmentedisponibile. Si tratta del-l’innovativo packageBump Chip Carrier (BCC)a 18-pad, caratterizzatoda un ingombro di soli2,4x2,7x0,45 mm.Questo package consen-te di montare i dispositi-vi in un’area pari a quasila metà di quella occu-pata dai PLL più piccoliattualmente in commer-cio, a fronte di un’altez-za inferiore del 40%rispetto alle soluzioni

convenzionali.

readerservice.it 412 - 66

CONVERTITORIANALOGICO-DIGITALIQUADRUPLII convertitori analogico-digitali quadrupli Ad9229e Ad9289 di AnalogDevices sono integrati inun chip allo scopo di sod-disfare le necessità deisistemi vincolati da pro-blemi di spazio, ad altadensità, quali sistemi diimaging medicale, oapplicazioni multicanale,quali stazioni base dicomunicazioni wireless.Utilizzando uscite di datiseriali a segnalazione dif-

NEWS 11

Via San Donato, 24 - 20052 Monza (MI)

Tel. +39.039.832465 - Fax +39.039.5960587

www.elettroterm.it - e-mail: [email protected]

ELETTROTERM S.r.l.

• Collegamento a distanza tra macchine o dispositivi

• Trasmissione dati tramite rete cellulare GSM e fissa

• Invio di comandi e interscambio di informazioni tramite messaggio SMS

• Modem GSM intelligenti

Gli specialisti della

tecnologia Wireless

ferenziale, a bassa tensio-ne, si è riusciti a incorpo-rare quattro Adc su unsingolo chip, creando unasoluzione compatta, velo-ce, competitiva in terminidi costi e efficiente infatto di potenza, riducen-do drasticamente conteg-gio dei pin, dimensionidei package, numero ditracce di scheda e rumoredel substrato.

readerservice.it 412 - 69

CONTROLLORI DC/DCMicrel (Aertronica) haprogettato e sviluppatouna famiglia di cinquenuovi controllori Dc/Dc(Mic2198/9/3/4/6) adalta efficienza e semplicida utilizzare, alloggiati inpiccoli package a bassonumero di pin.Mic2198/9 sono idealiper alimentare l’ultimagenerazione di chipsetimpiegati nelle odiernearchitetture Dc/Dc apunto di carico.Funzionano con tensionidi ingresso da 4,5 a 32 V,rendendoli adatti per usicon sistemi a bus dipotenza a 5, 12 e 24 V.Mic2193 è un buck con-troller sincrono in gradodi conseguire duty cyclefino al 100%, mentreMic2194 è un buck con-troller flessibile ottimiz-zato per applicazionibuck “step-down”. Mic2196, infine, è unboost “step-up” control-ler capace di generaretensioni e correnti a usci-ta elevata.

readerservice.it 412 - 70

DISPOSITIVI FPGANON VOLATILIActel ha annunciato ladisponibilità di dispositiviFpga non volatili ad alteprestazioni, qualificati perspecifiche industriali. Ilfunzionamento dei nuovidispositivi Axcelerator achip singolo di gradoindustriale, con densitàfino a 2 milioni di gate, Éora garantito con tempe-rature ambiente compre-se tra -40 e +85 gradicentigradi. Con questenuove soluzioni, Actelpuò fornire all’industriauna completa linea disoluzioni a basso consu-mo. L’estesa gamma ditemperature, unite a otti-me prestazioni, sicurezzadi progetto e immunitàdal firm-error, li rendeadatti per applicazionialternative agli Asic percomunicazioni di dati,telecomunicazioni, net-working, collaudo, misurae controllo industriale.

readerservice.it 412 - 74

CONVERTITORE ANALO-GICO-DIGITALE

Atmel ha annunciato ladisponibilità in volumi diproduzione di una nuovaversione del proprio con-vertitore analogico-digita-le finalizzato a ricevitorisatellitari in banda larga,radar/Ecm e applicazioni

di strumentazione difascia alta. SiglatoTs83102G0B, combinarisoluzione 10 bit, velocitàdi campionamento 2 Gspmax, larghezza di banda3,3 GHz in un compattopackage Cbga. Fornisceottime prestazioni consu-mando solo 4,6 W. L’Sdfrè di 60 dBfs a frequenze diingresso di 1,4 Gsps/700MHz e sempre nel campodi 55dBfs a frequenze diingresso di 2 Gsps/2 GHz.La distorsione di intermo-dulazione del terzo ordinea due toni è di 65 dB a 1,4Gsps su una banda 500MHz centrata attorno 1GHz, consentendo di digi-tare segnali in elevatabanda larga If con canaliadiacenti con minimicomponenti di spettroparasitici.

readerservice.it 412 - 75

SMART CARD A 32 KB Samsung Electronics hapresentato nel corso diCartes 2003 a Parigi la sua

NEWS12

COME OTTENERE MAGGIORI INFORMAZIONI

EONews offre il servizio “reader service” che vi con-sente, utilizzando l’apposito codice riportato alla finedi ogni news, di ricevere maggiori informazioni.

Visitate il sito www.readerservice.it e compilate lacartolina virtuale con i vostri dati, il numero della rivi-sta, questo mese il 412, ed i numeri di reader servicepresi delle notizie che vi interessa approfondire.

EONEWS provvederà, tempestivamente, a contattarele aziende interessate, che invieranno al vostro indi-rizzo tutta la documentazione disponibile.

nuova smart card a 32Kbche combina insiemeinterfacce contact e con-tactless. La doppia inter-faccia permette di accede-re a una più ampiagamma di servizi e, con-sente a chi li eroga di trar-re benefici da una piùampia base di lettori dicard. Con una EPROM di32Kb, la card è capace disupportare anche un“public key cryptographyengine” che ne aumentala sicurezza. Con questodispositivo Samsung hafornito la risposta allerichieste di applicazionisicure, con un sistemaoperativo capace di sup-portare molteplici applica-zioni. Infatti, la configura-zione permette di suppor-tare applicazioni comeJava Virtual Machine e lerelative applets, consen-tendo alla nuova tecnolo-gia di crescere anche neimercati con contenuti avalore aggiunto.

readerservice.it 412 - 78

INTRODUZIONE ALLELOGICHE PROGRAMMABILI INTRODUZIONE ALLELOGICHE PROGRAMMABILI di Simone [email protected]

MINIMAX-44

Negli ultimi tempi ho seguito lo svi-luppo di alcune schede cheutilizzavano CPLD Altera; leprime volte mi sono messol’anima in pace e ho cablatoi prototipi su una basettamillefori, poi ho deciso chene avevo abbastanza ed hoacquistato la scheda di svi-luppo descritta in questepagine. La MiniMAX-44,visibile in figura 1, consentedi avere a disposizione tuttigli ingressi e le uscite di unaCPLD a 44 pin, senza dover-si preoccupare del cablaggioe dei problemi di alimenta-zione. La scheda comprendequindi essenzialmente unalimentatore che permettedi selezionare 5 V o 3.3 V, icondensatori di bypass suipin di alimentazione delchip, una serie di connettori a petti-ne attraverso i quali si può accedere

ai pin di I/O della CPLD; questi ulti-mi, infine, sono provvisti di oppor-

tuni pull-down resistivi.La MiniMAX-44 è intenzionalmente

priva di orpelli, quali interfacce, dis-play, memorie, che sono spesso

montati sulle schede di svi-luppo per logiche program-mabili; gli unici “dispositivi”di I/O previsti sono 4 pul-santi, 4 dip-switch e 8 led,tutti escludibili. Come con-seguenza la scheda è sem-plice, affidabile, flessibile e,soprattutto, economica.

La MiniMAX-44 può ospita-re le CPLD Altera:

EPM3032ALC44EPM3064ALC44EPM7032SLC44EPM7064SLC44

di cui ci siamo occupati indettaglio nella seconda pun-tata, ed è stata realizzatatenendo conto delle dueprincipali differenze tra i dis-positivi MAX70XX e i

MAX30XX; i primi, infatti, funziona-no a 5 V mentre i secondi a 3.3 V ed

Ovvero: gran finale. Una scheda di sviluppo per CPLD Altera, su cui sperimentare apiacimento ogni possibile circuito digitale. Contatori, decodifiche, look-up table, timer,PWM controller, una lista infinita di applicazioni senza doversi preoccupare dinient’altro che di amministrare la propria fantasia e creatività.Dopo i voli tranquilli delle puntate precedenti e le prime manovre di alta quota sulTool di progettazione e simulazione MAX II Plus, è il momento di eseguire qualchevera acrobazia, e riscuotere gli applausi...

HARDWARE

HARDWARE14

quarta parte

Figura 1: La scheda MiniMAX-44

è quindi stato previsto un jumper(JP1) per selezionare le due diversealimentazioni. Le MAX70XX e leMAX30XX sono pin-to-pin compati-bili tranne che per i pin 17 e 36, chesono generici pin di I/O per le primee pin di alimentazione (gnd) per leseconde; dunque sono stati previstidue jumper (JP2 e JP3) che permet-tono di assegnare questi due pin inmaniera opportuna.

Lo schema elettricoIn figura 2 è riportato lo schemaelettrico della scheda MiniMAX-44.Sulla destra è visibile la sezione del-l’alimentatore, che fa capo ad unLM317 la cui rete di regolazionepuò essere determinata in funzionedel jumper JP1: se il jumper vienelasciato aperto, la tensione VCC èpari a 5V, se il jumper viene inserito,tale tensione è invece 3.3V.

Sotto il gruppo di alimentazione si

trova il connettore a 10 poli dellaporta JTAG di programmazione, conle resistenze di pull-up R6 e R7 sullelinee TMS e TDI, e la resistenza dipull-down R8 sulla linea TCK; ci

siamo occupati in dettaglio di que-ste linee nella seconda puntata.

In alto a sinistra c’è il primo connet-tore a strip CON1 con i pin di I/O

HARDWARE

HARDWARE 15

Figura 2: Schema elettrico

CON1 CON2 CON3 CON4 CON5

gnd gnd gnd gnd gnd

vcc vcc vcc vcc vcc

43-I/glclk 14-I/O (S1) 41-I/O (LED8) 39-I/O 26-I/O

1-I/glclr 12-I/O (S2) 40-I/O (LED7) 37-I/O 25-I/O

44-I/oe1 11-I/O (S3) 24-I/O (LED6) 34-I/O 17*-I/O/gnd

2-I/oe2 9-I/O (S4) 21-I/O (LED5) 33-I/O 36*-I/O/gnd

8-I/O (S5/a) 20-I/O (LED4) 31-I/O

6-I/O (S5/b) 19-I/O (LED3) 39-I/O

5-I/O (S5/c) 18-I/O (LED2) 28-I/O

4-I/O (S5/d) 16-I/O (LED1) 27-I/O

Tabella 1: Numerazione del pin I/O sui connettori

glclk, glclr, oe1 e oe2. Nella parteinferiore dello schema sono visibiligli altri quattro strip CON2÷CON5.La lista dei pin disponibili per ognu-no di essi è riportata nella tabella 1.Tutti i pin di I/O sono provvisti diresistenze di pull-down da 47 KΩ.

Tutti i pin possono essere configura-ti individualmente come ingresso ouscita, tranne quelli disponibili sulCON1, ovvero 1, 2, 43 e 44, chepossono essere usati solo comeingressi. Come già detto i pin 17 e36 (*) sono pin di I/O per le

MAX70XX mentre sono pin dimassa per le MAX30XX e quindi, inquest’ultimo caso, devono essereinseriti i jumper JP2 e JP3 proprioper collegarli a massa.ATTENZIONE: utilizzando leMAX70XX i jumper JP2 e JP3 devo-no essere scollegati.

Ai pin facenti capo al CON2 è possi-bile collegare i pulsanti S1÷S4 e ilquadruplo dip-switch S5, inserendoil jumper JP4; scollegando tale jum-per, al contrario, i pulsanti non risul-tano alimentati e quindi i pin di I/Osono di fatto scollegati dagli switchstessi. In quest’ultimo caso, si consi-glia di tenere comunque aperti iquattro dip-switch di S5. La reteRN6 è stata prevista per proteggerela CPLD nel caso venisse premutoun pulsante connesso ad un pinconfigurato come output. Ai pinfacenti capo al CON3, invece, è pos-sibile collegare i led DL1÷DL8, inse-rendo il jumper JP5; scollegandotale jumper, i led non risultano ali-mentati e quindi i pin di I/O sono difatto scollegati dai led stessi.ATTENZIONE: ogni led risulta con-nesso tra Vcc e il pin della CPLDquindi si accende se il pin di uscitacorrispondente è a livello logico “0”e si spegne se è a livello logico “1”,Per finire, alla sinistra del chip sonovisibili i 4 condensatori di bypass,C1, C2 C3 e C4, che nella schedasono montati accanto ai pin di ali-mentazione della CPLD.

Le differenti impostazioni dei jum-per in base alla CPLD montata sullascheda sono riassunti in tabella 3.

Per alimentare la MiniMAX-44 Per alimentare la scheda è sufficien-te utilizzare un qualunque alimenta-tore a spina che sia in grado di ero-gare una tensione continua di 9-12V; l’assorbimento della schedadipende dalla frequenza di lavoro edalle schede aggiuntive che posso-

HARDWARE

HARDWARE16

Sigla Valore

PWR_PLUG Jack alimentazione da cs

C1÷C4, C6, C8 0,1 µF poliestere

C5 220 µF 25 V elettrolitico

C7 10 µF 25 V elettrolitico

CON1, CON5 Strip Femmina 6 poli

CON2÷CON4 Strip Femmina 10 poli

D1 1N4004

IC1 LM317T

JP1÷JP5 Jumper

JTAG Connettore Panduit Maschio da cs 10 poli

LD1÷LD8 Led 3mm rosso

LD9 Led 3mm verde

PLCC44 Zoccolo PLCC44

R1, R3, R6÷R8 1 KΩ 1/4 W

R2 330 Ω 1/4 W

R4 1,2 KΩ 1/4 W

R5 22 KΩ 1/4 W

R5 22 KΩ 1/4 W

RN1÷ RN5 47 KΩ Rete resistiva 8+1

RN6 1.5 KΩ Rete resistiva 8+1

RN8 47 KΩ Rete resistiva 4+1

S1÷S5 Pulsante omron n.a. da cs

S5 Dip-switch quadruplo

Tabella 2: Lista componenti della scheda MiniMAX-44

JP1 JP2 JP3

MAX30XX(EPM3032ALC44, EPM3064ALC44)

CHIUSO CHIUSO CHIUSO

MAX70XX(EPM7032SLC44, EPM7064SLC44)

APERTO APERTO APERTO

Tabella 3: Impostazione dei Jumper sulla scheda

no essere collegate sui connettori astrip; per evitare il surriscaldamentodell’integrato LM317, è bene nonsuperare i 2-300 mA di assorbimen-to e quindi fate riferimento a talevalore per la scelta dell’alimentato-re. Il jack deve avere il polo positivosul conduttore centrale.

Il segnale di clockAl contrario di un microprocessore,una logica programmabile non hanecessariamente bisogno di unsegnale di clock per funzionare. Se

ad esempio si vuole implementareuna decodifica, gli unici segnalinecessari sono quelli del bus diingresso e quelli del bus di uscita. Cisono tuttavia numerose applicazio-ni, come quelle descritte nelle pagi-ne seguenti, per le quali un segnaledi clock è indispensabile; laMiniMAX-44 non possiede un oscilla-tore a bordo, quindi questo segnaledeve essere fornito dall’esterno, usan-do, per esempio, un generatore dionde quadre, oppure un piccolo plug-in come quello in figura 3/a e 3/b.

Si tratta di un circuito molto sempli-ce, che utilizza porte NOT a triggerdi Schmitt in una classica configura-zione di retroazione; la lista deicomponenti è riportata nella tabella4. Con i valori indicati, attraverso ilTRIM1, si può variare la frequenzada un minimo di 10 Hz a un massi-mo di 8 KHz circa; basta sostituire ilcondensatore C2, comunque, perottenere intervalli diversi.

Attenzione alla scelta dell’integrato,che deve essere necessariamente deltipo HC per poter funzionare anchea 3.3 V.La schedina è stata pensata perpoter essere inserita indifferente-mente nella connettore CON1oppure nel connettore CON5; comegià detto, applicare il segnale diclock nella strip CON1, e quindi allalinea di Global Clock (pin 43), hasenso solo se si implementano pro-getti sincroni. Poiché questa appli-cazione è riservata a mani esperte,nella maggior parte dei casi è consi-gliabile utilizzare lo strip CON5. Inquesto caso il segnale di clock saràapplicato al pin 26, che dovrà quin-di essere assegnato ad una opportu-na primitiva di input.Nel caso che si utilizzi un segnale diclock esterno, è sempre consigliabile

HARDWARE

HARDWARE 17

Figura 3a: Schema elettrico scheda di clock Figura 3b: Scheda di clock

Figura 4a:Schema elettrico scheda di clock integrata

Figura 4b: Scheda di clock integrata

Sigla Valore

R1 100 Ω 1/4 W

TRIM1 100 KΩ

C1 0.1 µF poliestere

C2 1 µF poliestere

IC1 74HC14

CON1 Connettore strip 90° M 6 pin

Tabella 4: Lista componenti scheda di clock

Sigla Valore

C1 0,1 µF poliestere

OSC Oscillatore DIP8 1÷50 MHz

CON1 Connettore strip 90° M 6 pin

Tabella 5: Lista componenti scheda di clockintegrata

interporre una resistenza da200÷300 Ω tra il dispositivo esterno ela CPLD, per prevenire possibili guai.Per le applicazioni più spinte, è sicu-ramente più pratico utilizzare unoscillatore integrato, come quellomontato sulla scheda in figura 4/b;tale circuito utilizzata un oscillatorein DIL8 montato su zoccolo, così dapoter utilizzare oscillatori diversi, edè disponibile a richiesta congiunta-mente alla MiniMAX-44.

UN PROGETTO BANALE

Dove si spiega come assegnare ipin di I/O e come programmareuna CPLD con MAX II Plus…Per inaugurare la scheda di svilupporealizzeremo un semplicissimo pro-getto, attraverso il quale sarà possi-bile illustrare le ulteriori funzionalitàdi base di MAX II Plus. Per creare unnuovo schema, selezionate la voceNEW (menu File), quindi, comeabbiamo visto dettagliatamentenella puntata precedente, sceglieteil tipo Graphic Editor File e attivate ilcomando Set Project To Current File(shortcut CTRL+SHIFT+J); quindi sal-

vate il file con il nome di trivial.gdf.Inserite nel foglio di lavoro una pri-mitiva INPUT e una primitiva OUT-PUT, collegate l’una all’altra e asse-gnate il nomi di clock_in alla primae clock_out alla seconda. Sceglieteun dispositivo attraverso la voceDevice (menu Assign) in funzionedella CPLD montata sulla MiniMAX-44, ad esempio:EPM3032ALC44–10 e, fatto questo,cliccate con il pulsante destro delmouse sulla primitiva INPUT; nelpop menu che si apre, scegliete lavoce Assign\Pin/Location/Chip,come visibile in figura 5.

La finestra che si apre (figura 6) con-sente di assegnare i segnali delvostro progetto ai pin fisici di I/Odella CPLD. Seguendo la figura 6,assegnate il pin 26 al segnaleclock_in e premete il bottone ADD,quindi il pin 16 al segnale clock_oute premente di nuovo ADD. È anchepossibile cambiare un assegnazionegià fatta, selezionando la riga corri-spondente, inserendo il nuovonumero del pin e premendo il bot-tone CHANGE.

Come avrete intuito, questo banalis-simo progetto utilizza la CPLD comesemplice buffer tra il segnale diclock ed il diodo led DL1, cheappunto è connesso sul pin 16.Tornando sull’area di lavoro, assicu-ratevi che la voce ShowPin/Location/Chip (menu Option)sia spuntata; in questo modo potre-te vedere sullo schematico l’asse-gnazione dei pin: trivial@26 e tri-vial@16 (figura 7).

Un’ultima cosa ancora, prima dicompilare il progetto: è necessario

assegnare alcune regole generali disintesi per la compilazione. Sceglietequindi la voce Global Project LogicSynthesis (Menu Assign) e spuntatele varie voci come in figura 8,soprattutto quella relativa ai segnaliglobali (Automatic Global), checome ho ormai detto più volte,devono essere usati solo da maniesperte. Consiglio caldamente diutilizzare sempre queste impostazio-ni, perlomeno fino a che non avreteacquisito sufficiente dimestichezzacon i dispositivi ed il software. Bene,salvate e compilate il progetto.

Durante la compilazione, MAX IIPlus genera diversi file oltre a quelloper la programmazione della CPLD.E’ spesso utile dare un’occhiata al

HARDWARE

HARDWARE18

Figura 5: Il progetto trivial.gdf

Figura 6: La finestra Assign\Pin/Location/Chip

Figura 7: I pin assegnati trivial@26 e trivial@16

Figura 8: La finestra Global ProjectLogic Synthesis

Figura 9: La finestra Hierarchy Display

file di report, che termina con esten-sione .rpt e quindi, in questo caso, sichiamerà trivial.rpt. Per visualizzareil file, scegliete la voce HierarchyDisplay (menu MAX+Plus II) oppurepremete sul pulsante della Tool Barin cui è rappresentata un piramidegialla; come si vede in figura 9 lagerarchia del progetto comprende ilfile trivial.gdf e tutti i file creati,compreso trivial.rpt.Se aprite questo file con un doppioclick, vedrete che contiene un’infini-tà di informazioni dettagliate sullerisorse utilizzate e su quelle residue,sugli stili di sintesi utilizzati e, soprat-tutto, uno schema del pinout com-pleto della CPLD dopo la program-mazione (figura 10). I pin contrasse-gnati con la scritta RESERVED sonoinutilizzati e vengono connessi amassa internamente alla CPLD,quindi è consigliabile lasciarli noncollegati.

Programmare il dispositivo Scegliete la voce Programmer(menu Max+Plus II), si aprirà la fine-stra di programmazione (figura 11);sulla destra vengono elencati ilnome del file di programmazione,nel nostro caso trivial.pof, il disposi-tivo scelto ed il valore di checksum.Se non l’avete mai fatto prima,dovete prima di tutto selezionarel’hardware per la programmazione;selezionate quindi la voce HardwareSetup (menu Option) e selezionate

Byteblaster(MV), assicurandovi chela porta parallela sia quella a cuiavete effettivamente collegato laByteblaster.

Inserite il connettore JTAG nellaMiniMAX-44 e premete il tasto PRO-GRAM. Vedrete un indicatore avanza-re tra le funzioni Esamine, Program eVerify e in pochi secondi la vostraCPLD sarà programmata. Comeabbiamo avuto modo di precisarenella seconda puntata, durante la pro-grammazione il dispositivo si sconnet-te dal mondo esterno, collegandointernamente al chip dei deboli pull-up ad ogni pin di I/O; al termine dellaprogrammazione, tutti i pin di I/O deldispositivo assumono la configurazio-ne voluta e la CPLD comincia imme-diatamente a funzionare.

Se non l’avete fatto prima, infilatequindi la schedina di clock nel con-nettore CON5 (oppure collegate unsegnale di clock esterno al pin 26),regolate il trimmer in modo che pre-senti la massima resistenza e inseriteil jumper JP5, in modo da alimenta-re i diodi led. Vedrete immediata-mente lampeggiare il diodo DL8; laMiniMAX-44 con la schedina diclock inserita è visibile in figura 12.Per sperimentare un po’, potete pro-vare ad assegnare un pin di I/Odiverso al segnale clock_out, ricom-pilare e riprogrammare. Oppure,potete passare al prossimo progetto.

UNA PISTOLA LASER

Dove si incontra per la primavolta il MegaWizard Plug-InManager…Questo secondo progetto utilizzatutti gli 8 led disponibili sullaMiniMAX-44. Si tratta di un sempli-ce gioco di luci, ma attraverso que-sto circuito conosceremo uno deglistrumenti più interessanti di MAX IIPlus, il MegaWizard Plug-InManager. Questo strumento per-mette di utilizzare una serie dimacro, ovvero di blocchi digitaligenerici, scegliendo tra funzionilogiche aritmetiche, combinatorie esequenziali; ognuna di queste fun-zioni è disponibile all’interno diMAX II Plus e può essere configura-ta secondo le nostre necessità conpochi click di mouse.

Per cominciare create una cartellachiamata lasergun_dir all’internodella vostra area di lavoro (per esem-pio c:\max2work\lasergun_dir\),quindi, avviate un nuovo progetto,attraverso la voce NEW (menu File);selezionate come al solito la voce SetProject To Current File (shortcutCTRL+SHIFT+J) e salvate il file con il

HARDWARE

HARDWARE 19

Figura 10: Il pinout della CPLD nel file di report Figura 11: La finestra Programmer

Figura 12: Il sistema di sviluppoMiniMAX–44 completo

nome di lasergun.gdf. Adesso fatedoppio click sull’area di lavoro e,nella finestra di inserimento simboli,ciccate sul bottone MegaWizardPlug-In Manager.

Nella prima finestra del Wizard, sele-

zionate “Create a new custommegafunction variation” e premeteOK. Nella finestra successiva (figura13) sono elencati sulla sinistra i bloc-chi logici disponibili, raggruppatiper tipologia; nel nostro caso voglia-mo configurare uno shifter register.Quindi scegliete:STORAGE/LPM_SHIFTREG e inseriteil nome:c:\max2work\lasergun_dir\shift_gun nel riquadro a destra e premetesul bottone NEXT.

Nella finestra successiva, configura-te tutte le voci come in figura 14,quindi scegliete sempre OK. Dopol’ultimo OK, potrete inserire nel

foglio di lavoro il simbolo shift_gun(figura 15) che è, appunto, uno shif-ter register configurato a modovostro.Aggiungete quindi due input, il busq[7..0] e le otto uscite (figura 16);quindi selezionate il vostro targetdevice, ad esempio:EPM3032ALC44–10 e infine asse-gnate i pin di I/O come visibile infigura 17 e come elencato nellatabella 6.

Ricordo che per assegnare il nomead un bus, è sufficiente posizionareil cursore su di esso e poi, cliccandocon il pulsante destro, scegliere lavoce Enter Node/Bus Name. Dopoaver assegnato le proprietà globalidi sintesi come in figura 8, salvate ecompilate il progetto. Infine pro-grammate il dispositivo.Il funzionamento di uno ShifterRegister così configurato moltosemplice: ad ogni colpo di clock, laconfigurazione binaria dei registriinterni scorre di un posto verso il bitpiù significativo (q8); nel bit menosignificativo (q0) entra di volta involta il valore presente sul pin shot,che è connesso al pulsante S1.

Settate la frequenza del clock a20÷30 Hz e ricordatevi di inserire ijumper JP4 e JP5. In pratica, gli 8 ledscorreranno simulando, ad ognipressione del pulsante S1, il raggiodi una pistola laser. Bè, più omeno…

HARDWARE

HARDWARE20

Figura 13: Il MegaWizard Plug-In Manager

Figura 14: Configurazione dello Shift Register

Figura 15: Lo Shifter Register pronto ad essereinserito nel progetto

Pin Assegnazione

clock_in 26

shot 14

q0 41

q1 40

q2 24

q3 21

q4 20

q5 19

q6 18

q7 16

Tabella 6: Pin assignment per il progetto Lasergun

Figura 16: Il progetto lasergun

UN GENERATORE DI RAMPA

Dove si comincia fare sul serio e siparla apertamente di mixed-signal…Questa applicazione costituisce unesempio di interfacciamento tra unapplicazione prettamente digitalecome quella costituita da una logicaprogrammabile ed il mondo analo-gico; un progetto, insomma, mixed-signal…

L’idea è di realizzare un semplicegeneratore di rampa, oppure, inse-rendo un opportuno filtro, unsegnale a dente di sega. Lo schemaa blocchi del dispositivo è riportatoin figura 18; il primo blocco digitaleè un contatore binario a n bit, ilsecondo blocco è un convertitoreD/A, sempre a n bit. IL terzo bloccoè un filtro passa basso analogico,che può essere anche costituito dauna semplice rete RC.

Per la nostra applicazione, utilizzere-mo un contatore a 4 bit e una sche-dina D/A esterna costruita da una

semplice rete resistiva; i risultati nonsaranno eccellenti ma nessuno viimpedisce, successivamente, diaumentare la risoluzione del conta-tore e utilizzare un D/A integrato.Per questo tipo di schema, le resi-stenze devono avere valore crescen-te in maniera proporzionale a 2n edè importante che R5 sia almeno 3volte più piccola di R1.Per cominciare create una cartellachiamata ramp_dir all’interno dellavostra area di lavoro (per esempio:c:\max2work\ramp_dir\), quindi,

HARDWARE

HARDWARE 21

Sigla Valore

R1 1 KΩ 1/4 W

R2 2,2 KΩ 1/4 W

R3 4,7 KΩ 1/4 W

R4 8,2 KΩ 1/4 W

R5 330 Ω 1/4 W

D1÷D4 1N4148

C1 0,1 µF poliestere

CON1 Connettore strip 90° M 6 pin

Tabella 7: Lista componenti scheda D-A

Figura 17: La finestra Assign per il progetto lasergun Figura 18: Schema a blocchi di un generatore digitale di rampa

Figura 19: Schema elettrico D/A 4 bit

Figura 21: Configurazione del Contatore Figura 22: Il progetto ramp_generator Figura 20: Il MegaWizard per il progetto

ramp_generator

avviate un nuovo progetto, attraver-so la voce NEW (menu File); selezio-nate come al solito la voce SetProject To Current File (shortcutCTRL+SHIFT+J) e salvate il file con ilnome di ramp_generator.gdf.Adesso fate doppio click sull’area dilavoro e, nella finestra di inserimen-to simboli, ciccate sul bottoneMegaWizard Plug-In Manager.

Nella prima finestra, selezionate“Create a new custom megafunc-tion variation” e premete OK. Inquesto caso vogliamo configurareun contatore, quindi sceglieteARITHMETIC/LPM_COUNTER, inse-rite il nome:c:\max2work\ramp_dir\ramp_cntnel riquadro a destra relativo alnome e premete sul bottone NEXT(figura 20).Inserite i parametri nella finestrasuccessiva come in figura 21, strut-tura a 4 bit e conteggio “up only”;quindi premete sempre OK nellefinestre successive. A questo puntopotrete inserire nel foglio di lavoro ilcontatore configurato a modovostro; aggiungete quindi sul fogliodello schematico una primitivainput per il clock, disegnate il busq[3..0] e le quattro uscite come visi-bile in figura 22; assegnate il device,per esempio EPM3032ALC44-10 equindi i pin di I/O come nella tabel-la 8.

Dopo aver assegnato le proprietà

globali di sintesi come in figura 8,salvate e compilate il progetto;quindi, dopo aver inserito la schedi-na D/A sul connettore CON3, facen-do attenzione a che il pin gnd siainserito al posto giusto, program-mate il dispositivo. A questo puntopotrete visualizzare sullo schermodell’oscilloscopio una forma d’ondasimile a quella di figura 24.

Faccio notare che il basso valore diR4 limita l’ampiezza massima a circa0,5 V e che è possibile utilizzaredirettamente il segnale generatosolo collegando carichi ad altaimpedenza.Tuttavia, questo semplice progettoillustra con quanta semplicità è pos-sibile utilizzare uno strumento pura-mente digitale come una CPLD pergenerare segnali analogici; questocampo applicativo ha avuto unoforte sviluppo e l’utilizzo di tecnichedigitali per la sintesi di frequenze eforme d’onda arbitrarie (DDS DigitalDirect Synthesis) costituisce un’al-ternativa molto valida rispetto aisistemi a PLL.

Probabilmente avremo modo diaffrontare l’argomento con maggio-re dettaglio, sia da un punto di vistateorico che pratico, in uno dei pros-simi numeri della rivista.

DOWNLOAD

I file relativi ai progetti lasergun eramp_generator presentati in que-sto articolo sono scaricabili dal sitodi fare elettronica.

DOVE REPERIRE IL MATERIALE

Ho acquistato la scheda di sviluppoMiniMAX-44 presso la dittaDigitronix (www.digitronix.it), adun prezzo di 49 €. L’indirizzo com-pleto è:

DigitronixVia di Selvamaggio, 21/a53032 Colle di Val d’Elsa - SIENA

Tel. 0577 [email protected]

Sul sito troverete tutti gli ulterioridettagli relativi all’acquisto e allespese di spedizione, il prezzo degliaccessori come la schedina di clock,l’alimentatore e le CPLD MAX30xx eMAX70xx.

NELLA PROSSIMA PUNTATA

Nonostante le promesse, ragioni dispazio ci costringono a rimandarealla prossima puntata la parte riser-vata ai linguaggi di descrizione dell’hardware tipo VHDL e AHDL, ma viassicuriamo che l’attesa verrà pre-miata: realizzeremo infatti con pochiclick di mouse un generatore PWMe un controller per motori passopasso unipolari, provvisto di pin didirezione e selezione half/full step.

Vi anticipiamo che una MAX3032da pochi Euro può ospitare como-damente diversi blocchi logici diquesto tipo, per sottolineare quantol’approccio programmabile possacostituire un’alternativa anche eco-nomicamente vantaggiosa alle solu-zioni standard.

Arrivederci a presto.

HARDWARE

HARDWARE22

Figura 23: Il segnale di rampa all'uscita del D/A

Pin Assegnazione

clock_in 26

q0 41

q1 40

q2 24

q3 21

Tabella 8: Assegnazione pin per il progettoramp_generator

TUTORIAL24

In questa puntata vedremo comeutilizzare un display a cristalliliquidi o LCD (dall'inglese LiquidCrystal Display) dotato di 2 lineedi 16 caratteri ciascuna, control-landolo con il PIC16F84.I display LCD più comuni reperibi-li in commercio, dispongono diuna un'interfaccia ideata daHitachi che nel tempo è diventatauno standard industriale utilizzatoanche da altre case produttrici.Questo tipo di interfaccia prevedeche il display sia collegato almicro tramite un bus dati da 4 o 8linee più 3 linee di controllo e lelinee di alimentazione. Nellatabella che segue è riportata unabreve descrizione delle funzionisvolte dai pin normalmente dispo-nibili su questo tipo di display. Dallo schema elettrico, possiamonotare come, per ridurre al massi-mo i collegamenti tra il PIC ed ildisplay LCD, sia stata utilizzata lamodalità di collegamento dati a 4bit, impiegando soltanto le lineeDB4, DB5, DB6 e DB7. Le linee DB0, DB1, DB2 e DB3non saranno utilizzate ma collega-te a massa.Anche la linea R/W non sarà utiliz-zata e collegata direttamente amassa, con il risultato di aver sele-

zionato la modalità di funziona-mento in sola scrittura. In praticapotremo solo inviare dati all'LCDma non riceverli.

HELLO WORLD!

Prima di proseguire, è necessarioscaricare dal sito di Fare Elettronica(www.farelettronica.com) il pro-gramma d'esempio LCD1.ASM concui dovremo programmare il PICper realizzare il nostro esercizio.Per ragioni di spazio non abbiamopotuto inserirlo in questo articolo(sono circa 6 pagine).Una volta montato il tutto sullanostra classica “millefori”, ricon-trolliamo il montaggio per sicu-rezza e diamo alimentazione...Se tutto è andato per il meglio,all'accensione del circuito appari-rà sul display la schermata riporta-ta di seguito, ovvero "HELLOWORD !" che è diventata ormai lafrase di iniziazione che tutti gliaspiranti programmatori devonoaver visualizzato almeno una voltanella vita. Non potevamo esserecerto noi ad eludere questa tradi-zione.

Il risultato non è molto esaltante,ma la sostanza di quello chesiamo riusciti a fare è notevole eva studiata approfonditamente.Se non riuscite a visualizzare nullasul display, nonostante siate piùche sicuri di aver realizzato il cir-cuito correttamente e che il PICsia stato ben programmato (ricor-datevi a proposito di programma-re l'oscillatore in modalità XT e didisabilitare il Watch Dog Timer),sarà forse necessario regolare ilcontrasto del display LCD agendosul trimmer R2 connesso al pin 3del display.

LE LINEE ENABLE (E) E REGI-

STER SELECT (RS) DELL'LCD

Per poter visualizzare una scritta suldisplay, il PIC deve inviare tutta unaserie di comandi tramite le linee delbus dati (linee da DB4 a DB7). Per farquesto utilizza due linee di controllocon cui comunica al display l'opera-zione di trasferimento che cerca dicompiere sul bus. Le due linee dicontrollo sono la linea Enable (pin 6dell'LCD) e Register Select (pin 4dell'LCD).Con la linea Register Select (RS) il PICsegnala al display che il dato presen-te sul bus è un comando (RS=0) o undato da visualizzare (RS=1).

TUTORIAL

PIC® MICROCONTROLLERBY EXAMPLEPIC® MICROCONTROLLERBY EXAMPLE

Nella scorsa puntata abbiamo terminato, almeno per un po’, la parte teorica.Torniamo finalmente a realizzare qualcosa di pratico. Dopo aver realizzato nellelezioni precedenti dei semplici esperimenti con diodi LED e pulsanti, vediamo oracome interfacciare il nostro PIC16F84 ad un display LCD da 2 linee e 16 caratteri.

quinta partedi Tiziano Galizia ([email protected])

e Sergio Tanzilli ([email protected])

Tramite i comandi il PIC puòsegnalare al display il tipo di ope-razione da compiere, come adesempio spostare il cursore o puli-re lo schermo.Con i dati il PIC può inviare al dis-play direttamente i caratteri ASCIIda visualizzare.La linea Enable abilita il display aleggere il comando o il dato invia-to sul bus dal PIC.Il PIC deve preoccuparsi di avergià inviato sul bus dati il comandoo il dato giusto prima di mettere a1 il segnale di enable.

MULTIPLEX SUL BUS DATI

Sia i comandi che i dati sono rap-presentati da numeri a 8 bit, quin-di come è possibile inviarli al dis-play se il bus dati è composto dasole 4 linee?Viene fatta in pratica una opera-zione detta di "multiplex", ovveroogni byte viene scomposto in duegruppi di 4 bit i quali sono quinditrasmessi sul bus dati in sequenza.Vengono inviati prima i quattrobit meno significativi seguiti daiquattro bit più significativi.Nel nostro sorgente di esempio,

tutte le operazioni di trasmissio-ne dati e comandi verso il dis-play sono eseguite da una seriedi subroutine, semplificandocosì la complessità del nostroprogramma.

Prima di addentrarci nello studiodelle singole subroutine, vediamocome funziona il programma prin-cipale.

IL SORGENTE LCD1.ASM

Nella prima parte del nostro sor-gente sono definite alcunecostanti:

;Linee di controllo LCD

LCD_RS equ 2 ;RS

LCD_E equ 3 ;E

;Bus dati LCD

LCD_DB4 equ 4 ;DB4

LCD_DB5 equ 5 ;DB5

LCD_DB6 equ 6 ;DB6

LCD_DB7 equ 7 ;DB7

Queste costanti definiscono l'as-sociazione tra le linee del PIC(tutte connesse alla PORTA B) e lelinee del display. Le singole defini-zioni saranno usate all'internodelle subroutine di gestionedell'LCD al posto dei singolinumeri di identificazione dellelinee di I/O.

tmpLcdRegister res 2

msDelayCounter res 2

Di seguito viene allocato spazioper due registri: tmpLcdRegister,usato dalle routine di gestionedell'LCD e msDelayCounter usatodalla subroutine msDelay chegenera dei ritardi software da 1msper il contenuto del registro W.Questa subroutine viene utilizzatasempre dalle subroutine di gestio-ne per generare le temporizzazio-ni richieste durante la trasmissio-ne di dati e comandi all'LCD.

TUTORIAL

TUTORIAL 25

Pin Nome Funzione

1 GND GROUND - Questo pin deve essere collegato al negativodi alimentazione

2 VDD POWER SUPPLY - Questo pin deve essere collegato alpositivo di alimentazione (+5 V)

3 LCDLIQUID CRYSTAL DRIVING VOLTAGE - A questo pin deveessere applicata una tensione variabile da 0 a 5 V tramiteun trimmer per regolare il contrasto

4 RS

REGISTER SELECT - Questo pin è un’altra linea dicontrollo con cui si comunica al display se si sta inviandosul bus dati (linee da DB0 a DB7) un comando (RS = 0)oppure un dato (RS = 1)

5 R/WREAD/WRITE - Questo pin è un’altra linea di controllocon cui si comunica al display se s iintende inviare(R/W = 0) oppure leggere (R/W = 1) un dato

6 EENABLE - Questo pin è un’altra linea di controllo con cuisi può abilitare il display ad accettare dati ed istruzionidal bus dati (E = 1)

7 DB0 DATA BUS LINE 0 - Linea dati bit 0

8 DB1 DATA BUS LINE 1 - Linea dati bit 1

9 DB2 DATA BUS LINE 2 - Linea dati bit 2

10 DB3 DATA BUS LINE 3 - Linea dati bit 3

11 DB4 DATA BUS LINE 4 - Linea dati bit 4

12 DB5 DATA BUS LINE 5 - Linea dati bit 5

13 DB6 DATA BUS LINE 6 - Linea dati bit 6

14 DB7 DATA BUS LINE 7 - Linea dati bit 7

Segue una parte di definizionedelle linee di connessione tra ilPIC ed il display e quindi arriva laprima chiamata a subroutine checi interessa.

call LcdInit

LcdInit è una subroutine che deveessere chiamata solo una voltaall'inizio del programma e primadi qualsiasi altra subroutine digestione dell'LCD. Essa si occupadi effettuare tutte le operazioninecessarie per inizializzare corret-tamente l'LCD e consentire, allefunzioni successive, di poter ope-rare correttamente.Con le istruzioni seguenti:

movlw 00H

call LcdLocate

si posiziona il cursore del displaysulla prima riga e prima colonnadello schermo. I caratteri inviati

successivamente saranno visualiz-zati a partire da questa posizione.I quattro bit più significativi delvalore caricato nel registro W, conl'istruzione movlw 00H, conten-gono il numero della riga dove sivuole posizionare il cursore, men-tre i quattro bit meno significativicontengono il numero dellacolonna. Provando a cambiare ilvalore nel registro W possiamoottenere posizionamenti diversi.Con il valore10H, ad esempio,otterremo la schermata seguente:

A questo punto, per visualizzareogni carattere della scritta vengo-no utilizzate le seguenti istruzioni:

movlw 'H'

call LcdSendData

e così via per ogni lettera davisualizzare. Da notare che l'incre-mento della posizione del cursoreavviene automaticamente.

SUBROUTINE DI GESTIONE

DEL DISPLAY LCD

Vediamo brevemente quali funzio-ni svolgono le subroutine digestione del display LCD, fornitecon il sorgente LCD1.ASM.

LcdInit

Questa subroutine si occupa diinizializzare il display LCD e dipulire lo schermo. Deve esserechiamata una sola volta e prima diqualsiasi altra subroutine digestione dell'LCD. Non richiede alcun passaggio diparametri.

LcdClear

Pulisce il contenuto dello schermoe riposiziona il cursore sulla primacolonna della prima riga.

TUTORIAL

TUTORIAL26

Figura 1: Schema elettrico dell’interfaccia a display LCD

Non richiede alcun passaggio diparametri.

LcdLocate

Serve a posizionare arbitrariamen-te il cursore all'interno dell'areavisibile del display.Richiede il valore di riga e colon-na, per il posizionamento del cur-sore, nel registro W. I bit da D0 aD3 contengono il valore di colon-na (asse Y) mentre i bit da D4 aD7 il valore di riga (asse X). Lanumerazione delle righe parte dazero in alto. La numerazione dellecolonne parte da 0 a sinistra.

LcdSendData

Serve ad inviare un carattereASCII all'LCD, da visualizzare nellaposizione corrente del cursore.

Richiede nel registro W il valoreASCII del carattere da visualizzare.

LcdSendCommand

Serve ad inviare un comandoall'LCD. I comandi riconosciutidall'LCD sono riportati sul datas-heet dello stesso.Richiede nel registro W il valoread 8 bit del comando da inviare.

LcdSendByte

Questa funzione viene utilizzatainternamente dalle altre funzionidi gestione dell'LCD e si occupa dieffettuare lo split di dati e coman-di ad 8 bit sul bus dati a 4 bit.

CONCLUSIONI

Maggiori informazioni sul funzio-namento degli LCD possono essere

reperite direttamente sui datasheetche il rivenditore di fiducia dovreb-be essere in grado di fornire.Le subroutine presentate in que-sta lezione dovrebbero poter fun-zionare, con modifiche minime onulle, anche su LCD di diversotaglio.

Vi ricordiamo che è possibile sca-ricare il codice sorgente(LCD1.ASM) dell’esperimentoproposto, dal sito di FareElettronica: www.farelettronica.com

Riprenderemo sul prossimo numerocon un altro esercizio in cui amplie-remo le funzioni di questo circuitocon una porta seriale RS232 checollegheremo al nostro PC.

TUTORIAL

TUTORIAL 27

www.artek.it

Divertirsi è facile

• 4 ingressi

• 4 Uscite

• 1 Comparatore

• Opera con RTX Aurel

• Opera con telecomandi TV

Distributors Welcome

TOP MAX

NUTCHIP - PROGRAMMAZIONE ELEMENTARE A STATI LOGICI IN POCHI MINUTI

Sali a bordo e naviga sul sito WEB ARTEK per informazioni Tel. 0542.55900 - Fax 0542.55488

TOP MAX

Programma Professionale di

Eprom, Micro, Memorie, PLD, FPGA...

Oltre 3000 dispositivi supportati

In Offerta fino ad esaurimento scorte

Risparmi oltre 355 Euro,680.000 delle vecchie lire!!in collaborazione con EETOLS USA

NUTCHIP - PROGRAMMAZIONE ELEMENTARE A STATI LOGICI IN POCHI MINUTI

PRATICAMENTE...

INTERFACCIAMOCI CONLE PORTE LOGICHE(INTERRUTTORETEMPORIZZATO)

PRATICAMENTE...

INTERFACCIAMOCI CONLE PORTE LOGICHE(INTERRUTTORETEMPORIZZATO)di Maurizio Del [email protected]

ANALISI E SPECIFICHE DEL

PROBLEMA

Si deve progettare un circuito conun ingresso ed un’uscita in cuipremendo un pulsante si accendeuna lampada da 12 V / 5 W percirca 1 minuto. Il sistema puòessere suddiviso in due blocchi(figura 1): il primo blocco riceve ilcomando d’ingresso e genera inuscita un impulso della durata dicirca 1 minuto; il secondo bloccoha la funzione di azionare la lam-pada per la stessa durata dell’im-pulso d’ingresso.

LA SOLUZIONE OTTIMALE

Tra le possibili soluzioni, in figura2 è riportata quella più economicae “didatticamente interessante”.

Si riconoscono il circuito d’ingres-so (costituito dal pulsante e dalresistore R1), il generatore d’im-pulsi (costituito dalle due portelogiche, dal condensatore e dallaresistenza R) ed il circuito di pilo-taggio della lampada costituito daltransistor, R2, il diodo ed il relé.

Iniziamo l’analisi dello schema dalcircuito d’ingresso.Quando il pulsante non è premu-to, nella resistenza R1 non scorrecorrente quindi l’ingresso dellaporta logica si trova a massa, dun-que a livello logico “0”.Premendo il pulsante, l’ingresso

Puntuali come sempre, anche questo mese prendiamo lanostra pillola di elettronica. In questo numero approfondiremo lostudio dei circuiti tipici usati per applicare i segnali d’ingresso ai circuiti logicie per prelevarne le uscite pilotando carichi che altrimenti non potrebbero esserecomandati. Come applicazione di esempio realizzeremo un interruttore temporizzatoovvero un circuito che in seguito alla pressione di un pulsante, accende una lampadaper circa 1 minuto.

PRATICAMENTE

PRATICAMENTE28

Figura 1: Schema a blocchi del circuito da progettare

della porta logica viene collegatoal positivo di alimentazione (+5V)quindi portato al livello logicoalto. In questo caso è richiestadall’alimentazione una correntepari a Vcc/R1 dove Vcc è il valoredella tensione di alimentazione(nel nostro caso +5V).Con i valori scelti per il circuito difigura 2, tale corrente è limitata acirca 0,5mA. La resistenza R1 haquindi una duplice funzione: limi-ta la corrente quando il pulsante èchiuso, e funge da pull-downquando il pulsante è aperto.

Analizziamo ora il blocco “genera-tore d’impulsi” che in gergo tec-nico è chiamato “multivibratoremonostabile”.Le porte logiche utilizzate sonoNOR di tipo CMOS. La porta NORfornisce in uscita un livello bassose almeno uno dei suoi ingressi èalto ed in generale le porte CMOSsono caratterizzate da una resi-stenza d’ingresso molto alta, ilche significa che gli ingressi assor-bono una corrente praticamentetrascurabile.La porta B ha i due ingressi colle-gati insieme perciò funziona comeporta NOT, vale a dire l’uscita èbassa se l’ingresso è alto e vice-

versa (vedi tabella della verità nelriquadro di approfondimento).Per semplicità indicheremo i livel-li logici con “0” ed “1” ai qualicorrispondono rispettivamente ilivelli di tensione 0 V e 5 V.

Supponiamo che l’uscita dellaporta B sia bassa (V4=”0”) e che ilpulsante non sia premuto(V1=”0”): se V4=”0” alloraV3=”1” ed essendo V1=”0” si hache anche V2=”1”.Il circuito è quindi in uno stato diequilibrio in cui l’uscita vale zeroed il condensatore è scarico(essendo V2=V3).Premendo e rilasciando il pulsantesarà applicato un impulso positivoall’ingresso 1 della porta A, quin-di, l’uscita di tale porta commute-rà verso lo zero logico. Questabrusca variazione, si trasmetteinalterata su V3, quindi, l’uscitadella porta B commuta verso illivello logico alto. Il condensatoreinizia a caricarsi tramite la resi-stenza R facendo salire la tensioneall’ingresso della porta B. Quandotale tensione raggiunge un valorelimite, per cui viene riconosciutocome “1” logico dalla porta B(supponiamo che tale valore sia lametà della tensione di alimenta-

zione), la tensione V4 tornerà alivello basso e tutto il circuito tor-nerà nel suo stato di riposo.Da questa descrizione dovrebbeapparire chiaro che il tempo T incui l’uscita V4 permane a livelloalto, altro non è che il tempoimpiegato dal condensatore percaricarsi fino al livello limite (cheabbiamo supposto essere 2,5V).Matematicamente questo inter-vallo di tempo è indipendentedalla tensione di alimentazionema dipende solamente dai valoridi R e C ed è dato dalla seguenterelazione:

T=0.693⋅R⋅C [secondi]

Se vogliamo che la lampada restiaccesa per circa 1 minuto, sidovrà scegliere R⋅C=86.56 [sec],quindi fissando C=1000 µF deveessere R=86.56 KΩ, perciò sceglia-mo R=82 KΩ che è il valore com-merciale più vicino.

Nella figura 3 sono riportate leforme d’onda relative ai diversipunti del circuito nell’ipotesi che ilpulsante sia premuto all’istante 0.

Analizziamo ora lo stadio di pilo-taggio della lampada. Il transistor

PRATICAMENTE

PRATICAMENTE 29

Figura 2: Lo schema per l’interruttore temporizzato

Figura 3: Forme d’onda relative al circuito di figura 2

T1 funziona da interruttorecomandato: quando l’uscita dellaporta B è alta, T1 è in saturazionee la tensione tra collettore edemettitore scende a circa 0,2 Voltprovocando l’eccitazione del relé.Se V4 è a livello basso allora, T1 èinterdetto ed il relé non vieneeccitato.La resistenza R2 ha lo scopo dilimitare la corrente di uscita dellaporta, sul livello alto a circa 1mA,valore sufficiente per la saturazio-ne del transistor.

Molto importante è la funzionesvolta dal diodo D1. Il relé è costi-tuito da una bobina che svolge lafunzione di elettrocalamita quindipresenta una certa induttanza.Ai capi di una induttanza, si creauna tensione tanto più alta quan-to più rapida è la variazione dicorrente che percorre l’induttanzastessa.Quando T1 passa dallo stato diconduzione a quello d’interdizio-ne (equivalente all’apertura di uninterruttore) la corrente nellabobina del relé, tende ad annul-larsi istantaneamente per questoai suoi capi si crea una tensionepiuttosto alta.Questa tensione fa sì che il diodoentri in conduzione consentendoalla corrente di continuare a circo-lare fino ad estinguersi in un

PRATICAMENTE

PRATICAMENTE30

Figura 4: Ingresso basso alla pressione del pulsante

V1

V2

V3

V4

tempo più lungo, riducendo dra-sticamente la tensione ai capidella bobina che altrimenti dan-neggerebbe il transistore T1.

APPROFONDIMENTI

Nell’esempio precedente abbiamovisto come applicare un segnaleall’ingresso di una porta logica ecome utilizzare la sua uscita per ilpilotaggio di un relé. Vediamo oraaltre tecniche d’interfacciamentocon le porte logiche.

Ingresso basso alla pressione diun pulsanteSe vogliamo fare in modo che allapressione di un pulsante l’ingressodi una porta logica commuti dalivello alto a livello basso, si puòutilizzare lo schema di figura 4.La resistenza in questo caso svol-ge la funzione di “pull-up” ovveromantiene alto l’ingresso, quandoil pulsante non è premuto. Allapressione del tasto l’ingressoviene azzerato e la resistenza limi-ta la corrente assorbita dall’ali-

mentazione.

Optoisolamento di un ingressoL’optoisolamento di un ingresso ènecessario quando si vuol garanti-re l’isolamento galvanico tra ilnostro circuito ed il mondo ester-no. Lo schema è quello di figura 5.Attenzione al fatto che il circuitodi figura 5 è invertente: applican-do un valore alto di tensione ilfototransistor va in saturazionequindi alla porta logica giunge unvalore basso.

Accensione di un LEDL’uscita delle porte logiche TTLnon è in grado di erogare corren-ti elevate sul livello alto quindi ilLED può essere acceso solo sullivello basso. Per fare questo si uti-lizza il circuito di figura 6.La resistenza limita la correnteassorbita dalla porta.

Azionamento di un triacAnziché utilizzare un relé, che èun dispositivo elettromeccanico, è

possibile azionare carichi alimen-tati alla tensione di rete, utilizzan-do un triac.Allo scopo si può utilizzare loschema di figura 7, in cui l’uscitadella porta pilota un optotriac chea sua volta pilota il triac.L’optotriac garantisce l’isolamen-to galvanico tra la sezione alimen-tata a bassa tensione e quella ali-mentata alla tensione di rete.Utilizzando un triac da 600 V / 5 Aè possibile pilotare carichi di 200W. Per carichi maggiori si dovrà uti-lizzare un triac diverso collegato adun dissipatore metallico. La coppiaR1, C1 limita i disturbi sulla rete.

PRATICAMENTE

PRATICAMENTE 31

Figura 5: Ingresso optoisolato Figura 6: Accensione di un led mediante unaporta TTL

Figura 7: Azionamento di un triac Figura 8: Accensione di una serie di LED

Accensione di una serie di LEDPer accendere simultaneamenteuna serie di LED è necessario inter-porre un transistor tra l’uscita dellaporta ed i LED come mostrato infigura 8. La resistenza R limita lacorrente nei LED e dovrà essere di390 Ω per 6 LED, 470 Ω per 5 LED,680 Ω per 4 LED, 820 Ω per 3 o 2LED, 1 KΩ per un solo LED.

Azionamento di un buzzer a 12 VSpesso per emettere un segnaleacustico è necessario pilotare unbuzzer. Per questo si può utilizzare

lo schema di figura 9, in cui il trans-istor fornisce la corrente necessariaall’attivazione del buzzer.

IL QUESITO DEL MESE

Questo mese vi propongo il cir-cuito di figura 10: i due terminalipotranno essere collegati alle usci-te di due porte logiche quindipilotati con livelli logici di tensio-ne (“0” = 0 V, “1” = 5 V).In quali condizioni degli ingressi ilLED risulterà acceso?Aspetto le vostre risposte ([email protected]).

Per quanto riguarda il quesito delmese scorso, i due LED del circui-to proposto rimarranno spenti.Questo perché le due batterie pola-rizzano inversamente entrambi idiodi che risultano così interdetti.

NEL PROSSIMO NUMERO…

Nel prossimo numero ci occupe-remo dell’analisi e realizzazione diun alimentatore milleusi con glistabilizzatori integrati della serie78xx, 79xx, LM317.

Puntuali, mi raccomando!

PRATICAMENTE

PRATICAMENTE32

Figura 9: Pilotaggio di un buzzer a 12 V Figura 10: Il quesito del mese

Figura 11: Il pin-out del circuito integrato CD4001 e la tabella di verità di una porta NOR

CD4001 - 4 porte NOR CMOS

NOTE SULL’UTILIZZO ELA PROGRAMMAZIONEIN-CIRCUIT CON “EASY”,IL PROGRAMMATORE DIPICmicro™

NOTE SULL’UTILIZZO ELA PROGRAMMAZIONEIN-CIRCUIT CON “EASY”,IL PROGRAMMATORE DIPICmicro™

di Fabio Fioravanzo [email protected]

Devo dire che il successo di Easy èandato oltre ogni aspettativa!Personalmente penso di non averfatto nulla di eccezionale, ma diaver semplicemente reso disponibi-le un utile strumento a tutti gli hob-bisti e sperimentatori elet-tronici, sia esperti sia prin-cipianti, che voglionolavorare in modo sempli-ce, e soprattutto econo-mico, con i microcontrol-lori PIC.Spero anche che, grazie almio articolo, nuove perso-ne si siano avvicinate almondo dell’elettronica, ein particolare a quello deicontrollori programmabili.Colgo l’occasione per rin-graziare le numerose per-sone che mi hanno scritto

complimentandosi con me per ilprogrammatore da me realizzato,ma anche per chiedere dei chiari-menti, o segnalarmi qualche pro-blema avuto durante la costruzioneo l’utilizzo di EASY.

LE FASI DI PROGRAMMAZIONE

Nella scorsa puntata, ci eravamolasciati dopo aver spiegato comeinstallare e settare IC-PROG. Graziea questo semplice ed intuitivo soft-ware di gestione, abbiamo visto

come si possa facilmente,ed in pochi secondi, pro-grammare iI “nostro”microcontrollore PIC.Analizziamo ora più det-tagliatamente le varie fasiche ci consentono di pro-grammare il nostro microPIC con EASY.Per prima cosa occorreeffettuare il collegamentodi EASY con la portaparallela del PC, tramite ilcavo che vi sarete costrui-ti secondo quanto indica-to nel precedente artico-

Nella scorsa puntata vi ho presentato il programmatore di microprocessori PIC “EASY”illustrandone caratteristiche e funzionamento. È ora arrivato il momento di passarealla sperimentazione vera e propria, mettendo in pratica quanto appreso, sfruttandoanche quel connettore per la programmazione in-circuit…

HARDWARE

HARDWARE34

lo. Vi ricordo nuovamente di faremolta attenzione nell’effettuare icollegamenti, pena il non funziona-mento del programmatore, o peg-gio la rottura della porta paralleladel PC!Dalla parte del programmatore èanche possibile eliminare il DB9 esaldare direttamente i cavi sul circui-to stampato, oppure usare un altrotipo di connettore (ma in questocaso dovreste modificare il circuitostampato). Sta a voi la scelta. Io permaggior praticità ho appunto inseri-to il connettore DB9.In figura 1 potete vedere in detta-glio lo schema del cavo da utiliz-zare per il collegamento.Effettuato il collegamento, si dàalimentazione al programmatore.Se tutto è OK, il led verde deveaccendersi. In caso contrario signi-fica che c’è un problema nellasezione di alimentazione.Vi rammento, se non lo avete fattoprima, di tarare correttamente illivello della +VPP a 13.5V, tramite iltrimmer R1. Infatti una delle princi-pali cause di mancata programma-zione dei micro PIC, è proprio ilfatto che la +VPP non arriva a 13.5V,ma ad un livello inferiore. Quindiocchio alla taratura!Si selezionano poi i microswitch aseconda del dispositivo da program-mare come indicato in tabella 1.I PIC vanno inseriti nella parte inizia-le dello zoccolo e con la tacca diriferimento verso la levetta dellozoccolo stesso.Le EEPROM, pur dovendo anch’esseessere inserite con la tacca di riferi-mento rivolta verso la levetta dellozoccolo, dovranno invece essereposizionate dalla parte oppostarispetto alla levetta.Si avvia quindi il programma IC-PROG, si seleziona il tipo di disposi-tivo che si intende programmare e,per i PIC, il tipo di oscillatore, l’e-ventuale protezione, e i fuses (WDT,MCLR, PWRT, CP, ecc.).

Se state programmando PIC tipo16F62X, o 16F87X, occhio a nonselezionare LVP (Low VoltageProgramming), pena l’apparizionedi un errore! Questi dispositivi sonoinfatti dotati della possibilità di esse-re programmati senza necessità difar arrivare 13.5V sul MCLR, mabensì solo i classici 5V. EASY non ècompatibile con questi tipo di pro-grammazione, e quindi il relativofuse non va selezionato. Ad ognimodo fate riferimento al datasheetdel vostro dispositivo, per sapereesattamente le funzioni dei varifuses che lo caratterizzano. Unocchio di riguardo va anche all’e-ventuale selezione del CodeProtection, potreste non riuscire piùa leggere o riprogrammare il vostrodispositivo una volta programmatocon questa opzione attiva!Si carica quindi il file HEX con cui sidesidera programmare il PIC, clic-cando sull’icona <Apri File> e quin-di selezionando la cartella e il filevoluto.Ogniqualvolta si inizia una operazio-ne di lettura, scrittura o cancellazio-ne, si accendono i led rosso e giallo,a testimonianza del passaggio deidati dal PC al PIC.È sempre meglio prima cancellare ildispositivo e poi avviare la program-

mazione.Se la verifica non dà errori, il vostrodispositivo è perfettamente pro-grammato!Nel caso apparisse un messaggiocome quello di figura 2, significache ci sono problemi di connessionetra PC e programmatore, oppure ilPIC non è stato inserito corretta-mente nello zoccolo ZIF, o semplice-mente, come succede spesso a me,non si è abbassata la levetta…

Un’ultima cosa relativa alla costru-zione di EASY; al posto del 74LS07,può essere usato un normale e più

HARDWARE

HARDWARE 35

Figura 1: Piedinatura e collegamenti cavo interfaccia PC-Programmatore

Figura 2: Messaggio di errore in caso di mancatacomunicazione PC-Programmatore

Dispositivoda programmare

Posizionemicroswitch

PIC 8/18pin &EEPROM

2

PIC 28/40 pin 1

Tabella 1: Posizionamento dei microswitch

facilmente reperibile 7407, senzaper questo creare problemi di sorta.Per quanto riguarda il software selavorate con Windows XP e la ver-sione 1.05C di IC-PROG, potresteavere dei problemi, vi consiglioquindi di utilizzare la versione1.05A.

LA PROGRAMMAZIONE

IN CIRCUIT

Grazie alla tecnologia Flash dei PIC,possiamo programmarli e ripro-grammarli migliaia di volte (per ilPIC16F84 il data-sheet indica unnumero di scritture della flash pari a1000 volte prima di non garantirnepiù il funzionamento). Quindi pensoche qualsiasi sperimentatore, primadi aver raggiunto questo limite,riesca a far funzionare il suo softwa-re senza bachi!C’è però un altro problema che aprima vista potrebbe sembrare tra-scurabile, ma che alla lunga puòportare a seri danni, il continuosmontaggio/rimontaggio del microdal circuito (supponendo di lavorarecon un componente DIL zoccolatocome la maggior parte degli hobbi-sti), per riprogrammarlo e poi rein-serirlo nel circuito al fine di testare lemodifiche fatte, può danneggiare ipin dell’integrato, nonché lo zocco-lo stesso. Inoltre tutta l’operazione,se ripetuta più volte, porta ad unagrande perdita di tempo. Se poipensiamo ai microprocessori in ver-sione SMD, che oramai cominciano

a diffondersi anche presso i piccolisperimentatori o presso chi fa picco-le serie di prodotti, la programma-zione del micro, anche utilizzando ilprogrammatore ufficiale Microchiprisulta impossibile, a meno di nonacquistare costosi adattatori.Per fortuna la Microchip ha pensatoanche a questo, ed ha dotato tutti isuoi PIC dell’ICSP (In-Circuit SerialProgramming) grazie alla quale possia-mo programmare il PIC direttamentesulla scheda in cui sarà utilizzato.Ma andiamo a vedere cosè l’ICSP.Si tratta di un sistema di program-mazione seriale in cui bastano duesole linee per clock e dati, più altre 3per massa, alimentazione e tensionedi programmazione (considerandodi alimentare la scheda a parte, i col-legamenti programmatore-scheda siriducono a 4).Per i PIC della serie 16FXX tipica-mente le linee per clock e dati sonoi pin RB6 e RB7 rispettivamente. Inquesto modo possiamo montare lenostre schede con micro vergine eprogrammarle poco prima di ven-derle o utilizzarle, caricando quindil’ultima versione del firmware.Nel realizzare EASY, non ho quindipotuto trascurare questa peculiarità,l’ho quindi dotato di un connettoreaggiuntivo a 5+5 vie in cui sonoriportati tutti i segnali necessari allaprogrammazione in-circuit.Il circuito dove si trova il PIC da pro-grammare dovrà essere progettatoad hoc, come vedremo di seguito, e

dotato di un apposito connettoreatto a ricevere i segnali dal pro-grammatore. I particolari del con-nettore e del cavo di collegamentoda realizzare, sono riportati in figura3. Vi ricordo che è preferibile nonutilizzare l’alimentazione a 5V, pre-sente sul connettore ICSP, per ali-mentare la scheda da programmare,se non nel caso in cui la potenzaassorbita sia esigua (qualche Watts).Le fasi di programmazione sono lestesse analizzate precedentemente.Naturalmente in questo caso la posi-zione dei microswitch è ininfluente.

CIRCUITO APPLICATIVO

Se vogliamo che il nostro circuito siacompatibile con l’ICSP, dobbiamofar sì che tutti i segnali di program-mazione siano connessi direttamen-te al PIC.In figura 4 vediamo un tipico circui-to di interfaccia per la programma-zione in-circuit. I parametri da con-siderare per una corretta realizzazio-ne del circuito sono:

• Isolamento del pin MCLR dal restodel circuito.

• Impedenza di carico sui pin RB6,RB7.

• Capacità singola dei pin MCLR,VDD, RB6, RB7.

• Interfaccia verso il programmatore.

Normalmente il pin MCLR si collegaad un circuito RC, in questo casocon interposto un diodo. Il diodo

HARDWARE

HARDWARE36

Figura 3: Piedinatura e collegamenti cavo interfaccia ICSPFigura 4: Circuito esemplificativo per

l’adattamento all’ICSP

dovrebbe essere uno Schottky, maper i nostri utilizzi un normale1N4148 va più che bene.L’isolamento del MCLR dal resto delcircuito si spiega con il fatto che,durante la fase di programmazione,viene portato a 13.5V e quindi, sefosse direttamente collegato al cir-cuito, potrebbe portare alla rotturadi qualche componente.Anche per RB6 ed RB7, essendo i pindedicati alla programmazione,sarebbe auspicabile fossero isolatidal resto del circuito, cioè fosserodedicati solo a questa specifica fun-zione. Se ciò non è possibile, occor-re valutare attentamente l’impeden-za del circuito.In figura 4 l’isolamento è fatto condue semplici resistenze, ma ciò nonè valido per tutte le applicazioni.Bisogna quindi valutare, di volta in

volta, quale sia la soluzione circuita-le migliore. Se proprio si debbonousare RB6, RB7, consiglio di usarlicome uscite, con una impedenza dicarico minima.Anche l’impedenza del programma-tore ha la sua influenza. Eccovi quin-di spiegato la presenza dei buffersulla scheda di EASY.Non sono da trascurare neppure icondensatori di filtro collegati ai pindel micro dedicati alla programma-zione, se la capacità è troppo eleva-ta si rischia di rallentare il flusso delleinformazioni e di conseguenzaimpedirne la programmazione.

Ad ogni modo, per spiegazioni piùdettagliate sulla programmazionein-circuit vi rimando all’articolo diMariano Paolizzi pubblicato sulnumero di Dicembre 2003, o anco-

ra alla vasta documentazione pre-sente sul sito Microchip, in partico-lare il “Mid-Range ReferenceManual” (DS33023/A), in cui sonospiegate dettagliatamente tutte lecaratteristiche tecniche dei microPIC.

Beh, penso di aver descritto tutte lecaratteristiche di EASY, sia per quan-to riguarda il suo utilizzo, che perquanto riguarda la programmazionein-circuit.Nella prossima puntata presenteròuna scheda per esperimenti con laquale potrete facilmente ed inmaniera immediata, testare i pro-grammi da voi realizzati.

Come sempre, buon lavoro e buondivertimento con i PIC !

HARDWARE

HARDWARE 37

VISUAL PARSIC Compilatore grafico per Microchip Picmicro

Telecamere a colori e b/n

trasmittenti e via cavo

Gruppi di continuità

da 500 VA fino a 160 KVA

Programmatori PIC

ICD Debugger

Programmatori Willem

originali olandesi

Schede PLC per PICmicro

Display LCD/VFD

Noritake Cristallfontz

Display a carattere scorrevole

in offerta speciale

WWW.PARSICITALIA.IT

Via Rovereto, 13 - 48020 Savio (RA) - Tel 0544.927468 - Fax 178.6040078 - Email: [email protected]

Per chi vuole scrivere un programma in Assembler senza scrivere un solo rigo di codice

CONTATORE MODULAREA DISPLAYCONTATORE MODULAREA DISPLAYdi Fabrizio [email protected]

Il circuito, lo vediamo in questepagine, è molto semplice: utilizzaun integrato dedicato, il CD4033.Tale integrato, possiede al suo inter-no tutta la logica che consente di faraccendere i segmenti del displayformando i numeri, e di far avanza-re il numero visualizzato ad ogniimpulso applicato al suo ingresso(pin 1).Per ciascun segmento abbiamo uti-lizzato 4 diodi led da 5 millimetri. Ledimensioni della cifra sono di circa4x7 centimetri, tali da consentirenormalmente di poter leggere ilnumero visualizzato fino ad oltre 10metri di distanza.I led sono pilotati da transistor, inmodo da poter montare, se l'utilizzodel progetto lo rende necessario, deiled ad alta luminosità, aumentandola visibilità del display o delle picco-le lampade.

L'INTEGRATO CD4033

Il grafico in figura 2, ci aiuta acomprendere il funzionamento delCD4033, e come utilizzare i termi-nali di ingresso e uscita di cui dis-pone.

Premettiamo che il pin CLK è l'in-gresso di clock, e quindi è in questopin che dobbiamo applicare gliimpulsi da conteggiare. Nel grafico,ipotizziamo di applicare una serie diimpulsi a frequenza fissa. Tali impul-si sono stati numerati da 1 a 25.Abbiamo evidenziato con tre diversicolori i segnali dei diversi terminalidell'integrato:

• In giallo, gli ingressi.• In verde, le uscite.• In celeste, le uscite per i segmenti

del display.

Normalmente (vedi i primi 12impulsi), gli ingressi RST, LT e CKIsono posti a livello basso, mentrel'ingresso RBI è posto a livello alto.In tale condizione, il CD4033 contagli impulsi applicati al pin CLK, e adogni fronte di salita di tali impulsi ilnumero visualizzato sul display s'in-crementa di una unità.

A ciascun numero corrisponde larelativa combinazione di segmentida "a" fino a "g", secondo quantoindicato nel riquadro a destra.

Ecco un contatore con display a sette segmenti completamente modulare, ossia, conla possibilità di collegare assieme diversi esemplari per realizzare contatori a più cifre.Con questo articolo, oltre a fornire una soluzione circuitale utile in diverse applicazioni,più che descrivere il circuito, molto semplice, vogliamo illustrare il funzionamentodell'integrato 4033.

HARDWARE

HARDWARE38

HARDWARE

HARDWARE 39

Figura 2: Funzionamento dell'integrato CD4033

Il display è formato da sette segmenti, contrassegnati dalle lettere da "a" a "g".Ciascun segmento è formato da 4 diodi led. Accendendo opportunamentei segmenti, è possibile visualizzare tutti i numeri:

• Numero "1" - Segmenti: b, c• Numero "2" - Segmenti: a, b, g, e, d• Numero "3" - Segmenti: a, b, c, d, g• Numero "4" - Segmenti: f, g, b, c• Numero "5" - Segmenti: a, f, g, c, d• Numero "6" - Segmenti: g, c, d, e, f, a• Numero "7" - Segmenti: a, b, c• Numero "8" - Segmenti: a, b, c, d, e, f, g• Numero "9" - Segmenti: g, f, a, b, c, d

É bene ricordare sempre che, l'in-cremento del numero visualizzato,avviene al fronte di salita dell'im-pulso di clock, ossia, nell'istante incui il segnale passa da "0" a "1"(istante segnato in rosso nel grafi-co del segnale su CLK).Come possiamo vedere, l'ingressodi RST (Reset), se posto a livello "1"azzera il display (vedi impulso n.13), e finché resta alto il displayresta a "0", anche se continuano agiungere gli impulsi su CLK.Portando a livello alto l'ingresso LT(Lamp Test) si accendono tutti isegmenti del display. Questo pinserve per testare il funzionamentodei led e per tutto il tempo in cuitale pin resta alto, il CD4033 con-tinua a contare, anche se sul dis-play rimane il numero "8". Questosignifica che, quando il pin tornabasso, il display passa a visualizza-re l'effettivo numero a cui è arriva-to il conteggio (vedi impulsi n. 17e 18).

L'ingresso di CKI (clock inhibit)serve invece a bloccare il conteg-gio. Quindi, se tale pin viene por-tato a livello alto, il display restafermo al numero in cui si trova, e ilconteggio riprende soltanto quan-do il pin torna basso.In questo modo, il contatore igno-ra tutti gli impulsi di clock chegiungono nel periodo in cui il pinCKI è alto (vedi impulso n. 21).L'uscita CYO (Carry Out) è altaquando sul display è visualizzato unnumero compreso tra 0 e 4 ed èbassa quando il numero visualizza-to è compreso tra 5 e 9. Dunque sutale pin esce un impulso ogni 10impulsi di clock e viene utilizzatoper pilotare l'ingresso di clock di unsecondo CD4033, per realizzare uncontatore a 2 cifre. Grazie a questopin è possibile realizzare un conta-tore a molte cifre, come nello sche-ma esemplificativo di figura 3, incui vediamo un contatore a 3 cifre.

Per concludere la descrizione delCD4033, parliamo dei pin RBI edRBO che, come si vede nel graficoa pagina precedente, funzionanoin questo modo:

• Se l'ingresso RBI è posto a livelloalto, l'integrato funziona normal-mente, e l'uscita RBO è sempre alivello alto.

• Se invece sull'ingresso RBI appli-chiamo un livello basso, ilCD4033 conterà normalmente,ma ogni volta che dovrebbecomparire il numero "0", il dis-play resta spento e l'uscita RBOva a livello basso.

Utilizzando opportunamente i pinRBO ed RBI, possiamo fare inmodo che non siano visualizzati glizeri non significativi. Nel nostroprogetto abbiamo impiegato treconnettori strip-line, in uno solodei quali deve essere inserito unponticello di corto-circuito.

Come vediamo dallo schema elet-trico, con il suddetto ponticelloabbiamo la possibilità di sceglierese collegare il pin 3 (RBI) a massa(livello logico 0) oppure al positivodi alimentazione (livello logico 1),oppure al pin 4 del CD4033 relati-vo alla cifra precedente.

Distinguiamo i tre casi:

1° CASO - Pin 3 a livello altoIn questo caso il contatore funzionanormalmente.

2° CASO - Pin 3 a livello bassoIn questo caso il display resteràspento ogni volta che dovrebbevisualizzare il numero "0".

3° CASO - Pin 3 al pin 4 della cifraprecedenteIn questo caso il display resteràspento quando dovrebbe visualizza-re il numero "0" soltanto se le cifreprecedenti sono tutte "0", a pattoche nella scheda della prima cifra, ilponticello sia impostato con "pin 3 alivello basso".Per meglio comprendere quantodetto, nella tabella che segue vedia-mo cosa visualizzano i tre displaydello schema di figura 3, nel caso incui ponessimo tutti i ponticelli su "B"(1° caso), nel caso in cui li ponessi-mo tutti su "A" (2° caso) e infine nelcaso in cui li ponessimo esattamen-te come nello schema in figura 3.

HARDWARE

HARDWARE40

1° CASO(A)

2° CASO(B)

Schema infigura 3

004 4 4

204 2 4 204

200 2 204

035 35 35

Figura 3: Connessioni per contatore a 3 cifre

Come vediamo, nel primo caso glizeri sono sempre visualizzati, nelsecondo caso non sono mai visualiz-zati (tale impostazione è quindi erra-ta: il connettore "A" serve solo per laprima cifra), nell'ultimo caso vengonovisualizzati solo gli zeri significativi.

Il reset automaticoIl condensatore C2 serve per azzera-re automaticamente il display almomento dell'accensione. Se non cifosse tale condensatore, all'accen-sione il display visualizzerebbe unnumero casuale. Se non si intendeusufruire dell'azzeramento automa-tico, C2 può tranquillamente nonessere montato. Tale condensatore

non deve essere montato se si colle-ga a questo progetto una schedaesterna che provvede già a forniregli impulsi di reset, ad esempio secolleghiamo l'applausometro cheabbiamo presentato il mese scorso.

AntirimbalzoPer concludere la descrizione delloschema elettrico, vorremmo spen-dere due parole sul condensatoreC4, che svolge la funzione di anti-rimbalzo, e che deve essere monta-to sulla scheda soltanto se si utilizzaun pulsante per l'avanzamento delcontatore.Premettiamo che tutti i pulsanti,quando vengono premuti, genera-no il cosiddetto rimbalzo, che consi-ste nel fatto che il contatto non sichiude istantaneamente in modonetto, ma per un breve periodo ècome se il pulsante si aprisse e chiu-desse più volte, generando cioèdegli impulsi spuri come vediamo infigura 4.Se accendiamo una lampadina conun pulsante non ce ne accorgiamo,perchè il rimbalzo dura normalmen-te pochi millesimi di secondo (cioèpochi millisecondi), ma il nostroCD4033 se ne accorge e li conta.Per esperimento, provate a collega-re un pulsante sulla nostra schedasenza montare C4, e noterete chead ogni pressione il display anzichéavanzare di una sola cifra, va avantidi più cifre.Con il condensatore C4 questo nonsuccede (figura 5), perchè tale con-densatore simula il rilascio ritardatodel pulsante. Sempre in merito all'e-sperimento, è bene utilizzare unpulsante e non un semplice filo dacollegare "a mano", perchè quest'ul-timo genera impulsi spuri con tempidiversi, rispetto al pulsante.É possibile realizzare circuiti antirim-balzo più complessi, ma quello danoi adottato è il più semplice, ecomunque efficace.É chiaro che C4 non consente di

conteggiare pressioni troppo rapidedel pulsante. Utilizzando il valore danoi proposto di 10 µF il CD4033accetta fino a circa 3-4 pressioni alsecondo. Diminuendo la capacità diC4, l'integrato accetta un maggiornumero di pressioni al secondo, mal'effetto dell'antirimbalzo peggiora,e viceversa aumentando la capacità.

REALIZZAZIONE PRATICA

Premettiamo che se vogliamo mon-tare più schede, per realizzare uncontatore a più cifre, i componentiR2, R3, R4, C2 dovranno esseremontati solo su una qualsiasi dellevarie schede.La tensione di alimentazione deveessere compresa tra 9 e 15 V. I valo-ri delle resistenze da R12 a R18 sonocalcolati per una tensione di 12 V. Incaso di alimentazione a 9V, le sud-dette resistenze dovranno essereridotte a 68 Ω, per 10 V a 120 Ω eper 15 V devono essere portate a470 Ω da 1/4 di Watt.

É possibile realizzare un displayancora più grande di quello propo-sto in queste pagine, sfruttando lastessa scheda (ovviamente i led piùgrandi o le lampade dovranno esse-re montate su un'altra scheda piùgrande, oppure su un supportomeccanico). Ad esempio, si può rea-lizzare un display da 75x140 mm.,visibile a oltre 20 metri di distanza,sfruttando lo stesso schema, ma uti-lizzando dei led da 10 millimetri didiametro.Si possono impiegare anche piccolelampade; in ogni caso occorre con-siderare due cose:

La tensioneTra il positivo di alimentazione e ilcollettore di ciascun transistor,(dove cioè va collegato il ramo diled o lampade), è presente la stessatensione applicata in alimentazione,quando il relativo segmento è acce-so. Quindi la tensione delle lampade

HARDWARE

HARDWARE 41

Figura 4: Il rimbalzo di un pulsante

Figura 5: La funzione antirimbalzo

e quella di alimentazione devonoessere scelte opportunamente.La correnteCiascun segmento può accettare uncarico di:• Max. 80 mA se l'alimentazione è

da 9 V• Max. 100 mA se l'alimentazione è

da 12 V• Max. 130 mA se l'alimentazione è

da 15 V

Per il montaggio, consigliamo comesempre di iniziare dai componenti abasso profilo, prestando attenzioneal corretto inserimento dei compo-nenti polarizzati.

Per realizzare un contatore a piùcifre, le schede vanno collegatesemplicemente come illustrato nelloschema pratico di figura 9, tramite iconnettori a 7 poli.

Impostazione dei ponticelliPer visualizzare sempre gli zeri:Ad esempio, ecco come impostare iponticelli per visualizzare comesegue i numeri "20" e "0", con 4 cifre:

Per visualizzare solo gli zeri significativi:Ad esempio, ecco come impostare iponticelli per visualizzare comesegue i numeri "20" e "0", con 4 cifre:

Attenzione: in questo caso, quan-do il valore è "0", tutte le cifresono spente. Se si vuole che l'ulti-mo display visualizzi lo zero, ilponticello della relativa scheda

HARDWARE

HARDWARE42

Figura 6: Schema elettrico

HARDWARE

HARDWARE 43

Figura 7: Circuito stampato scala a:a (lato rame) Figura 8: Posizionamento dei componenti

Elenco componenti

Sigla Valore

R1÷R11 10 KΩ 1/8 W

R12÷R18 270 Ω 1/8 W

C1, C2 100 nF multistrato

C3 100 µF 25 V elettrolitico

C4 10 µF 25 V elettrolitico

DL1÷DL28 Diodo led verde 5mm.

T1÷T7 Transistor BC337

U1 Integrato CD4033

Varie

Zoccolo DIP 16 pin

2 connettori strip-line a 7 poli

3 connettore strip-line a 2 poli

Ponticello di cortocircuito

Figura 9: Realizzazione di un contatore a più cifre

PIANETAELETTRONICA

) Il nuovo modo di programmareN U T C H I P

Rivoluzionario

perchè non richiede conoscenza di linguaggi di programmazione

perchè non richiede un costoso programmatore

perchè lo programmi tutte le volte che vuoi

è un’ottima esperienza per chi si avvicina al mondo della programmazione

)

))

)

software di sviluppo · cd-rom divulgativi · strumenti innovativi

PIANETAELETTRONICAprodotti innovativi per l’elettronica fai da te

SOFTWARE GRATIS PER HOBBISTI E STUDENTI

NUTCHIP LO TROVI DA:

PER ORDINI E INFORMAZIONI

deve essere posto su "B", come diseguito indicato:

Per contare fino a 10, 100, 1000...In alcune applicazioni, ad esempiose utilizziamo questo progetto inunione all'applausometro presenta-to sul numero di Febbraio (224) sipuò avere la necessità di un fondoscala di 10, 100, 1000, ecc. anziché9, 99, 999, ecc. In questo caso sidovrà realizzare una ulteriore schedaPE0212, in cui andranno montatisoltanto gli 8 led relativi ai segmen-ti "b" e "c". Anche i transistor e leresistenze relative agli altri segmentinon andranno montate.Per fare in modo che il conteggio siblocchi a "100", occorre però unasemplice modifica: inserire un diodo1N4150 con l'anodo sul pin 10 e ilcatodo sul pin 2 di U1. Tale diodopuò essere saldato direttamente sullato piste della scheda (ovviamentesoltanto sulla scheda della primacifra in cui sono montati gli 8 led).

Utile a sapersi...É possibile utilizzare dei led ad altaluminosità, tenendo presente chehanno un angolo di visualizzazionepiuttosto ristretto (sono molto lumi-nosi, ma solo se visti di fronte, quindiadatti per essere visti a grandi distan-ze). A chi vuole utilizzare i classici ledeconomici, ricordiamo che il colorepiù visibile a distanza è normalmenteil verde, e il meno visibile è il rosso.Consigliamo di acquistare i 28 ledtutti della stessa marca, e possibil-mente dello stesso lotto, perchè altri-menti si potrebbero avere alcuni ledpiù luminosi ed altri meno. Anche leddello stesso lotto possono avere pic-cole differenze, ma sono normalmen-te molto più contenute e accettabili.

In figura 13 riportiamo le connessioniesterne della scheda. Al pin 1 (ingres-so di clock) devono essere applicatigli impulsi da conteggiare. La tensio-ne di alimentazione deve essere appli-cata tra i pin 3 (+) e 7 (-).Gli ingressi CKI, RST e LT (pin 4, 5 e 6)sono disponibili per essere pilotatiesternamente. Le loro funzioni sonostate illustrate nel capitolo "Il circuito".Per un buon funzionamento, le ten-sioni da applicare a tali ingressi perlivello logico "1" devono essere supe-riori al 70% della tensione di alimen-tazione. Il pin 2 non deve essere uti-lizzato esternamente (serve solo per ilcollegamento tra le varie cifre).

In figura 14 vediamo come collegareil contatore all'applausometro cheabbiamo presentato il mese scorso, inqueste pagine. In questo caso, nondimentichiamo la piccola modificadescritta poco fa per far bloccare ilconteggio a 100.

Per chi vuole impiegare questo pro-getto come contatore eliminacodeper esercizi pubblici, riportiamo loschema in figura 15, dove per brevitàabbiamo riportato solo una cifra, maanche qui abbiamo la possibilità diavere più cifre.

Buon lavoro.

HARDWARE

HARDWARE44

Figura 13: Connettori della scheda

Figura 14: Connessione dell'applausometro

Figura 15: Contatore eliminacode per esercizi pubblici

SPICE: LA SIMULAZIONEDEI CIRCUITI ELETTRICIED ELETTRONICI

SPICE: LA SIMULAZIONEDEI CIRCUITI ELETTRICIED ELETTRONICIdi Nico [email protected]

Le prime versioni di Spice elaborava-no fondamentalmente, nell’analisidi un circuito, le risposte in ampiez-za, frequenza e fase e avevano unalibrary di componentistica piuttostolimitata. Nel volgere di un decennioil software si è notevolmente espan-so consentendo oltre allo sweep suiparametri elettrici dei circuiti e sullatemperatura di funzionamento, lasimulazione Monte Carlo, l’analisi diFourier, l’analisi del rumore e delladistorsione. Questa espansione delprocesso di simulazione ha decreta-to il successo di Spice che, come si ègià anticipato, al presente vieneconsiderato come strumento inso-stituibile nell’analisi di un qualsiasicircuito sia analogico che digitale,che analogico-digitale.

LA SIMULAZIONE MONTE

CARLO

È una delle simulazioni più interes-santi e anche fra le più indicate perla verifica del funzionamento realedi un circuito dal momento che con-sente di tener conto della tolleranzadei componenti inseriti.Si consideri come primo esempio il fil-

tro attivo di cui alla figura 1. Si trattadi un filtro passabanda di tipo MFB,ossia a reazione multipla, con atte-nuazione di 20 dB/decade, con fre-quenza fo di centrobanda di 10 kHz,guadagno in banda passante pari a 5e fattore di merito Q pari a 10.La risposta in frequenza del filtro èriportata nella figura 2. Qui, in fasedi simulazione si è evidenziata labanda passante a –3 dB tramite lareciproca posizione dei marker verti-cali a e b. Si legge: (a – b) = 1,004kHz. Poiché il fattore di merito è ilrapporto fra la frequenza di centro-banda fo = 10 kHz e la banda pas-sante B, per Q si ha il valore: Q =10000/1004 = 9,96 ≅ 10. La posi-zione del marker orizzontale d forni-sce subito il guadagno alla frequen-za fo. Si legge: Yd = 14,5 dB. A 14,5dB corrisponde un guadagno pura-mente numerico pari a 5,3. La rispo-sta in frequenza è, pertanto, perfet-tamente aderente ai dati di proget-to del filtro.Attivando la simulazione MonteCarlo si è lasciata all’1% la tolleran-za delle resistenze, mentre alle capa-cità C1 e C2 si è attribuita una tolle-

ranza del 25% che rappresenta unvalore abbastanza consueto a menodi non usare condensatori di alta ealtissima qualità. Si è così ricavato ildiagramma di cui alla figura 3 dovei marker verticali a e b indicano,rispettivamente, una frequenza dicentrobanda Xa = 10,68 kHz e Xb =9,06 kHz, ossia valori che si disco-stano notevolmente dal dato fonda-mentale di progetto che imponeuna fo = 10 kHz.Un valore accettabile della frequen-za di centrobanda, cioè non eccessi-vamente discosto da 10 kHz, si èottenuto attribuendo alle capacitàuna tolleranza del 10%.Nello stesso diagramma si vede cheanche il guadagno subisce una

Analizzata la simulazione con Spice di alcuni circuiti in corrente continua e in correntealternata si espongono qui nuove applicazioni in grado di porre in evidenza le ulterioripotenzialità e l’enorme flessibilità di impiego del software.

HARDWARE

HARDWARE46

Figura 1: Filtro attivo passabanda a reazionemultipla (MFB)

terza parte

diminuzione nello scostamentodalla frequenza per la quale il filtro èstato dimensionato, mentre labanda passante B, essendo fornitadall’espressione:

B = 0,318 / (R3 · C1)

si contrae per C1 = 0,033 µF (+25%)e si dilata per C1 = 0,033 µF (–25%).La figura 4 mostra quindi un sempli-ce circuito RC nel quale si è attivatala funzione Monte Carlo di Spicenell’analisi del transitorio di carica.L’indicatore (.IC), posto fra la resi-stenza e la capacità, impone la con-dizione iniziale Vc = 0, ossia che allachiusura del deviatore S il condensa-tore sia scarico. Nel menu relativoalla simulazione in oggetto si èlasciata invariata all’1% la tolleranzadella resistenza R1 e si è attribuitauna tolleranza del 25% alla capacitàdel condensatore C1. Ciò significache durante la simulazione R1 man-tiene pressoché costante il suo valo-re di 100 kΩ, mentre il valore dellacapacità varia in modo del tuttocasuale nell’intorno della tolleranzaimposta attivando il numero di simu-lazioni definito nel menu relativo. Le curve fornite da Spice sono riporta-te nel diagramma di cui alla figura 5.Le curve (a) e (b) si riferiscono avalori di C1 rispettivamente eguali a7,5 µF e 12,5 µF. ossia ai valori estre-mi che assume la capacità C1 peruna tolleranza del 25%. L’esattezzadi queste curve può essere verificataricordando che l’espressione che

fornisce il transitorio della tensioneVc di carica di un condensatore è:

Considerando, per esempio, l’istante t= 1 s indicato dal marker verticale a etenendo conto che la costante ditempo τ, per R1 = 100 kΩ e C1 = 7,5 µF,

HARDWARE

HARDWARE 47

Figura 4: Circuito RC al quale si è applicata lasimulazione Monte Carlo per valutare lecurve del transitorio di carica al variaredel valore nominale della capacità C acui è stata attribuita la tolleranza del 25 %

Figura 2: Risposta del filtro passabanda di cui alla figura 1. La frequenza fo di centrobanda è di 10 kHz.La distanza (a – b) fra i marker verticali indica la banda passante B pari a circa 1 kHz. Il filtro èstato, infatti, dimensionato per un fattore di merito eguale a 10

Figura 3: Attivando la simulazione Monte Carlo di Spice attribuendo alle due capacità del filtro attivo di cuialla figura 1 una tolleranza del 25 %, nella risposta in frequenza si nota un notevole scostamentodella frequenza fo dal valore per il quale il filtro è stato dimensionato

Figura 5: Curve del transitorio di carica per il circuito RC di cui alla figura 4 al variare del valore nominaledella capacità

è τ = R1 · C1 = 100000 x 7,5 x 10–6 =750 ms, mentre per R1 = 100 kΩ e C1

= 12,5 µF è τ = R1 · C1 = 100000 _ 12,5_ 10–6 = 1,25 s, per Vi = 5 V, applican-do l’espressione precedente ai due casilimite si ricava rispettivamente:

Vc1 = 3,68 V Vc2 = 2,753 V

Questi due dati sono indicati neldiagramma di cui alla figura 5 daimarker orizzontali c e d. Si leggeinfatti Yc = 3,678 V e Yd = 2,752 V.

SPICE NEI CIRCUITI

RADDRIZZATORI

Si consideri il circuito di cui alla figu-ra 6 rappresentativo di un raddrizza-tore a una semionda.Con il deviatore S aperto Spice con-sente di ricavare le forme d’onda dicui alla figura 7 dove in grassetto èriportata la tensione Vo di uscita,ossia la tensione ai capi del carico RL,mentre è a tratto normale la tensio-ne Vi applicata in ingresso.Quest’ultima ha valore di 20 V dapicco a picco (10 V di valore massi-mo) e frequenza di 50 Hz. La tensio-ne Vo di uscita, che ha ovviamente lamedesima frequenza, per l’azioneraddrizzatrice e per la disposizionedel diodo D si evolve esclusivamen-te nel semipiano positivo e presentaun valore massimo appena inferioreal valore massimo della Vi. Come,infatti, indica la reciproca posizionedei marker c e d - si legge (c – d) =660,7 mV - la Vo è, appunto, inferio-re alla Vi di circa 0,7 V. Ciò è dovutoalla caduta di tensione sul diodo chepuò variare fra 0,6 V e 0,7 V.Chiudendo il deviatore S si pone in

parallelo al carico la capacità C = 10µF. La tensione Vo di uscita fornita daSpice ha allora l’andamento illustra-to nella figura 8 dove è evidente l’a-zione livellatrice del condensatoresebbene di non elevata capacità.

HARDWARE

HARDWARE48

Figura 10: Andamento della tensione Vo ai capi del carico RL nel circuito raddrizzatore di cui alla figura 9tenendo S aperto

Figura 6: Circuito raddrizzatore a una semionda

Figura 7: Andamento della tensione di ingresso Vi e della tensione di uscita Vo ai capi del carico RL nelcircuito raddrizzatore di cui alla figura 6 tenendo S aperto

Figura 8: Andamento della tensione di ingresso Vi e della tensione di uscita Vo ai capi del carico RL nelcircuito raddrizzatore di cui alla figura 6 con S chiuso

Figura 9: Circuito raddrizzatore a onda intera

La figura 9 riporta quindi un circuitoanalogo, ma nel quale la presenzadel ponte di Graetz realizza il rad-drizzamento a onda intera (anchedetto a due semionde). Con S aper-to la tensione Vo di uscita ha l’anda-mento di cui alla figura 10. Con Schiuso, e quindi con la capacità da50 µF in parallelo al carico, per la Vo

si ha l’andamento riportato in gras-setto nella figura 11. In entrambi idiagrammi delle figure 10 e 11 sivede che il valore massimo dellatensione di uscita è di circa 8,6 Vmentre il valore massimo della Vi diingresso è 10 V. La differenza 10 –8,6 = 1,4 V indica la caduta di ten-sione nei diodi del ponte che, in unperiodo del segnale di ingresso,conducono in due per volta e quin-di la caduta di tensione dell’uno vaa sommarsi alla caduta di tensionedell’altro (0,7 x 2 = 1,4 V).Se adesso, tramite Spice, si esegueun sweep attribuendo alla capacitàvalori variabili, per esempio da 50µF a 250 µF per gradini di 100 µF, siha una diminuzione del fattore diripple F, ossia dell’ondulazione dellaVo, via via che la capacità assumevalore più elevati. Questo risultato èespresso da Spice tramite le curveriportate nella figura 12 dove, dalbasso verso l’alto, sono rappresenta-te la forma d’onda in uscita in assen-za della capacità, e quindi le formed’onda della stessa Vo per valori di Cpari, rispettivamente, a 50 µF, 100µF e 250 µF. È evidente come all’in-cremento della capacità corrispondauna diminuzione del ripple. Questorisultato era ovviamente prevedibilesia sperimentalmente che analitica-mente. L’espressione del fattore F diripple, per in raddrizzamento aonda intera, è infatti:F = 2,9 / (C · RL)Pertanto, a parità di carico RL, essen-do F inversamente proporzionalealla capacità C, era del tutto intuiti-vo che all’aumentare di C dovessediminuire F.

L’ANALISI DI FOURIER

È noto che l’analisi armonica di unsegnale periodico non può prescin-dere dallo sviluppo in serie diFourier secondo il quale una funzio-

ne periodica, per esempio dellavariabile indipendente t, può essereconsiderata come somma di diversecomponenti sinusoidali di cui quelladefinita fondamentale ha la stessa

HARDWARE

HARDWARE 49

Figura 11: In grassetto l’andamento della tensione ai capi del carico RL nel circuito raddrizzatore di cui allafigura 9 con S chiuso

Figura 12: Attribuendo alla capacità di filtro del circuito di cui alla figura 10 valori variabili fra 50 µF e 250 µF,tramite la funzione sweep di Spice si ottengono i diagrammi di figura. Si noti comeall’aumentare del valore di C si abbia una sempre più marcata riduzione del ripple

Figura 13: Segnale a onda quadra alternato di frequenza f = 1 kHz indicata dalla reciproca posizione deimarker verticali a e b

frequenza f del segnale originario,mentre le successive, definite armo-niche, hanno frequenza doppia, tri-pla, quadrupla, ecc. Il segnale perio-dico può quindi essere studiatocome somma di un termine costante

e di una serie infinita di termini sinu-soidali la cui frequenza è multiplaintera della frequenza del segnale.Non essendo questa la sede perapprofondire l’argomento, diciamosoltanto che per un segnale alterna-

to a onda quadra di frequenza pari,per esempio, a 1 kHz e la cuiampiezza - figura 13 - possa, peresempio, variare fra –2 V e +2 V, ilvalor medio sarà nullo e sarannopresenti solo le armoniche di ordinedispari.Spice, una volta impostata la relati-va analisi, evidenzia questo risultatocome mostra la figura 14 dove, perl’appunto, sono presenti solo learmoniche di frequenza 1 kHz, 3kHz, 5 kHz, ecc., mentre sono assen-ti le armoniche di ordine pari. Nellostesso diagramma si vede altresìcome l’ampiezza delle varie armoni-che decresca all’aumentare della fre-quenza. Quest’ultima considerazio-ne consente di ritenere nulle learmoniche del segnale da un certotermine in poi e di limitare quindil’analisi ad un prestabilito numero diarmoniche.Se adesso si considera il segnale aonda quadra di cui alla figura 15, sivede che questo è periodico diampiezza Vi, frequenza f = 1 kHz, manon alternato. In tal caso, lo svilup-po in serie di Fourier - figura 16 -indica, oltre alla presenza delle solearmoniche di ordine dispari, anchela presenza di un valor medio diver-so da zero di frequenza f = 0 e diampiezza pari a Vi/2. Questo termi-ne è posto in evidenza dal markerverticale b.Si considerino quindi i due circuitiesposti nella figura 17. Il circuitodella figura 17 a è un classico filtropassa basso RC, mentre il circuitodella figura 17 b è un classico filtropassa alto. La sollecitazione è ilsegnale Vi a onda quadra di ampiez-za 0 V ÷ 5 V e frequenza f = 1 MHz.Eseguendo l’analisi di Fourier si rica-va lo spettro di frequenze di cui allafigura 18 dove dall’alto verso ilbasso sono riportati lo spettro dellaVi e quindi della tensione Vc ai capidel condensatore C e della tensioneVr ai capi della resistenza R.Si può facilmente constatare come,

HARDWARE

HARDWARE50

Figura 14: Spettro di frequenza per la forma d’onda di cui alla figura 13 ricavato attivando l’analisi diFourier di Spice

Figura 15: Segnale a onda quadra con ampiezza (0 ÷ 2)V e frequenza f = 1 kHz

Figura 16: Spettro di frequenza per la forma d’onda di cui alla figura 15 ricavato attivando l’analisi diFourier di Spice

aldilà della frequenza di taglio pari a1,59 MHz e indicata dal marker ver-ticale a, prelevando l’uscita ai capidel condensatore - figura 17 a -l’ampiezza delle armoniche subiscaun rapido decremento: all’aumenta-re della frequenza, infatti, il compor-tamento della capacità approssimala condizione di cortocircuito sull’u-scita. Si noti altresì la presenza dellacomponente di valor medio a fre-quenza zero indicata dal marker ver-

ticale b che in questo caso è presen-te dal momento che il segnale Vi èperiodico ma non alternato.Viceversa, prelevando l’uscita ai capidella resistenza - figura 17 b - poichéla reattanza capacitiva diminuisceall’aumentare della frequenza, learmoniche del segnale di uscita Vr

presentano un’ampiezza sempre piùprossima all’ampiezza delle armoni-che relative al segnale di ingresso Vi.Nel diagramma relativo alla Vr sinota altresì come sia assente la com-ponente continua che viene, infatti,“tagliata” dalla capacità.

TEMPERATURE SWEEP

Per verificare il funzionamento dellosweep in temperatura si è fattoricorso al circuito amplificatore a BJTdi cui alla figura 19. Il guadagno ditensione G di questo stadio è, conbuona approssimazione, pari al rap-porto fra la resistenza di collettore Rc

e la resistenza di emettitore Re ed èquindi assai prossimo a 26. In fase disimulazione con Spice si è impostauna variazione della temperatura difunzionamento del circuito da 25 °Ca 150 °C per gradini di 25 °C. Il dia-gramma che si è ricavato per la ten-sione di uscita Vo è riportato nellafigura 20 dove si può constatare chela forma d’onda non presenta dis-torsioni notevoli per temperaturecomprese fra 25 °C e 50 °C, mentregià a 75 °C si presenta una lievetosatura della semionda negativa,tosatura che poi diviene molto evi-dente per temperature comprese fra100 °C e 150 °C.Sempre utilizzando il circuito di cuialla figura 19, si è poi imposta unatemperatura costante di funziona-mento di 27 °C imponendo altresìuna variabilità della resistenza Re da80 Ω a 200 Ω per gradini di 40 Ω. Lavariabilità della resistenza di emetti-tore implica, per quanto su si è detto,la variabilità del guadagno (che èinversamente proporzionale alla Re).Il diagramma che si è ricavato per la

HARDWARE

HARDWARE 51

Figura 17: In (a) un filtro passa-basso e in (b) un filtro passa-alto. Entrambi i filtri presentano una frequenzadi taglio pari a 1,59 MHz

Figura 18: Spettri di frequenza relativi a Vi, Vc e Vr con riferimento ai circuiti di cui alla figura 17

Figura 19: Stadio amplificatore a BJT

Figura 20: Andamento della tensione Vo ai capi del carico RL dello stadio di cui alla figura 19 dopo averimposto una variazione di temperatura fra 25 °C e 150 °C per gradini di 25 °C

tensione Vo di uscita è esposto nellafigura 21. Qui si vede che per valoridella resistenza di emettitore di 80 Ωe 120 Ω il segnale, a causa dell’ele-vata amplificazione, presenta unanotevole distorsione (tosatura della

semionda negativa), mentre già perRe = 160 Ω il segnale appare accetta-bile e diviene ottimo per Re = 200 Ω.La figura 22 riporta, quindi, la rispo-sta in ampiezza dello stadio di cuialla figura 19 per Re = 180 Ω. Qui la

distanza fra i marker orizzontali c e dindica un valore da picco a piccodella Vo pari a 4,747 V. Poiché lo sta-dio è stato pilotato con una Vi = 200mV = 0,2 V da picco a picco, il gua-dagno G = Vo / Vi, ha il valore:

G = 4,747 / 0,2 = 23,7che, espresso in dB, diviene:

GdB = 20 log 23,7 = 27,49 dB

Questo risultato è posto in evidenzadal diagramma della risposta in fre-quenza ricavato da Spice e riportatonella figura 23. La posizione del mar-ker orizzontale d esprime, infatti, unguadagno in banda passante pari a27,5 dB (si legge, infatti, Yd = 27,5dB). La frequenza di taglio inferiore èfornita, a –3 dB, dalla posizione delmarker verticale a che indica una fre-quenza pari a 18,53 Hz.

Con questa terza parte si concludela serie degli articoli dedicati all’il-lustrazione della simulazione alcomputer di alcuni circuiti elettricied elettronici tramite il softwareSpice.Speranza dell’autore è di aver solle-citato la curiosità del Lettore perquesto metodo di studio, di analisie di verifica del funzionamento deicircuiti. Coloro che eseguiranno ildownload del programma dal sitomicrocode.com potranno ripeterele simulazioni qui eseguite comepotranno, ancora più proficuamen-te, realizzare diverse configurazionicircuitali e nuove simulazioni.L’autore sarà sempre a disposizionedel Lettore per ulteriori spiegazionivolte ad approfondire sia l’uso diSpice che le relazioni analiticheche sovrintendono al dimensiona-mento dei vari circuiti.

NOTA PER IL LETTORE

La simulazione al computer è stataeseguita col programma SPICE(Simulation Program with IntegratedCircuit Emphasis della MicrocodeEngineering Inc. (CircuitMaker).

HARDWARE

HARDWARE52

Figura 21: Andamento della tensione Vo ai capi del carico RL dello stadio di cui alla figura 19 dopo averimposto una variazione della resistenza di emettitore Re da 80 Ω a 200 Ω.

Figura 22: Risposta in ampiezza, fornita da Spice, dello stadio di cui alla figura 19 attribuendo allaresistenza di emettitore il valore di 180 Ω

Figura 23: Risposta in frequenza, fornita da Spice, dello stadio amplificatore a BJT di cui alla figura 19

SCUOLABUS54

Nel1915 passò sotto il Ministerodell'Educazione Nazionale e fu classifi-cata come "Regia Scuola Industriale di2° grado". Dopo il riordinamento del1924, divenne "Regia Scuola diTirocinio".Nel 1926, infine, fu riordinata come"Regio Istituto Tecnico Industriale"assumendo la struttura base che man-tiene tuttora.L'I.T.I.S. "Leonardo da Vinci" si trova aPisa in via Contessa Matilde, la stradache corre di fianco alle mura di Piazzadei Miracoli. L'enorme complesso sisviluppa su una superficie continua dicirca 43.000 mq dei quali più di 9.000mq risultano coperti da edifici destina-ti ad aule, laboratori, officine, palestre,bar.Possiamo dire che i numerosi laborato-

ri, utilizzati durante tutti icinque anni dei corsi distudio e di seguito elen-cati, rappresentano ilpiatto forte dell'Istituto eognuno di essi è dotatodi apparecchiature tradi-zionali e moderne, suffi-cienti per consentire aglistudenti un'esperienzadiretta sugli strumenti,singolarmente o in pic-

coli gruppi. La funzione del laboratorioè molto importante: i concetti un po'complicati possono essere osservati,toccati con mano, e così diventano unpo' meno complicati; una volta appre-sa la teoria, possiamo applicarla perpiccoli progetti, ed i progetti possonoessere realizzati e verificati mediante lenumerose apparecchiature presenti.La formazione di un tecnico non puòfare a meno dei laboratori, ed è perquesto motivo che la scuola destinabuona parte delle risorse al loro conti-nuo aggiornamento; rispetto alla con-tinua evoluzione tecnologica in certisettori, le risorse non sono ancora suf-ficienti, ma l'esperienza acquisita inlaboratorio consente dopo un breveperiodo di addestramento, di utilizzareanche le apparecchiature e gli stru-menti più evoluti.

INTERVISTA AL

DIRIGENTE SCOLASTICO,

ING. CORRADO MANFREDONIA

Da quanto tempo dirige questascuola?Ho il piacere di essere qui all’ITIS dal1983.Quali sono gli indirizzi di studio?Abbiamo sei indirizzi di studio: chimi-ca fisica ambientale e sanitaria, costru-zioni aeronautiche, edilizia, elettronicae telecomunicazione, elettrotecnica eautomazione, meccanica.Come si vede un ventaglio di possibi-lità molto ampio.Quali sono le differenze sostanzialitra un istituto tecnico, un professio-nale e un liceo?La differenza tra il titolo rilasciato dallanostra scuola e quello delle altre, èche questo permette, dopo il tirocinioe l’esame di stato, l’iscrizione ad unalbo professionale e quindi di eserci-

Le origini dell'Istituto Tecnico Industriale di Pisa risalgono agli alboridel regno d'Italia, quando nel 1871 fu fondata la "Scuola Tecnico Industriale"per iniziativa del Comune di Pisa. Nel 1886 fu divisa in due Istituti: la "ScuolaIndustriale" sostenuta ancora dal Comune e la "Scuola Tecnica" sovvenzionata dalloStato. Dopo varie trasformazioni, nel 1908 la Scuola fu riordinata e posta alledipendenze del Ministero Agricoltura, Industria e Commercio.

SCUOLABUS

ITIS “LEONARDODA VINCI” PISAITIS “LEONARDODA VINCI” PISA

Una bella immagine aerea dell’Itis “Leonardo da Vinci” di Pisa

a cura del Servizio per l’Orientamento ([email protected])

tare la libera professione ed essereimprenditori di noi stessi.I programmi di studio sono attuali?La scuola nel suo complesso e moltidei nostri insegnanti collaborano conil mondo industriale. L’analisi deisistemi , quello scolastico e quelloindustriale spinge l’Istituto ad un con-tinuo aggiornamento sia per quantoattiene le conoscenze, le discipline ele nuove tecnologie.I vostri contatti con l’esterno?I contatti con le attività industriali, gliEnti pubblici zonali e l’Università,sono costanti e proficui. I ragazzi nelleclassi terminali dei corsi di studio svol-gono periodi di stage. Ciò permettedi ridurre lo scollamento che di solitoesiste tra sistema scolastico e mondoimprenditoriale.L’Istituto lavora in stretto contattocon l’Università di Pisa nella realizza-zione dei corsi SSIS (scuola di specia-lizzazione post-laurea per l’insegna-mento) discipline di meccanica edelettronica.Inoltre l’Istituto è accreditato pressola Regione come agenzia formativaper lo svolgimento di corsi di for-mazione e post diploma in sinergiacon Comuni e AmministrazioniProvinciali.Ci indichi tre buoni motivi per iscri-versi a questa scuola.Ottima preparazione dei diplomatispendibile sia per ulteriori approfon-dimenti universitari, che per intra-prendere attività professionali sia sub-

ordinate che autonome. Elevatarichiesta di periti industriali sia nelmercato del lavoro zonale che nazio-nale. E, non per ultimo, ottimo climanei rapporti personali tra allievi,docenti e collaboratori.

ALCUNI DATI SULL’ISTITUTO

• 43.000 metri quadri di spazio.• 9.000 metri quadri coperti.• Tanto verde e giardini.• Parcheggio interno per auto e

motocicli.• Bar-ristoro.• Biblioteca rinnovata.• Sala lettura con postazioni multi-

mediali.• Aula musicale.• 2 palestre attrezzate.• Sala pesi.• Aula magna con postazione multi-

mediale.• Corsi di Judo e ginnastica nelle

palestre.• Museo degli strumenti.• 35 laboratori di cui 11 d’informatica.• 750 alunni.• 35 classi.• 101 Docenti.• 1 Dirigente Scolastico.• 1 Direttore Servizi Amministrativi.• 12 Assistenti Tecnici.• 9 Assistenti Amministrativi.• 16 Collaboratori Scolastici.• 1 Servizio biblioteca.

PROGETTUALITÀ E CORSI DI

FORMAZIONE DELL’ISTITUTO

Progetti di Orientamento alle scel-te, destinati agli studenti delle classiseconde finali con interventi di vario

genere, interni ed esterni all’Istituto,finalizzati alla lettura delle proprieabilità, capacità e aspettative.Progetti IFTS - istruzione tecnicoscientifica superiore ProgettiPOST-DIPLOMA, destinati ad uten-za diplomata (anche in altri Istituti).L'obiettivo principale di questi inter-venti è la formazione di tecnici conelevata specializzazione particolar-mente richiesta dal mercato dellavoro.Progetti di Alfabetizzazione e diFormazione Lavoro, destinati adrop-out, ragazzi in obbligo forma-tivo, disoccupati, inoccupati, extra-comunitari; interventi per l'acquisi-zione di competenze tecnico pro-fessionali nell'ottica di prevenzionedella disoccupazione e di inseri-mento lavorativo attraverso lariconversione o l'acquisizione deisaperi/abilità.Progetti di Percorsi Pilota finalizza-ti alla definizione di profili professio-nali diversi dagli standard.Attività di volo, destinate ai ragazzidel corso di CostruzioniAeronautiche (come attività prope-deutica alla conoscenza della stru-mentazione di bordo ed alla elabo-razione di un piano di volo).Attività sportive: preparazione epartecipazione a manifestazioni pro-vinciali, regionali, nazionali.Partecipazioni a gare OlimpicheCulturali (fisica, chimica, mate-matica).Preparazione al conseguimentodella Patente Europea del Computer(E.C.D.L).

SCUOLABUS 55

SCUOLABUS

Figura 1: L’orologio solare dell’ITIS Figura 2: L’aereo costruito dalla sezione aeronautici Figura 3: Uno dei tanti laboratori di informatica

Il presente progetto è stato propo-sto come unità didattica e comeesercizio da completare ad ungruppo di allievi della classe 4Telecomunicazioni sezione B nel-l’anno scolastico 2002-2003.Il progetto è relativo al controllo adanello aperto di un motore passo-passo collegato con una interfacciarealizzata ad hoc connessa ad unPC attraverso la porta parallela cen-tronics. Il programma di controllo èstato implementato in linguaggioC++ utilizzando il compilatoreVisualC++6.00 e la tecnologiaMicrosoft Foundation Classes(MFC).Ovviamente, trattandosi di unaapplicazione didattica non ci sonogrosse pretese di precisione nellamisura e nella impostazione dellavelocità del motore; del restoessendo il motore controllato diret-tamente da un programmaWindows ed essendo quest’ultimoun sistema NON real-time, i tempidi attivazione e di acquisizione da esull’I/O non sono assolutamenteisocroni, cioè possono variare inmodo impredicibile.Il motore passo-passo costituisce

uno spunto didattico interessanteper la sua semplicità, per la suareperibilità e per la facilità con laquale può essere comandato inmodo digitale. Inoltre esso si prestabene ai primi approcci con l’elet-tronica dei BJT in quanto sonorichiesti soltanto transistori chelavorano in ON-OFF, cioè in satura-zione-interdizione, con bassissimadissipazione di potenza, e questo ècome noto, un concetto che vieneassimilato abbastanza facilmente ebene dagli allievi.

L’unità didattica è stata così suddi-visa:

1 Sono stati esposti brevemente ilfunzionamento e la struttura diun motore passo-passo a 4 fasiprelevato da una vecchia stam-pante.

2 È stata esposta la tecnica di misu-ra della velocità e della posizioneangolare per mezzo di un enco-der ottico incrementale.

3 È stata esposta la tecnica dicostruzione di alcuni sempliciprogrammi con interfaccia visua-le utilizzanti la tecnologia MFC.

4 È stato realizzato un programmadi controllo appositamente stu-diato per pilotare il motore inquestione.

5 È stata realizzato lo schema elet-trico di una interfaccia in gradodi fornire la necessaria potenzaalle fasi del motore, non potendoovviamente queste essere pilota-te direttamente dalla porta paral-lela. Nello schema è inserito inol-tre il circuito per il condiziona-mento del segnale fornito dal-l’encoder ottico.

6 È stato realizzato lo sbroglio dellascheda per la successiva fase dicostruzione del circuito stampa-to.

7 Il circuito stampato è stato fresa-to con una fresa per prototipiLPKF in dotazione all’Istituto.

Struttura e funzionamento diprincipio dei motori passo-passo.La struttura di principio di unmotore passo-passo (del tipo dettounipolare) si compone di unmagnete permanente e di 4 sole-noidi, detti FASI, disposti e collega-ti come in figura 1. Il magnete per-manente coincide con il rotore del

SCUOLABUS56

SCUOLABUS

IL PROGETTO:COME GESTIRE UN MOTOREPASSO-PASSO CON WINDOWS®

IL PROGETTO:COME GESTIRE UN MOTOREPASSO-PASSO CON WINDOWS®

Dei Proff. Domenico Iracà, Stefano Mazzantini, Elio Tomaselli, Manola Pisani e degli alunni Polino Antonio,Zaccagnini Francesco, Bettinelli [email protected]

Gestione di un motore passo-passo da personal computer con programma di gestionein ambiente Windows attraverso la porta parallela Centronics con rilevazione dellaposizione e della velocità dell’asse con encoder incrementale.

motore mentre le espansioni polaridelle 4 bobine costituiscono lo sta-tore. L’albero è perpendicolare alpiano del foglio e nella realtà è soli-dale con il magnete, passando peril centro di esso.E’ facile intuire che il magnete puòessere trascinato in rotazione azio-nando in sequenza le fasi A, B, C,D. Supponiamo, ad esempio, cheattivando la fase A nasca un NORDsulla espansione polare superiore. IlSUD del rotore sarà attratto da talepolarità e il rotore stesso ruoterà insenso orario in modo da ridurre ladistanza che separa i due poli, tro-vando la posizione di equilibrio. Seora spegniamo la fase A e attiviamola fase B, il rotore compirà un quar-to di giro in senso orario; spegnen-do la fase B ed azionando la C,avremo un altro quarto di giro ecosì via.

Ci sono 3 modi per controllarne glispostamenti: 2 sono detti a passointero, uno a mezzo passo (esistecomunque anche il modo dettomicro-stepping).Nel modo a passo intero “full step

normal drive mode”, vengono atti-vati 2 avvolgimenti per volta, inquesto caso mediante i buffer A e Bconsentendo, così, il passaggio dicorrente negli avvolgimenti A e B.Si producono, in questo modo, i 2poli nord che faranno ruotare ilrotore di 90° in senso orario (il suosud si fermerà al centro dei 2 norddi statore). Successivamente siazionano B e C, poi C e D infine De A e abbiamo completato un giro.Questo modo di funzionare è quel-lo che sviluppa la maggiore coppiae provoca il maggiore assorbimen-to di corrente.

Naturalmente invertendo lasequenza temporale delle attivazio-ni dei buffer il rotore ruoterebbe insenso contrario.

Un altro modo di controllo a passointero (detto “full step wave drivemode”) si ottiene attivando un soloavvolgimento per volta alternandogli statori da magnetizzare. Adesempio se attiviamo dapprima ilbuffer A, producendo un solo polonord in alto mediante l’avvolgi-

mento A, il rotore si ferma col suosud in alto; se, poi, attiviamo il buf-fer B producendo un polo nord adestra mediante l’avvolgimento B ilrotore ruota di 90° in senso orarioper fermarsi col suo sud a destra. Sifarà concludere il giro attivandoprima il buffer C, poi il D.Anche questa volta invertendo lasequenza (buffer D-C-B-A) si inver-te il senso di rotazione.Questo modo di controllo sviluppameno coppia e dà minore assorbi-mento di corrente.

Il terzo modo è detto “half stepmode”: in esso vengono alternati i2 modi di controllo: 1 passo inwave drive mode, il passo successi-vo in normal drive mode, e così via,il rotore si sposta solo di 45° adogni passo anziché 90.Questo modo di controllo sviluppauna coppia variabile, dà anche unassorbimento variabile di corrente,ma consente dei posizionamentipiù precisi dei dispositivi meccanicimossi dal motore.

Ovviamente il senso degli avvolgi-menti deve essere lo stesso pertutte le 4 bobine, per far sì che perun medesimo verso della correnteche circola in ognuna di esse siabbia la stessa polarità rivolta versoil rotore. Nella pratica 4 capi omo-loghi delle bobine vengono riunitie collegati a comune all’alimenta-zione, e gli altri 4 capi omologhivengono azionati secondo quantodescritto per mezzo di interruttorielettronici a BJT. È interessantecomunque fare qualche prova “amano” che permette di accorgerciad esempio che il motore passo-passo, a differenza dei motori DC oAC, può stare fermo con coppia(cioè sta fermo ma è bloccato).

Vale appena la pena di rilevare chela velocità di rotazione del motorepuò essere variata semplicemente

SCUOLABUS 57

SCUOLABUS

Figura 1: Schema di principio di un motore stepper unipolare a magneti permanenti con circuito di pilotaggio

variando il tempo che intercorre frale attivazioni delle varie fasi.Pertanto la velocità di rotazionepuò andare da 0 fino ad un valoreche è semplicemente dettato dallainerzia meccanica del motore, chead un certo punto non riesce più aseguire il campo magnetico rotan-te e “perde il passo” (non possiamoandare sotto qualche millisecondodi attivazione fra le fasi).Rileviamo infine che un motorereale compie molti più passi dei 4(o otto) consentiti dalla struttura diprincipio, in quanto il rotore è rea-lizzato in modo da avere diversedecine di coppie Nord-Sud.Inoltre esiste un altro tipo di moto-re, detto bipolare, nel quale la cor-rente negli avvolgimenti cambiasenso e richiede una elettronica dipilotaggio più complicata.

In figura 2 è riportato un semplicecircuito di azionamento delle 4 fasiper il pilotaggio unipolare. I diodi,detti di ricircolazione o free-whee-ling, servono a cortocircuitare leextra correnti di apertura dellebobine quando i BJT passano dallainterdizione alla saturazione edevono essere dimensionati inmodo da dissipare l’energiamagnetica che si accumula nellebobine quando i BJT conducono.

In definitiva quindi il funzionamen-to (per ottenere un giro) nei varimodi del motore unipolare saràriassunto dalle seguenti tabelle (sisuppone che il senso crescente cor-risponda al senso orario di rotazio-

ne: scandendo la tabella in sensodecrescente avremo il senso antio-rario):

Misura della posizione e dellavelocità angolare di un alberomotore con encoder incrementale.Un encoder incrementale è un dis-positivo molto semplice che aseconda della precisione con cuiviene realizzato può costare dapochi centesimi fino a diverse cen-tinaia di euro. Qualsiasi mouse necontiene due, uno che rileva gli

spostamenti in orizzontale e unoper gli spostamenti in verticale. Sipossono recuperare anche dallestampanti, in genere abbinati almotore di trascinamento del carrel-lo. Esso è costituito da un discoforato, solidale all’albero del qualesi vuol misurare posizione angolaree/o velocità, posto fra un emettito-re di luce infrarossa e un fotodiodoo fototransistore. L’emettitore ècostantemente acceso e il ricevitoreprodurrà quindi un numero diimpulsi al secondo pari al numerodi giri moltiplicato per il numero difori dell’encoder. È ovvio che laprecisione (e quindi il costo) del-l’encoder dipenderanno appuntodal numero di fori per una datadimensione. Nello schema di figura3 il trigger di Schmitt 74HC14 ènecessario per “pulire” la formad’onda che è presente sul colletto-re del BjT e che per vari motivi nonè una forma d’onda rettangolareidonea ad essere processata daglistadi TTL successivi.Gli encoder sono usatissimi perchémolto robusti, semplici, affidabili einsensibili ad interferenze ambien-tali di vario tipo. Alcuni sono prov-visti di due serie di fori sfalsati di unquarto di passo; ogni serie disponedi una propria coppia emettitore-rivelatore; in tal modo è possibilericonoscere la direzione, a secondache i fronti di un segnale siano inanticipo o in ritardo rispetto a quel-li dell’altro. Infine alcuni tipi hannoun foro di riferimento che serve a

SCUOLABUS58

SCUOLABUS

Figura 2: Schema di montaggio dei transistor e delle fasi del motore passo-passo

FULL STEP NORMAL MODE

FasePasso A B C D Hex

1 1 1 0 0 0x0C

2 0 1 1 0 0x06

3 0 0 1 1 0x03

4 1 0 0 1 0x09

FULL STEP WAVE MODE

FasePasso A B C D Hex

1 1 0 0 0 0x08

2 1 1 0 0 0x0C

3 0 1 0 0 0x04

4 0 1 1 0 0x06

5 0 0 1 0 0x02

6 0 0 1 1 0x03

7 0 0 0 1 0x01

8 1 0 0 1 0x09

FULL STEP WAVE MODE

FasePasso A B C D Hex

1 1 0 0 0 0x08

2 0 1 0 0 0x04

3 0 0 1 0 0x02

4 0 0 0 1 0x01

conoscere con certezza quando si èall’inizio di un giro. La precisione diquesti dispositivi può essere moltoelevata, arrivando, in alcuni tipifotoincisi, anche a 2048 impulsi pergiro su corone di un paio di cm didiametro.La posizione angolare può esseremisurata semplicemente come:

α = (360 * N_impulsi_totali) mod 360N_FORI

Il numero di giri totali come:

N_impulsi_totali / N_FORI

Essendo il N_impulsi_totali il nume-ro di impulsi dall’accensione delmotore e ottenuto accumulandoogni T_misura il numero N_impulsicontato in detto tempo.La velocità in giri al minuto come:

CREAZIONE DEL PROGETTO

SOFTWARE PER WINDOWS 9X

UTILIZZANDO LE MICROSOFT

FOUNDATION CLASS DI

VC++5/6

Nota: il docente si è limitato a forni-re uno scheletro di programma e lespiegazioni di seguito riportate; lesuccessive modifiche e aggiuntesono opera degli studenti; di conse-guenza alcune cose possono appari-

re diverse nel software definitivo.Obiettivo: realizzare un program-ma Windows in grado di comanda-re un motore passo-passo median-te l’interfaccia parallela della stam-pante e nel contempo di visualizza-re la posizione dell’albero medianteconteggio dei fori di un encoderottico incrementale. La scelta dellaporta parallela della stampantecome interfaccia, è dettata dal fattoche tale porta è stata “dimentica-ta” nel meccanismo di accesso pri-vilegiato all’I/O nelle versioniWindows 3x-9x; per altre porte lecose non sono così “semplici”, pur-troppo, e occorrono tecniche spe-ciali e librerie DLL proprietarie pergestire questo meccanismo.

Alcune brevi considerazioni suWindows e sulla programmazio-ne ad oggettiIl nome Windows deriva dal fattoche tutti gli elementi del sistemaoperativo, sia quelli visibili, che altrinascosti, appartengono ad unaclasse di oggetti che si chiamanowindows. L’utente del sistema puòinteragire in vario modo con pul-santi, icone, caselle di testo e altrielementi che vengono chiamati ingergo controlli, ma che sono per ilsistema operativo altrettante fine-stre. Una finestra può in generecontenere altre finestre.Windows è un sistema operativoorientato ai messaggi, vale a diretutto è regolato da messaggi in

forma di identificatori numerici edati che partono dai controlli diuna finestra e arrivano ai controllidi un'altra finestra. Non è detto chetutti gli oggetti di windows sianovisibili.Esiste in Windows una compenetra-zione profonda fra i concetti difinestra, oggetti e classi di oggetti.Infatti le finestre sono oggetti chepossiedono proprietà (es. backco-lor: colore di sfondo), funzionidedicate alla loro manipolazione(cioè metodi, es: show() rende visi-bile una finestra o hide() che larende invisibile) e gestori deglieventi, cioè particolari funzioni chevanno in esecuzione quando nellafinestra accade un particolare even-to (es: OnClick(): quando vienepremuto un pulsante).Ogni finestra eredita i metodigenerali ed è possibile comunqueaggiungerne, così come è possibilecreare nuovi tipi (classi) di oggetti.La differenziazione fra un metodoM applicato ad un oggetto O1 e lostesso metodo applicato ad unoggetto O2 viene effettuato con lacosiddetta notazione punto (ana-loga a quella utilizzata per le strut-ture del C e del Pascal): O1.M eO2.M.Se gli oggetti (o le proprietà)appartengono poi a classi diverseC1 e C2 avremo C1::O1.M eC2::O2.M. Da queste affermazionidiscende che il linguaggio di ele-zione per creare applicazioniWindows è il C++, ovvero C conclassi, dedicato alla programmazio-ne ad oggetti (OOP) ed in partico-lare il VisualC++ dotato di classi“prefabbricate” relative a tutti glioggetti di uso comune, minimiz-zando la necessità di creare nuoveclassi. Ciò non toglie che potrebbeessere utilizzato qualsiasi altro lin-guaggio, ad esempio anche l’as-sembler, ma tutto sarebbe moltopiù faticoso. Intercettando i varimessaggi che le finestre si scambia-

SCUOLABUS 59

SCUOLABUS

Figura 3: Schema elettrico dell’encoder incrementale

no si possono ottenere i comporta-menti necessari per i nostri scopi.I programmi hanno una finestraprincipale che processa i messaggiche arrivano dalle altre finestre.Quando si preme un pulsante inuna finestra, dalla finestra che rap-presenta il pulsante parte un mes-saggio verso la finestra del pro-gramma; quando tale messaggioarriva, viene processato. In realtàquesto sistema è molto lento, perquesto Windows non è assoluta-mente un sistema in tempo realee, per applicazioni specifiche, è ina-deguato: non è infatti garantito iltempo di arrivo dei messaggi per-ché esso dipende fortemente daquanti ce ne sono in giro e daquanto sono veloci i processi che ligenerano e che li usano…pertantonon è garantito il tempo di rispostaad un evento. Possiamo dire che”forse” l’evento verrà processato.Un sistema operativo a finestre intempo reale molto robusto è adesempio QNX.Il compilatore VisualC++ crea unastruttura (detta appunto FRAME-WORK) in cui praticamente tutti imessaggi relativi ai possibili eventisono già processati con delle fun-zioni dette default event handler(gestore predefinito dell’evento).Questa struttura tipicamente è unoscheletro vuoto che genera una opiù finestre di dialogo con even-tualmente pulsanti e menù didefault, alle quali però non è anco-ra associata alcuna azione. E’ nostraresponsabilità riempire questo tem-plate, simulacro, con qualcosa disensato. Con un tool del compila-tore (il class-wizard), possiamo sce-gliere di modificare la gestione pre-definita sostituendo il gestore pre-definito con un nuovo gestore fattoda noi (è quello che facciamoquando con il class-wizard clicckia-mo nella message map su un even-to…).Il class-wizard ci permette di sce-

gliere il messaggio al quale voglia-mo associare un override-handler(gestore modificato rispetto al pre-definito). Volendo possiamo inseri-re nel codice una nostra gestione,prima o dopo quella predefinita.Ad esempio, selezionando il mes-saggio WM_INITDIALOG che ilframework invia quando una fine-stra viene creata e inizializzata:

/* questa è la routine del

framework; oltre al lavoro

predefinito farà ora altro */

BOOL

CSTEPPERDlg::OnInitDialog()

/* qui mettiamo il codice

che ci serve… */

/* questa è la chiamata al

gestore predefinito della clas-

se base che verrebbe invocata

quando la finestra viene crea-

ta */

CDialog::OnInitDialog();

/* qui mettiamo il codice

che ci serve… */

return TRUE;

/* ritorna TRUE se non si

sposta il focus su un control-

lo */

Questa tecnica viene chiamataOVERRIDING (da to override - sca-valcare), perché scavalca il compor-tamento predefinito. Se il nostrocodice non esiste si avrà il compor-tamento predefinito.Un'altra cosa importante da ricor-dare è che le nostre classi rappre-sentano con strutture dati tipoSTRUCT, con metodi e proprietà,gli oggetti con cui lavoriamo e pos-sono essere generate dal class-wizard a partire da classi già esi-stenti dette classe basi ereditandoin tal modo tutte le proprietà e imetodi delle classi base.

Una cosa che può tornare utile è laMessageBox: essa può essere utiliz-zata per far comparire delle finestredi messaggio e quindi anche perdelle rapide verifiche.Se è usata in una funzione statica,non membro di una classe va scrit-ta come :

MessageBox(NULL, buff, "messag-

gio di configurazione:",

MB_ICONINFORMATION);

Il nostro programma sarà sviluppa-to come una applicazione multith-readed.Un applicazione multithreaded(thread - filone) è un programmasuddiviso in più filoni di esecuzioneparallela che cooperano per elabo-rare dati comuni. Un particolarecomponente del sistema operativofa avanzare un thread alla volta perpochi millisecondi. In tal modopossono essere portate avanti piùattività in parallelo, anche se è unparallelismo simulato.Nel nostro caso questo è necessarioperché i gestori degli eventi dellefinestre non possono essere bloc-canti, se non per pochissimo tempo(qualche millisecondo) pena il mal-funzionamento o il non funziona-mento dei controlli; non esiste unmetodo main che possa tollerare unciclo while infinito, cosa che inveceè necessaria per azionare il motoree per controllare il sensore.Una soluzione possibile, ma moltocomplicata, soprattutto conWindows, è lavorare ad interrupt;una soluzione più semplice è creareun thread principale responsabiledella creazione e dell’aggiorna-mento delle finestre e un threadsecondario responsabile della rice-zione dei caratteri. Questo threadsecondario può stare in attesa atti-va, bloccante, senza alcun dannoper il thread principale e per la fun-zionalità delle finestre.

I passi da seguire per la realizzazio-

SCUOLABUS60

SCUOLABUS

ne del software sono i seguenti:

1 Aprire mscdev (il compilatore).2 Fare click su FILE>NEW>PRO-JECTS>MFC application (exe).Viene avviata una autocomposizio-ne (o wizard - mago) nella qualeoccorre specificare un nome per ilprogetto (viene creata una cartellacontenente tutti i file del progetto,eventualmente è possibile specifi-care anche il percorso della cartel-la). Scegliere ad esempio STEPPER.3 Rispondere alle varie richieste:dialog-based, no activeX con-trols, no about-box e lasciare tuttoil resto come di default. Alla finedopo aver premuto FINISH avremoun riassunto del nostro progetto dariempire.4 Fare click su BUILD> build step-per.exe (ci dovrebbe essere un

tasto di scorciatoia sulla toolbar…).5 Fare click su BUILD> executestepper.exe (ci dovrebbe essere untasto di scorciatoia sulla toolbar…).A questo punto avremo una dialogbox che potremo modificare.Chiudiamola con OK. Il wizard ciha creato uno ”scheletro” vuoto; ènostra responsabilità riempirlocome ci è più utile.6 La struttura del nostro progettosarà alla fine la seguente: avremoun task principale che si occuperàdella gestione degli input ed even-tualmente degli output da e sullafinestra di dialogo, un task secon-dario che si occuperà della gestio-ne delle fasi del motore e un altrotask secondario che si occuperàdel controllo del trasduttore diposizione encoder incrementale.La comunicazione fra i tre task

avverrà ad esempio per mezzo divariabili globali o meglio, se pos-sibile, di variabili di classe.7 Avremo bisogno dei seguentiinput:a direzione oraria o antioraria,

utilizzando dei radio-buttonb modo half o full step, sempre

con dei radio-buttonc start e stop, ancora con dei

radio-buttond velocità con una casella di

testo in sola lettura e un con-trollo spin, o anche un con-trollo slider (e magari una pro-gress bar)

e un pulsante per resettare ilcontatore della posizione del-l’encoder incrementale

f una list-box per selezionare laporta parallela del PC

8 Avremo bisogno dei seguenti

SCUOLABUS 61

SCUOLABUS

NUTCHIP

Divertirsi è facile

www.artek.it

NUTCHIPdivertirsiè facile

• 4 Ingressi

• 4 Uscite

• 1 Comparatore

• Opera con RTX Aurel

• Opera con telecomandi TV

Programmabile in 5 minutiRivenditori Welcome

IL TODDLERIL TODDLERun ROBOT che camminaper voi IN KIT

TAOSTAOSSensore di colore

Discrimina 100 colori

per Basic Stamp o

Microcontroller

LU - LALU - LALogic Analyzer USB200 MHz

16 canali su porta USB

1 MByte di memoria per canale

STARTER KIT KIT08STARTER KIT KIT08per Micro MOTOROLA

MC68HC908 GP32

HS350 MHZ 12 BIT USBHS350 MHZ 12 BIT USB• Oscilloscopio

• Analizzatore di Spettro

• Registratore Transitori

• Voltmetro

• Generatore Forme onda

QV502PLAYER MP3QV502PLAYER MP3con Compact Flash

controllato via RS232

MINI TELECAMERA CCDA COLORIMINI TELECAMERA CCDA COLORIcon Microfono completa di

Trasmettitore e

Ricevitore a 2,4 GHz

Sali a bordo e naviga sul sito WEB ARTEK per informazioni Tel. 0542.55900 - Fax 0542.55488

output:a Una casella di testo in sola let-

tura per visualizzare la posizio-ne dell’encoder incrementale.

b Una casella di testo in sola let-tura per visualizzare la velocitàdell’encoder incrementale.

c Una casella di testo in sola let-tura per visualizzare il numero digiri dell’encoder incrementale.

9 Modifichiamo la nostra finestradi dialogo per inserire i nostri ele-menti dei punti 7 e 8: andiamo sullalinguetta RESOURCES e clicchiamosu STEPPER RESOURCES>DIA-LOG> IDD_STEPPER_DIALOG. Siaprirà un editore grafico con ilquale potremo inserire, eliminare,modificare i nostri controlli.Ingrandiamo alquanto la nostrafinestra, rendendola di dimensionecirca 4 volte maggiori (si puòcomunque modificare in ognimomento). Eliminiamo la scrittaFare: disponi… facendoci clicksopra e poi edit‡cut. Se non com-paiono i controlli in una toolbarfare click con il tasto destro in unaarea grigia dei menu e selezionarecontrols. Se non compare qualcosafare click su view‡qualcosa.a Inserimento radio button: sele-

zionare il controllo radio buttonnella toolbar e trascinarlo nelladialog-box. Ripetere per quantiradio-button vogliamo.

b Inseriamo 3 caselle di testocliccando sul controllo caselladi testo nella toolbar e trasci-nandolo dove ci pare piùopportuno nella dialog box.

c Inseriamo un bottone cliccan-do sul controllo button e trasci-nandolo dove ci pare opportu-no nella dialog box.

d Inseriamo un controllo slidercliccando sul controllo slider èpossibile fare in modo che nonappena questo controllo vienespostato vada in esecuzioneuna routine (gestore dell’e-vento, event-handler) che

aggiorna una variabile delprogramma.

e Inseriamo una progress-barcliccando sul controllo progressbar e trascinando. La progressbar ci indicherà in modo visivola velocità impostata; essa verràaggiornata dallo stesso event-handler dello slider.

f Inseriamo dei commenti (staticlabel) dove ci pare accanto aicontrolli per chiarire a cosa ser-vono. I commenti inizialmentesi chiamano tutti static.

10 Adesso dobbiamo fare alcunemodifiche ai controlli per persona-lizzarli e renderli idonei ad“appenderci” del codice eseguibi-le. Facciamo click con il tastodestro del mouse e facciamo com-parire il menu a tendina nel qualeclicchiamo “properties”. Quandocompare la finestra proprietà clic-chiamo sullo spillone per fare inmodo che la finestra non si richiu-da. Adesso possiamo modificaretutte le proprietà dei nostri ogget-ti inseriti nella dialog box e volen-do le proprietà della dialog boxstessa, ad esempio il titolo (cap-tion), i font o altro.Attenzione: gli ID_ o IDC_ o IDD_(a sinistra nella finestra proprietà)sono dei simboli che rappresentanodei numeri con cui viene fatto rife-

rimento agli oggetti nelle varieparti del programma; non ce nedevono ovviamente essere due opiù uguali, ma comunque si posso-no anche scegliere di fantasia. Tuttii controlli possono essere ridimen-sionati e/o allineati fra loro e conriferimento ad una griglia mediantemouse e/o LAYOUT nel menù prin-cipale. Dovrebbe essere abbastanzafacile, almeno dopo alcuni tentati-vi, ottenere una struttura comequella di figura 4.11 Miglioriamo ancora la struttura:Le due caselle di testo vengonorese read-only (cercare in proprie-tà come si fa); rinominiamo gli IDdelle caselle di testo IDC_POSIZIO-NE, IDC_ACTSPEED e IDC_GIRI;impostiamo la proprietà numberper queste caselle di testo, rinomi-niamo l’ID dello slider comeIDC_SPEED.Occorre infine sistemare i radiobutton. I radio button possonoessere raggruppati e si può fare inmodo che attivandone uno si disat-tivino gli altri. Più esattamentedobbiamo impostare per tutti l’at-tributo auto e sul primo del grup-po di controlli che vogliamo rende-re interdipendenti l’attributogroup. I controlli in una dialog-boxsono ordinabili in modo crescente(vedremo, con layoutfl> tab order);

SCUOLABUS62

SCUOLABUS

Figura 4: Interfaccia utente per il controllo del motore

costituiscono un gruppo i controllicon ordinale consecutivo compresifra un controllo con group impo-stato e l’ultimo con group nonimpostato. Occorre fare in modoche nel gruppo modo cliccando sufull si disattivi half e viceversa eanalogamente per ORARIO eA.ORARIO. Per far questo imposta-re la proprietà GROUP di FULL edi ORARIO e assicurarsi che i bot-toni abbiano la proprietà AUTOimpostata e che FULL, HALF eORARIO, A.ORARIO siano in taborder rispettivamente consecutivi.Testare con LAYOUT>TEST. Setutto è ok non ci devono essereinterazioni fra i controlli di gruppidiversi. Già che ci siamo possiamo,solo per nostra comodità rinomina-re gli ID dei radio button con deinomi più ovvi di quelli proposti didefault: IDC_RADIO1>IDC_FULL ecosì via… sono solo nomi.Possiamo inoltre conferire ai radiobutton start e stop l’aspetto di“pulsante interbloccato”.

Adesso salviamo tutto e chiudiamola finestra di editing delle dialogbox e delle risorse.La tabella 1 riporta gli ID dei con-trolli aggiunti al progetto (la tabel-la fa parte del file resources.h).12 Adesso aggiungiamo dellevariabili (dette di classe) chedovranno rispecchiare lo stato deicontrolli. Clicchiamo sulla linguettaFILES del workspace. Viene mostra-ta la lista delle cartelle che conten-gono i files che costituiscono ilnostro progetto, in particolare i .he i.cpp. Quello sul quale lavorere-mo è stepperDlg.cpp, che è il fileresponsabile della gestione dellafinestra di dialogo (pr questo c’è ilsuffisso Dlg). Facciamo click con iltasto destro del mouse nella fine-stra di destra e nel menu che siapre clicchiamo su CLASS-WIZARD.Operiamo come segue:a Selezioniamo la classe

CStepperDlg se non lo è già.Selezioniamo la linguettaMEMBER VARIABLES.Aggiungiamo le variabili diclasse facendo doppio click sulnome dei vari controlli o sele-

zionandoli e ciccando su addvariable. Viene chiesto il nome(viene suggerito un prefissom_, è bene lasciarlo per evita-re confusioni future con altrevariabili) e il tipo della variabi-le. Effettuare le impostazioni inmodo da ottenere uno schemasimile a quello riportato infigura 5.Occorre fare attenzione a sce-gliere il tipo corretto dellavariabile che deve essereaggiunta fra quelli suggeritiquando si preme add variable.

b Selezioniamo ora la linguettaMessages map. Eliminiamo,per snellire il codice, i metodiOnPaint e OnQueryDragIconselezionandoli e ciccando dele-te. Questo elimina in realtà soloi prototipi, dobbiamo poi instepperDlg.cpp cercare i corpied eliminarli a mano, comeviene suggerito dopo aver fattodelete. Adesso dobbiamo crea-re i gestori degli eventi relativialla pressione del pulsante e delcontrollo spin (o slider).Per fare questo nella finestramessages map selezionare ad

SCUOLABUS 63

SCUOLABUS

Figura 5: Le variabili impostate

#define IDC_FULL 1000

#define IDC_HALF 1001

#define IDC_CW 1002

#define IDC_CCW 1003

#define IDC_POSIZIONE 1005

#define ID_SPEED 1006

#define IDC_RESET 1008

#define IDC_START 1009

#define IDC_STOP 1010

#define IDC_PORTA 1011

#define IDC_COPPIAON 1012

#define IDC_COPPIAOFF 1013

#define IDC_ACTSPEED 1016

#define IDC_GIRI 1019

#define IDC_BAR 1020

#define IDC_SPEED 1022

Tabella 1: ID dei controlli del progetto

esempio IDC_RESET e faredoppio click su BN_CLICKED;viene suggerito il nomeOnReset per la routine digestione. Accettare. Ripetere peril controllo IDC_SPEED, selezio-nando OnReleasedCapture. Itasti OK, CANCEL hanno giàuna loro gestione di default checi può andar bene, quindi lilasciamo perdere. Complessivamente con questatecnica aggiungeremo i metodi(in verità gestori di evento).

13 Adesso possiamo cominciare ascrivere il codice. Notiamo intantoche qualche controllo ha, comerisultato dei punti precedenti, unavariabile di classe associata sceltadi un tipo utile a semplificare illavoro di aggiornamento del con-trollo (lettura e/o visualizzazione).Ogni variabile di classe è unastruttura avente proprietà e fun-zioni (metodi) che possono essereutilizzati per operare su di essemediante la notazione punto (dotnotation). Ad esempio una cosautile è modificare il range didefault dello spin button che va da100 a 0 nel range da 200 a 400mediante l’inserimento dell’impo-stazione:m_speed.SetRange(200, 400);Dove? Nella funzione dall’ovvionome init_dialog che il compilato-

re crea per noi!14 Quello che dobbiamo fare ades-so è creare due task o thread, comedetto uno per la gestione delle fasi(solito sistema: sleep e outp) e unoper la lettura del sensore (aspetto inloop che si abbia una transizio-ne…). Questi processi operano leg-gendo e scrivendo da e su variabili(globali e/o di classe) che vengonoricopiate da e nei controlli dallafunzione DoDataExchange creatadal wizard. Il wizard stesso provve-de anche ad inizializzare le varibilidi classe che abbiamo associato aicontrolli a seconda di ciò che abbia-

mo scritto dentro in properties.I task si creano con la chiamatadella funzione:

AfxBeginThread(nome_funzione_ch

e_implementa_il_task, puntato-

re_a_parametro);

La funzione che implementa il taskdeve essere di tipo con ritornoUINT (intero senza segno) e nor-malmente è in ciclo senza fine. Ithread vengono uccisi automatica-mente quando muo-re la finestrache li genera.Mettiamo la creazione dei threadnella solita procedura init_dialog,responsabile della inizializzazionedella finestra. Purtroppo in VC++ itask non appartengono alla stessaclasse CstepperDlg delle variabilim_ e non hanno accesso direttoalle stesse (ricordare che i membridi una classe non hanno accessodiretto ai membri di una altra clas-se e meno che mai una funzioneche non fa parte di una classe haaccesso a membri di una classe).Una cosa importante quindi è capi-re come i due task possano comuni-care fra loro e con il task principaleche gestisce la finestra. Esistono due

SCUOLABUS64

SCUOLABUS

Figura 6: I gestori di evento

Figura 7: Finestre della GUI del VC++ durante la creazione del progetto

sistemi: uno “sporco” ma più effi-ciente dal punto di vista della velo-cità di esecuzione, che utilizza levariabili globali, e uno “pulito” mameno efficiente che passa alla fun-zione che implementa il task unpuntatore all’oggetto (in realtà allazona di memoria) che rappresentala finestra e tutti i suoi controlli.Questo secondo metodo lavora nelmodo seguente: il task viene creatocon un comando del tipo:

AfxBeginThread(fasi,

(LPVOID)this);

This è un puntatore all’oggetto cor-rente, cioè la nostra finestra. Neltask si può accedere, sia in letturache in scrittura, agli oggetti di unafinestra di tipo, ad esempio appun-to, CSTEPPERDlg con una scritturadel tipo:

UINT fasi(LPVOID pt)

/* creiamo un puntatore a

oggetto CSTEPPERDlg inizializ-

zato all’indirizzo della area

di memoria //relativa alla

finestra corrente */

CSTEPPERDlg * p = (CSTEPPERDlg

*)pt;

/* ora con p->oggetto pos-

siamo accedere a qualsiasi

oggetto, metodo o proprietà

della finestra //CSTEPPERDlg:

esempio */

if(p->m_cw.GetCheck())....

// altro....

Purtroppo il sistema è pulito manon efficiente perchè tanto tempodi esecuzione viene perso nei dere-ferenziamenti dei puntatori; per-tanto questa soluzione non è utiliz-zata in quanto provando si è vistoche il motore non può essere con-trollato con precisione che a veloci-tà molto basse.Usando invece le variabili globaliabbiamo però due problematiche

diverse:a Le modifiche dell’utente sui

controlli (ad esempio il cambiodi stato di un bottone) sonocomunicate al task per mezzodel corrispondente cambio distato di una variabile globaleche è manovrata dall’eventhandler del controllo: esempio:un radio-button premuto fa sìche vada in esecuzione il relati-vo event-handler che aggiornavariabile globale e allora il taskmodifica la sua azione in rela-

SCUOLABUS 65

SCUOLABUS

Figura 8: Schema Versione definitiva dellainterfaccia grafica: la velocità èimpostata con uno slider e vienemostrata la velocità rilevata con l’encoder

Figura 9: Schema elettrico dell’interfaccia parallela e del driver del motore passo-passo

zione al nuovo stato della varia-bile globale.

b Viceversa se il task deve aggior-nare un controllo allora essoaggiornerà una variabile globa-le; periodicamente lo stato ditutte le variabili globali destina-te a questo tipo di aggiorna-mento verrà ricopiato nellavariabile di classe a supportodel controllo (o anche diretta-mente nel controllo conSetDlgItemText) da un ulterioreevent-handler della classe dettoOnTimer che ogni tot millise-condi effettua la ricopiatura.

Essendo l’utente finale un uomo,lento, il sistema va bene. Il timerserve anche, nel nostro caso perimplementare il tempo di misuraper il calcolo della velocità, in basea quanto visto prima per l’encoder.Per creare un processo timer si può,sempre nella init_dialog utilizzarela funzione SetTimer(numero_iden-tificativo_timer, tempo_millisecondi,NULL); che crea un timer che scadeogni tmpo_millisecondi. Quando il timer scade si può effet-tuare le operazioni necessarie.Per creare la funzione di gestionedel timer dobbiamo andare nel

class wizard e nella finestraMessages map relativamente allaclasse CstepperDlg cercare il mes-saggio WM_TIMER e fare doppioclick su di essa accettando il nomeproposto. Dopo di che potremofare edit code e andarla a riempirecon il codice:

void CSTEPPERDlg::OnTimer(UINT

nIDEvent) // ogni T_MISURA:

float tmp;

if(flag) m_actspeed =

(60000 * impulsi) / (NFORI *

T_MISURA); // velocità

impulsi = 0; flag = false;

tmp = ((float)posizione /

NFORI); m_giri = tmp; // giri

m_posizione = ((UINT)(360 *

tmp) % 360); //posizione;

CDialog::OnTimer(nIDEvent);

// questa è la chiamata dell’-

handler di default generata

dal wizard

// non rimuoverla…

15 Possiamo ora compilare il tuttodopo le necessarie modifiche perottenere il funzionamento globale.

SCUOLABUS66

SCUOLABUS

Figura 10: Il circuito stampato per la realizzazione del circuito di figura 9

Elenco componenti

Sigla Valore

Q1÷Q4 Transistor 2N1711

R1÷R4 560 Ω 1/4 W

R5 1 KΩ 1/4 W

R6 100 Ω 1/4 W

R7 120 Ω 1/2 W

C1,C2 100 nF ceramico

C4 200 µF 6 V elettrolitico

D1÷D4 Diodi 1N4001

D5 Diodo Zener 5,1 V 1/4 W

U1 Integrato 74HC14

P1 Connettore Centronics(maschio da cs)

Se volete informazioni su un meto-do o su una proprietà potete mette-re il cursore all’inizio della proprietàstessa e poi premere F1: ad esempioper m_cw.SetCheck(false); mettersidopo il punto. Se volete velocemen-te informazioni su una intera classe,ad esempio CButton, scrivereCbutton ovunque nel file, andareprima della C e premere F1; guarda-re class members. Ovviamente poiricancellare Cbutton.

SCHEMA ELETTRICO

INTERFACCIA DI POTENZA

Come si vede dallo schema di figu-ra 9, le fasi del motore risultanocollegate ai bit 0,1,2,3 della portaparallela di indirizzo porta, (pin2,3,4,5 del DB25); il sensore è inve-ce collegato al bit 7 della porta diindirizzo porta+1 pin 11) del DB25.Lo stepper utilizzato è stato recupe-rato da una vecchia stampante;esso è dotato di 6 fili di raggruppa-ti in 2 gruppi di 3: bianco-rosso-verde e giallo-blu-verde; è evidentequindi che i due fili verdi sono icapi comuni delle 4 fasi e possonoessere uniti e connessi alla alimen-tazione positiva (12 o 24 Volt).Dopo alcune prove a mano si è poiverificato che il senso di attivazionedegli altri capi per la rotazione insenso orario in full-step è giallo-bianco-blu-rosso.Come si evince dai dati di targaogni fase del motore ha una resi-stenza interna di 40 Ohm, per-tanto, volendo alimentarlo a 12Vogni BJT deve sopportare unacorrente pari a IL = IC = 12/40 =300 mA; un 2N1711 è perfetta-mente adatto allo scopo e nonnecessita nemmeno di radiatore;per quanto riguarda la resistenzadi base, ipotizzando un hFE mini-mo (con il BJT in saturazione) di100 otteniamo:

IL PROGRAMMA DI GESTIONE

SUL PC

Il programma di gestione è dispo-nibile sul sito di Fare Elettronica(www.farelettronica.com) e, nelformato sorgente, sono indicate lemodifiche effettuate rispetto alloscheletro prodotto dal wizard delcompilatore. L’unico file dello sche-letro che va modificato a mano èSTEPPERDlg.cpp.

I modi di funzionamento imple-mentati sono: • Full step wave-mode.• Half step.• Senso orario.• Senso antiorario.• Motore fermo con coppia (acce-

so con scansione delle fasi bloc-cata).

• Motore fermo senza coppia(spento)

SCUOLABUS 67

SCUOLABUS

Figura 11: Fotografie della scheda di interfaccia finita e del sistema complessivo

Figura 12: Gli autori del progetto: i ragazzi dell’ITIS di Pisa con i docenti Proff. Tomaselli, Mazzantini, Iracà

2004-2005Abbonarsi a Fare Elettronica significa ricevere, comodamente

ogni mese a casa tua, tante idee e consigli per rendere il tuo

hobby una vera passione.

Perché Fare Elettronica si diverte solo quando ti diverti tu.

Abbonandoti potrai ricevere la rivista ad un prezzo molto

interessante rispetto a quello di copertina. Pagherai infatti

solo € 39 invece di € 51 con un risparmio di ben € 12 oltre

a ricevere uno sconto del 10% su tutti i libri del catalogo

SANDIT (più di 800 titoli).

1 ANNO

11 RIVISTE

A SOLI € 39

)CAMPAGNA ABBONAMENTI

ABBONARSI A FARE ELETTRONICA CONVIENE.

Abbonarsi subitoconviene ancora di più.

Perchè?

Inoltre!

)))

)

Perchè pagherai solo € 39anzichè € 51

Inoltre avrai diritto al 10% di sconto su tuttii libri (più di 800) del catalogo SANDIT

Standard: Il tuo abbonamento personale o aziendale al costo di € 39

Regalo: Se sei già abbonato e vuoi regalare un nuovo abbonamento ad un amico,lo pagherai solo € 35 (10% di sconto) comunicando il tuo codice

Scuole: Riservato a scuole ed università; ordinando quattro abbonamenti ne riceverai

uno in omaggio, pagherai quindi € 156 anzichè € 195 (20% di sconto)

Per Posta: scrivere a INWARE Edizioni - Via Cadorna, 27 - 20032 Cormano (MI)

Per Telefono: al numero +39 02.66504794

Per fax: al numero +39 02.66508225

Via Internet: sul sito www.farelettronica.com alla pagina campagna abbonamenti

Diverse possibilità di abbonamento:

Come abbonarsi:

(è possibile pagare con bollettino postale, bonifico bancario e carta di credito, maggiori dettagli in ultima pagina)

IL BUS CANIL BUS CANdi Nicola [email protected]

Il bus CAN è una rete seriale origina-riamente creata per l’industria auto-mobilistica ma che si è presto affer-mata sia nell’automazione industrialesia in molti altri campi. Il ControllerArea Network è definito come unsistema multi-master che invia mes-saggi in broadcast (“a tutti i disposi-tivi connessi”) con velocità massimapari a 1M bit al secondo (Mbps). Adifferenza delle reti USB o Ethernet,ad esempio, il CAN non utilizza lun-ghi blocchi di dati per le trasmissionida un nodo ad un altro (trasmissionepoint-to-point) sotto la supervisionedi un dispositivo Master. Nel CAN,invece, messaggi brevi come lacomunicazione di una temperatura ola velocità (RPM), sono spedite inbroadcast a tutta la rete.

LO STANDARD CAN

Il CAN è un bus di comunicazioneseriale definito da uno standardISO (International StandardizationOrganization), sviluppato per l’in-dustria automobilistica con loscopo di rimpiazzare il complessogroviglio di cavi con due soli fili,permettendo così la semplificazio-ne della stesura dei fili elettrici econsentendo un notevole rispar-mio. Le specifiche dichiarano unavelocità che può raggiungere1Mbps, alta immunità alle interfe-renze elettriche e ottima capacitàdi auto-diagnosi e riparazioneautomatica degli errori. Questesono le caratteristiche che hannoportato al successo di questo stan-dard e al suo ampio impiego in

vari campi quali, oltre al settoreautomobilistico già citato, quelloaerospaziale, manifatturiero,marittimo ed anche in campomedico.Il protocollo di comunicazioneISO11898 definisce come le infor-mazioni devono essere passate trai vari dispositivi sulla rete, confor-memente al modello OSI (OpenSystem Interconnection) definitoin termini di layers. La comunica-zione tra i dispositivi connessi almezzo fisico è definita dal“Physical layer” del modello.L’architettura ISO11898 definisce idue layers inferiori dei sette layersdel modello OSI/ISO, e cioè ildata-link layer il physical layer(figura 2).

Dopo il bus 1-Wire, presentato nel numero precedente, parliamo questo mese di unaltro bus che utilizza due soli fili come supporto fisico per la trasmissione e che offregrandi potenzialità. Il Controller Area Network (CAN) è un bus il cui impiego è ormaiconsolidato in ambito industriale. Il suo costo, prestazioni e facilità di aggiornamentoforniscono una eccezionale flessibilità nel progetto dei sistemi.

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI70

Figura 1: Il bus CAN è utilizzato nelle auto per ilcontrollo di sensori e attuatori Figura 2: L’architettura standard ISO 11898 basata su layers

L’Application layer stabilisce inve-ce la comunicazione verso un pro-tocollo per applicazioni specifiche,a livello superiore, come ad esem-pio il protocollo CANopen, indi-pendente dal venditore. Questoprotocollo è supportato dal grup-po di costruttori e utenti interna-zionali CAN in Automation (CiA).Informazioni dettagliate possonoessere reperite dal sito del CiA ,www.can-cia.org. Ci sono inoltremolti altri simili protocolli emer-genti, dedicati ad applicazionispecifiche come per l’industriadell’automazione o aviazione.Esempi di protocolli detti industry-standard, basati sul CAN, sonoKVASER’s CAN Kingdom, Allen-Bradley’s DeviceNet e Honeywell’sSmart Distributed System (SDS)

STANDARD CAN O EXTENDED

CAN? (QUESTO È IL

PROBLEMA…)

Il protocollo di comunicazioneCAN è un Carrier-Sense Multiple-Access con rilevazione delle colli-sioni e arbitraggio sulla priorità deimessaggi, in una parolaCSMA/CD+AMP. CSMA vuol direche ogni nodo deve osservare se cisono segnali sul bus e aspettare unpredefinito tempo di inattivitàprima di tentare di spedire unmessaggio. CD+AMP sta a signifi-care che le collisioni sono risolteattraverso un arbitraggio che sibasa sulla priorità stabilita di ognimessaggio, indicata dall’identifica-

tore del messaggio stesso.L’identificatore con la priorità piùalta vince sempre l’accesso al bus.

La prima versione del CAN, ripor-tata in Tabella 1, ISO11519 (Low-

Speed CAN) è stat ideata perapplicazioni fino a 125 kbps edutilizza un identificatore ad 11 bit.La seconda versione, ISO11898(1993) ancora con identificatoread 11 bit, incrementa la velocità

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI 71

C’era una volta…La prima versione del bus CAN è stata sviluppata da Robert Bosch[2] nel 1986 quando gli fu commissionato lo sviluppo di un siste-ma per la comunicazione di tre ECUs (Electronic Control Units)poste in veicoli della Mercedes. Ormai la UART non era più adat-ta per queste esigenze perché consentiva la comunicazione tradue soli dispositivi (connesione point-to-point). La necessità di unsistema di comunicazione multi-master era ormai tassativa. Ilprimo chip CAN fu fabbricato nel 1987 da Intel.Figura 3: Sensore di pressione della

Sensor-Technik dotato di interfaccia CAN

Nomenclatura Standard Massima velocità Identifier

Low-Speed CAN ISO 11519 125 kbps 11 bit

CAN 2.0A ISO 11898:1993 1 Mbps 11 bit

CAN 2.0B ISO 11898:1995 1 Mbps 29 bit

Tabella 1: Versioni del CAN

Nomenclatura Descrizione

SOF Segnala l’inizio del messaggio

IdentifierStabilisce la priorità del messaggio. Più piccolo è il valore binario, maggiore è la priorità

RTRSingle Remote Trasmission Request. È un bit dominatequando l’informazione è richiesta da un altro nodo

IDEIndica che l’identificatore è standard a 11 bit e non c’èestensione

r0 Riservato per usi futuri

DLCCodice a 4 bit contenente il numero di bytes cheverranno trasmessi

Data Dati di lunghezza massima di 64 bit

CRC Codice per la rilevazione di errori

ACKUtilizzato per confermare la corretta ricezione o menodel messaggio

EOF Indica la fine del messaggio

IFSIndica il tempo richiesto dal controllore per permemorizzare correttamente il messaggio ricevuto

Tabella 2: I bit nei messaggi Standard CAN (figura 4)

fino a 1Mbps mentre il più recen-te emendamento ISO11898(1995) introduce l’identificatoreesteso a 29 bit. La seconda versio-ne è spesso indicata comeStandard CAN Version 2.0Amentre l’ultima è chiamataExtended CAN Version 2.0B. Perfare un po’ più di confusione, ilCAN standard è anche chiamatoBasicCAN mentre c’è chi si riferi-sce alll’Extended con FullCAN. Lostandard CAN facente uso dell’i-dentificatore a 11 bit (figura 4),fornisce quindi 211=2048 diversiidentificatori per i messaggi men-tre l’Extended CAN arriva a ben229 e cioè 537 milioni di diversepossibili combinazioni di identifi-catori.

MA COME FUNZIONA?

I messaggi contenenti dati, tra-smessi da ogni nodo sul bus, noncontengono indirizzi né del nodotrasmittente né di un possibilenodo ricevitore. Quello che vienefatto, invece, è etichettare il con-tenuto del messaggio con unidentificatore (si, ancora lui) che èunico in tutta la rete. Tutti gli altrinodi (ah! nodo = dispositivo) sullarete ricevono il messaggio ed ese-guono un test di riconoscimentosull’identificatore per capire se ilmessaggio, e quindi il contenuto,è indirizzato a loro oppure no. Selo è, viene processato, altrimentisarà ignorato.

IL LAYER FISICO

Prima di fornire altri dettagli sulprotocollo di comunicazione delCAN, vediamo come viene effet-tuata la trasmissione dei bit. Illayer fisico (figura 2) non è partedello standard Borsch CAN ma èincluso nello Standard ISO11898.Nei messaggi CAN, i bit possonoessere spediti come high (cioè 1),chiamato nel CAN anche bitRecessivo, oppure come low (cioè0) che è invece il Dominante.Come indica il nome, lo 0 dominasull’1, che vuol dire che se unnodo tenta di spedire uno 0 ed unaltro prova a spedire un 1, il risul-

tato che si osserverà sul bus saràuno 0 (figura 7). I segnali sono tra-smessi su due fili chiamati CAN-High e CAN-Low che operano inmodo differenziale (figura 8).Questo vuol dire che le tensioniche essi trasportano, variano inmodo opposto sui due fili in mododa incrementare la tolleranza alrumore. Lo Standard ISO11898prevede che per la trasmissionedel bit Recessivo, entrambe lelinee siano tenute a 2.5V (lineacontinua nelle figure 7 e 8) mentreil bit Dominante viene trasmessoportando la linea CAN-High a3.5V e la linea CAN-Low a 1,5V

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI72

Figura 5: Schede della National Instrument perl’interfacciamento al PC di reti CAN

Il CAN in breve (per chi non ha voglia…)

• Multi-master• Protocollo di comunicazione CSMA/CD+AMP• Basato su messaggi e non su indirizzi.• Utilizza un cavo twisted-pair come supporto fisico per

la trasmissione.• Massima frequenza del segnale 1 Mbit/s• Massima velocità di trasmissione dati (data-rate) effettiva

40 kBytes/s• Massima latenza di messaggi ad alta priorità inferiore a 120 us

a 1 Mbit/s• Lunghezza del cavo massima 30m a 1Mbit/s; fino a 1km a

velocità inferiori.• Presenta alta affidabilità grazie ad un sofisticato controllo

degli errori.• Massimo numero di dispositivi connessi al bus elevatissimo in

teoria, non superiore a 30 in pratica.• Esistono due versioni principali:

- 2.0A - Standard CAN - 11 bit Identifier- 2.0B - Extended CAN - 29 bit Identifier

Figura 4: I bit nei messaggi CAN standard (o BasicCAN, identificatore a 11 bit) e CAN Esteso (o FullCAN,identificatore a 29 bit

(doppia linea nelle figure 7 e 8),creando così una tensione diffe-renziale tipica di 2V. “Notate chepoichè per entrambe le linee delCAN sono definite delle tensionipositive, una domanda sorgespontanea: rispetto a cosa?Sembra infatti esistere in letteratu-ra un po’ di omertà sul fatto chedeve esistere un terzo conduttoreper il riferimento di massa!”Lo standard indica anche l’impe-denza caratteristica della linea chedeve essere 120Ω.

ARBITRAGGIO E

IDENTIFICATORI

L’ormai famoso Identificatoredetermina anche la priorità delmessaggio. La priorità più altaspetta all’identificatore con valorenumerico più basso. Questo per-mette di stabilire quale nodo puòaccedere al bus se due di essi ten-tano di farlo contemporaneamen-te. Ogni dispositivo che trasmettesulla rete, osserva contemporanea-mente lo stato del bus (figura 8).Questo perché, se tentando di

spedire un 1, rilevasse invece uno0 sulla rete, capirebbe allora diaver perso l’arbitraggio e devràbloccare immediatamente la tra-smissione per lasciare la preceden-za al nodo con priorità più alta(figura 7).In questo modo il messaggio a piùalta priorità ha la certezza di veni-re trasmesso, proprio come se nes-sun altro tentasse di accedere albus allo stesso tempo, evitandocosì la ritrasmissione dei messaggiche porterebbe ad una diminuzio-ne delle prestazioni. I messaggi apriorità inferiore sono automatica-mente ritrasmessi nel successivociclo oppure in quello dopo anco-ra, se altri messaggi a maggiorepriorità continuano a venir spediti.

Non è consentito a due nodi dellastessa rete di mandare messaggicon stesso ID. Se succedesse, l’ar-bitraggio non potrebbe funziona-re. I nodi trasmittenti si accorge-

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI 73

Figura 7: Esempio di arbitraggio nel bus CAN. I rettangoli indicano i bit dominanti e le linee quelli recessivi.In nero sono invece indicati i dati e in ciano l’identificatore

Figura 8: La logica invertita del bus CAN. Notare che ogni nodo controlla continuamente lo stato delbus anche mentre sta trasmettendo

Figura 6: Test dell’EPAS. In un servosterzo, o EPAS(Electronic Power Assist Steering System),un’unità di controllo elettronica acquisisce segnali, come la forza della sterzata e lavelocità del veicolo, li passa ad unalgoritmo di controllo e aggiusta imessaggi CAN che controllano ilservomotore. Per validare l’algoritmo dicontrollo dell’EPAS, l’ingegnere dei testautomobilistici può acquisire messaggidal CAN e dalla scheda analogica (DAQ)simultaneamente, analizzarli edeterminare se è stata prodotta l’uscitadesiderata per il servomotore

Nomenclatura Descrizione

>I nomi non riportati hanno lo stesso significatodello Standard CAN

SRR Sostituisce il RTR della prima versione

IDE Indica che ci sono altri 18 bit identificatori che seguono

r1 Ulteriore bit riservato per usi futuri

Tabella 3: I bit nei messaggi Extended CAN (figura 4)

rebbero che il loro messaggioviene distorto e quindi utilizzereb-bero la correzione errori dellostandard CAN che in caso di erro-ri ripetuti porterebbe infine allospegnimento automatico di unodei nodi (bus-off mode).

TIPI DI DATI

Esistono quattro tipi principali dimessaggi (o frames) nel CAN,chiamati remote frames, error fra-mes, overload frames e data fra-mes. Gli ultimi sono i messaggiutilizzati per la trasmissioni deidati e sono i messaggi “normali”del CAN. I remote frames sonoinvece messaggi utilizzati per larichiesta di informazioni. Unframe con l’RTR alto (tabella 2,figura 4), vuol dire che il nodotrasmittente sta chiedendo infor-mazioni del tipo specificato dall’i-dentificatore. Il nodo con l’infor-mazione disponibile dovrà rispon-dere spedendola sulla rete. Infunzione dell’implementazionedel controllore CAN, la rispostapotrà essere spedita automatica-mente. Controllori CAN più sem-plici (BasicCAN) non possonorispondere in automatico. In que-sto caso viene comunicata almicrocontrollore host la richiestae esso dovrà spedire il dato.L’error frame è un messaggio spe-ciale che viola le regole di format-tazione di un messaggio CAN e

viene trasmesso quando un nodorileva un errore nel messaggio.L’overload frame, simile all’errorframe, viene trasmesso da un dis-positivo che è diventato troppoimpegnato nelle trasmissioni erischia di non poter gestire i mes-saggi nel tempo previsto.

GESTIONE DEGLI ERRORI ED

ISOLAMENTO GUASTI

La robustezza del CAN può essereattribuita in parte alle sue abbon-danti procedure per il controllodegli errori. Il protocollo CANincorpora cinque metodi di con-trollo: tre a livello di messaggio edue a livello di bit. Se un messag-gio fallisce uno di questi cinquecontrolli, non viene accettato eviene generato un error frame dalnodo ricevitore causando la ritra-smissione da parte del nodo tra-smittente, finchè la ricezione nonè corretta.Comunque, se un nodo rileva unerrore in continuazione, vuoi perdisturbi, vuoi per un suo guasto,occuperebbe di conseguenza ilbus all’infinito. Allora interviene ilsuo controllore che provvede aspegnerlo dopo un certo numerodi tentativi di ricezione per libera-re la rete.

CONCLUSIONI

Il CAN è un bus ideale per applica-zioni che richiedono un elevatonumero di brevi messaggi in unbreve periodo di tempo. Inoltre,

fornisce l’alta affidabilità richiestaper l’uso in ambienti operativiostili. Poiché il CAN è basato sumessaggi e non su indirizzi, è par-ticolarmente adatto per grandisistemi, quando i dati sono richie-sti da più di una locazione e la lorointegrità è obbligatoria.

Un altro rilevante vantaggio delCAN è la capacità di gestioneautomatica dei guasti. I nodi difet-tosi sono automaticamente sgan-ciati dalla rete, evitando che talidispositivi impediscano la comuni-cazione di tutto il bus, rendendolocosì sempre disponibile per even-tuali messaggi ‘urgerti’.Questo tipo di gestione degli erro-ri permette anche l’aggiunta didispositivi al bus mentre la rete stafunzionando, analogamente aquello che avevamo già visto per ilbus 1-wire (funzionamento hot-swap oppure hot-plugging).

Terminiamo questo tutorial conuna puntualizzazione sui compro-messi a cui bisogna scendere nel-l’implementazione reale di unarete. La massima velocità di1Mbps è ottenibile solo nei casiideali in cui la rete ha una lun-ghezza non elevata e il numero didispositivi connessi è basso.Generalmente si usano bus di lun-ghezza inferiore a 30m con menodi 30 nodi connessi. Il data-rateeffettivo che si raggiunge è40kBytes/s.

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI74

Lunghezzadel bus (m)

Velocità ditrasmissione (kbps)

30 1000

100 500

250 250

500 125

1000 62.5

Tabella 4: Velocità massima dei segnali inrelazione alla lunghezza dei cavi

BIBLIOGRAFIA

[1] Steve Corrigan, “Introduction to the Controller Area Network (CAN)”,Application Report SLOA101, Texas Instrument web page:http://www.ti.com/

[2] http://www.can.bosch.com/[3] http://www.ni.com/swf/presentation/us/can/[4] http://www.can-cia.org/[5] http://www.computer-solutions.co.uk/gendev/can-tech.htm

ALCUNE DELLE DATE INDICATE POTREBBERO SUBIRE VARIAZIONI

Dalla prima radiotrasmissione attraverso l’Atlantico, avvenuta nel 1901 ad opera diGuglielmo Marconi, sono nati telegrafo, radio, telefono, televisione, radar, telematica,Internet e tutto l'universo dell'informatica. A 103 anni da quell’esperimento, la possibilità dicomunicare senza un supporto fisico (su tutto il pianeta o addirittura fino agli angoli piùreconditi dello spazio siderale) si è evoluta in maniera prodigiosa e utilissima: dalle attivitàmilitari e della Protezione Civile, al mondo dell’informazione, al lavoro, al tempo libero.

ABC dell’Elettronica presenterà una gamma vastissima di prodotti: computer, software, periferiche, accessori e ricambi;telefonia fissa e mobile; video games; home entertainment (hi-fi, vhs, dvd, antenne, decoder satellitari e digitali); pic-coli elettrodomestici e strumentazioni varie. Altrettanto assortito sarà il settore dell'elettronica «fai da te» con kit perauto costruzione, surplus, schede, circuiti; ricetrasmittenti Om, CB e componentistica per l'utilizzo radioamatoriale.

3-4 Aprile 2004

A.B.C. DELL'ELETTRONICA

LUOGO: Lario Fiere, Viale Resegone – ERBA (CO)ORARI: dalle 9.00 alle 18.00ORGANIZZATORE: Blu Nautilus

(www.blunautilus.it – Tel 0541.439573)

INGRESSO: € 7,00 (il biglietto è valido anche per laFiera dell’Astronomia)

Nell’ambito di ABC dell’Elettronica di svolge anche la Fiera dell’Astronomia, uno dei pochis-simi momenti in Italia dedicati all’astronomia amatoriale. Accanto al lavoro degli scienziati,c’è un vasto pubblico che si dedica a questo affascinante hobby. Alla Fiera dell’Astronomiapartecipano aziende e rivenditori di strumenti utili per l’osservazione e lo studio della votaceleste: semplici binocoli, potenti telescopi, accessori ed editoria specializzata: libri, riviste,corsi e software. Oltre all’esposizione commerciale, è l’occasione per incontrarsi fra “addet-

ti ai lavori”. Le Associazioni Astrofile e di Astronomi, partecipi in grande quantità, giocano un ruolo di primo piano,presentando la propria attività, materiali prodotti e immagini astronomiche, planetarie e di profondo cielo. E’ perciòl’occasione giusta, anche per chi vuole avvicinarsi a questo argomento, per prendere contatti ed approfondire le pro-prie conoscenze in materia di cielo e stelle.

3-4 Aprile 2004

FIERA DELL’ASTRONOMIA

LUOGO: Lario Fiere, Viale Resegone – ERBA (CO)ORARI: dalle 9.00 alle 18.00ORGANIZZATORE: Blu Nautilus

(www.blunautilus.it – Tel 0541.439573)

INGRESSO: € 7,00 (il biglietto è valido anche per laFiera ABC dell’Elettronica)

2004

Le fiere e mostre mercatodi AprileLe fiere e mostre mercatodi Aprile

Mostra-mercato attrezzature elettroniche, radiantistiche, ricezione via satellite, informatica& editoria specializzata.

17-18 Aprile 2004

MOSTRA EMPOLESE DELLA RADIANTISTICA E DELL’ELETTRONICA

LUOGO: Palazzo Delle Eesposizioni – EMPOLI (FI)ORARI: dalle 9.00 alle 18.00ORGANIZZATORE: Studio Fulcro

www.studio-fulco - Tel 010.561111

INGRESSO: n.p.

17-18 Aprile 2004

FIERA MERCATO DELL’ELETTRONICA DI PESCARA

LUOGO: Fiera Adriatica – SILVI MARINA (TE)ORARI: dalle 9.00 alle 18.00ORGANIZZATORE: Studio di Camillo Antonino

(Tel 085.4215840)

INGRESSO: n.p.

Dopo il successo dello scorso anno, la Gedit che la organizza e l’amministrazione Comunale che la ospita, hanno volu-to confermare l’appuntamento per tutti gli appassionati del settore. Gli articoli presenti saranno: elettronica, informa-tica, radiantistica, componenti elettrici, radio d’epoca, telefonia, accessori, utensili per hobbysti.. Oltre 55 espositoriprovenienti da tutta la penisola hanno confermato la loro presenza alla seconda edizione della manifestazione.

24-25 Aprile 2004

2° ELETTRO@BIT

LUOGO: Via Tirso – Zona industrialeCIVITAVECCHIA (ROMA)

ORARI: dalle 9:00 alle 13:00 edalle 15:00 alle 18:30

ORGANIZZATORE: GEDITwww.sitopreferito.it/gedit - Tel 075.5991020

INGRESSO: € 3,00

Una fiera che riunisce le ultime invenzioni nel campo della radiantistica, dell'elettronica edell'informatica e dell’hi-fi, una vetrina per conoscere i progressi della tecnica e aggiornarsisui nuovi sistemi di radiodiffusione, le ultime frontiere del car-audio, dell'audio/video e del-l'emergente settore del car-theater.

24-25 Aprile 2004

39a RADIOAMATORE / HI-FI

LUOGO: Viale Treviso, 1 - PORDENONEORARI: dalle 9:00 alle 18:30ORGANIZZATORE: Ente Autonomo Fiera Di Pordenone

www.fierapordenone.it – Tel 043.4232111

INGRESSO: € 7,50

Continuiamo questo mese a fare esperimenti in C sul PIC 18F452.Useremo il compilatore PCH della CCS-C all'interno dell'ambiente di sviluppo standardMicrochip MPLAB, trasferiremo il programma all'interno della memoria del PICmicrocon il programmatore Microchip ICD2, proveremo il programma sulla scheda peresperimenti Microchip PICDEM 2 PLUS e le funzioni di debug a livello sorgente.Vedremo quindi come utilizzare un porta seriale del PICmicro per visualizzare imessaggi generati con la funzione printf() sul video del PC.

TUTORIAL78

MPLAB - L'AMBIENTE DI

SVILUPPO UFFICIALE PER I

PICMICRO

Chiunque programmi i PICmicroconosce, o dovrebbe conoscere, ilsoftware MPLAB creato da Microchipper integrare in un unico ambiente disviluppo la miriade di programmatorie compilatori disponibili.

MPLAB è un ambiente di tipo IDE(Integrated Development Environ-ment - Ambiente di SviluppoIntegrato) ovvero un programmaunico in cui è possibile editare i sor-genti da compilare, lanciare la compi-lazione, programmare il PICmicro edeffettuare il debugging, in temporeale, del programma in esecuzione.MPLAB può essere scaricato gratuita-mente dal sito Microchip al seguenteindirizzo:http://www.microchip.com/1010/pline/tools/picmicro/devenv/mplabi/mplab6/index.htm

In configurazione standard MPLABinclude solo il compilatore AssemblerMPASM e gestisce solo alcuni pro-grammatori quali il PICSTART ed ilPROMATE, ma con l'uso di modulisoftware denominati plug-in, è in

grado di gestire un lunga serie dicompilatori e programmatori anchedi terze parti.In questo articolo proveremo l'integra-zione con il programmatore ICD2 ed ilcompilatore C PCH prodotto da CCS.

IL PROGRAMMATORE ICSP ICD-2

Il ICD-2 è un programmatore in-cir-cuit con il quale è possibile trasferire il

codice direttamente nella memoriadel PICmicro senza doverlo rimuove-re dalla scheda in cui viene utilizzato.L'ICD-2 dispone di una connessioneUSB verso il PC da cui estrae anchel'alimentazione elettrica. Per chi nondispone di una connessione USB èdisponibile in alternativa anche unaconnessione seriale RS232. In questocaso però occorre collegare l'ICD-2

TUTORIAL

VITAMINA CVITAMINA Cdi Sergio [email protected]

settima parte

Figura 1: L'ambiente di sviluppo MPLAB

l’alimentatore fornito in dotazione.

Tutta la documentazione ufficialeMicrochip sul programmatore ICD2 èdisponibile su:http://www.microchip.com/1010/pline/tools/picmicro/icds/icd2/index.htm

IL REAL TIME DEBUGGING

Oltre alla programmazione, l'ICD 2consente di effettuare il debug intempo reale del codice in esecuzionesul PICmicro.Il debug (dall'inglese togliere gli sca-rafaggi, ovvero eliminare gli errori diprogrammazione) è una caratteristicadegli ambienti di programmazioneche consente l'esecuzione dei pro-grammi una istruzione alla volta peridentificare eventuali errori di pro-grammazione.Fino all'introduzione dei debugger in-circuit, per poter effettuare il debug intempo reale su un microprocessoreoccorrevano apparecchiature dalcosto molto elevato. Oggi questasituazione per fortuna è cambiata, inquanto le case produttrici di chiphanno inserito nei micro delle circui-

terie di supporto al debug che con-sentono l'esecuzione passo passo diun programma anche con una circui-teria esterna molto semplice. Nel casodi Microchip non tutti i chip dispon-gono di questa circuiteria per cui siconsiglia di verificare sempre se tra lecaratteristiche di un chip è presenteanche il supporto al debug.Il PIC18F452 dispone di questa carat-teristica.

LA DEMO BOARD PICDEM 2 PLUS

Per effettuare gli esperimenti sul-l’hardware questa settimanaabbiamo utilizzato la scheda PIC-DEM 2 prodotta da Microchip.Questa scheda dispone di:

• Alloggiamenti per PICmicro a 18,28 e 40 pin.

• Un display LCD da 16x2 caratteri.• Una porta RS232.• 4 led.• 3 pulsanti.• Una EEPROM.• Un beeper piezoelettrico.• Un connettore per il programmato-

re ICSP.• Una sezione millefori da 40x55 mm.

Potete scaricare tutta la documenta-zione su questa scheda, compreso loschema elettrico completo, da:http://www.microchip.com/1010/pline/tools/picmicro/icds/icd2/cupola/p

cdmplus/index.htm

PRIMO ESPERIMENTO

Dopo aver installato il softwareMPLAB, il compilatore PCH ed il soft-ware di supporto dell'ICD-2, colleghia-mo il programmatore ICD-2 alla sche-da PICDEM 2 PLUS. Inseriamo nellozoccolo a 40 pin il PIC18F854, diamoalimentazione alla scheda e proviamoil nostro primo programma in C.

Lanciamo l'ambiente MPLAB dalmenu Programmi > Microchip MPLABIDE > MPLAB IDE.Assicuriamoci che il programmatoredi default sia l'ICD-2 come mostratoin figura 4.

Questa è l’icona da premere perattivare la connessione con il pro-grammatore ICD-2.

Nella finestra Output dovrebbe appa-rire la seguente scritta ad indicare chetutto è andato per il verso giusto:

Connecting to MPLAB ICD 2

...Connected

Setting Vdd source to target

Target Device PIC18F452 found,

revision = 0x6

...Reading ICD Product ID

Running ICD Self Test

...Passed

MPLAB ICD 2 Ready

TUTORIAL

TUTORIAL 79

Figura 2: Il programmatore/debugger ICD2della Microchip

Figura 3: La scheda PICDEM 2 PLUS usata perl'esperimento in C di questa puntata Figura 4: Configurazione dell'ICD-2 come programmatore di default

Connecting to MPLAB ICD 2

...Connected

Setting Vdd source to target

Target Device PIC18F452 found,

revision = 0x6

...Reading ICD Product ID

Running ICD Self Test

...Passed

MPLAB ICD 2 Ready

Selezioniamo quindi il menù Project >New ed inseriamo nel campo ProjectName, esempio1 e nel campo ProjectDirectory il nome della directory chevogliamo usare per memorizzare inostri sorgenti di prova, ad esempioc:\vitaminac.

L'MPLAB aprirà una finestra comequella di figura 5 in cui potremo inse-rire i file appartenenti al nostro pro-getto.È consigliabile creare sempre un pro-getto in quanto l'MPLAB manterràper noi tutte le informazioni relativealla configurazione del PICmicro, del-l'ambiente di sviluppo e dei file dacompilare per ottenere il programmafinale sotto un unico nome identifica-tivo, il nome del nostro progetto.

Lanciamo a questo punto l'editorASCII integrato nell'MPLAB selezio-nando il menu File > New.Sul video apparirà la finestra Untitled.All'interno di questa finestra digitiamoil codice di esempio già utilizzatonella precedente puntata per far lam-peggiare i due led:

#include <18F452.h>

#use Delay(Clock=10000000)

#fuses HS,NOWDT,NOPROTECT,NOLVP

void main()

for (;;)

delay_ms(1000);

output_high(PIN_B0);

output_low(PIN_B1);

delay_ms(1000);

output_low(PIN_B0);

output_high(PIN_B1);

Salviamolo quindi con il nome esem-pio1.c nella directory c:\vitaminacdal il menu File > Save As.Aggiungiamo il nostro file al progettoesempio1 selezionando il file sorgen-te dal menu Project > Add Files toProject.

Noteremo che nella finestra di pro-getto il nostro file sarà stato inseritosotto la voce Source Files.

Da ora in poi per accedere al nostrofile sorgente sarà possibile effettuareun doppio click sul nome del file nellafinestra di progetto.

COMPILAZIONE

Per lanciare la compilazione con ilCCS-C assicuriamoci che sia statoselezionato come compilatore didefault dal menu Project > SelectLanguage Toolsuite selezionando allavoce Active Toolsuite il CCS-C

Compiler, come mostrato in figura 7.

Premiamo questo pulsante persalvare il progetto.

Premiamo questo pulsante percompilare il programma

Se la compilazione è andata a buonfine dovrebbe apparire nella finestradi output la seguente scritta:

Deleting intermediary files...

done.

Executing:

"C:\Programmi\PICC\Ccsc.exe"

"esempio1.c" +FH +DF +LN +T -A

+M +Z +Y=9 +EA

Memory usage: ROM=0%

RAM=0% - 0%

Loaded C:\vitaminac\esempio1.cof

BUILD SUCCEEDED

PROGRAMMAZIONE PICMICRO

Premiamo questo pulsante pertrasferire il codice eseguibile nelPICmicro.Se tutto è andato per il verso giustoavremo nella finestra di output leseguent scritte:

Programming Target...

ICDWarn0019: Debug mode is not

enabled. Do you wish to enable

it?

...Erasing Part

...Programming EEPROM Memory

...Programming Program Memory

...Programming Configuration Bits

Verifying...

...Program Memory

...EEPROM

...Verify Succeeded

.. Config Memory

...Programming succeeded

MPLAB ICD 2 Ready

Premiamo questo pulsante perlanciare in esecuzione il programmasul PICmicro.

TUTORIAL

TUTORIAL80

Figura 5: La finestra progetto dell'MPLAB Figura 6: La finestra di progetto aggiornata

Se tutto è andato a buon fine dovre-ste vedere i led RB0 ed RB1 lampeg-giare sulla scheda PICDEM 2.

USO DELLE PORTA SERIALE

COME CONSOLLE

Nel fare gli esperimenti con il Dev-C++ nelle puntate precedenti abbia-mo fatto largo uso della funzioneprintf() per visualizzare su schermo ilvalore delle variabili ed i messaggirivolti all'utente.

Nel caso del PICmicro, non avendoa disposizione uno schermo, dob-biamo utilizzare un’altra soluzionese vogliamo comunicare qualcosaall'utente.In tutti i compilatori C esiste la pos-sibilità di deviare il flusso di caratteriin uscita generati dalla funzioneprintf().Il dispositivo normalmente designa-to per accettare i caratteri da visua-lizzare si chiama stdio ovvero stan-dard I/O, dispositivo diingresso/uscita standard. Su PC l'st-dio corrisponde per default al videoma qualsiasi altra entità in grado diaccettare caratteri potrebbe essereconfigurata al posto dell'stdio.Nel CCS-C la funzione printf(), dopoaver formattato correttamente lastringa da inviare all'stdio, richiamala funzione putc() passandogli unoad uno i caratteri da visualizzare.

Se, ad esempio, chiamiamo la printf()del nostro programma nella seguenteforma:

i=100;

printf("La variabile i vale

%d",i);

La printf sostituirà %d con il valoredella variabile i, quindi preparerà unastringa con il seguente contenutofinale: "La variabile i vale 100"

A questo punto chiamerà, per ognicarattere contenuto nella stringa fina-le, la funzione putc() nella forma:putc('L'), putc('a'), putc('v'), e cosi viaper ogni carattere fino alla fine dellastringa.Come vedremo tra poco c'é la possi-bilità di cambiare il codice contenutonella funzione putc per poter utilizza-re i caratteri ricevuti in modo dapoterli spedire su un qualsiasi disposi-tivo d'uscita.Proveremo ad inviare i caratteri gene-rati dalla printf() verso la porta serialedel PICmicro e quindi al PC.Il sorgente da utilizzare è il seguente:

#include <18F452.h>

#use Delay(Clock=10000000)

#fuses HS,NOWDT,NOPROTECT,NOLVP

#use RS232(baud=9600,parity=N,

bits=8,xmit=PIN_C6,rcv=PIN_C7)

void main()

int i;

for (i=0;i<=10;i++)

printf("i=%d\r",i);

delay_ms(10);

TUTORIAL

TUTORIAL 81

Figura 7: Selezione del compilatore di defaultFigura 8: I messaggi del PICmicro sullo schemo

dell'Hyper Terminal

Questo programma effettua un con-teggio fino a 10 ed invia il valoredella variabile utilizzata per il con-teggio al PC tramite porta seriale.Per poter visualizzare su PC il testoinviato dal PICmicro possiamo utiliz-zate il programma HyperTerminal indotazione con ogni sistema operati-vo Windows.Lanciamo HyperTerminal e configu-riamolo per lavorare con una delleporte libere del PC.Configuriamo quindi la velocità didella porta a 9600 baud, no parity,8 data bit e nessun controllo di flus-so. Colleghiamo un cavo non inver-tente tra la PICDEM2 PLUS ed il PCe compiliamo il programma diprova.Il risultato che dovremmo ottenereriportato in figura 8.

In pratica con la direttiva:

#use RS232(baud=9600,parity=N,

bits=8,xmit=PIN_C6,rcv=PIN_C7)

Abbiamo istruito il compilatore CCSad utilizzare, come standard output,la porta seriale del PICmicro per cuitutte le funzioni che da questopunto in poi presuppongono unauscita verso standard I/O, sarannodeviate sulla seriale.

CONCLUSIONI

Vedremo nella prossima puntatacome deviare lo standard I/O su dis-play LCD per poi ricominciare con lateoria del linguaggio C.

RICORDO DEI BOLLETTINITECNICI DELLA GELOSORICORDO DEI BOLLETTINITECNICI DELLA GELOSOdi Carlo [email protected]

La Società Geloso è scomparsa da più di un quarto di secolo ma il suo ricordo è tuttoraben vivo nella memoria degli appassionati di storia della radio.Questa azienda è stata una delle pietre miliari dell'industria radiofonica italiana ed isuperstiti delle migliaia di apparecchi e milioni di pezzi accessori da essa prodotti, diffusiper tutto il mondo e presenti nelle collezioni di innumerevoli appassionati, stanno atestimoniare la stima che seppe conquistarsi presso un vastissimo pubblico.Di questa gloriosa azienda ci rimane anche la notissima serie dei suoi bollettini tecnici chevennero distribuiti fino all'ultimo periodo della sua attività e che sono ora ricercatissimi daicollezionisti. Molti di questi appassionati sono anche fra i nostri lettori e da alcuni di essici è giunta la richiesta di informazioni riguardo all'introvabile numero 1 di questa collana.Abbiamo per questo pensato di pubblicarlo sulla nostra rivista in modo da consentire achi ne è sprovvisto di disporre almeno di una ristampa in attesa di trovare l'originale.

MHz

MHz82

MHz

MHz 83

MHz

MHz84

MHz

MHz 85

Telecamere a colori e b/n

Telecamera B/N con sensore d’immagine CMOS, completa di

microfono e led IR, a tenuta stagna per impieghi da esterno.

Uscita video composito, via filo, collegabile alla presa SCART

di un qualunque ricevitore TV o monitor.

Telecamera CCD colori, wireless, completa di microfono e

diodi led IR, per video sorveglianza.

Uscita video composito collegabile alla presa SCART di un

qualunque ricevitore TV o monitor.

WWW.PARSICITALIA.IT

Via Rovereto, 13 - 48020 Savio (RA) - Tel 0544.927468 - Fax 178.6040078 - Email: [email protected]

SPIRIT,UNA MISSIONE, UN ROBOTSPIRIT,UNA MISSIONE, UN ROBOTdi Riccardo [email protected]

Il rover della missione Spirit rischiadi diventare il più famoso robotesploratore della storia. Dopo unviaggio di circa sette mesi è arrivatosu Marte portando con sé una stru-mentazione che dovrebbe dare unarisposta indiretta alla domanda piùentusiasmante e importante per ilgenere umano. Il veicolo-robot èinfatti attrezzato per cercare di con-fermare che in passato sul pianetaerano presenti attività di acqua informa liquida. Questa risposta ali-menterebbe le speranze di trovareanche tracce di forme di vita basan-dosi sul fatto che sulla Terra ovun-que c’è acqua c’è vita, anche in con-dizioni estreme e apparentementeimpossibili.

Il rover è solo ed è in un ambiente

ostile: deve provvedere al propriosostentamento energetico, deveorientarsi e osservando ciò che locirconda deve raggiungere i propriobiettivi di ricerca muovendosi tra lepolveri e le rocce scegliendo il pro-prio percorso fino a quando il rapi-do degenerarsi delle batterie ricari-cabili lo trasformerà solo in unimmobile ricordo artificiale delpanorama marziano. Una appassio-nante avventura, una sfida che èsolo la punta dell’iceberg di un siste-ma estremamente complesso comesolo una missione spaziale puòesserlo, un progetto nel quale ognipiù piccolo e insignificante dettagliopuò distruggere in un istante le spe-ranze della scienza e migliaia di dureore di lavoro.

LA MISSIONE

La distanza tra la Terra e Marte variacontinuamente a causa del movi-mento che pianeti compiono lungole loro orbite. Ogni due anni circa, idue corpi si trovano però in unpunto nel quale la loro distanza è laminima raggiungibile ed è in questoperiodo che si aprono le “finestre dilancio”, cioè dei momenti nei qualiè possibile inviare missioni versoMarte con il minimo dispendio dienergia e tempo di viaggio.

Ciascuna missione viene sempre pia-nificata e programmata in anticipoin funzione delle finestre utili per illancio; non riuscire a partire nei gior-ni previsti (con tolleranze di qualchesettimana) significherebbe doverrimandare la missione di 2 anni etrovare nuovi fondi per il manteni-mento delle relative strutture.Avendo una data di partenza nonmodificabile e non rimandabile èquindi necessario non fallire e farsitrovare pronti all’appuntamento.Questo significa avere collaudato ilfunzionamento e l’affidabilità diogni componente e di ogni aspettodella missione ma potendo contaresugli immancabili imprevisti è sem-pre necessario disporre anche di unacerta dose di fortuna. Queste stesseparole sono state pronunciate daSteve Squyres, uno dei responsabiliscientifici del rover, e lasciano tra-sparire quanto siano sottili e spessoimpossibili da prevedere le situazio-ni che si devono e che si dovrannoaffrontare, anche al di là del semprepossibile errore umano. Valutando agrandi linee i numeri e le situazionida affrontare possiamo brevementerenderci conto delle diverse difficol-tà operative.Come prima cosa è necessario tro-vare fondi per milioni di dollari per

Milioni di dollari di investimento, un obiettivo che potrebbe condizionare il futurodell’umanità, una sola possibilità, un team, un robot: inizia l’avventura su Marte.

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI86

Figura 1: Il rover, il veicolo-robot a cui è affidatol’importante compito di ricerca

prima parte

finanziare la missione, quindi si devescegliere un veicolo che con cui por-tare il carico al di fuori della nostraatmosfera, capace cioè di alzarsi inaria e spingere tutto il suo peso avelocità elevatissime. E per quantola tecnologia sia collaudata, ognilancio è una sfida a sé: si ha a chefare, ad esempio, con enormi quan-titativi di propellenti solidi e liquidi(ossigeno e idrogeno mantenuti atemperature di –183 e –250 gradicentigradi) che già da soli rappre-sentano una situazione estremadipendente da tantissime altre varia-bili (funzionamento dei computer,rilevazioni dei sensori, condizioni disicurezza, ecc). gestite e controllatesia automaticamente che dal centrodi controllo.

Una volta lasciata la rampa di lancioè necessario orientarsi correttamen-te e seguire la traiettoria prevista,spingersi ad oltre 22mila Km/h,separare i vari stadi (booster) almomento opportuno e lanciarenello spazio il veicolo che compirà ilviaggio verso Marte, tutto in qual-che decina di minuti.

Il veicolo spaziale dovrà quindiorientarsi calcolando la propria posi-zione autonomamente, basandosisulla posizione delle stelle e con ilriferimento del nostro Sole.Una passeggiata di oltre 200 giornicompiuta sul filo dei millimetri, nellaquale ogni eventuale variazione ocorrezione di traiettoria comporte-rebbe la perdita di un po’ di quellaindispensabile e preziosa energianecessaria per il viaggio. Anche inquesta favola, il lupo è sempre inagguato e oltre alle temperatureestreme (negative) dello spazio sidevono considerare tanti altri fattoricapaci di compromettere la passeg-giata nel bosco. È possibile ad esem-pio essere colpiti o colpire frammen-ti e polveri vaganti che a causa dellaalte velocità in gioco perforerebbero

il veicolo, da parte a parte, comemicidiali proiettili. Anche se potesse-ro essere rilevati in anticipo, ognimanovra anticollisione sarebbe pro-babilmente così dispendiosa dacompromettere comunque il lungoviaggio. Ancora, ricordiamo che isistemi di navigazione e i computerdi bordo sono componenti elettro-nici che per quanto affidabili lavora-no entro certe tolleranze di tempe-ratura mantenute automaticamenteall’interno del veicolo. Ma il lorofunzionamento può essere compro-messo da radiazioni o tempestesolari come è già capitato in passatoe in questi casi c’è solo da sperareche il sistema sia in grado di soppor-tare e riprendere correttamente ilproprio lavoro. Forse ricorderete chelo scorso anno molti satelliti per tele-comunicazioni sono stati messi tem-poraneamente fuori uso da una tem-pesta solare che ha compromesso,per un certo periodo, le comunicazio-ni terrestri con i telefoni cellulari GSM.E anche sulla Terra, lo stesso fenome-no può distruggere letteralmente tra-sformatori e linee elettriche.

Ammesso quindi che il viaggio pro-ceda senza problemi, si raggiunge

l’obiettivo e ci si scontra con unanuova serie di fasi molto delicate:Spirit dovrà atterrare sulla superficiedi Marte in una zona già definitalungo l’equatore del pianeta, zonache oltre ad essere la più adatta percondurre gli esperimenti e le rileva-zioni scopo della missione, garanti-sce anche la quantità di luce solarenecessaria per ricavare energia suffi-ciente al sostentamento del robot.È quindi necessario sapere esatta-mente dove entrare nell’atmosferamarziana calcolando anche l’angolodi impatto con la massima precisio-ne per evitare di rimbalzare su diessa (e perdersi nello spazio) o diprodurre attriti troppo elevati, conconseguente sviluppo di temperatu-re impossibili da sopportare.(Proprio la temperatura ha compro-messo il rientro dell’ultima missioneShuttle, disintegratasi a causa delcedimento della protezione termicadel veicolo, danneggiata in partenza).

Superata questa fase, inizia la disce-sa nell’atmosfera del pianeta e non-ostante gli attriti calcolati, la veloci-tà del veicolo è di circa 470 Km/h,ancora troppo elevata per un con-sentire un atterraggio morbido... La

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI 87

Figura 2: Gli stadi del razzo che hanno portato il rover su Marte

soluzione è quindi antica e collauda-ta come un paracadute, che deveaprirsi esattamente a 8,6 Km dialtezza dal suolo (mancano circa100 secondi all’atterraggio).Monitorando la propria posizione ealtezza via radar, il sistema deve fareuscire il rover in tempo utile, (vedre-mo tra poco in che modo), azionaredei retrorazzi frenanti e quindi sgan-ciare il suo carico a qualche decinadi metri dal suolo, ad un’ultima

velocità rilevata di circa 80 Km/h.Ancora in volo, il robot viene quindisganciato dal veicolo principale erimane all’interno del proprio invo-lucro dal quale fuoriescono una seriedi grandi air-bag che serviranno adattutire l’impatto che avviene, aquesto punto, in caduta libera. Insoli 10 minuti dall’ingresso nell’at-mosfera marziana, gli airbag tocca-no terra producendo una lungaserie di rimbalzi. Solo dopo 66minuti gli airbag si sgonfieranno perliberare l’involucro protettivo cheavvolge il rover.L’atterraggio è quindi una fase nellaquale possono verificarsi molti even-ti compromettenti. Per questa mis-sione, si è cercato di puntare su ele-menti già collaudati in missioni pre-

cedenti quali la capsula di ingressonell’atmosfera, l’uso del paracadutee l’impiego degli airbag. In questocaso però, il peso complessivo delrobot esploratore era superiore aquello dei suoi simili e tutto il siste-ma è stato riconsiderato in propor-zione, tranne che per le dimensioni.Come prima cosa, si è realizzato unparacadute più grande e sono statecompiute delle prove nella nostraatmosfera aumentando in propor-zione il peso del veicolo per simula-re lo “strappo” e l’apertura alla stes-sa velocità di discesa raggiunta suMarte. L’ottimismo dei progettisti siè però scontrato con i risultati delprimo test, che ha rovinosamentesquarciato il paracadute in più puntifacendo precipitare il peso chesimulava il rover. Si è quindi dovutoripensare il paracadute in un perio-do di tempo già molto vicino al lan-cio e la nuova soluzione è stataapprontata solo qualche settimanaprima. Il nuovo test è stato compiu-to con una simulazione in unagigantesca galleria del vento dellaNasa, capace di sparare aria in unospazio così grande da permettere latotale apertura del paracadute esimulare la reale velocità che avreb-be dovuto affrontare. Anche questotest è però fallito, questa volta nonstrutturalmente (il paracadute haresistito allo strappo) ma funzional-mente: il paracadute si è aperto mala sua dimensione in rapporto allavelocità dell’aria non gli permettevadi aprirsi correttamente: rimanevariversato su di sé e senza fornire lagiusta resistenza necessaria perridurre la velocità al valore previsto.

Se tale situazione si fosse ripropostasu Marte, Spirit sarebbe caduto alsuolo con conseguenze non imma-ginabili... Era necessario correre airipari, trovare nel più breve tempopossibile tutti gli esperti del settore erisolvere il problema. Milioni di dol-lari in tecnologia stavano per essere

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI88

Figura 4: La grande galleria del vento nella qualesi sono compiuti i test sul paracadute,decisivi per il corretto funzionamentonell’atmosfera di Marte

Figura 3: Le varie fasi del lancio

compromessi da uno strumentofatto di tela e corda e la tensione deiprogettisti era al massimo, cosìcome la pressione e la consapevo-lezza di avere sulle spalle tutto ilpeso della missione. La soluzionearrivò però in tempo e si concretiz-zò con la riduzione del foro di sfiatodel paracadute, grazie all’interventodi esperti che già conoscevano ilfenomeno della mancata correttaapertura. Utilizzando proprio ago efilo, il paracadute venne modificatoe provato con esito positivo durantei successivi test.

Un test simile venne effettuato ingrande tranquillità anche con gli air-bag, strumento sicuro ed affidabilegià sperimentato più volte. A com-promettere la funzionalità del siste-ma ci sono però le incognite e levariabili del punto di atterraggio,che è sicuramente formato da roccedi cui non è però possibile prevede-re la forma né la disposizione.Se l’airbag cadesse su una rocciaappuntita alta due metri, gli airbagverrebbero facilmente infilzati e resiinefficaci. Ma i tecnici erano ottimi-sti e il test simulato in situazioniregolari venne considerato solo unaformalità. Un formalità che però,fallì tra lo stupore generale. La visio-ne rallentata del filmato con la cadu-ta da pochi metri su un terreno incli-nato mediamente roccioso mostra-va l’aprirsi di uno squarcio sull’air-bag proprio al primo impatto. Un

allarme, anch’esso fatto di tela, filo earia, che rischiava di vanificare nuo-vamente la missione. La soluzionearrivò anche in questo caso conestrema rapidità e con camere d’ariaindipendenti e rinforzate che supe-rarono i successivi test senza alcuncedimento, con grande sollievo daparte di tutti.

Nel frattempo i primi test compiutisulla resistenza delle delicate appa-recchiature del laboratorio roboterano state condotte con successo,così come la funzionalità dello stes-so rover e delle sue parti.

La missione era finalmente pronta ela data di partenza era ormai prossi-ma. Tutti i problemi riscontratierano stati affrontati e risolti, il vet-tore era già sulla rampa di lancio e ilconto alla rovescia veniva seguito adistanza di sicurezza dai responsabi-li che per mesi avevano lavoratosenza sosta.

“Meno 10, 9, 8, 7,... sospendere!sospendere!”.L’avventura si fermò a –7 secondidal lancio. Venne improvvisamenterilevata una anomalia di funziona-mento nell’erogazione del combu-stibile. Il razzo e tutto il suo contor-no erano appena diventati unapotentissima bomba incontrollabile.Incredibile! Anni di lavoro, e per soli7 secondi tutto poteva saltare in ariadistruggendo idee, speranze, scien-za, tecnologia, risposte e il moraledei progettisti, questa volta impo-tenti dinnanzi ad una situazione chesolo altre competenze avrebberopotuto gestire.Il malfunzionamento venne indivi-duato, analizzato, riparato e lapotente bomba incontrollabiletornò ad essere un messaggero disperanza pronto ad un nuovocount-down che, questa volta, giun-se al termine.Il 4 Gennaio 2004, la missione Spiritportava il rover sul suolo di Marte.

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI 89

Figura 6: Lo schema del rover e dei suoi principali componenti

Figura 5: Gli airbag utilizzati per ammorbidirel’atterraggio del rover, in un testcompiuto sulla Terra

Tutte le fasi successive al lancioerano state affrontate con successo.L’esplorazione al suolo poteva avereinizio.

IL ROVER

Il rover è lo strumento attraverso ilquale si concretizza la missione sullasuperficie di Marte. È un piccolo vei-colo robot a 6 ruote, dotato di stru-menti e apparecchiature da labora-torio che gli permettono di compie-re esperimenti e rilevazioni sul terre-no e sulle rocce del pianeta.Il rover è composto da un insieme ditecnologie elettroniche e meccani-che assemblate intorno ad unastruttura che protegge i suoi organivitali. Le sue parti esterne principalisono composte da un braccio mec-canico attrezzato, da una sorta di“testa” dotata di camere per laripresa, da parti mobili disposte sugambe che sostengono le ruote, dapannelli solari e da strumenti eantenne per la comunicazione.La struttura portante è formata dauna scatola, il WEB (acronimo diwarm electronics box) protetta dadiversi strati che isolano i computere le batterie situati in un ambientetermocontrollato.(Durante la notte, la temperaturadel pianeta arriva a circa -96°C).Sulla parte superiore del WEB èalloggiata una superficie triangolareche ospita i pannelli solari e che puòessere attrezzata.

È importante sottolineare che i pro-gettisti di questo rover, oltre a ren-derlo efficace per le funzioni a cui

esso è destinato, hanno dovutoescogitare un sistema di “trasforma-zione” molto simile a quello attuatodai robot dei cartoni animati giap-ponesi. Armi atomiche a parte, ilproblema reale nasceva dalla neces-sità di utilizzare per il viaggio un vei-colo la cui capacità di carico erastata studiata per il precedentemodello di rover. Un po’ per econo-mia (i budget per ogni missione nonsono più alti come un tempo) e unpo’ per il positivo collaudo già effet-tuato, l’impegno dei progettisti si èquindi dovuto rivolgere anche versola capacità di adattare un granderover nello spazio di un piccolorover... Ed ecco spuntare articolazio-ni, movimenti e contorsionismicapaci di raccogliersi su loro stessi,un po’ come faceva Alien quando siannidava appeso nei corridoi buidella malcapitata astronave. Moltopiù simpatico e amichevole, il roverè un bel prodotto dell’inventivaumana che la tecnologia ha resoconcepibile a dispetto dei rigidi limi-ti di spazio imposti.

IL COMPUTER DI BORDO

Il cervello del rover è chiamato REM(Rover Electronics Module) ed è

composto da un computer le cuicaratteristiche sono comparabili aquelle di un normale computer por-tatile, dotato però di una specialememoria resistente alle radiazioni ein grado di mantenere i propri datianche in caso di black-out. Le speci-fiche del computer non sono affattoesagerate e sia la potenza di elabo-razione che la quantità di memoria(128 MB di DRAM e 3MB diEEPROM) sembrano essere moltomodeste se paragonate alla com-plessità delle funzioni richiestedurante la missione. Tuttavia, ècerto che tale computer viene sfrut-tato al 100% e in modo totalmentediverso da quanto siamo abituati avedere; questo fa parte di un accu-rato progetto di ottimizzazione chenon richiede niente di più di quantoviene realmente utilizzato. (A titolodi paragone, la precedente missionePathfinder disponeva di una quanti-tà di memoria 1000 volte inferiore !)Il computer è interfacciato con l’e-sterno per mezzo di un VME bus(Versa Module Europa), uno stan-dard industriale che permette loscambio di dati con i motori, glistrumenti scientifici di bordo e conle funzioni di comunicazione.

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI90

Figura 7: Il WEB contiene all’interno tutti gliorgani vitali del robot

Figura 8: Particolare della testa: alle estremità, coperte dai dischi neri portafiltri, le due PanCam;più all’interno le Navicam

La cosa che emerge da queste infor-mazioni è il fatto che la tecnologiainformatica utilizzata sul rover paresia alla portata di chiunque e chemolti di noi possiedono o usano giàtecnologie simili per svolgere com-piti sicuramente molto diversi equasi sempre meno complessi.

I SENSORI PRINCIPALI

Il rover è in grado di riconoscere lapropria posizione sul piano grazieun sensore inerziale a 3 assi (IMU)che restituisce l’angolo di inclinazio-ne della struttura sui tre piani dellospazio. Altri sensori si occupano diregistrare informazioni che manten-gono cosciente il rover della proprio“stato di salute”, rilevando ad esem-pio la temperatura, fattore dellamassima importanza per il correttofunzionamento di tutto il sistema.

Un altro importante dispositivo disenso è formato da quello che chia-mano “neck and head” (collo etesta) cioè una sorta di albero sulquale poggia un sistema di camere.Grazie al lungo collo, la visione del-l’ambiente circostante avviene dacirca un metro e mezzo di altezza eoffre un punto di prospettiva quasiumano. L’acquisizione delle imma-gini è affidata ad una Pancam(Panoramic Camera) che utilizzadue sensori CCD affiancati (a colorie ad alta risoluzione) per fornireimmagini “stereo”, cioè dotate diprofondità. Il collo sul quale è mon-tata la Pancam ruota di 360°, con-sente di acquisire immagini di tuttol’ambiente circostante e permetteun movimento verticale di 180° perpoter osservare anche in alto e inbasso. Gli occhi elettronici sonograndi quanto il palmo di una manoe permettono di cogliere con gran-de dettaglio la superficie e il paesag-gio marziano (coprono un campo di16° x 16°) per creare mappe dellazona e per individuare le rocce e iterreni da studiare.

Ogni CCD è dotato di una ruotaporta-filtri che, opportunamenteattivata, permette di osservare condiverse lunghezza d’onda permeglio individuare alcuni tipi di roc-cia. Inoltre tale sistema di filtri vieneanche utilizzato per una importantefunzione di orientamento visualetramite la ricerca di punti di riferi-mento celesti come il Sole e le stel-le. Non dimentichiamo poi che perle trasmissioni con la Terra, l’antennadel rover deve essere sempre punta-ta nella giusta direzione consideran-do anche il moto dei due pianeti; ela visione del cielo, così come avve-niva per gli antichi navigatori, è unfedele e preciso punto di riferimentonaturale ancora oggi utilizzato.

Oltre a sostenere il sistema Pancam,il collo del rover supporta anche unaltro importante sensore chiamatomini-TES (Miniature ThermalEmission Spectrometer), uno spet-trometro infrarosso che può indivi-duare l’origine mineraria delle rocceattraverso il rilevamento della lorovariazione termica. In modo partico-lare, lo studio dello spettro rilevatopermette di conoscere quali mate-riali rocciosi si sono formati a segui-to dell’azione dell’acqua, informa-zione indispensabile per dare inizioalla ricerca di vita. Il mini-TES è inrealtà posizionato all’interno delrover: la testa funziona infatti comeun periscopio che tramite un siste-ma di specchi riflette l’immagineall’interno del collo, alla cui base èposizionato i sensore del mini-Tes.Con la semplice rotazione della testae con il movimento di specchi (perguardare in alto e in basso) si evita dimuovere un apparecchio molto deli-cato sia per le proprie caratteristichecostruttive che per l’importanteruolo che riveste nella missione.

La testa contiene inoltre dueNavicam, un sistema di navigazioneformato da due CCD in bianco e

nero con campo di 45° che permet-tono di rilevare il panorama in 3D ein luce visibile. Questi sensoricooperano con altri 4 CCD detti“Hazcams” (Hazard AvoidanceCamera) dotati di un ampio campodi vista (120°) situato verso la parteinferiore del rover per controllare eprevenire rischi durante i movimen-ti al suolo.

Tra i sistemi di visione del rover cen’è uno destinato alla visione micro-scopica. Posizionato sull’estremitàdel braccio meccanico, il microsco-pio CCD si può avvicinare ad ognioggetto da studiare per consentireriprese (altrimenti impossibili) concui analizzare le proprietà e le carat-teristiche delle rocce e del terreno.Il braccio meccanico è il mezzo concui il rover manipola e usa i diversistrumenti. Situato nella parte fronta-le del mezzo, il “robotic arm” puòmuoversi liberamente grazie ad unaspalla, un gomito e un polso sullacui estremità si trovano 4 strumenti:il microscopio già visto, uno spettro-metro per la rilevazione del ferro, unanalizzatore a raggi-X per l’analisidella composizione delle rocce e unutensile per l’abrasione con cuiviene grattato via il materiale ester-no delle rocce per renderne visibilel’interno.

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI 91

Figura 9: A sinistra, particolare dell’analizzatorea raggi-X; a destra, uno dei CCDutilizzati sul rover

Figura 10: L’utensile abrasivo permette di eliminaregli strati esterni della roccia e consentela successiva analisi degli strati piùinterni

Tutte le operazioni del braccio sonosupervisionate dalle due Hazcamsfrontali che permettono di evitareeventuali collisioni del braccio e l’u-tilizzo degli strumenti a danno dellostesso rover (non vi viene forse inmente la terza legge della roboticadi Asimov?)

IL MOVIMENTO

Il rover utilizza 6 ruote da 25 cm,ciascuna delle quali mossa da unproprio motore indipendente; ogniruota è collegata con un sistema disospensioni che interagisce con ilcorpo e che ne garantisce il bilancia-mento anche in presenza dellenumerose rocce di cui la superficiemarziana è tempestata. Con questosistema il rover potrebbe affrontareabilmente anche pendenze di 45°(in ogni direzione) ma per evitareinutili rischi, il software non autoriz-za il superamento di 30°.

Sia le ruote anteriori che quelleposteriori girano sul proprio asse

verticale per consentire anche larotazione del mezzo a 360°. Tutti imovimenti sul suolo vengono accu-ratamente “pensati” e nonostante lavelocità di crociera sia davvero bassa(0,18 Km/h = 5 cm al secondo) ilsolito software previdente “antirischio” dispone che dopo ognipochi secondi ci sia uno stop di con-trollo e di indagine per valutare ilterreno e il successivo spostamento.La velocità media scende quindi a 1cm al secondo, alternando 10 secon-di di movimento a 20 di analisi.

L’ENERGIA

L’unica fonte di energia utilizzabiledal rover proviene dal Sole. I compu-ter, i motori, i sensori e tutti gli stru-menti di cui è dotato consumanocirca 100 W. I suoi pannelli solari for-niscono, in piena luce, circa 140 Wdi potenza e consentono la pienaautonomia del robot e la carica didue batterie necessarie per mante-nere l’operatività durante le ore diminor luce e durante la notte. Le

batterie utilizzate garantiscono laloro piena funzionalità solo per qual-che settimana, periodo oltre il qualenon si riuscirà più a ricaricarle al100%. Inoltre, dopo circa 3 mesi, ilSole non sarà più alto nel cielo mar-ziano (si verifica un cambio di stagio-ne anche su Marte) e questo diversoallineamento non permetterà ai pan-nelli solari di produrre la stessa quan-tità di energia; anche la polvere dellasuperficie marziana che si depositeràsui pannelli contribuirà al calo di effi-cienza degli stessi e si riusciranno agarantire soli 50 W...Il passare dei mesi porterà Martesempre più lontano dal Sole e l’e-nergia non sarà più sufficiente permantenere “vivo” il rover...

LE COMUNICAZIONI

Le comunicazioni con la Terraavvengono via radio e sono assicu-rate da due antenne principali posi-zionate sul dorso del rover. La primaè una antenna omnidiriezionalelow-gain con la quale vengono rice-vute e trasmesse informazioni abassa velocità. La seconda è unaantenna direzionale high-gain chetrasmette pacchetti di informazioninella specifica direzione in cui essa èpuntata. Questa antenna è orienta-bile e il computer può muoverla eallinearla con il nostro pianeta senzadover cambiare la posizione delrover. La comunicazione può avvie-ne sia in modo diretto con la Terrache in modo indiretto, tramite isatelliti “2001 Mars Odissey” e“Mars Global Surveyor” che orbita-no intorno al pianeta rosso. I satelli-ti, oltre a compiere le loro missionispecifiche, operano come pontiradio per ritrasmettere i dati ricevu-ti, una comodità che permette alrover di rimanere sempre in contat-to con il centro di controllo anchequando non si trova esposto verso laTerra. Il satellite Mars GlobalSurveyor, trovandosi nella posizioneadatta, ha anche potuto tracciare il

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI92

Figura 11: Particolare del braccio meccanico e degli strumenti posizionati alla sua estremità

processo di atterraggio di Spirit.

Le comunicazioni dirette tra il rovere la Terra (e viceversa) avvengonoad una velocità variabile tra 3500 e12000 bit al secondo (3,5 K – 12Kbaud) mentre quelle tra il rover e isatelliti orbitanti, data la relativa vici-nanza, operano alla velocità costan-te di 128 Kbaud. Ogni satellite acausa del proprio movimento inorbita, può essere utilizzato per circa8 minuti al giorno, periodo nelquale il rover può inviare circa 7,5MB di dati. Gli stessi dati trasmessidirettamente alla Terra richiedereb-bero un tempo compreso tra 1,5 e 5ore.In ogni caso, Spirit può trasmetterein quest’ultima configurazione perun massimo di 3 ore, tempo fissatoda termini di sicurezza per limitare ilconsumo di energia e per evitaresurriscaldamenti eccessivi.

IL SOFTWARE

Il rover riconosce le diverse fasi dellamissione e attiva di conseguenzadegli specifici moduli di software.Esistono infatti controlli e prioritàdiverse in ogni periodo, calcolatodalla partenza della missione all’arri-vo sul suolo marziano. Durante lediverse fasi di viaggio le principalifunzioni riguardano principalmenteil controllo del proprio manteni-mento, il check delle condizioni del

veicolo e alcune funzioni di comuni-cazione. I controlli vengono conti-nuamente ripetuti anche durante lafase di ingresso nell’atmosfera mar-ziana, momento in cui gli sbalzi ditemperatura devono essere com-pensati per non danneggiare la tec-nologia di bordo (garantita per fun-zionare da –40 a + 40 °C). Questaparte principale del software puòessere considerata la parte di “istin-to” che permette di mantenere ope-

rativo il rover e che gli consente disopravvivere grazie ad un feedbackche interagisce con le percezionirilevate dai sensori.Giunto sul suolo del pianeta, il soft-ware provvede a registrare anchetutte le condizioni e le operazioni dibase svolte, a gestire la carica delleproprie batterie e alla preparazionedi pacchetti di informazioni dainviare durante le fasi di comunica-zione con la Terra.

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI 93

Figura 12: I particolari delle ruote indipendenti del rover in una reale visione artistica e in una foto che ritrae il primo prototipo

Figura 13: Le due antenne principali del robot: omnidirezionale (a sinistra) e quella direzionale orientabile

La particolarità del software delrover è quella di poter essere aggior-nato anche a missione avviata trami-te l’invio di nuovi pacchetti di dati insostituzione di quelli già installati.È stata quindi prevista una sezionedi base che consente di ricevere edoperare parallelamente al softwaredi gestione vero e proprio. Inoltre,esistono funzioni parallele sempreattive che provvedono a riattivare ilsistema principale in caso di even-tuale spegnimento dovuto a diversifattori, come ad esempio i notevolistress fisici subiti nella fase diingresso nell’atmosfera e nella“rimbalzante” e imprevedibile fasedi atterraggio.

Altre comandi relativi alla missio-ne, alle riprese e all’acquisizione didati specifici vengono inveceimpartiti e controllati da Terradirettamente con l’invio dei relativiordini attraverso le forme di comu-nicazione già viste.

CONCLUSIONI

In queste poche righe abbiamoattraversato un mondo nel quale latecnologia, la scienza, l’esperienzae le capacità umane contano più diogni altra cosa. Abbiamo immagi-nato e brevemente rivissuto le insi-die di una missione spaziale e ana-lizzato da vicino lo strumento ulti-mo che concretizza la missione.Abbiamo visto che nulla può esseredato per scontato o lasciato al casoe che spesso le soluzioni più sem-plici rappresentano la via più sicuraper muoversi in un mondo basatosulla precisione millimetrica e sul-l’importanza di ogni singolo gram-mo di peso.Il rover è forse un veicolo roboticopiù vicino alla nostra realtà quotidia-na di quello che potevamo pensare.Dialoga via radio nella banda UHF,trasmette dati come un modem,osserva l’ambiente con dei CCD,utilizza un computer che è già da

tempo sulle nostre scrivanie, simuove su ruote e si serve di un sem-plice braccio meccanico. Tutte tec-nologie relativamente note e allaportata degli appassionati più evolu-ti. Ma il rover è sicuramente diversoe molto più complesso di quello chesembra. In esso sono racchiusidecenni di esperienza, di successi edi errori della storia dell’esplorazio-ne spaziale, decenni di motivazionee di passione da parte di uomini checredono, vivono e muoiono per unsolo scopo. Il robot, come dicevamoall’inizio, è solo la punta dell’icebergcosì come “E=mc2” è solo una sem-plice formula. Stranamente, calcoli,studi e analisi talmente complesseda sfuggire alla nostra percezioneportano spesso a soluzioni semplicima geniali.

Nel momento in cui stiamo scri-vendo, il rover è già in movimentoda qualche giorno sul suolo mar-ziano ed ha inviato numeroseimmagini e informazioni. Ma,come dicevamo, l’imprevisto èsempre in agguato e dopo unodegli ultimi comandi impartiti viaradio dalla Terra, il rover ha confer-mato la ricezione del messaggioma non ha poi eseguito l’operazio-ne che gli si richiedeva di svolgere.Per il momento possiamo solo spe-rare che il nostro lontano e tecno-logico esploratore si comporticome altre missioni precedenti,che dopo esitazioni simili, eranotornate a funzionare diventandograndi successi.

Nel frattempo, il Presidente Bush haannunciato una nuova era spazialericca di conquiste, di basi lunari, disonde automatiche, di uomini suMarte e di consistenti finanziamentiche faranno dimenticare i “giocatto-li” fino ad oggi costruiti. Entreremodavvero in quel “futuro” che imma-ginavamo da piccoli o saranno solopromesse elettorali?Staremo a vedere.Per ora, buona fortuna Spirit...

PER SAPERNE DI PIÙ

I siti della Nasa e del JPL (JetPropulsion Laboratory) sono i puntidi riferimento per navigare tra tan-tissime informazioni di testo, imma-gini e animazioni. Quelle che seguo-no sono solo le pagine principali dacui è possibile iniziare l’esplorazionedi centinaia di contenuti sempreaggiornati in tempo reale.

• Il punto di partenza con riccheapplicazioni interattive on-line peresplorare e saperne di più sullamissione e su Marte:www.nasa.gov

• L’home page del Rover:http://marsrovers.jpl.nasa.gov/home/index.html

• Una raccolta di video e animazio-ni che descrivono le fasi piùimportanti della missione e le tec-nologie usate:http://marsrovers.jpl.nasa.gov/gallery/video/

• Altre immagini, contenuti multi-mediali, video e simulazioni:http://athena.cornell.edu

TECNOLOGIE SPERIMENTALI

TECNOLOGIE SPERIMENTALI94

Figura 14: Gabbia per 2 colonne

ALIMENTATORE USB ALIMENTATORE USB di Maurizio Del [email protected]

IL SOFTWARE PER IL PC

Il software per controllare l’alimenta-tore tramite il PC è scritto in VisualBasic 6 ed è scaricabile dal sito diFareElettronica sia in forma compila-ta e pronta per l’installazione, sia informa sorgente in modo che la pos-siate modificare a vostro piacimento.La versione corrente è scritta perWin9x e può non funzionare corret-tamente con Windows2000/NT/XP.All’avvio del programma l’alimenta-tore dovrà essere connesso, in casocontrario (o in caso di altri eventualierrori) il programma inviterà l’utentea connettere il dispositivo o imposta-re correttamente la porta seriale. Laschermata iniziale è quella di figura1.

Nella sezione “Output” è possibileleggere i valori della corrente e dellatensione di uscita aggiornati intempo reale. La tensione di uscitapuò essere impostata con passi dicirca 1Volt o con passi di circa 0,1Voltse si utilizza la “Regolazione fine”. Seinvece si intende utilizzare uno deivalori standard (5V, 6V, 9V o 12V)basta selezionare l’opportunocomando.Dal menu “File” è possibile imposta-re la porta seriale opportuna, mentredal menu “Guida” è possibile richia-mare un guida in linea che attual-mente non è implementata dato che

il tutto è spiegato in questo articolo(a voi il compito di aggiungere laguida in linea!). Il funzionamento èmolto semplice: all’arrivo di un bytedalla porta USB (la COM fittizia), ilprogramma riconosce se si tratta diun valore di corrente o di tensione,quindi aggiorna il rispettivo display.Se invece viene premuto uno dei tastiper la regolazione, allora viene invia-to sul bus USB il byte corrispondenteall’incremento/decremento scelto oal valore assoluto selezionato.

IL FIRMWARE PER IL PIC

Anche il programma per il PIC è sca-ricabile dal sito di FareElettronica siain formato sorgente che compilato(quindi pronto per essere scaricatonel PIC). Vediamo più in dettaglioquali sono le operazioni che dovràeseguire il PIC. Il diagramma di flussodel firmware è quello di figura2.

Il programma è costituito quindi daun ciclo infinito che attende, median-te l’uso di un timer, un intervallo ditempo pari a circa 0,5secondi dopo-diché legge alternativamente i valoridi tensione e di corrente e li invia sulbus USB.Ma come si può gestire la richiesta diun determinato valore di tensione daparte dell’utente?Un modo molto elegante per farlo è

quello di usare il meccanismo delleinterruzioni. Supponete di essere nelvostro ufficio a svolgere il vostro lavo-ro quando, ad un tratto, vi telefonaun vostro collega chiedendovi unainformazione. Voi interrompete ilvostro lavoro per rispondere al telefo-no e, una volta soddisfatta la richiestainoltratavi, mettete giù il telefono etornate al vostro lavoro.Questo, a grandi linee, è il funziona-mento delle interruzioni: in corri-spondenza di un certo evento (lapressione di un tasto di regolazionedella tensione sul PC) il programmaviene interrotto per eseguire unframmento di codice predefinito,dopodiché l’esecuzione riprende dalpunto in cui era stata interrotta.Per il PIC in questione, il “frammentodi codice predefinito” inizia dall’indi-rizzo 04H (in binario: 00000100), ciòsignifica che all’arrivo di una interru-zione il flusso del programma si inter-

Nella prima parte dell’articolo sono stati analizzati tutti gli aspetti teorici in modo dapoter comprendere a fondo il funzionamento dell’alimentatore. Ora vedremo la suarealizzazione sopratutto ciò che riguarda il software di gestione per il PC ed ilfirmware col quale programmare il micro.

HARDWARE

HARDWARE96

Figura 1: Il controllo da PC

seconda parte

rompe e vengono eseguite le istru-zioni a partire dall’indirizzo 04H finoall’istruzione RETFIE che determina lafine della routine di interruzione,quindi la ripresa del programma dalpunto in cui era stato interrotto.Quando un dato arriva dal bus USB,il controllore USB245M manda alivello basso il pin RXF# quindi il pie-dino RB0/INT del PIC (si veda loschema di figura4) e si innesca l’in-terruzione. Il diagramma di flussodella routine di interruzione è quellodi figura3.

La prima cosa che viene fatta nellaroutine di interruzione è bloccareulteriori interruzioni e salvare tutte levariabili attualmente in uso dal pro-gramma (per poi ripristinarle in

seguito).Dunque si va ad eseguire un’opera-zione di lettura sul USB245M(ponendo RD=0) e si abilita il latchU4 in modo da trasferire il dato alconvertitore D/A. Tali operazionidevono essere ripetute finché RXF#non torna al valore alto segnalandociche non ci sono ulteriori dati da leg-gere. A questo punto si disabilita illatch, si ripristinano le variabili salva-te e si riabilitano le interruzioni.Nello schema di figura4 si noti la pre-senza del transistore Q1 e del relèLS1. La loro presenza consente di sal-vaguardare il transistore di potenzaQ3 il quale è sottoposto ad una ten-sione tra collettore ed emettitoredata dalla differenza tra la tensionenon regolata (presente al punto A) e

la tensione di uscita.Nel caso si richiedano in uscita ten-sioni troppo basse e correnti consi-stenti, la tensione Vce di Q3 viene adassumere valori elevati e la potenzadissipata potrebbe superare quellamassima sopportabile.Quando si richiedono basse tensioniin uscita (inferiori a 9,5V) il PIC ponea livello basso l’uscita RB5 quindi ilrelè si trova nello stato di riposo e nelpunto A vi è una tensione pari a circa20V (viene cioè utilizzata solo unaparte della trasformatore).Quando la tensione di uscita supera i10,5V allora il PIC pone RB5 a livello

HARDWARE

HARDWARE 97

Figura 2: Il programma per il PIC16F873

Figura 3: Il circuito integrato LM723

HARDWARE

HARDWARE98

Figura 4: Schema dell’alimentatore USB

logico 1 eccitando il relè ed in questomodo nel punto A avremo una ten-sione pari a circa 42 V. In definitivaQ1 consente di avere bassa tensionedi collettore nel caso di basse tensio-ni di uscita limitando la potenza dis-sipata da Q3.

TARATURA DEL CIRCUITO

Prima di utilizzare l’alimentatore sideve procedere con l’operazione ditaratura per essere sicuri che la ten-sione di uscita sia effettivamentequella voluta e che il valore visualiz-zato sia corretto.Con riferimento allo schema di figu-ra4, mediante i trimmer R19 ed R14si regolano rispettivamente il valoredi corrente e di tensione visualizzatosul PC mentre tramite R9 si regola ilvalore di tensione realmente genera-to. Per effettuare la taratura occorrecollegare il circuito al PC, avviare ilprogramma e selezionare un valoredi tensione (ad esempio 5 V).Collegando un multimetro all’uscitadell’alimentatore, si dovrà agire suR9 finché il valore letto sul multime-tro non coincide con quello sceltodal PC.Ora si deve agire su R14 per fare inmodo che sul PC venga visualizzatolo stesso valore indicato dal multi-metro. Come già ampiamente spie-

gato nella prima parte dell’articolo, ilvalore della tensione di uscita vieneletto dal PIC e convertito in digitalesu 7 bit. Ciò significa che se l’uscitapuò variare da 0 a 20 V, la minimarisoluzione visualizzabile è 0,15 V(ovvero 20 V/27) per cui può acca-dere che il valore visualizzato sul PCsi discosti leggermente da quelloreale.Per la taratura della corrente si deveimpostare dal PC una tensione di 10V e collegare all’uscita dell’alimenta-tore una resistenza da 1KΩ (1/2 W)come mostrato in figura 5.

Si noti che il multimetro deve essereusato come amperometro. Sul mul-timetro si leggerà una corrente dicirca 10mA (0,01 A) e si dovrà agiresu R19 affinché il valore letto sul PCrisulti pressoché uguale a quelloindicato sul multimetro. In ogni casoricordate che i valori di tensione ecorrente visualizzati vengonoaggiornati alternativamente ognisecondo.

CONCLUDENDO…

Riconosco che la realizzazione diquesto progetto non è affatto sem-plice e, comunque, vi sono ampimargini di miglioramento.Ritengo però che questo costituiscaun forte stimolo alla vostra curiositàe alla vostra voglia di progettare,così potrete migliorare il progettoaumentando la risoluzione del con-vertitore A/D (magari impiegandoun altro PIC o un convertitore A/Ddel tipo “stand alone”), riscrivere ilsoftware cambiandone le caratteri-stiche, riscrivere il firmware impie-gando altre tecniche di programma-zione ed aggiungere nuove funzio-nalità. Potrete anche impiegareframmenti di questo articolo percostruire un acquisitore dati, un volt-metro, un termometro e tutto ciòche suggerisce la vostra fantasia.

Ormai l’USB è alla vostra portata!

HARDWARE

HARDWARE 99

Figura 5: Schema per la taratura della corrente

Elenco componenti

Sigla Valore

C1 10 nF ceramico

C2 100 nF ceramico

C3,C4 22 pF ceramico

C5,C6 100 pF ceramico

C7,C10 0.1µF 63 V ceramico

C9 47 µF 63 V elettrolitico

C11 4700 µF 63 Velettrolitico

D1 1N4002

D2 Ponte raddrizzatore400 V 5 A

LS1 Relè 12 V

Q1 BC547

Q2 2N1711

Q3 2N3055

R1, R2, R3 2.2 KΩ 1/4 W

R4, R5,R7,R10÷R13

10 KΩ 1/4 W

R6 0.27 Ω 5 W

R8, R19 1 KΩ 1/4 W

R9 500 Ω 1/4 W

R14 22 KΩ 1/4 W

R15, R17 47 KΩ 1/4 W

R16, R18 470 KΩ 1/4 W

T1 Trasformatore220/15+15Vac 100VA

U2 LM358

U4 74LS374

U5 PIC16F873

U6 USB245M

U7 LM723

Y1 Quarzo 4 MHz

MANUALE SEMISERIO DI ROBOTICA

MUOVERE UNBRACCIO ROBOTICO

MANUALE SEMISERIO DI ROBOTICA

MUOVERE UNBRACCIO ROBOTICOdi Marco Fabbri [email protected]

PRENDERE UN OGGETTO IN

UN DATO PUNTO

Obiettivo: dato un oggetto in unadata posizione dello spazio, calco-lare il posizionamento del braccioe delle sue parti per afferrare l’og-getto.Sembra facile…

Nella figura 1 vediamo il nostro

sistema 3D (con origine in O) e unoggetto in rosso che è il nostrotarget.Noi abbiamo già il nostro bracciomontato su una base semovente(figura 2), la parte nera è la pinza.

Ora noi possiamo muovere labase, ovviamente solo sul pianoX-Y, in questo modo porteremo il

punto Q in un punto di coordina-te X1,Y1,Z1; questa posizionedovrà ovviamente essere tale daavere Xt, Yt, Zt entro il raggio d’a-zione del braccio (vedremo diapprofondire come si calcola ilraggio d’azione). Fatto questo èfacile dire che se facciamo la diffe-renza tra le coordinate con indicet e quelle con indice 1 otteniamo

Ci siamo impegnati nelle precedenti puntate nel dimensionamento e nelle tecniche perdeterminare il posizionamento, adesso proviamo a risolvere il problema pratico.

ROBOMANIA

ROBOMANIA100

Figura 1: Sistema 3D di localizzazione del target Figura 2: Base semovente e braccio

quinta parte

la distanza tra il punto Q di figura2 e il punto rosso della figura 1, inpratica abbiamo riportato il siste-ma in modo che Q (figura 2) siacoincidente con O (origine degliassi di figura1).

Comincia la storia degli angoli: lanostra base arriverà nella posizio-ne X1, Y1 con un certo angolorispetto all’asse X, rappresentia-molo visto dall’alto, figura 3.

Se il nostro punto rosso che èancora il nostro target ha unangolo φ rispetto l’asse X, è facilecapire che dovremo ruotare ilbraccio della differenza dei dueangoli, ma quanto vale φ?

Intanto avremo:

• Xr=Xt-X1• Yr=Yt-Y1

Calcoliamo anche la distanza tra ilpunto rosso (Dpr) e l’origine degliassi in quanto ci servirà:

Dpr=Sqr(Xr^2+Yr^2) (teorema diPitagora) (Sqr= radice quadrata)

Ora possiamo dire:

φ= arccos(Xr/Dpr)

Facendo ora la differenza degliangoli (Fi-Alfa) avremo di quantoruotare il braccio per portarcinella giusta direzione e abbiamosistemato il primo dei 4 motori.Bene, andiamo oltre.Se tornate alla figura 1, notereteche una volta che ho il braccionella direzione del mio target(punto rosso) quello che mi rimaneda fare è piegare i vari componen-ti del braccio per raggiungere ilpunto rosso, in pratica devo lavo-rare su un semplice piano che èquello determinato dagli assi Z e R.Guardiamo la figura 4.

Le sezioni del braccio sono deglistessi colori del modellino di fig.2,se è chiaro che lavoro solo sulpiano Z-R posso quantomenosemplificare il disegno e riportaretutti gli elementi necessari ai finidel calcolo, inoltre per semplifica-re la cosa ma anche per effettivequestioni pratiche posso accettareche la pinza assuma nello spazio

solo tre posizioni rispetto l’asse Re cioè quelle visibili in figura 5.

In ordine da sinistra a destra sonorappresentate: presa orizzontale(H), presa verticale dall’alto (Va) everticale dal basso (Vb), questonon sacrifica le prestazioni inmodo eccessivo ma semplifica dimolto i calcoli (almeno per me).Facciamo ora un bel disegno datenere sottomano (figura 6).

Nello schema rappresentato pos-siamo fare alcune considerazioni:

• Prima abbiamo calcolato Dprcome proiezione sul piano XYche adesso si chiama Rr.

• Zr sarà semplicemente Zt-Z1.• a, b, c sono i segmenti del

nostro braccio e quindi datinoti.

• Nello schema rappresentiamo lapresa H e quindi il punto L avràcoordinate: Zl=Zr e Rl=Rr-c.

Con riferimento alle puntate pre-cedenti di questo manuale quelloche ci serve sapere sono gli ango-li alfa beta e gamma (α β γ).

ROBOMANIA

ROBOMANIA 101

Figura 3: Vista dall’alto della base rispetto al targetFigura 4: Una volta ruotato in direzione del target posso ragionare solo

sul piano ZR

Cominciamo:

Per prima cosa mi calcolo d,conosco Zl e Rl per cui:

d=SQR(Zl^2+Rl^2)

Ora conosco δ e mi calcolo l’an-golo d =arccos(Rl/d).Quindi abbiamo tutto per calco-larci gli angoli che ci interessano ein particolare avremo che l’angoloQOL (vertice in O e lati OQ e OL)sarà dato da:

QOL=arccos ((a^2+d^2-c^2)/(2*a*d)

Facile ora trovare α dato da:

α = 90-(δ+QOL)

Identica storia per l’angolo OQL:

OQL= arccos((a^2+b^2-d^2)/(2*a*b)

Beta sarà:

β =180- OQL

Ancora più facile per l’angolo

gamma, abbiamo infatti che:

α+β+γ=90°

Da cui:

γ = 90-(β+α)

C’è da fare un ragionamento sucome si raggiunge la posizione,pensate ad un bicchiere sopra altavolo, non potete certo arrivarcida sotto, inoltre volendo imitare ilmovimento umano, l’idea è quelladi arrivarci “allungando il braccio”provo con un disegno, figura 7.

Per ottenere questo è sufficienteimpostare un iniziale Rr più picco-lo di quello calcolato, posizionareil braccio, ripetere la cosa incre-

mentando Rr per passi successivifino ad arrivare al valore vero.

Prese Verticali Va e VbIl concetto e la matematica noncambia se non per:

• Vaα+β+γ=180°Zl=Zr+c e Rl=Rr

• Vbα+β+γ=0°Zl=Zr-c e Rl=Rr

Gli avvicinamenti saranno fattiseguendo il concetto di primaimpostando per Va un valore ini-ziale maggiore di Zl e decremen-

ROBOMANIA

ROBOMANIA102

Figura 7: La giusta sequenza per raggiungere il bicchiere

Figura 8: Il segmento O-Pr è il raggio d’azionenecessario per raggiungerel’oggettodentata

Figura 6: Grafico degli angoli sul piano ZR

Figura 5: Le 3 posizioni che la pinza assume nellospazio rispetto all’asse R

tandolo per passi successivi, ilcontrario per Vb.

Il raggio di azioneInizialmente ho affermato che labase si deve avvicinare al nostroPunto rosso in modo che il brac-cio riesca a raggiungerlo, aggiun-gerei in questa fase, raggiungerlocon un buon margine di manovra.

Per fare questo servono ancoradue calcoli.Considerando che il nostro puntorosso è ad una certa quota Z, ladistanza maggiore che possiamoavere è quella data dal bracciotutto steso ed inclinato dell’ango-lo giusto per alzarsi (o abbassarsi)fino alla quota voluta.Per tenerci un minimo marginenon consideriamo la pinza (seg-

mento c).Ora abbiamo Z1 che è unacostante, Zt conosciuto, avremo:

Zr=Zt-Z1Opr=a+bRr=SQR(Opr^2-Zr^2)

Rr era anche prima la distanzadella proiezione del Pr sul pianoXY, ora questo numero è il raggiodella circonferenza che delimita ladistanza massima alla quale midevo trovare, empiricamentepotrò stabilire quanto dentro lacirconferenza è meglio essere peravere un buon margine di mano-vra, direi di ridurre Rr di un 30% eprocedere per calcolare se sono ono all’interno della circonferenzao raggio d’azione.Come si fa?

ROBOMANIA

ROBOMANIA 103

Data una circonferenza di raggio rcon centro alle coordinate x y,stabilire se un punto qualsiasi delpiano Xa,Ya, è interno alla circon-ferenza. Questo fatelo voi!

Allego con questa dispensa unfoglio Excel che, risolvendo i cal-coli, vi mostra il posizionamentodei vari segmenti del braccio. Lecelle non sono bloccate o protetteperciò siete liberi di modificarlo, idati del grafico sono sotto al gra-fico stesso e c’è un foglio con unminimo di indicazioni per lamodifica.È più facile del previsto non esse-re entro il raggio d’azione delbraccio e in questo caso le formu-le vanno in errore, se poi voletemigliorare il foglio, non dimenti-cate di mandarmene una copia.

BIOQUADRAPOD UN ROBOTA QUATTRO GAMBEREALIZZAZIONE PRATICA

BIOQUADRAPOD UN ROBOTA QUATTRO GAMBEREALIZZAZIONE PRATICA

di Luigi [email protected]

Prima di iniziare desidero riepilogarela situazione: per la logica di coman-do abbiamo un microcontrolloredella famiglia BasicX, precisamenteun BX24, montato sulla schedinaSimpleBoard; per quanto riguarda lagestione dei servocomandi abbia-mo utilizzato lo 8 serial servo con-troller, della Pololu.Le due schede comunicano, comeavrete intuito, tramite una portaseriale ovvero 2 fili (dati + massa).La SimpleBoard provvede all’ali-mentazione della logica delle dueschede ed, un apposito circuito diregolazione che utilizza un 7806,fornisce l’alimentazione agli 8 ser-vocomandi.

PERCHÈ IL PROTOCOLLO

SERIALE?

Semplice, perchè con soli 2 fili (dati+ massa) ci permette di controllaremolte periferiche con comandi chepossono essere anche complessi. Ciconsente, quindi, di creare una“rete” di periferiche che può essereespansa o ridotta senza problemi esenza bisogno di prevedere, a priori,

il numero di dispositivi da connettere.Un altro lato positivo di questo pro-tocollo è che si tratta di uno stan-dard, questo significa che una peri-ferica seriale può essere pilotata,indifferentemente, da un qualsiasi

microcontrollore che rispetti questostandard, ovvero, quasi tutti!Ovviamente anche un personalcomputer o un palmare possonogestire periferiche seriali.Utilizzando un cavo in più, quindidue + massa, otterremmo unacomunicazione bidirezionale, ovverola periferica sarebbe in grado diinviarci delle informazioni chepotrebbero essere dati oppure dei

Nella prima parte di questo articolo ci siamo cimentati nella costruzione meccanicadel nostro Robot quadrupede. Ora vediamo come creare un semplice programmaper farlo camminare

ROBOMANIA104

ROBOMANIA

seconda parte

semplici segnali di conferma o dibuon funzionamento del dispositivo.Nel nostro caso, il secondo cavonon serve poiché questa perifericanon prevede l’invio di dati.

IL BX24 E I COMANDI SERIALI

Quanto è complicato gestire deicomandi seriali con un BX24?Questo starà a voi giudicarlo, a mioavviso la flessibilità e la semplicitàdel BX24 sono eccezionali e difficilida trovare in altri microcontrollori.Ecco un esempio pratico di come siinizializza la porta seriale COM3:

Dim Com3In(1 to 12) As Byte

Dim Com3Out(1 to 12) As Byte

Call DefineCom3(0,5,

bx0000_1000)

Le prime due righe di codice, defini-scono due array da 12 bytes cadau-no, questi sono il buffer di input edoutput. Infatti il BasicX bufferizza icomandi seriali in ingresso e in usci-ta, questo si traduce in una miglioreperformance generale delle porteseriali. I buffers devono essere di 9

byte + il numero massimo di byteche si invierà in un unico comandoseriale. Dal momento che noi invie-remo 3 bytes al Servo Controller, ilbuffer sarà di 12 (nulla ci vieta difarlo più grande).

La terza riga, definisce la portaCOM3, questa può essere impostatasu due qualsiasi dei pin disponibilisul BX24 dal 5 al 20. La sintassi delcomando richiede: pin d’ingresso,

pin di uscita, parametri della porta.Se non serve di inviare o di riceverecomandi seriali il rispettivo pin sipuò impostare a zero risparmiandouna porta I/O del microcontrollore.Nel nostro caso ho impostato il pind’ingresso a 0, in quanto non ci servericevere dati, il pin di uscita è il 5.I parametri richiesti dal controllerPololu sono 8N1, per impostare taliparametri si deve inserire il codicebx0000_1000 (come da tabella for-

nita nella documentazione delBasicX).

Questo va fatto solo ad inizio pro-gramma, oppure ogni volta che siintendono cambiare i pin dellaCOM3 o la dimensione dei buffers.Ora non ci resta che aprire la coda(il buffer) con il comandoOpenQueue:

Call OpenQueue(Com3In,12)

Call OpenQueue(Com3Out,12)

Ed infine, aprire la porta, impostan-do la velocità a 9600 baud, comerichiesto dal servo controller:

Call OpenCom(3,9600,Com3In,

Com3Out)

Da adesso in poi, per inviare unqualsiasi comando seriale, dallaporta COM3, è sufficiente utilizzareil comando PutQueue oppurePutQueueStr se intendiamo inviaredelle stringhe di testo.Un comando tipico che possiamoinviare al controller Pololu, potrebbeessere:

Call PutQueue(Com3Out, 255,

2, 120)

Questo semplice comando, ordinerà

ROBOMANIA

ROBOMANIA 105

Figura 1: La SimpleBoard con il BX24 installato Figura 2: Il Pololu 8 Serial Servo Controller

Figura 3: Lo schema elettrico del circuito per la determinazione della posizione degli 8 servocomandi

al Serial Servo Controller, identificatocon il numero 255, di muovere ilservo numero 2 nella posizione 120che rappresenta, più o meno, laposizione centrale del servo. Il con-troller continuerà a generare l’impul-so PWM e il servo manterrà questaposizione fino a nuovo comando.Determinare la posizione dei serviPrima di passare allo studio del fun-zionamento della camminata delquadrupede, dobbiamo trovare unsistema per determinare, in termininumerici (da 0 a 255), la posizionedi ognuno degli 8 servocomandi.Dal momento che non tutti i servisono identici tra loro, sicuramente ivalori da inviare saranno diversi perogni servo, un servo sarà centratocon un valore di 120, un altro servoinvece con 105; lo stesso discorsovale per tutte le varie angolazioniche dovremo impostare per farcamminare il Robot.Per raggiungere questo scopo,potremmo collegare il Pololu SSCdirettamente al PC e con un pro-gramma di comunicazione seriale,tipo Hyperterminal, inviare i singolicomandi seriali per impostare i variservi.Su Internet ci sono diversi program-mi di comunicazione seriale, anchespecifici per il Mini SSC che è per-fettamente compatibile con ilPololu.Gli utenti più esperti in programma-zione su PC potrebbero creare delleinterfacce personalizzate con mano-pole e cursori per muovere i servo-comandi; poi se li voleste pubblica-re su www.robot-italy.net farete lafelicità di molti utenti di questacommunity.Un’alternativa, potrebbe essere quel-la di utilizzare un commutatore rota-tivo a 8 posizioni, 2 pulsanti e 10resistenze da 1 KΩ, per costruire unpiccolo dispositivo che ci permettadi incrementare e decrementare laposizione dei servi con i pulsanti e,tramite il commutatore, selezionare

il servo da impostare. Il commutato-re può anche essere sostituito con undip-switch a 8 bit.Tramite la COM1 del BX24, collega-ta al PC, potremo sapere in qualsia-si momento la posizione esatta diogni servo e quindi impostarladurante la programmazione. InFigura 3 trovate uno schema cherappresenta il circuito, lo potete rea-lizzare con una schedina millefiorida piazzare momentaneamente sulRobot.

In pratica, con il commutatore siseleziona il servo, con i pulsanti siincrementa o decrementa il valore,provocandone la rotazione in sensoorario o antiorario, quando abbia-mo raggiunto la posizione desidera-ta, controlliamo sullo schermo delPC il valore e prendiamo nota.All’inizio è un lavoro abbastanzanoioso ma dopo un po’ ci si prendedimestichezza e si impara a stimarele posizioni e quindi è molto piùrapido e facile.

Naturalmente per poter funzionareil dispositivo richiede una program-mazione. Il programma necessario,in realtà, è lo stesso che occorreràper far camminare il Robot, conalcune lievi modifiche. D’altronde ilbello di lavorare con i BasicX è pro-prio questo: dall’idea alla realizza-zione ci vogliono pochi minuti.Ovviamente il BasicX può imple-mentare anche compiti molto com-plessi ed in questo caso, probabil-mente, ci vuole qualche ora, ma èniente se paragonato alle giornate esoprattutto nottate, che occorronocon linguaggi complessi come l’as-sembler e spesso anche il C.

Di seguito illustro soltanto le modifi-che da apportare al programma prin-cipale di cui parleremo in seguito.

Innanzitutto ci creiamo una costan-te per ogni servo a cui daremo il

valore del pin al quale è collegato ilcommutatore.

Const Sv00 As Byte = 20

Const Sv01 As Byte = 19

Const Sv02 As Byte = 18

Const Sv03 As Byte = 17

Const Sv04 As Byte = 16

Const Sv05 As Byte = 15

Const Sv06 As Byte = 14

Const Sv07 As Byte = 13

In seguito andiamo a creare altredue costanti per i pulsanti di incre-mento (UpBtn) e decremento(DwBtn).Quando viene premuto un pulsante,il relativo pin del BX24 diventa altoquindi vale 1, viceversa, in posizionedi riposo varrà 0.

Const UpBtn As Byte = 12

Const DwBtn As Byte =11

Ora ci dobbiamo creare una routineche vada a controllare lo stato diquesti pulsanti e, nel caso venganopremuti, impostare un nuovo valoredi posizione del relativo servo; pre-sto fatto:

Do

if GetPin(UpBtn) = 1 then

Call IncrSub()

Call Delay(0.05)

End if

If GetPin(DwBtn) = 1 then

Call DecrSub()

Call Delay(0.05)

End if

Loop

In questo codice troviamo un cicloDo..Loop, in pratica viene eseguitoil codice che segue l’istruzione Dofino ad arrivare a Loop che rimandaall’istruzione Do, ripetendo il cicloall’infinito.La seconda istruzione è un classicacondizione If..Then..End If, le istru-zioni che seguono il Then sarannoeseguite se si verifica la condizione If.

ROBOMANIA

ROBOMANIA106

Nel nostro caso se il pin UpBtn (pin12 del BX24) è a livello alto (il pul-sante è premuto) allora esegue leistruzioni successive, ovvero: CallIncrSub() che è la routine che incre-menta il valore (la posizione) del ser-vocomando, come vedremo inseguito, e Call Delay(0.05) che è unritardo di 0.05 secondi. Il ritardoviene applicato per evitare che lapressione del pulsante sia interpreta-ta come una “serie” di pressioni,provocando un risultato falsato chenel gergo tecnico viene chiamato“bouncing”, il ritardo rappresenta,appunto, il “debounce”.Se, invece, il pin UpBtn è a livellobasso (il pulsante non è premuto)l’istruzione passa direttamente allafine, End If, e quindi alla successivaistruzione.La condizione seguente fa la stessacosa solo che controlla il pulsanteDwBtn e lancia la routine di decre-mento del valore.Ora non resta che scrivere le routinedi incremento e decremento:

Sub IncrSub()

Se ci troviamo all’interno di questaroutine è perchè dobbiamo incre-mentare il valore di uno o più servo-comandi (nel caso del dip-switch),ma quali sono i valori da incremen-tare?Dobbiamo verificare quali sono i pina livello “uno”. Lo stato dei pin vienemesso a livello alto dal commutatorerotativo o dai DIP Switch.Iniziamo con un ciclo condizionaleIf..Then..End If, partendo dal Servo 0:

If GetPin(Sv00) = 1 then

Se il pin Sv00 (ingresso 20 delBX24) è a livello alto:

Sv00Val = Sv00Val + 1

Allora il valore della variabile (di tipoByte) Sv00Val è incrementata di 1

(nel programma vero e proprio lavariabile è stata inizializzata con l’i-struzione: Dim Sv00Val As Byte).

Debug.print "Pos servo 0 = ";

Cstr(Sv00Val)

Ora scriviamo sullo schermo ilnuovo valore di posizione del servo0: il comando Debug.Print invia unastringa direttamente alla porta seria-le COM1, la quale non ha bisognodi essere inizializzata, in quanto èuna porta fisica.La COM1, nel nostro caso, è colle-gata al PC che sta eseguendo unprogramma di comunicazione seria-le tipo Hyperterminal oppure il pro-gramma proprietario dei BasicX che,a sua volta, contiene una finestraterminale.Quindi questo comando invierà iltesto contenuto all’interno delle vir-golette, poi il valore della variabileSv00Val opportunamente convertitoin stringa (era Byte) dal comandoCstr(). Il punto e virgola serve aseparare le stringhe da inviare allaseriale.

Call SMove(8, Sv00Val)

Non ci resta che muovere il servo,mediante la routine SMove, pervisualizzare nel mondo reale la posi-zione fisica del servocomando. Laroutine SMove, che vedremo inseguito, richiede il numero del servo(8) e la posizione (Sv00Val). In que-sto caso il servo 0 viene chiamato 8per un motivo molto semplice: lostandard del MiniSSC prevede ladefinizione dei servi da 0 a 7 per unampiezza di movimento del servo di90° e da 8 a 15 per un’ampiezza di180°, a noi servirà la seconda.

end if

Il primo ciclo condizionale è termi-nato, ora dobbiamo verificare se cisono altri servi da incrementare.

Naturalmente se la condizione pre-cedente non si fosse verificata, ovve-ro, se il pin Sv00 fosse stato a livellobasso, ci saremmo immediatamenteritrovati a questo punto.

If GetPin(Sv01) = 1 then

Sv01Val = Sv01Val + 1

Debug.print "Pos servo 1 =

"; Cstr(Sv01Val)

Call SMove(9, Sv01Val)

end if

...

La cosa si ripete per tutti e 8 i servi.La routine che segue è quella didecremento, in pratica fa le stessecose della precedente ma sottrae unvalore anziché addizionarlo.

Sub DecrSub()

If GetPin(Sv00) = 1 then

Sv00Val = Sv00Val - 1

Debug.print "Pos servo 0 =

"; Cstr(Sv00Val)

Call SMove(8, Sv00Val)

end if

...

End Sub

Ora vediamo la routine che ci per-mette di inviare i comandi seriali alcontroller e quindi di muovere i servi:

Sub SMove(_ByVal ServoNum as

Byte, ByVal ServoVal as Byte)

Dim ServoParam(1 to 3) as Byte

ServoParam(1) = 255

ServoParam(2) = ServoNum

ServoParam(3) = ServoVal

Call PutQueue(Com3Out,

ServoParam, 3)

End Sub

Iniziamo con la prima riga:

Sub SMove(_ByVal ServoNum as

Byte, ByVal ServoVal as Byte)

Per muovere i servi ci occorrono dueparametri: numero del servo damuovere e posizione, quindi la rou-

ROBOMANIA

ROBOMANIA 107

tine si aspetta due variabili di tipoByte: ServoNum e ServoVal.

Dim ServoParam(1 to 3) as

Byte

Dimensioniamo una variabile arraydi tipo Byte con 3 posizioni.

ServoParam(1) = 255

ServoParam(2) = ServoNum

ServoParam(3) = ServoVal

Assegniamo ora i valori all’array: ilprimo ha valore fisso 255 che è ilcodice di inizializzazione delMiniSSC, il secondo è il numero delservo ed il terzo è il valore del movi-mento.

Call PutQueue(Com3Out,

ServoParam, 3)

Una volta che l’array è definito pos-siamo inviarlo alla porta serialeCOM3 con un semplice comandoPutQueue(porta com, variabilearray, numero di valori da inviare).

A questo punto abbiamo tutti i datiessenziali per scrivere il programmacompleto ed iniziare a determinarela posizione dei servi, i limiti, le varieposizioni, eccetera.

Con questo sistema è possibile edutile determinare i valori di limite diogni servo. E’ infatti sconsigliabileimpostare un valore che va oltre allimite fisico del servo, si rischia didanneggiarlo.Testate quindi tutti i servi partendoda 0 fino a 255 per trovare il limitesuperiore e inferiore e prendetenenota, quei valori non devono esseremai superati. Per limite si intendel’ultimo valore che fa muovere ilservo, per esempio: impostando 15come valore, il servo va quasi tuttoda una parte, decrementando ilvalore il servo fa un ulteriore scattoverso la stessa parte, quando il servonon si muove più, nonostante siastato decrementato il valore, avetetrovato il suo limite inferiore. Il limi-te superiore funziona allo stessomodo ma bisogna incrementare ilvalore.

TEORIA DELLA CAMMINATA

La teoria della camminata dei qua-drupedi è molto vasta e anche piut-tosto complessa, cerchiamo di rias-sumerla molto sinteticamente poi-ché va fuori dallo scopo di questarealizzazione.Per mantenere una posizione diequilibrio, è necessario che almenotre gambe tocchino il suolo e il COG

(centro di gravità) sia opportuna-mente distribuito sulle tre gambe.Ogni movimento che andremo afare deve necessariamente rispettarequesta regola, altrimenti il nostroRobot cadrà inesorabilmente.Consiglio di curare attentamente ladistribuzione del COG del Robot,eventualmente regolandolo con l’ag-giunta di pesi di bilanciamento, perdeterminare dove posizionarli è suffi-ciente fare delle pose statiche con ilRobot ed osservarne la stabilità, quin-di correggere di conseguenza.Per muoverci dovremo sollevare unagamba, avendo cura di spostare ilCOG sulle altre tre, prima di stacca-re la gamba dal suolo, in questomodo ci garantiremo una situazionedi equilibrio.Un sistema, forse più facile, di farcamminare il nostro Robot, è lacamminata veloce. Infatti, in questocaso, la distribuzione dei pesi risultameno critica, quindi è probabilmen-te la strada migliore per iniziare,facendo attenzione, prima di fer-marci, di avere sempre tre gambeben poggiate al suolo e il COG cor-rettamente distribuito.

IN PRATICA

Ho cercato di schematizzare infigura 4 la camminata che homesso a punto per il nostroLegged, sicuramente non è perfet-ta e andrebbe perfezionata, però ci

ROBOMANIA

ROBOMANIA108

Figura 4: Schematizzazione della camminata del BioQuadraPodFigura 5: Rappresentazione della Tibia e del Femore

con i relativi movimenti

permette di camminare e quindi loscopo è stato raggiunto.Si sono resi necessari 16 passi di pro-gramma per ottenere una cammina-ta omogenea e funzionale, partendoda una posizione centrale dei servi.

Per poter realizzare il programma inmodo più semplice ho distinto gliarti in Femore e Tibia e ho assegna-to le denominazioni agli 8 servi,come raffigurato nelle figure 5 e 6.

I servi sono stati denominati utiliz-zando le sigle LF, RF, LR, RR chesignificano Left Front, Right Front,Left Rear, Right Rear; voi natural-mente potete cambiare liberamentedenominazione se vi rimane piùsemplice.

LA PROGRAMMAZIONE

Vediamo ora un esempio di pro-grammazione, ovviamente permotivi di spazio non troverete tuttoil listato, ma potrete scaricarlo dalsito www.robot-italy.net nell’areaDownloads.Grazie al programma precedente,siamo stati in grado di trovare i limi-ti dei servi e la posizione centrale, inquesto modo possiamo facilmentedeterminare, in modo approssimati-vo, tutte le posizioni intermedie perpoi aggiustarle provando il Robot.Ci creeremo una routine chiamataWalk che provvederà a settare i servi,

uno ad uno, per ottenere la cammi-nata: prima impostiamo il valoredella variabile, poi chiamiamo la rou-tine SetSvPos() che andrà ad esegui-re il comando e infine introdurremoun piccolo ritardo, per passare poi alpasso successivo. Il ritardo andràregolato per ottimizzare la cammina-ta, a volte può anche essere omesso,dipende da molti fattori.

Sub Walk()

'LF femore avanti

Sv00Val = 50

Call SetSvPos()

Delay(0.1)

'LF distende tibia

Sv01Val = 46

Call SetSvPos()

Delay(0.1)

'LF femore indietro

Sv00Val = 128

Call SetSvPos()

Delay(0.1)

...

End Sub

Ora vediamo la routine SetSvPos():

Sub SetSvPos()

'Servo 0

Call SMove(8, Sv00Val)

'Servo 1

Call SMove(9, Sv01Val)

...

End Sub

Questa routine richiama la routineSmove() che abbiamo analizzatoprima, in pratica imposta ciclica-mente la posizione di tutti i servi inbase ai parametri delle variabili.Fate bene attenzione che questoprogramma è stato fatto voluta-mente in questo modo per facilitarelo studio e l’implementazione dellacamminata e delle altre posizioni,una volta trovati gli algoritmi giusti,può risultare conveniente semplifi-

carlo ed ottimizzarlo.È anche possibile eseguire delleposizioni prestabilite, come adesempio seduto oppure sdraiato,memorizzando la posizione e dan-dogli un nome, nell’esempio chesegue, ho memorizzato la posizionecentrale di tutti i servi, quando ilRobot si deve fermare è sufficientechiamare questa funzione per rag-giungere una posizione di stabilità:

Sub CenterPos()

Sv00Val = 100

Sv01Val = 51

Sv02Val = 93

Sv03Val = 120

Sv04Val = 93

Sv05Val = 88

Sv06Val = 102

Sv07Val = 144

Call SetSvPos()

End Sub

Di queste routine è possibile farnequante ne volete e sono molto utiliin quanto possono essere determi-nate con cura e provate a fondoprima di memorizzarle, in seguito sirichiamano in un attimo.

CONCLUSIONI

Far camminare un quadrupede nonè molto semplice, ma con la pazien-za ci si riesce e la soddisfazione ègrande. Questa particolare configu-razione delle gambe, oltre a rappre-sentare una soluzione molto econo-mica, ci permette di fare unagamma di movimenti vastissima, èsicuramente molto interessante spe-rimentare gli innumerevoli atteggia-menti di questo Robot biomorfico.Se volete un Robot più stabile pote-te sempre aggiungere 4 servoco-mandi, utilizzando un contenitorepiù lungo e un Serial ServoController da 16 servi. Con 6gambe, l’equilibrio e la stabilitàsono garantiti, come pure la capaci-tà di superare pendenze più ripidesenza ribaltamenti.

ROBOMANIA

ROBOMANIA 109

Figura 6: La denominazione dei servi e il sensodi marcia

Oltre 1000 titoli

• ELETTRONICA

• ROBOTICA

• AUTOMAZIONE

• TELEFONIA

• STRUMENTI DI MISURA

• RADIOTECNICA

• TV - RADIORIPARAZIONI

• EQUIVALENZE- DATA BOOK

• HI-FI - AUDIO - VIDEO - ACUSTICA

• ENERGIA - ENERGIE ALTERNATIVE E RINNOVABILI

• FREQUENZE SEGNALI RADIOAMATORIALI

• ANTENNE TV E SAT

• CB - RADIOAMATORE - ANTENNE

• TELECOMUNICAZIONI

• FISICA - CHIMICA - OTTICA

• MECCANICA

• ILLUMINOTECNICA

• ELETTROTECNICA

• IMPIANTISTICA

• SICUREZZA - NORME

• FAI DA TE

• ENERGIE FREQUENZE COSMICHE

• FORMULARI

• DIZIONARI

• INFORMATICA

• ELETTROMAGNETISMO

• RADIO D’EPOCA E SURPLUS

• STORIA RADIO - TV - ELETTRONICA

• INQUINAMENTO ELETTROMAGNETICO

• METEO

• DIVULGATIVI SCIENTIFICI

• ESPERIMENTI SCIENTIFICI

• REFRIGERAZIONE TECNOLOGIE DELFREDDO

• SCIENZIATI, INVENZIONI, INVENTORI

• SCIENZA PER RAGAZZI E NON

• ECO - SALUTE

• RADIONICA - RADIOESTESIA

• SCIENZA E FANTASCIENZA

• AUTOCAD DISEGNO

• NOVITA’ ULTIMI ARRIVI

• FUORI CATALOGO E SCONTATI

PIC BOOK 2Con CD allegatoG. GallettiNaturale proseguimento del primo volume, questolibro completa la panoramica sui PIC. Andremo adutilizzare sempre il 16F84 ma anche il 16F876, il12C508 ed il 12CE674 due 4+4 pin dalle caratteristi-che a dir poco sorprendenti. La novità principale èche quì parleremo di esperimenti oltre che di pro-getti. Nel CD accluso il lettore troverà tutto quelloche gli serve, compresi i vari programmi nonchètutti i listati presenti in cartaceo nel volume.

Pagine 170 cod. 3079/2 - €23,50

ELETTRONICA DIGITALESAPERE E SAPER FAREG. FilellaDopo il volume dedicato all’Elettronica di base èdisponibile il nuovo volume dedicato all’Elettronicadigitale. Come per il suo gemello è possibile abbi-nare teoria e pratica con i kit dimostrativi.

Pagine 160 cod. 2089 - €12,80

ELETTRONICASAPERE E SAPER FAREG. FilellaQuesto libro é dedicato a chi ha un’innata pas-sione per questa scienza. Molti gli argomentitrattati, dalla saldatura, circuiti stampati, filtrioscillatori, amplificatori.

Pagine 228 cod. 1005 - €12.80

IL PLCNella gestione dei controlli enell’automazioneG. FilellaAl volume è allegato un software, sviluppato inambiente Windows, che trasforma il vostro PC inun PLC virtuale, per apprendere la logica Ladderattraverso l’animazione di alcuni automatismi. Neltesto vengono messi a confronto i PLC di piùrecente diffusione prodotti da Siemens, Omron eGE. I principi di funzionamento del PLC. Le memo-rie. I moduli di ingresso e di uscita. L’elaborazionedi un programma all’interno del PLC. Le tecniche diprogrammazione e la Normativa IEC1131-3. Unitàdidattiche per la progettazione e schede guida.

Pagine 122 cod. 3215 - €18,00

RIPARAREMONITOR PER PC ALIMENTATORI A

COMMUTAZIONE GRUPPI DI CONTINUITA’

E. Fico - A. DeottoGuida pratica per capire il funzionamento eimparare i trucchi, le scorciatoie, le tecnicheindispensabili per una rapida riparazione.

Pagine 159 cod. 3162 - €16,60

LA RIPARAZIONE DEI TELEVISORI A

COLORIR. Salerno - A. DeottoGeneralità sul TVC. Sezione RF e FI. sintonia ememoria. Il microcomputer. Teletext. Audio FI eFinale BF. Sezione colore, finali colore. Sezionesincronismi e deplessione verticale. Deflessionedi riga, generazione AT e EAT. Correzione E-O.Alimentatore. Varie. Appendice. Indice dei gua-sti proposti e commentati.

Pagine 207 cod. 3264 - €17,60

LA RIPARAZIONE DEI

VIDEOREGISTRATORIR. Salerno - A. DeottoGeneralità sul VCR. Il front-end. La sezione video,percorso dei segnali di luminanza e crominanzain registrazione. La sezione audio.L’alimentatore. La gestione della parte meccani-ca. Il sistema di controllo. I circuiti servo. Lameccanica. Dalla bobina datrice al perno guida-nastro di sinistra. Drum testine video e perni gui-danastro. Dal perno capstan alla bobina di rac-colta. Indice dei guasti proposti e commentati.

Pagine 173 cod. 3427 - €16,60

SMDCOMPONENTI E TABELLE DI CONFRONTO

Giancarmelo MoroniComponenti SMD. Contenitori e utilizzo.Resistenze SMD. Lettura. Codifica. TrimmerSMD. Condensatori SMD. Ceramici. Film.Poliestere. Elettrolitici. Filtri rete. ConnettoriSMD. Fusibili. Interruttori. Zoccoli. Led.Transistor. Tabella comparativa.

Pagine 111 cod. 3426 - €9,00

LA RADIO A GALENA:

ORIGINI E PROGETTIGiancarmelo MoroniStudi sulla galena. Come funziona il detector a cri-stallo. Sull’isolamento degli aerei. Montaggio di unantenna interna. La costruzione dei trasformatori dialta frequenza. Bobine a solenoide con prese inter-medie. I cristalli oscillanti. Apparecchio supercri-stallo R.T. 19. Tre classici apparecchi a galena. Unamplificatore a microfono magnetico per ricevitorea cristallo. Un nuovo ricevitore a cristallo. Un appa-recchio a cristallo molto efficiente. La “Crisolina”.Il “Multiplex”. Il Galenofono II. Il Bigristallofono. IlCristallovox. Il “Selettivissimo”. Il “Galenofono III”.Il “Dui-bigri-galenofono”. C.R. 511: ricevitore a cri-stallo perfezionato per la ricezione a grandedistanza. Il “Galenovariometro”. Nomogramma peril calcolo dell’induttanza di una spira circolare (E).

Pagine 138 cod. 3282 - €13,50

LABVIEWNella gestione dei controlli e dei sistemiM. Ferrari - G. FilellaLabVIEW è un rivoluzionario ambiente di pro-grammazione la cui struttura grafica ad oggetticonsente di controllare dei dispositivi esterni,siano essi strumenti commerciali o schede inter-faccia. Questo volume propone una serie dimoduli che consentono di approfondire gli aspet-ti teorici e applicativi correlati all’utilizzo diLabVIEW. Per questo motivo tutti gli argomentitrattati sono corredati da esempi ed esercizi chehanno anche lo scopo di evidenziare i possibilitranelli legati ad un tipo di programmazione nontradizionale.

Pagine 121 cod. 3216 - €17,50

PIC BOOKDischetto allegatoG. GallettiPICBOARD: Un circuito mille fori un po’ speciale -TIMEPIC: Timer per conteggi alla rovescia - BLINK:Lampeggiatore per motociclo - SEMAPIC: Piccolosemaforo per modellisti - BELL: Campanello apriporta - ALARMPIC: Piccola barriera per i ladri diappartamento - PICMUSIC: Carillon programmabile- VIDEOPIC: Commutatore video con scanner -GESTIONE LCD: HITACHI 44780 a 4 bit - Macro - Letempistiche del Micro - Interfacciare il PIC 16x84 -Alcuni siti WEB che trattano i PIC - ARIANNA: Cometessere circuiti stampati - Set istruzioni PIC 16C84.

Pagine 96 cod. 3079 - €18,00

LA CORRETTA REALIZZAZIONE DEI

SISTEMI FOTOVOLTAICIG. RodolfiNozioni di elettrotecnica generale. Nozioni diimpiantistica applicata. Sistemi fotovoltaici, pan-nelli fotovoltaici, dimensionamento, installazione,orien-tamento, collegamenti el, note di manuten-zione dei pannelli, batterie di accumulatoti, cen-tralina di controllo, macchine statiche di conver-sione elettrica. Quadro di controllo. Dispositivi uti-lizzatori, corpi illuminanti, frigoriferi e congelatori.Sollevamento acqua, elettropompe.

Pagine 96 cod. 3218 - €11,50

CAVI CONNETTORI E ADATTATORILa più completa banca dati PCle connessioni PC-audio-videoA. CasappaIl manuale comprende le connessioni per com-puter di vari tipi come AMIGA, C64, Spectrum,IBM Compatibili, Audio-Video, IDE, SCSI, ETHER-NET, PCMCI, monitor, modem e quant’altro sonoriuscito a reperire. Per una migliore consultazio-ne, ho suddiviso il volume in tre parti; • Adattatori• Connettori • Cavi di collegamento

Pagine 80 cod. 2099 - €10,33

SANDITMARKETVia Quarenghi, 42/c24122 BergamoTel. e Fax 035/[email protected]

SPESE DI SPEDIZIONE

CON CONTRASSEGNO

Euro 2,70

VISITA IL

NOSTRO

NUOVO SITO

INTERNET

www.sanditmarket.it

CASSE ACUSTICHEL’AutocostruzioneIn un unico CD-ROM la guida al progetto edautocostruzione dei diffusori acustici. Il suono.La catena audio. L’altoparlante. I fenomeni acu-stici. La cassa chiusa. Il bass reflex. Sistemi apiù altoparlanti. Sistemi caricati a tromba. Filtricross-over. I componenti. Esempi di calcolo.Completamente in italiano. Un’opera completa,di facile consultazione, che descrive i diversiaspetti della tecnologia del suono applicati allarealizzazione delle casse acustiche nelle varietipologie.

CD-ROM cod. 4283 - Euro 34,49

ONDE RADIO E TELEGRAFIA IN MARECon Racconti di Marconisti a BordoU. CavinaWireless e marine da guerra.Radiogoniometro, uno strano percorso.Radiotelegrafisti nelle marine da guerra.Radiotelemetro e radar. Onde radio in immersio-ne. Radiocomunicazioni e sommergibili: una dif-ficile convivenza. Moderni sistemi di radioco-municazione. Morsemare. La telegrafia aerifor-me (aerografia). Origine delle abbreviazioniradiotelegrafiche e del codice “Q”. Morse eonde corte. Marconisti a bordo.

Pagine 183 cod. 4296 - Euro 15,00

IMPIANTI FOTOVOLTAICICome ricavare l’elettricità dal soleG. Luoni

La costituzione dei pannelli fotovoltaici.Le caratteristiche dei pannelli fotovol-taici. Composizione di un sistema foto-voltaico. La batteria tampone. Il rego-latore di carica. Convertitori statici.Chopper. Invertitore. Applicazioni foto-voltaiche. Alimentazione di utenzedomestiche ed agricole.Alimentazione di un impianto per ilpompaggio dell’acqua. Tecniche didimensionamento di un impianto.Installazione dei pannelli. Il costo deichilowattora fotovoltaico. Sistemi dicalcolo da sviluppare. Sistema di illu-minazione per appartamento. Sistemadi alimentazione energia elettrica per

baita in montagna, per radiofaro, per colonnina S.O.S., per barca, per moto-re in C.A. Faro luminoso di segnalazione. Boa di segnalazione.Apparecchiatura

Pagine 48 cod. 4293 - Euro 7,90

SENSORI FOTOELETTRICI EDISPOSITIVI PER LA SICUREZZAConcetti di base per una corretta sceltaG. Luoni

La luce. Trasmissione, assorbimento, rifles-sione. Il sensore fotoelettrico. Sensorifotoelettrici universali. Sbarramento aproiettore-ricevitore. Sbarramento a retrori-flessione. Il riflettore prismatico.Sbarramento polarizzato. Sbarramento pertrasparenti. Tasteggio diffuso. Tasteggio asoppressione di sfondo. Tasteggio a sop-pressione di primo piano e di sfondo.Sensori fotoelettrici applicativi. Sensori aforcella, di contrasto, di luminescenza, dicolore, a fibra ottica, ad emissione laser.Dispositivi per la sicurezza. La direttivamacchine e la sicurezza. I sistemi di sicu-rezza con dispositivi optoelettronici.

Valutazione del rischio e delle categorie di sicurezza. Sistemi di sicurezza di tipo 1,di tipo 4. Risoluzione e minimo oggetto rilevabile. Distanza di installazione. Funzionemuting e override. Glossario termini tecnici. Fotoemettitori. Diodi led. Tasteggio dif-fuso. Valori limite-tensione inversa. Dissipazione massima. Massima corrente diret-ta. Massima temperatura di esercizio. Corrente diretta ad impulsi. Tensione direttaper una certa corrente. Intensità luminosa per una data corrente. Lunghezza d’on-da della luce emessa. Angolo di apertura. Diodi laser. Fotorivelatori. Effetto elettri-co. Fotodiodi. Fototransistor.

Pagine 48 cod. 4294 - Euro 7,90

NOVITÁ! SANDIT LIBRI

TELECONTROLLOGSM EL35.002:UN “TELEASSISTENTE”AL VOSTRO SERVIZIO

TELECONTROLLO GSM EL35.002: IL“TELEASSISTENTE”Il Telecontrollo GSM EL35.002 pro-dotto dalla Elettroterm è unmezzo sicuro ed affidabile perattivare a distanza impianti edapparecchiature ad un costomolto competitivo.Questo dispositivo si differenzia dalleapparecchiature complesse e sofisticatedella gamma Elettroterm per via dello sfor-zo di semplificazione e razionalizzazione che èstato alla base della sua progettazione. Obiettivo dell’a-zienda è stato quello di poter proporre un dispositivoche potesse essere facilmente gestito ed utilizzato dachiunque sapesse inviare un messaggio sms con un tele-fono cellulare.Lo scopo è stato raggiunto dotando l’apparecchio ditutta la componentistica e delle linee di ingresso e diuscita necessarie allo scopo, ma evitando di complicarlocon l’introduzione di funzioni destinate a modelli piùcomplessi e sofisticati.Il risultato è stato un eccezionale strumento che, puressendo dotato della tecnologia più avanzata, riesce adessere al contempo semplice, affidabile e competitivo.

A CHE COSA SERVEIl Telecontrollo GSM EL35.002 vi permette di comanda-re a distanza, tramite il vostro cellulare, qualsiasi appa-recchiatura o impianto collegato alla linea elettrica (o aduna batteria adeguata).L’impiego tipico è nelle seconde case, specie se sprov-

viste di linea telefonica fissa (cosache sta diventando sempre più comunea seguito della diffusione dei telefonicellulari).Collegando ad esempio il Telecontrollo

EL35.002 al cronotermostato dell’impiantodi riscaldamento, si potrà comandarne l’ac-

censione o lo spegnimento mediante un semplicemessaggio sms.

Il sistema consente evidentemente una grande libertàd’azione e una grande comodità di impiego: il comandosms può essere inviato da qualsiasi luogo e in qualsiasimomento.Naturalmente, se d’inverno sarà l’impianto di riscalda-mento ad essere attivato, d’estate si potrà invece sce-gliere ad esempio di telecomandare l’impianto di condi-zionamento, oppure lo scaldabagno elettrico in mododa trovare pronta l’acqua calda per una doccia tonifi-cante all’arrivo.I vantaggi sono evidenti. Oltre all’indubbio piacere di tro-vare la casa calda o fresca quando lo si vuole, si potrannoanche ottenere sensibili risparmi sulla bolletta del gas odella luce, grazie alla possibilità di avviare gli impiantiesattamente al momento voluto, senza inutili sprechi purgodendo ugualmente della massima comodità.Naturalmente sono possibili moltissimi altri impieghi:basta che ci sia una apparecchiatura che si desideri farfunzionare al momento voluto anche in nostra assenza.Ad esempio si potrà telecomandare un qualsiasi elettro-domestico, quale un frigorifero che si voglia poter trova-re con lo scomparto dei surgelati già in temperatura almomento del nostro arrivo, oppure una lavapiatti, o un

TELECONTROLLOGSM EL35.002:UN “TELEASSISTENTE”AL VOSTRO SERVIZIO

in v

etrin

a

IN VETRINA111

Un prodotto che coniuga la tecnologia più avanzata con la semplicità, permettendovidi comandare apparecchiature remote con un semplice sms.

forno elettrico…E non ci saranno dubbi o incertezze, perché ilTelecontrollo EL35.002 provvederà a comunicare sel’impianto è acceso o spento.Oltre agli impieghi casalinghi, anche altri settori possonobeneficiare del telecontrollo: si potrà avviare la pompadell’acqua per innaffiare il giardino o per irrigare i campi;nelle serre si potranno bagnare i fiori, o fornire dell’ariacalda in inverno, o aprire delle finestre, o spostare delletende o delle tapparelle…Si potranno aprire le finestre di una mansarda per dareun po’ d’aria in un giorno di canicola, o chiuderle in casodi pioggia; si potranno attivare impianti isolati comepozzi o centrali eoliche, fare scattare segnali, accendereimpianti di illuminazione…Per la sicurezza della casa potrete avviare la registrazionedei segnali di una telecamera, accendere le luci… Inoltrenon avrete necessità di comunicare a terzi il codice delvostro impianto antifurto (dell’abitazione privata o del-l’ufficio) perché potrete attivarlo da remoto dopo l’usci-ta del personale delle pulizie.Nella versione EL35.002B, il dispositivo può essere azio-nato, anziché con un sms, con un semplice squillo tele-fonico a costo zero. Anche in questa versione il sistemaprevede che, dopo aver eseguito il comando, vengaemesso un sms di conferma indirizzato al telefono cheha inviato il comando stesso, però questa funzione puòessere disattivata. Ciò risulta particolarmente utile nelcaso della apertura automatica del cancello o del porto-ne di casa che, essendo normalmente a vista, non neces-sita di messaggi di conferma per sapere se è chiuso oaperto. Poiché è possibile memorizzare quali numeri ditelefono sono abilitati al comando, ciò rappresenta unimportante fattore di SICUREZZA rispetto ai normali tele-comandi per cancelli. Nel caso di condomini, dato cheormai praticamente tutti dispongono di un cellulare,potrà essere conveniente comandare con un telecon-trollo EL35.002B il cancello condominiale, risparmiandosui telecomandi e garantendo meglio tutti gli inquilinicontro gli ingressi indesiderati, grazie al funzionamentopermesso solo ai numeri di telefono abilitati.

IL CUORE DEL PRODOTTOIl “cuore” del Telecontrollo EL35.002 è un engine GSMDual-Band di ultima generazione, in grado di colloquia-re con qualsiasi telefono.Al suo interno, come per tutti i telefoni cellulari, deveessere inserita una SIM Card, da utilizzare nel formato“plug-in” (vedi figura):Tuttavia la SIM Card, prima del suo inserimento nelTelecontrollo, deve essere “programmata”. L’operazione è semplice: basta inserirla in un qualsiasi

telefono cellulare e,seguendo le istru-zioni del cellularestesso, cancellaretutti gli eventualinumeri telefoniciche vi sono memo-rizzati; dopo di chebasterà inserire uncodice che funzio-nerà da password a protezione del futuro impiego.A questo punto la SIM Card potrà essere tolta dal cellu-lare per essere inserita nel dispositivo EL35.002.

FUNZIONAMENTOIl Telecontrollo EL35.002 è dotato di due led di avverti-mento e di un pulsante per la commutazione manualedell’uscita. Il primo led, di colore rosso, fornisce infor-mazioni sulla presenza di campo sufficiente alla ricezionedei messaggi sms. Il secondo led, bicolore, quando èrosso indica che l’impianto comandato è spento, mentrequando è verde indica che l’impianto sta funzionando.Durante l’installazione del dispositivo è importante veri-ficare la presenza di campo. Il led rosso emette duediversi tipi di lampeggio in funzione del campo disponi-bile. Naturalmente prima dell’installazione è convenien-te ricercare il punto di migliore ricezione nell’apparta-mento utilizzando un telefono cellulare. Se si rileva unacarenza di segnale nel punto dove si vorrebbe fissare ilTelecontrollo, è possibile utilizzare l’antennina opzionalea base magnetica, collegabile all’apparecchio medianteun cavetto di 2,5 metri, che consente di allontanarsi unpo’ dal punto di fissaggio.La ricezione del campo viene migliorata se l’antenna vienefissata (magneticamente) ad un supporto metallico.Una volta completate le operazioni preliminari, il dispo-sitivo è pronto a funzionare.I comandi sms da inviare (con un codice) sono sempli-cissimi:• Accendi• Spegni• Verifica stato attuale

Come si può constatare, il dispositivo può essere descrit-to in sintesi con queste tre caratteristiche: semplice, affi-dabile, funzionale.

Per ulteriori informazioni:ELETTROTERM srlVia San Donato, 24 - 20052 Monza (MI)Tel. [email protected] – www.elettroterm.it

IN VETRINA 112

Figura 1: La SIM Card

Ses

sio

ne

Mat

tuti

na

(09.

00-1

3.00

)

Nome e Cognome Azienda

Via Cap Città Prov.

Tel. Fax E-mail

Sessione Workshop:

Mattutina (€ 99,00 + Iva compreso un sistema HD1100)

Pomeridiana (€ 99,00 + Iva compreso un sistema LS100)

Entrambe (€ 189,00 + Iva compreso un sistema HD1100 e un LS100)

Evento di*: Roma Milano Padova Torino

Organizza

ISCRIVITI AD ENTRAMBE LE SESSIONI AL PREZZO IRRIPETIBILE DI € 189,00 +Ivacompresi 2 sistemi del valore complessivo di € 250,00 +IVA (1 mod. HD1100 + 1 mod. LS100)

SCHEDA DI PREREGISTRAZIONE

Da compilarsi in ogni sua parte ed inviare via fax al n. 02 66508225 o per e-mail ad [email protected]È possibile iscriversi online all’indirizzo www.elettroshop.com/academy

Il corso permetterà al partecipante di

apprendere nozioni sulla configurazione

ed integrazione dei dispositivi

Sena Technologies (www.hellodevice.it)

serie HD1x00, Serie Super SS110, SS400, SS800

QUOTA DI PARTECIPAZIONE € 99,00 + IVA*

COMPRESO UN MICRO WEB SERVER

MOD. HD1100 DEL VALORE DI € 125,00 + IVA

QUOTA DI PARTECIPAZIONE € 99,00 + IVA*

COMPRESO UN SERIAL/ETHERNET CONVERTER

MOD. LS100 DEL VALORE DI € 125,00 + IVA

Il corso permetterà al partecipante di

apprendere nozioni sulla configurazione ed

integrazione dei dispositivi Sena Technologies

(www.hellodevice.it) serie Lite, Pro, STS, VTS.

L’INTERFACCIAMENTO

DEI DISPOSITIVI SERIALI

ALLE RETI LAN

EMBEDDED

INTERNET

Argomenti principali della sessione:

• la conversione Seriale/Ethernet semplice ed economica

• bridge di dispositivi seriali mediante LAN

• interfacciamento di dispositivi con diversi livelli di

integrazione (dal modulo all’apparato multiporta)

• il console management

• domande e risposte

Argomenti principali della sessione:

• problematiche di connessione di apparecchiature

e dispositivi elettronici alle reti TCP/IP

• i micro web servers Sena Technologies ed

i loro possibili campi di applicazione

• tecniche per il controllo remoto e via web

• domande e risposte

In collaborazione con: SENA TECHNOLOGIES

*Seguiranno dettagli sulle date degli eventi (I Workshop si terranno nei mesi di Aprile/Maggio 2004)e sulle modalità del saldo della quota di partecipazione

Ses

sio

ne

Po

mer

idia

na

(14.

00-1

8.00

)

I° WORKSHOP SUL

DEVICE NETWORKING

Autorizzo il trattamento dei dati personali ai sensi della Legge 675/96

Firma

Pagherò con: (barrare la casella prescelta)

Abbonamento: (barrare la casella prescelta)

Privacy. Il trattamento dei dati, in forma automatizzata e con modalità strettamente connesseai fini, con garanzia di riservatezza, è finalizzato all’invio del presente periodico allo scopo diinformare ed aggiornare i lettori e gli operatori del settore elettronico sulle novità che il mer-cato propone. Potranno essere esercitati i diritti di cui all’articolo 13 della legge 675/96(accesso, correzione, cancellazione, opposizione al trattamento, ecc.). Il titolare del tratta-mento dei dati è Inware srl con sede a Cormano (MI) in via Cadorna 27/31. Nel caso si trattidi copia omaggio a titolo promozionale si rende noto che i dati provengono da archivi pubbli-ci. Resta inteso che le informazioni in ns. possesso non saranno in nessun caso cedute a terzi.

Bollettino Utilizzare il C/C N. 22790232 intestato ad Inware srl,

postale indicando nella causale “Abbonamento a Fare Elettronica”

Bonifico Appoggiarlo sulla banca: Poste Italiane

bancario CIN: Z - ABI: 07601 - CAB: 01600 - C/C: 000022790232

Carta Titolare:

di credito Numero: Scadenza:

Standard: Mi abbono a Fare Elettronica per un anno (11 uscite) a soli € 39,00 anziché € 51,00

Rinnovo: Sono già abbonato ed intendo rinnovare il mio abbonamento in scadenza. Fare Elettronica per un anno

(11 uscite) a soli € 39,00 anziché € 51,00, il mio codice abbonamento è

Regalo: Regalo ad un amico Fare Elettronica per un anno (11 uscite) a soli € 35,00 anziché € 51,00

Riservato agli abbonati, il mio codice abbonamento è

Scuole: Cinque abbonamenti a Fare Elettronica per un anno (11 uscite) a soli € 156,00 anziché € 195,00

Riservato a Scuole ed Università

Cognome Nome

Azienda

Via CAP Città Prov.

Tel. Fax email

Si, desidero abbonarmi a a partire dal primo numero raggiungibile

Per completare l’attivazione dell’abbonamento, prego comunicare gli estremi (data e modalità prescelta)dell’avvenuto pagamento via telefono al numero (+39) 02.66504794 o via fax al numero (+39) 02.66508225

Firma

Abbonati subito!

• Compila il coupon e invialo via fax al numero 02.66508225

• Abbonati on-line: www.farelettronica.com

• Spedisci questo coupon in una busta chiusa a INWARE srl• Via Cadorna, 27/31 - 20032 Cormano (MI)

• Chiamaci al numero 02.66504794

S c h e d a d i r i c h i e s t a a b b o n a m e n t o

EDIZIONI