Placa IMAGINA amb LabVIEW i S4A

Introducció

Es tracta d’un Instrument Virtual (subVI) generat amb el programa LabVIEW que permet obtenir el valor dels sensors així com controlar les sortides de la placa IMAGINA, desenvolupada per  l’equip de Robolot.

El protocol S4A permet utilitzar aquesta placa amb el programa Scratch, de manera que amb el mateix firmware del xip PICAXE es pot fer el control, també, des de LabVIEW, cosa que permet als estudiants la programació i visualització senzilles de processos amb un hardware molt més barat que les plaques d’adquisició de dades comercials.

Protocol S4A

Es tracta del protocol que permet la comunicació del PICAXE amb el programa Scratch i amb LabVIEW.

El valor dels sensors s’envia mitjançant dos bytes, de manera que el bit de més pes del primer byte és un “1” i el del segon és un “0”. Els quatre bits següents del primer byte fan referència al número de sensor, de 0 a 7 (LDR1, LDR7, ADC3, etc. respectivament). Els 3 bits restants del primer byte, juntament amb els 7 restants del segon conformen els 10 bits que donen el valor real del sensor.

 

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

1r Byte

1

0

1

0

0

0

0

0

2n Byte

0

0

0

0

0

0

0

1

Taula 1: Exemple de valor d'un sensor

En aquest exemple es pot veure que el número de sensor seria el 4 (un dels CNY70) i el seu valor és 1.

Per activar i desactivar sortides el que fa Scratch és enviar tot un carro de 20 bytes on alguns d’aquests bytes contenen el valor que es vol donar a una sortida determinada:

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Byte 7

Byte 8

Byte 9

/

Motor 4

/

/

/

/

/

Motor 7

Servo

Servo

Byte 10

Byte 11

Byte 12

Byte 13

Byte 14

Byte 15

Byte 16

Byte 17

Byte 18

Byte 19

/

/

/

Digital10

/

Digital11

/

/

/

Digital13

Taula 2: Carro de bytes per controlar les sortides

Importar el subVI

Primer de tot cal identificar i importar el subVI a l’àrea de treball, concretament a la pantalla on apareix el diagrama de blocs. Per fer-ho només cal arrossegar des de la carpeta el subVI “IMAGINA.vi” al diagrama de blocs.


Figura 1: Importar el subVI

Un cop posicionat el component, o bloc, a l’àrea de treball es pot començar a programar. Si es posiciona el mouse a sobre el component es poden observar tots els terminals, a l’esquerre s’hi troben les potes per controlar les sortides, mentre que a la dreta s’hi troben les potes que donen els valors dels sensors. També es pot observar que hi ha dues potes de color beix i dues més de color violeta que serveixen per poder comunicar el programa amb la placa.


Figura 2: SubVI IMAGINA

Entrades i sortides

Com s’ha dit anteriorment, a la part esquerre del mòdul s’hi troben les potes per controlar les sortides (actuadors). A continuació es defineix cada sortida, de dalt a baix:

Nom

Valor

Descripció

Digital10

0 o 1

Sortida digital corresponent al LED d’infrarojos, D0.

Digital11

0 o 1

Sortida digital corresponent al LED verd, D1.

Digital13

0 o 1

Sortida digital corresponent al LED groc, D2.

Servo

De 90 a 270

Fa girar el servo a l’angle que se li entri.

Motor4

0, 1 o 2

Motor A: amb un 0 el motor està aturat, amb un 1 gira en sentit horari i amb un 2 en sentit antihorari.

Motor7

0, 1 o 2

Motor B: amb un 0 el motor està aturat, amb un 1 gira en sentit horari i amb un 2 en sentit antihorari.

 

I a la part dreta s’hi troben les potes de les entrades (sensors):

Nom

Valor

Descripció

LDR1

De 0 a 1023

Entrada analògica 1.

LDR7

De 0 a 1023

Entrada analògica 7.

S2

0 o 1

Polsador S2.

S7

0 o 1

Polsador S7.

CNY70_D

0 o 1

Sensor òptic CNY70 del costat dret.

CNY70_E

0 o 1

Sensor òptic CNY70 del costat esquerre.

Sensor

De 0 a 1023

Sensor ADC3.

Programa bàsic en LabVIEW

Per fer-ho tot més senzill també s’ha ideat una estructura bàsica de programa que permet establir la comunicació automàticament.

El que fa el programa és, primerament, detectar el port COM on està connectada la placa, si detecta alguna placa, automàticament activa el Case Structure que dona pas al loop principal del programa. Dins aquest loop és on s’ha de crear el programa desitjat que s’executarà contínuament. Per sortir de l’aplicació creada només cal prémer el botó “STOP” i, automàticament es tancarà el driver de comunicació i es sortirà de l’aplicació.

És necessari commutar el Case Structure a False i connectar els terminals violeta i beix de l’esquerre amb els de la dreta, si no a l’hora d’executar donarà error.


Figura 3: Estructura bàsica

També cal mencionar que si un actuador de la imagina depèn del valor d’un sensor, a l’hora de connectar ha d’aparèixer un símbol com el següent:


Figura 4: Símbol de realimentació

Això es deu a que el LabVIEW treballa per cicles, de manera que si llegeix el valor d’un sensor, no el pot enviar a una sortida fins al següent cicle. Si no apareix quan es connecta una sortida amb una entrada es pot anar a buscar a l’apartat “Programming/Structures” i es diu “Feedback Node”.

Un programa molt senzill que es pot fer és mostrar el valor dels sensors en un dibuix de la placa IMAGINA i posar botons per activar i desactivar les sortides.

El panell frontal o frontpanel podria ser semblant al següent:


Figura 5: Panell frontal d'exemple

Amb el corresponent diagrama de blocs:


Figura 6: Diagrama de blocs d'exemple



Subpàgines (2): Descàrregues Exemples
Comments