Escolar Documentos
Profissional Documentos
Cultura Documentos
(ICAI)
INGENIERO INDUSTRIAL
SISTEMA DE COMUNICACIONES
GSM Y LOCALIZACIN DE UN
VEHCULO
Madrid
Julio 2013
DOCUMENTO I
MEMORIA
ndice de la memoria
Parte I
Memoria .......................................................................................1
Captulo 1
Introduccin .................................................................................1
1.1
1.2
1.3
Objetivos .......................................................................................................7
1.4
Recursos ........................................................................................................8
1.5
Metodologa ................................................................................................ 10
Captulo 2
Comunicaciones ......................................................................... 13
2.1
2.2
NDICE DE LA MEMORIA
2.2.1.1.4 I2CxRCV ................................................................................................. 16
2.2.1.1.5 I2CxADD ................................................................................................. 17
2.2.1.1.6 I2CxBRG ................................................................................................. 17
2.2.1.2 Pines ................................................................................................................ 17
2.2.1.2.1 dsPIC33FJ32MC202 ................................................................................. 17
2.2.1.2.2 PIC32MX795F512L ................................................................................. 18
2.2.1.3 Maestro ............................................................................................................ 20
2.2.1.4 Esclavo ............................................................................................................ 21
2.2.1.4.1 Esclavo receptor ....................................................................................... 21
2.2.1.4.2 Esclavo emisor.......................................................................................... 22
2.2.2 programacin de los microcontroladores .................................................................. 23
2.2.2.1 Maestro ............................................................................................................ 24
2.2.2.2 Esclavo ............................................................................................................ 25
2.2.2.2.1 Constantes ................................................................................................ 25
2.2.2.2.2 Estructura de los datos .............................................................................. 27
2.2.2.2.3 Funcin de inicializacin........................................................................... 27
2.2.2.2.4 Interrupcin .............................................................................................. 28
2.2.2.2.5 Funcin de procesamiento de datos ........................................................... 29
2.2.3 Aplicacin del mdulo I2C en la programacin ......................................................... 30
2.2.3.1 Funciones del maestro ...................................................................................... 30
2.2.3.1.1 Inicializacin de la comunicacin .............................................................. 30
2.2.3.1.2 Funciones para pedir coordenadas GPS ..................................................... 31
2.2.3.1.3 Otras funciones del maestro ...................................................................... 32
2.2.3.2 Funciones del esclavo ....................................................................................... 33
2.3
Captulo 3
3.1
3.2
II
NDICE DE LA MEMORIA
3.2.2.1 WORD GOLDraw(void) .................................................................................. 44
3.2.2.2 WORD GOLDrawCallback() ........................................................................... 45
3.2.2.3 void CreateScreen(void) ................................................................................... 45
3.2.2.4 void TouchGetMsg (GOL_MSG *pMsg) .......................................................... 45
3.2.2.5 void GOLMsg (GOL_MSG *pMsg) ................................................................. 45
3.2.2.6 WORD GOLMsgCallBack (WORD objMsg, OBJ_HEADER *pObj, GOL_MSG
*pMsg) ........................................................................................................................ 46
3.2.2.7 WORD MsgScreen (WORD objMsg, OBJ_HEADER *pObj); .......................... 46
3.3
3.4
Captulo 4
4.1
4.2
4.3
III
NDICE DE LA MEMORIA
4.3.1 Obtencin de las coordenadas GPS .......................................................................... 73
4.3.2 Modos de funcionamiento ........................................................................................ 74
4.3.2.1 Instrucciones enviadas por GSM....................................................................... 74
4.3.2.1.1 Instruccin recibida: GPS .......................................................................... 76
4.3.2.1.2 Instruccin recibida: PC ............................................................................ 76
4.3.2.1.3 Instruccin no reconocida ......................................................................... 77
Captulo 5
5.1
5.2
5.3
PC pic32 PC ...................................................................................... 80
5.4
5.5
Captulo 6
Conclusiones .............................................................................. 84
Captulo 7
Bibliografa
.................................................................................................... 87
Parte II
IV
NDICE DE FIGURAS
ndice de figuras
NDICE DE FIGURAS
Figura 20.Estructura datos I2C enviada por el esclavo. ........................................ 34
Figura 21. Representacin grfica de una red celular [17] ................................... 36
Figura 22. Representacin grfica de la arquitectura de una red GSM [17] ......... 37
Figura 23. Conector para Starter Kit [12] ............................................................ 40
Figura 24. Diagrama de bloques de la pantalla .................................................... 41
Figura 25. Representacin grfica de la pantalla ................................................. 46
Figura 26. Pantalla elegida como ejemplo........................................................... 51
Figura 27. Estado de la pantalla despus del paso 1 ........................................... 52
Figura 28. Diagrama de estados de la pantalla antes de configurar las
comunicaciones .................................................................................................. 57
Figura 29.Diagrama de estados de la pantalla durante la configuracin de las
comunicaciones .................................................................................................. 60
Figura 30. Diagrama de estados de la pantalla despus de la configuracin de las
comunicaciones. ................................................................................................. 61
Figura 31. Pantalla teclado numrico. ................................................................. 62
Figura 32. Diagrama de bloques de M2M Daughter Board [13] .......................... 64
Figura 33. Diagrama de bloques de la prueba n1 realizada. ................................ 78
Figura 34. Diagrama de bloques de la prueba n2 realizada. ................................ 79
Figura 35. Diagrama de bloques de la prueba n3 realizada. ................................ 80
Figura 36. Diagrama de bloques de la prueba n4 realizada. ................................ 81
Figura 37. Diagrama de bloques de la prueba n5 realizada. ................................ 82
Figura 38. Fases del ciclo de vida de un producto. .............................................. 91
VI
NDICE DE TABLAS
ndice de tablas
VII
VIII
IX
Acrnimos
API
GPRS
GPS
GSM
I2C
Inter-Integrated Circuit
M2M
Machine to Machine
MEB
MMS
PIN
RS-232
SIM
SMS
TCS4
UART
Memoria
Parte I MEMORIA
Introduccin
Captulo 1 INTRODUCCIN
En este proyecto se pretende realizar la infraestructura necesaria para las
comunicaciones va GSM con un vehculo adems de posibilitar su localizacin.
Para poder realizar un enfoque prctico se ha utilizado como vehculo con el que
comunicarse un robot 4x4, proyecto que se inici en el 2007 y que se contina
desarrollando en el IIT.
Introduccin
Aplicacin
GPS Comunicaciones
/Tarjeta
Protocolo
Microcontrolador
MGM1
Aplicacin
No
GSM/GPRS
SMS/MMS
ATmega8
[2]
Giraa_02
Aplicacin
No
GSM/GPRS
Mensajera
[3]
[4]
4WD1
Wi-Fi Robot
GPS/GPRS/GSM
Module V2.0
Aplicacin
Aplicacin
No
-
Bluetooth
Wi-Fi
Tarjeta
GSM/GPRS
Comandos
AT
Ref.
Descripcin
[1]
[5]
Motorola
MC9S12DP256
PIC16F628
PIC16F628A
-
Introduccin
1.1.1 MGM 1
Introduccin
1.1.2 GIRAA_02
Introduccin
1.1.3 4WD1
El control del robot 4WD1 se realiza desde un dispositivo de telefona mvil con
sistema operativo Symbian. Las rdenes se realizan a travs del teclado y se
envan mediante tecnologa Bluetooth a la placa PIC-IO, la cual tiene 4 rels de
salida a travs de los cuales se controla el movimiento de las ruedas. La placa
PIC-IO realiza sus funciones gracias a un micro PIC16F628 el cual recibe
comandos va RS-232.
(a)
(b)
Figura 3.Base de robot 4WD1 (a) y placa de desarrollo PIC-IO (b) [3]
Este robot surge con la intencin de hacer un coche de control remoto que se
pueda dirigir desde un ordenador. Utiliza un router Linksys WRT54GL, el cual se
ha modificado para aadirle dos puertos serie. Las funciones de control del robot
(avance, retroceso, giro izquierda y derecha) se realizan a travs de un
PIC16F628A, que est a la vez conectado a una placa Arduino Freeduino
MaxSerial, basada en un microcontrolador ATmega168, a travs de la cual se
realizan las conexiones con el router.
Introduccin
Tambin incorpora una cmara que transmite video al ordenador para poder
dirigir el robot. La distancia de alcance mximo que se pudo conseguir
experimentalmente fueron unos 500 m.
Introduccin
1.3 OBJETIVOS
Introduccin
Es necesario implantar un nuevo sistema de comunicaciones, basado en
tecnologa GSM, en un robot 4x4 para poder controlarlo de manera remota sin
estar limitado por la distancia. Como objetivo secundario se plante la integracin
de una pantalla tctil que permite monitorizar el estado del robot 4x4 en todo
momento y, modificar parmetros de control sin tener que recurrir a un ordenador.
1.4 RECURSOS
Introduccin
Figura 7. MEB
Ordenador
Introduccin
MPLAB IDE v8.87, para programar PIC32 USB starter KIT y MEB.
1.5 METODOLOGA
Para ayudar a entender los pasos que se han seguido para cumplir los objetivos del
proyecto se muestra en la Figura 10 la arquitectura inicial del robot 4x4 de la que
se parti. La parte de esta estructura que interesa es la contenida en el cuadro azul.
Se observa que todos los dispositivos estn comunicados con la TCS4 y
controlados desde ella.
10
Introduccin
Por ello, lo primero que se realiz fue la integracin de la MEB (pantalla tctil)
con dicho PIC32 (Figura 11, cuadro rojo) y la programacin de la interfaz. La
pantalla es necesaria para modificar parmetros in situ y monitorizar las variables
del robot.
Introduccin
Por ltimo, se procedi a la documentacin del trabajo realizado para cumplir los
objetivos (ver 1.3) planteados al inicio del proyecto.
12
Comunicaciones
Captulo 2 COMUNICACIONES
Con este captulo se pretende explicar la estructura y las comunicaciones entre las
distintas tarjetas utilizadas para implementar las nuevas comunicaciones del robot
4x4.
2.1 ESQUEMA
DE
LA
ARQUITECTURA
DE
LAS
COMUNICACIONES
SPI
I2C
RS-232
pic32
TCS4
RS-232
GSM
GSM y GPS
13
Comunicaciones
El intercambio de datos entre un microcontrolador y sus perifricos puede ser de
dos formas: serie o paralelo.
La comunicacin serie hace todo lo contrario, enva los bits por separado
uno detrs de otro.
Cuando es sncrona existe una seal de reloj que sincroniza los dos
sistemas a comunicar. El esclavo no tiene una base de tiempos propia
puesto que la recibe del maestro. En este proyecto son de este tipo la
comunicacin I2C (Inter-Integrated Circuit, en ingls) y SPI (Serial
Peripheral Interface, en ingls).
14
Comunicaciones
Pueden existir varios esclavos en la red por lo que cada esclavo debe estar
identificado por una direccin nica.
15
Comunicaciones
2.2.1.1 Registros
Los registros asociados al mdulo I2C son los siguientes: I2CxCON, I2CxSTAT,
I2CxRCV, I2CxTRN, I2CxADD y I2CxBRG.
2.2.1.1.1 I2CxCON
Es un registro de control de I2C formado por varios bits que permiten configurar
distintas funciones entre ellos habilitar el mdulo. Todos lo bits del registro son de
lectura y escritura.
2.2.1.1.2 I2CxSTAT
Registro de estado de I2C que contiene banderas que indican eventos durante el
funcionamiento del mdulo. Si es microcontrolador funciona como esclavo en
este registro se encuentro los bits de estado para saber si se est recibiendo o
enviando informacin y si la informacin son datos o una direccin.
2.2.1.1.3 I2CxTRN
Es el registro de transmisin. Se utiliza tanto cuando se transmite como maestro
como cuando el esclavo enva una respuesta al maestro. Enva el mensaje bit a bit,
por lo que slo se puede escribir cuando el bus no est ocupado.
2.2.1.1.4 I2CxRCV
La informacin recibida tanto por el maestro como por el esclavo se almacena en
un registro no accesible, I2CxRSR. Cuando se ha completado la recepcin de un
byte, este se transfiere al registro I2CxRCV para poder acceder a ella. Es un
registro de slo lectura.
16
Comunicaciones
2.2.1.1.5 I2CxADD
Es el registro donde se almacena la direccin del esclavo. Tiene 10 bits.
2.2.1.1.6 I2CxBRG
En este registro se establece la velocidad de transmisin y el valor que debe tener
ese registro se calcula segn la ecuacin:
[(
dnde:
FSCL: Frecuencia del reloj I2C deseada
PGD: Pulse Gobbler Delay, especfica para cada micro.
FCY: Frecuencia del oscilador
Los valores ms utilizados son 100 kHz, 400 kHz y 1 MHz. El registro tiene 9 bits
en el dsPIC33 y es el que interesa puesto que al ser el maestro es el que va a
generar la seal de reloj.
2.2.1.2 Pines
El mdulo I2C utiliza slo dos pines, uno para el reloj SCL y otro para datos SDA.
2.2.1.2.1 dsPIC33FJ32MC202
El microcontrolador que acta como maestro dispone de 1 mdulo I 2C y sus
correspondientes pines son SCL, pin 17 y SDA, pin 18.
17
Comunicaciones
2.2.1.2.2 PIC32MX795F512L
El microcontrolador que acta como esclavo dispone de 3 mdulos I 2C y se ha
elegido el primero, y sus correspondientes pines son SCL, pin 66 y SDA, pin 67.
18
Comunicaciones
No todos los pines del PIC32 estn accesibles y los que s, lo estn a travs de un
conector disponible en la MEB que permite la utilizacin de distintas Microchip
PICtailTM. Daughter Boards, para este proyecto se ha utilizado la M2M Daughter
Board.
Figura 16. Diagrama de pines accesibles del PIC32 en el conector de la MEB [12]
19
Comunicaciones
2.2.1.3 Maestro
El maestro en este caso es el microcontrolador de la TCS4 que es el
dsPIC33FJ32MC202. Se va a explicar resumidamente el protocolo I 2C seguido en
la transmisin y recepcin de datos desde el punto de vista del maestro. Se van a
utilizar direcciones de 7 bits.
20
Comunicaciones
a. Si se quiere seguir recibiendo se transmite un acknowledge,
ACKDT=0 y ACKEN=1.
b. Si no se quiere seguir recibiendo se transmite un not acknowledge,
ACKDT=1 y ACKEN=1.
8. Al finalizar la recepcin de datos se enva el bit de parada.
2.2.1.4 Esclavo
El esclavo en este caso es el microcontrolador PIC32MX795F512L.
Se va a explicar resumidamente el protocolo I 2C seguido en la transmisin y
recepcin de datos desde el punto de vista del esclavo. Se van a utilizar
direcciones de 7 bits.
En cualquiera de los dos casos el control del reloj lo tiene el maestro, la diferencia
radica en el sentido de flujo de la lnea de datos.
21
Comunicaciones
2. Si la direccin recibida coincide con la del esclavo, detecta el valor del bit
R/ que especifica el sentido de la transmisin de datos. En este caso,
para que el esclavo trabaje como receptor se recibe R/ =0. Y como el
ltimo dato recibido era una direccin el bit D/ =0 y se prepara para la
recepcin de datos. Enva un acknowledge al maestro.
3. Cuando se han recibido 8 bits se envan al registro I2CxRSR y la bandera
RBF se pone a uno para detener el reloj y dar tiempo al usuario a leer los
datos sin que el maestro siga enviando datos y produzca un
desbordamiento. Se produce un acknowledge.
4. Los datos recibidos se transfieren al registro I2CxRCV, y el bit D/ se
pone a 1 para indicar datos recibidos. Se borra la bandera RBF y se libera
el reloj, SCLREL=1
5. El proceso se repite infinitamente hasta que se produzca la condicin de
fin de comunicacin, cuando se borra S y se activa P poniendo fin a la
recepcin de datos.
22
Comunicaciones
5. Ahora se pueden producir dos situaciones:
a. El esclavo detecta un acknowledge del maestro indicando que la
transmisin de datos no se ha completado. Se detiene el reloj y se
vuelve a enviar otra trama.
b. EL esclavo detecta un not acknowledge del maestro indicando que
la transmisin de datos se ha completado. No se detiene el reloj ni
se envan ms datos.
6. Se reconoce el bit de parada.
El cdigo desarrollado en [6] est pensado para un entorno con un nico maestro
y muchos esclavos. Y es vlido tanto para el maestro como para el esclavo
modificando un parmetro en el archivo I2C.h
23
Comunicaciones
Para facilitar la portabilidad del cdigo tambin tiene definidos una serie de
constantes como frecuencias de trabajo, prioridades, tamaos de colas,
direcciones, cdigos de instruccin y valores lgicos.
2.2.2.1 Maestro
24
Comunicaciones
2.2.2.2 Esclavo
En el esclavo, la interrupcin gestiona el proceso y llama a la funcin
ProcesarMensajeI2C
2.2.2.2.1 Constantes
Se han definido una seria de constantes para hacer el cdigo ms legible. Estas
constantes definidas son frecuencias de trabajo, prioridades, tamaos de colas,
direcciones, cdigos de instruccin y valores lgicos.
25
Comunicaciones
// Frecuencias de trabajo
#define FSCL 400000 // Velocidad de transmisin del bus I2C en Hz (mx. 1
MHz)
// Sentido del flujo de informacin
#define ESCLAVO_TR 1
// Esclavo emisor
#define ESCLAVO_REC 0
// Esclavo receptor
26
Comunicaciones
2.2.2.2.2 Estructura de los datos
Cada vez que se quiere enviar informacin se debe llamar a la funcin de
transmisin correspondiente. En ella se estructuran los datos que se quieren
enviar. La informacin transferida en cualquiera de los dos sentidos debe tener
una estructura determinada para que se pueda procesar.
Direccin
Respuesta
esperada
Nmero de
caracteres
Instruccin
Parmetros
27
Comunicaciones
Al ser el esclavo se debe indicar cul va a ser la direccin del bus del esclavo, la
cual se almacena en la variable esttica global al mdulo
uc_direccion.
0;
el
0;
0;
2.2.2.2.4 Interrupcin
La interrupcin salta por 3 razones distintas:
Recibe datos
28
Comunicaciones
2.2.2.2.5 Funcin de procesamiento de datos
La funcin que se encarga de procesar los mensajes realiza la accin pertinente en
funcin de la instruccin recibida. En el Cdigo 5 se muestra como ejemplo la
respuesta que se procesa cuando se detecta la instruccin correspondiente al
PING. En este caso, cuando se detecta la direccin del PING simplemente se
enva de vuelta el nmero de caracteres, la direccin del esclavo que responde, la
instruccin a la que se responde y la respuesta que en este caso es 7 lo cual
indica que el esclavo est activo.
void ProcesarMensajeI2C(void)
{
unsigned char uc_instruccion;
DeshabilitarInterrupcionesEsclavoI2C();
if (u_procesar_mensaje_habilitado)
{
while (ui_icola_rec != ui_icabeza_rec)
{
uc_instruccion = SacarDeColaRecepcionI2C();
interrupcion=1;
switch (uc_instruccion)
{
case PING:
// Ping
PonerEnColaTransmisionI2C(3);
//
PonerEnColaTransmisionI2C(DIR_GPS);//
PonerEnColaTransmisionI2C(PING);
//
PonerEnColaTransmisionI2C(7);
//
break;
}
Nmero de caracteres
Direccin
Cdigo de instruccin
Respuesta
}
}
HabilitarInterrupcionesEsclavoI2C();
}
29
Comunicaciones
Con esto, todas las instrucciones que se quieran enviar deben ir encerradas entre
las funciones inicio() y comunica().
CComunicaI2C comunica;
comunica.inicio();
// Funciones
comunica.comunica();
30
Comunicaciones
Si alguna de las comunicaciones espera respuesta, sta se procesa y se almacena
en variables privadas que se pueden leer con unas funciones habilitadas a tal
efecto que se explican ms adelante.
// Funcin de peticin
void LeerCoordenadasGPS(void);
// Funciones de lectura
std::vector<double> GetCoordenadasGPS(void) const;
double GetLatitudGPS(void) const;
double GetLongitudGPS(void) const;
unsigned int GetSatelitesGPS(void) const;
bool GetPosicionGPSValida(void) const;
31
Comunicaciones
Ejemplo de comunicacin para acceder a las coordenadas GPS
Un ejemplo sencillo en que el maestro pide las coordenadas GPS y las
coordenadas GPS se guardan en una variable tipo double denominada
vd_coordenadas.
com.inicio();
com.LeerCoordenadasGPS();
com.comunica();
std::vector<double> vd_coordenadas;
vd_coordenadas = com.GetCoordenadasGPS();
Cdigo 8. Ejemplo de comunicacin para pedir coordenadas por parte del maestro
void LeerCoordenadasGPS(void);
void EnviarSMS(const BYTE &b_direccion, const std::string s_mensaje, const
std::string s_numero);
void DatosGSM(const BYTE &b_direccion);
32
Comunicaciones
si
el
maestro
espera
respuesta
llama
la
funcin
33
Comunicaciones
void ProcesarMensajeI2C(void)
{
unsigned char uc_instruccion;
unsigned int ui_num_caracteres = 0;
int i;
DeshabilitarInterrupcionesEsclavoI2C();
if (u_procesar_mensaje_habilitado)
{
while (ui_icola_rec != ui_icabeza_rec)
{
uc_instruccion = SacarDeColaRecepcionI2C();
interrupcion=1;
switch (uc_instruccion)
{
case INST_COORD:
// Pedir GPS
ui_num_caracteres = GetCoordenadasGPS();
PonerEnColaTransmisionI2C(ui_num_caracteres);
for (i = 0; i < ui_num_caracteres; i++)
PonerEnColaTransmisionI2C(c_medidasGPS[i]);
break;
}
}
interrupcion=0;
HabilitarInterrupcionesEsclavoI2C();
}
Nmero de
Direccin
Instruccin
DIR_GPS
INST_COORD
Coordenadas
00.0000N000.0000E
Nmero de
satlites
06
34
Bit de
confirmacin
Comunicaciones
En cambio cuando la bandera interrupcin est activada, es decir se est
procesando la respuesta para el maestro, simplemente realiza una copia de la
variable coordenadasGPS a c_medidasGPS y devuelve el nmero de caracteres de
este vector para que el maestro sepa cmo de larga es la respuesta y no termine la
transmisin de datos sin que el mensaje se haya completado.
unsigned int GetCoordenadasGPS(void)
{
GPS_DATA_RMC *rmc;
static int d=0, m, s;
double grados, minutos;
unsigned int numero_caracteres=0;
int i;
if(interrupcion==0)
{
ubxUpdateGpsContext(GPS_C_RMC);
rmc = gpsGetRMC();
coordenadasGPS[0]=DIR_GPS;
coordenadasGPS[1]=INST_COORD;
coordenadasGPS[2]=0;
sprintf(coordenadasGPS,"%s",coordenadasGPS);
if (rmc->lat && rmc->lon)
{
gpsDecimalToDMS(rmc->lat, &d, &m, &s);
grados = (float)d;
minutos = (float)m;
minutos += ((float)s/60);
sprintf(coordenadasGPS, "%s%02.0f%2.4f%s", coordenadasGPS, grados,
minutos, rmc->lat_ns);
gpsDecimalToDMS(rmc->lon, &d, &m, &s);
grados = (float)d;
minutos = (float)m;
minutos += ((float)s/60);
sprintf(coordenadasGPS, "%s%03.0f%2.4f%s", coordenadasGPS, grados,
minutos, rmc->lon_ew);
}
sprintf(coordenadasGPS,"%s06A",coordenadasGPS);
}
if(interrupcion==1)
{
strcpy(c_medidasGPS,coordenadasGPS);
numero_caracteres = strlen(c_medidasGPS);
}
return(numero_caracteres);
}
35
Comunicaciones
36
Comunicaciones
Las redes celulares se basan en el uso de un transmisor-receptor central en cada
celda, denominado estacin base, (BTS, Base Transceiver Station).
Cuanto menor sea el radio de una celda, mayor ser el ancho de banda disponible.
En una red celular, cada celda est rodeada por 6 celdas contiguas (por esto las
celdas generalmente se dibujan como un hexgono). Para evitar interferencia, las
celdas adyacentes no pueden usar la misma frecuencia. En la prctica, dos celdas
que usan el mismo rango de frecuencia deben estar separadas por una distancia
equivalente a dos o tres veces el dimetro de la celda.
37
Comunicaciones
Cada dispositivo posee un nmero nico de identificacin de 15 dgitos
denominado IMEI (International Mobile station Equipment Identity) y cada tarjeta
SIM posee otro cdigo de identificacin denominado IMSI (International Mobile
Subscriber Identity) el cual se puede proteger con un clave de 4 dgitos llamado
cdigo PIN.
2.
3. BSC (Base Station Controller).Toda BTS de una red celular est conectada
a BSC, que se encarga de administrar la distribucin de los recursos. Acta
como un concentrador para el trfico de los abonados.
38
Comunicaciones
El MSC pertenece al NSS (Network Subsystem) el cual se encarga de acceder al
centro de autentificacin y de participar en la gestin de movilidad de los
abonados y su localizacin en la red.
Las redes GSM compuestas de esta manera admiten el concepto de roaming, que
es el movimiento desde la red de un operador a otra.
39
Pantalla tctil
3.1
40
Pantalla tctil
La pantalla es tctil resistiva de TFT de 3.2 con resolucin QVGA (320x240
pxeles) y lleva iluminacin incorporada. La tarjeta MEB tiene incorporado un
controlador, concretamente es Solomon Systech SSD1926, que permite la
configuracin de una interfaz de 8 16 bits con el puerto paralelo del PIC32. El
primer paso para poder programar la pantalla es el elegir el controlador correcto
en funcin de la pantalla (en este caso TFT) y del tipo de interfaz que se quiera
(en este caso 16 bits). El controlador se elegir en el archivo HardwareProfile.h
41
Pantalla tctil
Estas funciones se llaman slo una vez al inicio del programa dentro de la funcin
main. Estas funciones son:
Estas funciones se encuentran dentro del while(1) de la funcin main tal como se
muestra en Cdigo 12.
42
Pantalla tctil
int main(void)
{
...
while(1)
{
........
if(GOLDraw())
{
TouchGetMsg(&msg);
GOLMsg(&msg);
}
}
}
Las variables utilizadas para navegar por la pantalla son del tipo SCREEN_STATES
y se han declarado dos:
SCREEN_STATES
screenState
Pantalla actual
SCREEN_STATES
prevState
Pantalla anterior
Los valores que pueden tomar estas variables son las distintas pantallas, Cdigo
13, utilizadas para crear la interfaz y dichos valores se declaran al inicio del
programa, en este caso en el archivo Main.h
43
Pantalla tctil
typedef enum
{
CREATE_MENU = 0,
DISPLAY_MENU,
CREATE_INFO,
DISPLAY_INFO,
CREATE_GPS,
DISPLAY_GPS,
CREATE_GSM,
DISPLAY_GSM,
CREATE_PRINCIPAL,
DISPLAY_PRINCIPAL,
CREATE_KEYPAD,
DISPLAY_KEYPAD,
CREATE_SMS,
DISPLAY_SMS
} SCREEN_STATES;
Se observa que por cada pantalla existen dos variables y esto se explicar a
continuacin.
44
Pantalla tctil
El valor devuelto por esta funcin ser siempre distinto de 0 para devolver el
control de dibujo a la funcin GOLDraw.
45
Pantalla tctil
3.2.2.7 WORD
MsgScreen
(WORD
objMsg,
OBJ_HEADER
*pObj);
Comprueba el evento que se ha producido y si este lleva alguna accin asociada
aqu es donde se lleva a cabo.
46
Pantalla tctil
OBJETOS
Button
Group Box
Horizontal/Vertical
Slider
Scroll Bars
Window
Progress Bar
Check Box
Static Text
Radio Button
Picture
Edit Box
Dial
List Box
Meter
47
Pantalla tctil
Para la creacin de cada objeto existe programada en el archivo correspondiente
una estructura en la que se determinan los diferentes parmetros de aspecto para
poder ser dibujados en la pantalla. Se van a mostrar dos ejemplos. El elemento
bsico que se ha utilizado ha sido WINDOW para dar a la pantalla el aspecto que se
desee. En el Cdigo 14 se muestra la estructura para crear una ventana.
WINDOW
WndCreate
(
WORD
ID,
// Cdigo de identificacin
SHORT
left,
// Extremo izquierdo
SHORT
top,
// Extremo superior
SHORT
right,
// Extremo derecho
SHORT
bottom,
// Extremo inferior
WORD
state,
void
XCHAR
*pText,
// Puntero al texto
GOL_SCHEME
*pScheme
// Puntero al estilo
);
48
Pantalla tctil
BUTTON
BtnCreate
(
WORD
SHORT
SHORT
SHORT
SHORT
SHORT
WORD
void
XCHAR
GOL_SCHEME
);
ID,
left,
top,
right,
bottom,
radius,
state,
*pBitmap,
*pText,
*pScheme
//
//
//
//
//
//
//
//
//
//
Cdigo de ifentificacin
Extremo izquierdo
Extremo superior
Extremo derecho
Extremo inferior
Radio de las esquinas
Estado inicial del objeto
Puntero al bitmap
Puntero al texto
Puntero al estilo
Cada objeto dispone de diferentes estados en los que se puede presentar dibujado
en la pantalla, tambin se pueden combinar, y que estn incluidos en el
correspondiente archivo.
En el
Cdigo
16
se
#define BTN_FOCUSED
#define BTN_DISABLED
#define BTN_PRESSED
#define BTN_TOGGLE
behavior.
#define BTN_TEXTRIGHT
#define BTN_TEXTLEFT
#define BTN_TEXTBOTTOM
#define BTN_TEXTTOP
#define BTN_TWOTONE
type.
0x0001
0x0002
0x0004
0x0008
//
//
//
//
Bit
Bit
Bit
Bit
0x0010
0x0020
0x0040
0x0080
0x0100
//
//
//
//
//
Bit
Bit
Bit
Bit
Bit
to
to
to
to
to
indicate
indicate
indicate
indicate
indicate
text is centered.
to indicate focus must be redrawn.
to indicate button must be redrawn.
to indicate button must be removed
49
Pantalla tctil
typedef struct
{
WORD EmbossDkColor;
WORD EmbossLtColor;
WORD TextColor0;
WORD TextColor1;
WORD TextColorDisabled;
WORD Color0;
WORD Color1;
WORD ColorDisabled;
WORD CommonBkColor;
void
*pFont;
} GOL_SCHEME;
Color0 = RGB565CONVERT(10,129,255);
Color1 = RGB565CONVERT(0xD4, 0xE1, 0xF7);
50
Pantalla tctil
INFO
ESTADO GPS
MENU
GPS desconectado
ENVIAR
un objeto tipo WINDOW. Tiene como entrada un puntero al texto que va a ser el
ttulo de la ventana, en este caso Estado GPS. En el caso de no querer ttulo se
pondra NULL en la llamada de la funcin.
51
Pantalla tctil
void CreateGPS(void)
{
GOLFree();
// free
CreatePage((XCHAR *)titulo_GPS);
...
}
Tras la ejecucin del Cdigo 19 la pantalla que se est creando tiene el aspecto
mostrado en la Figura 27.
ESTADO GPS
52
Pantalla tctil
Paso 2: Creacin de los objetos:
El siguiente paso es la creacin de los objetos que se quieren dibujar en la
pantalla. En este caso son tres botones y un texto esttico:
53
Pantalla tctil
void CreateGPS(void)
{
...
BtnCreate
BtnCreate
ID_BUTTON10,
ID_BUTTON5,
BTN_ORIGIN_X + 100,
BTN_ORIGIN_X + 260,
BTN_ORIGIN_Y + 170,
BTN_ORIGIN_Y + 10,
BTN_ORIGIN_X + 210,
BTN_ORIGIN_X + 310,
BTN_ORIGIN_Y + 220,
BTN_ORIGIN_Y + 40,
20,
2,
BTN_DRAW|BTN_DISABLED,
BTN_DRAW,
NULL,
NULL,
(XCHAR*)texto_botonGPS3,
(XCHAR *)texto_botonGPS1,
altScheme
altScheme
);
);
StCreate
BtnCreate
ID_STATIC_TEXT_P,
ID_BUTTON6,
TXTSTARTX + 1,
BTN_ORIGIN_X + 200,
TXTSTARTY,
BTN_ORIGIN_Y + 10,
TXTSTARTX + TXTSIZEX,
BTN_ORIGIN_X + 250,
TXTSTARTY + TXTSIZEY,
BTN_ORIGIN_Y + 40,
ST_DRAW+ST_CENTER_ALIGN,
2,
(XCHAR *)GPSdiscStr,
BTN_DRAW,
btnScheme
NULL,
);
(XCHAR*)texto_botonGPS2,
...
altScheme
);
54
Pantalla tctil
La pantalla pasa a tener el aspecto de la Figura 26, puesto que ya se ha realizado
todo el trabajo de diseo.
55
Pantalla tctil
Cdigo 21. Funcin de programacin de los eventos asociados a los objetos del ejemplo
56
Pantalla tctil
El primer grupo y el tercero son las mismas pantallas y la diferencia radica en la
existencia de objetos habilitados en slo uno de los grupos.
El segundo es una transicin entre los dos anteriores.
Este primer grupo est compuesto por cuatro pantallas conexionadas entre ellas de
la manera que se indica en la Figura 28. Las flechas reversibles indican que se
puede ir de una a otra.
INFO
ESTADO GSM
MENU PRINCIPAL
MENU
GPS
GSM
Operador: Calidad de la seal: -
CONECTAR
INFO
ESTADO GPS
<<<
MENU
Latitud: 0 0 0
Longitud: 0 0 0
GPS desconectado
Latitud: 0 0 0
Longitud: 0 0 0
ENVIAR
57
Pantalla tctil
3.4.1.2 Info
Est pantalla est destinada a resumir la informacin relevante que interese tener
accesible, puesto que esta pantalla tiene la peculiaridad de poderse llamar desde
cualquiera de las otras 3 pantallas y al presionar el botn <<< (Retroceso),
volver a la pantalla desde la cual se llam.
Este grupo est formado por 10 pantallas y en la Figura 29 se han representado las
8 ms relevante. Estas pantallas se desarrollan una detrs de otra siguiendo las
instrucciones que se van mostrando por lo que no se considera relevante explicar
cada una de ellas.
58
Pantalla tctil
Durante la ejecucin de estas pantallas se van iniciando y configurando los
mdulos GSM/GPRS y GPS necesarios para establecer la comunicacin con el
dispositivo de telefona mvil y la localizacin del robot, respectivamente.
59
Pantalla tctil
BACK
CLOSE
NEXT
BACK
CLOSE
NEXT
Insertar PIN
1
4
<<
ENTER
BACK
Operador: movistar
BACK
CLOSE
NEXT
CLOSE
BACK
NEXT
CLOSE
NEXT
GPS
A-GPS
Offline
A-GPS
Online
BACK
CLOSE
NEXT
60
Pantalla tctil
Este ltimo grupo est formado por las mismas pantallas que el primero por lo que
slo se van a comentar los cambios producidos en cada una de las pantallas por la
configuracin de comunicaciones.
MENU PRINCIPAL
INFO
ESTADO GSM
MENU
GPS
GSM
Operador: movistar
Calidad de la seal: < -57 dBm
INFO
ESTADO GPS
<<<
MENU
Latitud: 40 26 34 N
Longitud: 3 42 47 W
GPS conectado
Latitud: 40 26 34 N
Longitud: 3 42 47 W
ENVIAR
61
Pantalla tctil
3.4.3.2 Info
En la pantalla de informacin ahora se muestran las coordenadas proporcionadas
por el GPS.
<<
ENTER
62
La localizacin del robot 4x4 se realiza mediante GPS puesto que permite
determinar la posicin de un objeto, en este caso un vehculo, con una buena
precisin normalmente de metros.
La tarjeta M2M Daughter Board, Figura 8, es una tarjeta desarrollada por u-blox
AG especialmente diseada para trabajar con la MEB. La base de esta tarjeta son
dos mdulos de control, LEON-G200 y NEO-6Q. Tambin dispone de un soporte
para tarjeta SIM, la cual permite comunicacin GSM/GPRS, y un conector RF
SMA para una antena GPS externa, de uso opcional.
63
LEON-G200
Es un mdulo de transmisin de datos GSM/GPRS cuatribanda. Las
comunicaciones con el mdulo se realizan a travs de comandos AT. Dichos
comandos estn controlados por la UART del PIC32.
NEO-6Q
Este mdulo utiliza una tecnologa de u-blox denominada six-position engine
para proporcionar la posicin GPS. Esta tecnologa consiste en un algoritmo,
Precise Point Positioning, (PPP), que consigue una alta precisin en aplicaciones
estticas y en mviles de baja velocidad. En la estructura hardware de la M2M
Board este mdulo acta como esclavo del mdulo LEON-G200, pero se puede
usar por separado ya que dispone de comandos AT propios.
Cada uno de los mdulos dispone de una gran cantidad de comandos AT y estn
disponibles en la web del fabricante, www.u-blox.com.
64
Archivos
Contenido
libcom.h
libubx.h
libacd.h
libgps.h
Cada uno de estos archivos incluye las declaraciones de las variables y de las
cabeceras de las funciones que se utilizarn para interactuar con el mdulo
correspondiente. El desarrollo de las distintas funciones est en los
correspondientes archivos .c
Todos los archivos funcionan de una manera parecida por lo que se va a explicar
de manera detallada uno de ellos (libubx.h) y de los otros se mostrarn las partes
relevantes.
65
4.2.1 LIBUBX.H
NOTA: La tarjeta SIM utilizada para la conexin a la red GSM es del operador
Movistar y funciona correctamente con la configuracin mostrada en Cdigo
22.
66
typedef enum
{
UBX_E_OK = 0,
UBX_E_ERROR,
UBX_E_WARNING,
} UBX_ERROR;
// Success
// Error, handling required
// Warning, can be ignored
typedef enum
{
UBX_S_SYSTEM_CONFIGURED = 1,
UBX_S_SYSTEM_NOT_CONFIGURED,
UBX_S_BOARD_POWERED,
UBX_S_BOARD_NOT_POWERED,
UBX_S_BOARD_PRESENT_LEONG200,
UBX_S_BOARD_PRESENT,
UBX_S_BOARD_NOT_PRESENT,
UBX_S_SIM_PRESENT,
UBX_S_SIM_NOT_PRESENT,
UBX_S_PIN_ENABLED,
UBX_S_PIN_NOT_ENABLED,
UBX_S_GSM_CONFIGURED,
UBX_S_GSM_NOT_CONFIGURED,
UBX_S_GSM_NETWORK_REGISTRED,
UBX_S_GSM_NETWORK_NOT_REGISTRED,
UBX_S_PDP_CONFIGURED,
UBX_S_PDP_NOT_CONFIGURED,
UBX_S_PDP_SERVICE_REGISTRED,
UBX_S_PDP_SERVICE_NOT_REGISTRED,
UBX_S_GPS_CONFIGURED,
UBX_S_GPS_NOT_CONFIGURED,
UBX_S_GPS_POWERED,
UBX_S_GPS_NOT_POWERED,
UBX_S_GPS_ASSIST_LOCAL,
UBX_S_GPS_ASSIST_NONE,
UBX_S_GPS_ASSIST_OFFLINE,
UBX_S_GPS_ASSIST_ONLINE,
} UBX_STATUS;
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
67
UBX_ERROR
UBX_ERROR
UBX_ERROR
UBX_ERROR
ubxConfigureSystem(UINT32 freq);
ubxConfigureBoard(void);
ubxConfigureGsm(void);
ubxConfigureGps(void);
UBX_ERROR
UBX_ERROR
UBX_ERROR
UBX_ERROR
ubxPowerOnBoard(void);
ubxPowerOffBoard(void);
ubxPowerOnGps(UBX_GPS_ASSIST_MODE mode);
ubxPowerOffGps(void);
68
Cdigo 27. Funciones de conexin y uso de la red GSM del archivo libubx.h
69
Una vez que se tiene el nmero de telfono en una cadena de caracteres, se genere
el texto del SMS, en este caso coordenadas GPS en formato UTM, y se guarda en
otra cadena de caracteres. Por ltimo se enva el SMS.
EDITBOX
*pEb;
char number[25 + 1] = {0};
GPS_DATA_RMC *rmc;
char sms[160 + 1] = {0};
int d, m, s;
for(i=0; i<(pEb->length); i++)
{
number[i] = pEb->pBuffer[i];
}
ubxUpdateGpsContext(GPS_C_RMC);
rmc = gpsGetRMC();
sprintf(sms, "Hello from MEB!");
if(rmc->lat && rmc->lon)
{
sprintf(sms, "%s My position is", sms);
gpsDecimalToDMS(rmc->lat, &d, &m, &s);
sprintf(sms, "%s %d %d' %d'' %s,", sms, d, m, s, rmc->lat_ns);
gpsDecimalToDMS(rmc->lon, &d, &m, &s);
sprintf(sms, "%s %d %d' %d'' %s.", sms, d, m, s, rmc->lon_ew);
}
ubxSendGsmShortMessage(number, sms);
70
GPS_DATA_RMC *rmc;
static int d=0, m, s;
ubxUpdateGpsContext(GPS_C_RMC);
rmc = gpsGetRMC();
if (rmc->lat && rmc->lon)
{
gpsDecimalToDMS(rmc->lat, &d, &m, &s);
NOTA: Los datos GPS no estn disponibles hasta que el LED llamado
71
4.2.2 LIBGPS.H
typedef struct
{
TIME utc;
// UTC (position fix time) [hhmmss.sss]
CHARACTER sts;
// Status: A=Navigation receive warning, V=Valid
LATITUDE lat;
// Latitude
CHARACTER lat_ns; // Latitude N/S indicator: N=North, S=South
LONGITUDE lon;
// Longitude
CHARACTER lon_ew; // Longitude E/W indicator: E=East, W=West
NUMERIC sog;
// Speed over ground [knot/s]
NUMERIC cog;
// Course over ground [degrees]
DATE dat;
// Date
NUMERIC mav;
// Magnetic variation [degrees]
CHARACTER mav_ew; // Magnetic variation E/W indicator: E=East, W=West
CHARACTER mod;
// Mode indicator: N=No fix, A=Autonomous GNSS fix,
D = Differential GNSS fix, E = Estimated dead reckoning (DR) fix
} GPS_DATA_RMC;
Las principales funciones que se utilizan para obtener y manejar los datos de la
variable GPS_DATE_RMC.
72
GPS_ERROR gpsConfigure(void);
// Obtener datos tipo GPS_DATA_RMC
GPS_DATA_RMC *gpsGetRMC(void);
// Conversor de grados decimals a sexagesimales
int main(void)
{
while(1)
{
if((botonconectar==1) && (tickGPS==500000)) //(18s)
{
GetCoordenadasGPS();
tickGPS=0;
}
}
}
73
Instruccin
Accin
GPS
PC
74
Una vez hecho esto se llama a la funcin RecibirSMS, Cdigo 35. Est funcin
activa distintas banderas en funcin del mensaje recibido, para que al llamar a
CreateSMS se realice la accin adecuada.
75
void RecibirSMS(void)
{
if(strcmp(Mensaje,"GPS")==0)
{
flag_sms=1; // Flag que indica que se quiere recibir las
coordenadas GPS mediante GSM
}
else if(strcmp(Mensaje,"PC")==0)
{
flag_pc=1; // Flag que indica que hay datos que se quieren enviar
al PC
}
else
{
flag_sms = 2;
}
}
KillTimer(1);
com.inicio();
com.DatosGSM(DIR_GPS);
std::vector<double> vd_datosGSM;
vd_datosGSM = com.GetDatosGSM();
SetTimer(1, 60000, NULL); // (10.000 = 10s)
Cdigo 36. Funcin para comprobar peridicamente si hay informacin para la TCS4
76
77
78
79
5.3 PC PIC32 PC
80
El procedimiento es:
1. Ejecutar el programa del dsPIC33, utilizando un breakpoint, para
controlar cuando se enva la funcin que pide enviar informacin al
mvil, esta funcin recibe como parmetros el texto y el nmero de
telfono del mvil al que se quiere enviar la informacin.
2. Envi de la funcin EnviarSMS travs del mdulo I2C pulsando el botn
Enviar del panel de control.
Puesto que en el telfono mvil especificado se recibe un SMS con el texto
que toma como parmetro la funcin EnviarSMS se comprueba la transmisin
de informacin de la TCS4 al mvil es correcta.
81
El procedimiento es:
82
83
Conclusiones
Captulo 6 CONCLUSIONES
El objetivo principal del presente proyecto ha sido la elaboracin de un sistema de
comunicaciones a travs de GSM y la implantacin de un dispositivo de
localizacin GPS para un vehculo. Para poder realizar el proyecto de una manera
prctica se ha utilizado la estructura de un robot 4x4.
84
Conclusiones
a que la comunicacin se ha realizado utilizando la red GSM el vehculo no tendr
limitada la distancia que se puede alejar del dispositivo de control, en este caso el
telfono mvil. El dispositivo GPS integrado permite la localizacin del vehculo,
algo necesario cuando se pretende poder controlar dicho vehculo de manera
remota. Adems con la integracin de la pantalla tctil se evita el uso de un
ordenador para observar el estado de distintas variables.
85
Futuros desarrollos
86
Bibliografa
BIBLIOGRAFA
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
Microchip Technology Inc., PIC32 Family Reference Manual Section 24. InterIntegrated Circuit (I2C), 2007-2011.
87
Bibliografa
[12]
[13]
[14]
[15]
[16]
[17]
88
Parte II ESTUDIO
ECONMICO
Los grandes avances que se han producido en los ltimos 50 aos en el mbito de
las telecomunicaciones han permitido su aplicacin para contribuir al desarrollo
de otros mbitos como puede ser el de la robtica. La robtica ha resultado ser
una herramienta muy til para la realizacin de trabajos repetitivos, operaciones
que requieran una gran precisin o para realizar trabajos peligrosos, entre otros.
Dentro de la robtica, los vehculos controlados de manera remota son los que
ms se han desarrollado gracias al avance de las telecomunicaciones y estos
pueden contribuir de manera importante en la sociedad por ejemplo para misiones
de bsqueda o rescate de personas.
90
Etapa de crecimiento
Si el mercado acepta el producto, las ventas aumentan rpidamente. La
planificacin de la distribucin fsica es difcil en esta fase de crecimiento. Sin
embargo, la disponibilidad del producto se extiende tambin rpidamente por toda
91
Etapa de madurez
La anterior fase de crecimiento puede ser bastante corta, seguida de un perodo
ms largo llamado madurez. El incremento de las ventas es lento o se ha
estabilizado en su nivel mximo. En este momento, se alcanza la mayor
rentabilidad y se puede prolongar ms tiempo con diferentes tcnicas de
marketing.
Etapa de declive
Llega un momento en que las ventas decaen en la mayora de los productos por
cambios en la tecnologa, la competencia, o la prdida de inters por parte del
cliente. Con frecuencia los precios bajan y los beneficios se reducen.
92
DOCUMENTO II
PRESUPUESTO
Captulo 1
Mediciones ...................................................................................1
1.1
1.2
1.3
Software .........................................................................................................2
1.4
Captulo 2
Precios unitarios...........................................................................4
2.1
2.2
2.3
Software .........................................................................................................5
2.4
Captulo 3
Sumas parciales............................................................................7
3.1
3.2
3.3
Software .........................................................................................................9
3.4
Captulo 4
Mediciones
Captulo 1 MEDICIONES
En este captulo se recogen las unidades de los componentes y equipos utilizados,
as como las horas de trabajo imputables al proyecto.
Componentes
Cantidad
1
1
1
Mediciones
Elemento
Horas de
Horas de uso
proyecto
al ao
Cantidad
Ordenador
500
1600
80
3560
80
200
Osciloscopio
10
300
Polmetro
10
450
Soldador
500
1.3 SOFTWARE
Programa
Horas de
Horas de
proyecto
uso al ao
Cantidad
350
500
170
1000
150
1500
Mediciones
Actividad
Horas
Programacin
350
100
100
Horas totales
550
Precios unitarios
Precio (/unid)
Componentes
PIC32 USB Starter Kit II
41,63
189,24
150,64
100,00
7,00
2,75
Precios unitarios
Precio (/unid)
Elemento
Ordenador
850
669
12,46
Osciloscopio
627,39
Polmetro
45
Soldador
35
2.3 SOFTWARE
Precio (/unid)
Programa
MPLAB IDE v8.87
800
101,18
Precios unitarios
Precio(/hora)
Actividad
Programacin
20
60
40
Sumas parciales
Componentes
Cantidad
Precio
Coste total
(/unid)
()
41,63
41,63
189,24
189,24
150,64
150,64
100,00
100,00
Tarjeta SIM
7,00
7,00
2,75
2,75
TOTAL
1.201,89
Sumas parciales
Elemento
Uds.
Horas de
Horas
Precio
Amortizacin
Coste
proyecto
por ao
(/unid)
anual
()
Ordenador
500
1600
850
25%
66,4
Dispositivo de
telefona mvil
Regulador de
80
3560
669
25%
3,76
tensin 230V ~
80
200
12,46
25%
2,49
Osciloscopio
10
300
627,39
25%
5,23
Polmetro
10
450
45
25%
0,25
Soldador
500
35
25%
0,02
TOTAL
78,15
12V=
Sumas parciales
3.3 SOFTWARE
Elemento
Microsoft
Visual
Studio 2010
Microsoft Office
Horas de
Horas
Precio
Amortizacin
Coste
proyecto
por ao
(/unid)
anual
()
170
1000
800
20%
27,2
150
1500
101,18
20%
2,02
TOTAL
29,22
Uds.
Actividad
Horas
Precio
Coste total
(/hora)
()
Programacin
350
20
7.000
100
60
6.000
100
40
4.000
TOTAL
17.000
Presupuesto general
Concepto
Coste ()
Componentes principales
1.201,89
Equipo y herramientas
78,15
Software
29,22
17.000
TOTAL
18.309,26
10