domenica 10 febbraio 2008

matrici 2D con NXT-G

Le matrici 2D sono semplicemente array 1D in cui le colonne ( o le righe) sono infilate una di seguito all'altra.

Pertanto e' solo questione di manipolare l'indice in modo che da due numeri (l'indice di riga e l'indice di colonna) se ne ricava uno solo.

Se si crea un MyBlock che all'interno manipola l'indice, si rileva un baco pero': il filo che porta DENTRO l'array rimane "spezzato" (cio' non accade al filo d'uscita).

Percio' e' meglio partire da Labview e crearsi un Block apposito.

Supponiamo di voler creare un blocco che inserisca un elemento in una matrice alla posizione (riga, colonna).

In LV occorre creare una struttura di files i cui nomi devono essere specificati in modo fisso.

Il modo piu' veloce e' fare creare a LV la struttura dei files, chiamando il Wizard sotto Tools->NXTModule.

Il file piu' importante e'









dopo di questo il piu' complicato e' invece:







che viene costruito con la tavolozza NXTControls e
che nel block diagram e'













questi sono i blocchettini che non si vedono nella figura principale perche' dentro il "case" a destra.
in pratica servono a dire che il valore va cambiato quando l'utente lo cambia ...

per rendere automatico il tutto e' meglio partire con il collegare (crea variabile locale con tasto destro sul controllo nel front panel) i vari blocchetti alle variabili locali e solo in seguito definire le opzioni del case: infatti seguendo questo schema il case stesso (tasto destro sull'intestazione del case) proporra' le varie possibilita' di evento (per esempio: cambia il valore del numero di colonne)








































praticamente Config serve a "sentire" quale valore viene cambiato dal programmatore NXT-G nella consueta finestra in basso a sinistra (in NXT-G) e a passarlo di conseguenza al .vi principale.

infine occorre definire nella directory creata col Wizard quali immagine vedere nella tavolozza (palette) e quale vedere quando si trascinera' il blocco in posizione sul diagramma.

Per caricare queste immagini (.png) occorre poi un file .vi (quello che contiene la parola Draw) : va bene quello di default.

Per far comparire l'hub sotto il blocco (quella cosa che si espande e permette di collegare i fili per intenderci) occorre non dimenticarsi di collegare il "connettore".
Ecco come si fa.
Si va sul front panel del principale (2D_Array_Insert.vi nel nostro caso): in alto a destra c'e' una figurina da cliccare col destro -> Show Connector.
Sul front panel si clicca ora un elemento (per esempio number_of_columns) e subito dopo si clicca uno dei quadratini che rappresentano le "prese" per i fili. Il quadratino cambia colore se viene assegnato.
Si raccomanda di assegnare i due quadratini in alto a destra e a sinistra ai controlli di Sequence Flow.

Finito tutto questo si passa al NXT-G e si chiama il wizard di importazione, indicandogli la directory dove sta la serie di files e la tavolozza (per esempio : Advanced) dove mettere il blocco.

Se dira' "successful" significa che il blocco si potra' prelevare in tavolozza ed usarlo:

Nessun commento: