Algunes "prèvies" i quelcom més sobre la "Linkat 2"
Manual d'usuari del LSLoader
1. LSLo der
oad r
Ma
anual de l’usua
l ari
Docu
ument: LSLoader Ma
anual de l’u
usuari
Vers 0.0
sió:
Auto FEC
or:
Revi
isat: JCD/O
OSC
2. LSMaker
Introducció
El programa LSLoader és el company permanent i indispensable del programador del
robot LSMaker. Amb ell, el programador pot carregar nous programes a la memòria
del microprocessador a la vegada que interactua i depura el seu software gracies al
comportament com a “consola” que ofereix l’LSLoader entre altres funcionalitats.
Aquest és l’aspecte que té el programa un cop hem connectat el cable USB al robot i
l’hem activat amb el botó ON:
A la finestra interior del programa hi apareixen els missatges que el programador
decideix imprimir a consola, cosa que pot fer amb la rutina LS_USB_printf i també
amb LS_USB_putc. A mesura que les línies van baixant, la consola amaga cap amunt
les línies que ja s’han imprès i la barra de desplaçament vertical es va fent més petita.
Sempre que es vulgui, la barra de desplaçament vertical permet accedir a les línies
“antigues”, així com la barra horitzontal permet veure els caràcters que s’imprimeixen
més enllà del límit dret de la finestra. També podem introduir informació al programa
que hi ha carregat, ja que tot el que escrivim pel teclat serà recollit per les rutines
LS_USB_gets i LS_USB_getc. La consola d’un microprocessador és una eina vital per
a depurar els programes i resulta especialment útil poder gravar les diferents sessions
en un arxiu de text per analitzar-les amb detalls. El menú Arxiu està dedicat,
justament, a això.
La connexió amb el robot s’aconsegueix fent que el port USB es comporti com un
canal de comunicació sèrie RS232, molt popular fins a principis del l’any 2000 per a
connectar-hi mòdems, però avui dedicat a comunicacions industrials (RS485). En
qualsevol cas, resulta molt atractiu simular un canal de comunicacions d’aquest estil ja
que es pot fer compatible amb Linux, Mac i Windows molt fàcilment. Aquests canals
de comunicacions s’anomenen COM1, COM2, COM3, etc.
Pàgina 2
3. LSMaker
El programa LSLoader està constantment interrogant els ports USB de l’ordinador a la
recerca d’un canal de comunicació activat. Mentre no en trobi cap, les opcions del
menú i de la barra d’eines romanen inactives, tal i com es mostra a la figura
Quan el programa detecta un com, el menú i la barra d’eines s’activen i si cliquem
sobre l’opció USB, el programa es mostra quins COMs estan actius.
A la figura apareixen el COM1, COM3 i COM5. Normalment, COM1 i COM2 són
canals “de debò” que estan presents a la placa base del PC, per bé que no tenen
perquè tenir el connector a la part del darrera. Val a dir que és difícil que els portàtils
en tinguin cap d’aquests ports.
El COM3 i el COM5 de la figura corresponent a un LSMaker i a un control remot, ja
que tots dos usen la mateixa tecnologia. Lamentablement, cada PC enumera els
COMs en funció de com estiguin connectats a la placa base, per la qual cosa no
podem assegurar si el COM3 es el robot o bé es el comandament.
Pàgina 3
4. LSMaker
En qualsevol cas, és evident que cal “connectar” el programa LSLoader al COM on hi
ha el robot si volem fer alguna cosa de profit. Per fer-ho i fer-ho amb agilitat, n’hi ha
prou a seleccionar un COM de la llista i provocar un reset al robot (F6 o el botó de la
barra d’eines). Si el com és el correcte, el robot es reinicia, els seus leds s’engeguen i
s’apaguen i a la finestra interior apareix el missatge inicial. També es pot provocar un
reset amb una pulsació curta del botó OFF. En cas d’estar ben connectats, el resultat
serà el següent:
Reset
A partir d’ara ja estem en condicions d‘utilitzar totes les prestacions que ofereix el
programa LSLoader.
Pàgina 4
5. LSMaker
Menú ARXIU
Aquest menú està dedicat a les sessions de consola, és a dir, fan referència al
contingut de la finestra interior del LSLoader
Nova.
Esborra el contingut de la consola.
Guarda
Grava el contingut de la consola en un arxiu de text. El primer cop que activem
aquesta opció, el programa obre un diàleg on demana amb quin nom i a quina carpeta
es guardarà la sessió. Si tornem a activar aquesta opció, el programa recorda aquest
nom i no el torna a demanar.
Guarda com
Grava el contingut de la consola en un arxiu de text, tot obrint un diàleg on demana
amb quin nom i a quina carpeta es guardarà la sessió.
Pàgina 5
6. LSMaker
Imprimir.
Imprimeix el contingut de la sessió, després d’obrir el diàleg estàndard de selecció
d’impressió propi del sistema operatiu.
Vista preliminar
Obra una finestra amb una presentació de com quedarà la impressió
Configurar impressora
Activa el diàleg estàndard de configuració de la impressora, propi del sistema operatiu
Sortir.
El programa acaba l’execució. Es pot aconseguir el mateix efecte prement Alt i F4
simultàniament.
Pàgina 6
7. LSMaker
Menú VEURE
En aquest menú podem activar o desactivar la barra d’eines i la barra d’estat. La barra
d’eines ofereix l’accés a les opcions del menú textual d’una manera molt còmoda i la
barra d’estat explica el que fan les icones de la barra d’eines. Totes dues opcions són
molt útils i com que el programa disposa de molta zona útil, no veiem quina necessitat
hi ha de desactivar-les. Tanmateix, és una possibilitat que tenen tots els programes
que segueixen l’estàndard CUA (common user access) i per això l’hem respectat.
A la figura següent es mostra la barra d’eines i les funcions que hi ha associades a
cada icona
Baixa fitxer A
Calibració Telecàrrega
Baixa fitxer B
Connecta
Puja fitxer A
Reset
Puja fitxer B
Baixa fitxer C
A l’apartat Operacions es descriu el funcionament de cada eina
Pàgina 7
8. LSMaker
Menú OPERACIONS
Aquest és el menú que interactua amb el robot, sempre que el cable USB estigui
connectat al robot, aquest estigui activat i en el menú USB hagin seleccionat el COM
corresponent. De no ser així, en activar alguna d’aquestes opcions apareix el
missatge següent
Cal·libració (F2).
En prémer aquesta opció el programa mostra el diàleg següent:
L’Slider horitzontal permet equilibrar la tracció dels dos motors per tal de compensar la
diferència de pressió entre les dues rodes davanteres. Cal obligar el robot a avançar
en línia recta i observar si té tendència a anar cap a l’esquerra o cap a la dreta i
Pàgina 8
9. LSMaker
moure l’Slider en sentit contrari. Es tracta de provar un petit desplaçament, prémer el
botó Acceptar comprovar el funcionament lineal i així successivament. El valor que ve
de fàbrica és el punt central.
El quadre de diàleg etiquetat com “Propietari” enregistra el nom que apareix en el
missatge de benvinguda que apareix a la consola i a l’LCD. El valor que ve de fàbrica
és “La Salle”.
Els canvis que es facin en aquest menú només tenen efecte quan es prem el botó
Acceptar i no tenen efecte si es prem Cancelar.
Reset (F6).
Provoca un reset a l’LSMaker.
Telecàrrega (F8).
Aquesta opció permet carregar un programa en el robot. En primer lloc, apareix un
diàleg de selecció de fitxer com ara
L’únic tipus de fitxer que es capaç de processar l’LSLoader és el format Hexadecimal
Intel, amb extensió .HEX. Aquest és el fitxer que genera l’entorn de programació
MPLAB de Microchip quan es compila el Workspace amb l’opció Make. El fitxer
hexadecimal té el mateix nom que el Workspace.
Un cop triat el fitxer Hexa apareix el següent diàleg:
Pàgina 9
10. LSMaker
Si es prem Acceptar comença el procés de telecàrrega que es reflecteix en l’avanç de
la barra de progrés. El procés de telecarregar la API amb el programa inicial triga,
aproximadament, vint-i-cinc segons.
Connecta
Amb aquesta opció indiquem al LSMaker quin és l’adreça MAC del control remot al
que ha d’obeir. Aquesta adreça MAC està escrita en una etiqueta enganxada a la part
posterior de la placa del control remot. Introduïm l’adreça en aquest diàleg i premem
Acceptar.
A partir d’ara, el robot escoltarà les ordres de moviment d’aquest control remot i
ignorarà qualsevol trama que no provingui d’aquesta adreça.
Baixa el fitxer A.
El programador pot fer que l’LSMaker registri valors en un fitxer igual que ho permet el
sistema operatiu Windows o Linux o qualsevol altre sistema operatiu. Però en un
sistema operatiu podem donar un nom arbitrari al fitxer i no hi ha cap limitació aparent
en el nombre de fitxers que un programa pot crear. Tanmateix, i per raons de
capacitat, a l’LSMaker només es poden crear dos fitxers i, a sobre, s’han de dir
“NVOL_STREAM_A” i “NVOL_STREAM_A”. A l’LSLoader els anomenarem Fitxer A i
Fitxer B respectivament
Les rutines que el programador pot emprar per escriure o llegir d’aquests dos fitxers
estan explicades al manual de software, dins de la secció NVOL (no volàtil) de la API.
A continuació es presenta un resum d’aquestes funcions:
int LS_NVOL_Open(char *Nom, char *Mode);
// Pre: Nom pot ser NVOL_STREAM_A o NVOL_STREAM_B. Mode pot ser "a", "r", o "w"
int LS_NVOL_Read(int HANDLE, char *buffer, unsigned int length);
// Pre : HANDLE prové de LS_NVOL_Open
// Post: Llegeix el nombre de caracters (length) del fitxer i els posa en buffer.
Pàgina 10
11. LSMaker
int LS_NVOL_Write(int HANDLE, char *buffer, unsigned int length);
// Pre : HANDLE prové de LS_NVOL_Open
// Post: Escriu el nombre de caracters del buffer (length) en el fitxer
Amb l’opció “Baixa el fitxer A” podem recuperar tot allò que el programa de l’LSMaker
hagi enregistrat en el fitxer i dipositar-lo en el disc dur del PC per a poder-lo consultar.
Per això, en prémer aquesta opció apareix un diàleg de selecció de fitxer del tipus
“Guardar como” que permet determinar el nom i la carpeta del fitxer.
Baixa el fitxer B.
Idèntic a l’operació anterior però per al fitxer NVOL_STREAM_B.
Baixa el fitxer C.
Idèntic a l’operació anterior però per al fitxer de captura de posicions. Aquest és un
fitxer de text, separat per comes, que es genera a partir del càlcul de posició que
executa l’LSMaker. Cada parell de nombres indica la posició X, Y en centímetres amb
un interval de mig segon a partir del moment que s’activa l’adquisició fins que es
tanca. Aquest fitxer l’anomenarem, en endavant, Fitxer C.
Hi ha dues maneres d’activar l’adquisició:
a) Per voluntat del programador, cridant la rutina LS_MT_InitTrack
b) Amb el comandament remot, posant-lo mirant a terra i prement un cop el
polsador.
L’adquisició finalitza per dues raons
a) Per voluntat del programador, cridant la rutina LS_MT_EndTrack
b) Amb el comandament remot, posant-lo mirant a terra i prement un cop el
polsador.
El software que porta de fabrica el robot pinta la lletra A majúscula a la cantonada
superior dreta del LCD quan està en el mode d’adquisició.
Per exemple, si activem l’adquisició i premem el botó GPButton, el robot executa un
quadrat de 50 cm (o, al menys, ho intenta). Un cop acabat, podem baixar el fitxer amb
aquesta opció, guardar-lo on millor ens convingui i obrir-lo amb el full de càlcul Excel
(usar la coma com element separador). El resultat seran dues columnes de nombres,
com ara:
Pàgina 11
12. LSMaker
I si es seleccionen les dues columnes i s’insereix un gràfic de dispersió, obtindrem el
dibuix de la trajectòria calculada:
Atenció: el temps límit d’adquisició és de sis minuts.
Pàgina 12
13. LSMaker
Puja el fitxer A.
A vegades pot resultar interessant modificar el comportament d’un programa sense
haver-ne de canviar la seva programació. Per exemple, podem tenir un programa
genèric de seguiment de línies que pot seguir diferents estratègies segons que sigui
una línia fina o gruixuda o que hi hagi bifurcacions de dos o tres ramals, per exemple.
Per no haver de carregar un programa diferent cada vegada, podem inserir les ordres
en un fitxer de text, pujar-lo al LSMaker i que el programa carregat el llegeixi i obri en
conseqüència.
En activar aquesta opció, es desplega un diàleg estàndard de selecció de fitxer, que
serà el que es pujarà a l’LSMaker.
Atenció: el tamany màxim del fitxer que es puja és de 1536 bytes. Si el fitxer origen és
més gran, senzillament s’ignorarà la resta de fitxer.
Puja el fitxer B.
Igual que l’opció A.
Pàgina 13