Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OPCIN
PROYECTO DE INVESTIGACIN
PRESENTA:
OJEDA ARANA JUAN ALBERTO.
PINEDA ESTRELLA JOSE GUADALUPE.
INDICE DE CONTENIDO
Introduccin: ----------------------------------------------------------------------------- 1
Objetivo general y especfico-------------------------------------------------------- 2
Hiptesis: --------------------------------------------------------------------------------- 2
Justificacin: ----------------------------------------------------------------------------- 2
Limitaciones y delimitaciones: ------------------------------------------------------ 3
Impacto econmico, social y ambiental: ----------------------------------------- 3
Cronograma de actividades: -------------------------------------------------------- 4
CAPITULO I
1.
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
Antecedentes tericos----------------------------------------------------------5
Sensores Ultrasnicos (SRF02):---------------------------------------------5
Sensores pticos (SHARPS): -----------------------------------------------7
Puente H (driver): ---------------------------------------------------------------9
Acelermetro:-------------------------------------------------------------------11
Brjula:----------------------------------------------------------------------------12
GPS: ------------------------------------------------------------------------------13
CAPITULO II
2. Antecedentes y causas del problema------------------------------------------16
CAPITULO III
3. Generalizadas---------------------------------------------------------------------------20
3.1 Tarjeta principal o maestra --------------------------------------------------------22
3.2 Sensores pticos --------------------------------------------------------------------25
3.3 Sensores ultrasnicos --------------------------------------------------------------26
3.4 Brjula y acelermetro --------------------------------------------------------------28
3.5 Etapa de potencia --------------------------------------------------------------------30
3.6 GPS --------------------------------------------------------------------------------------33
3.4 Software---------------------------------------------------------------------------------38
3.5 Comunicacin VOIP -----------------------------------------------------------------40
CAPITULO IV
4.1 Resultados------------------------------------------------------------------------------43
Conclusiones--------------------------------------------------------------------------------45
REFERENCIAS BIBLIOGRAFICAS--------------------------------------------------47
ANEXOS-------------------------------------------------------------------------------------48
Anexo 1: Programacin de la tarjeta principal--------------------------------------50
INTRODUCCIN.
OBJETIVO GENERAL.
Continuacin del proyecto AGV con el prototipo del ingeniero Lancelot del
Carmen Rosas [1] e Integrar los elementos de hardware y software con que se
cuentan para que permita a un vehculo elctrico guiado automticamente
(AGV), ser capaz de utilizar tecnologa GPS para realizar tareas pre
programadas y diversos sensores para identificar y evadir obstculos dentro del
camino que ste tenga que recorrer para poder llegar a puntos deseados.
OBJETIVO ESPECFICOS.
HIPTESIS.
Los sistemas de AGVs, de manera simplificada, representan un vehculo que
se mueve de manera automtica, sin conductor. Los sistemas de AGVs estn
concebidos para la realizacin del transporte de materiales, especialmente en
tareas repetitivas y con alta cadencia. Este sistema garantiza el transporte de
materiales en una ruta predeterminada, de manera ininterrumpida y sin la
intervencin directa del hombre.
JUSTIFICACIN.
El proceso que se utiliza en el mundo de la industria para realizar tareas como
el transporte de objetos pesados o la manipulacin y recoleccin de muestras
se realiza de manera manual, es decir con personas operando maquinas
especializadas para dicho proceso, esto conlleva a un alto riesgo a la integridad
del personal, de igual manera el riesgo del manejo de dichos objetos llegando a
ocasionar graves accidentes al personal. Los AGV`s han sido de mucha ayuda
a empresas de carga ya que aumenta la seguridad de los trabajadores y
optimizan el proceso de carga y descarga o la realizacin de tareas repetitivas
de manera ms eficiente que un operador humano.
2
LIMITACIONES Y DELIMITACIONES.
Limitaciones:
Los accesorios para hacer un buen diseo mecnico son muy caros y
as mismo la mano de obra, as que sin tener patrocinadores se tiene
que utilizar los accesorios y manos de obra ms econmicos.
CRONOGRAMA DE ACTIVIDADES.
Comienza el 10 de marzo: Configuracin de la brjula y buen funcionamiento
de la pc.
Comienza el 24 de marzo: Reprogramacin de la etapa de potencia.
Comienza el 2 de abril: Pruebas para calibracin de sensores.
Comienza el 16 de abril: Pruebas para calibracin de GPS.
Comienza el 30 de abril: Pruebas para la integracin de los sensores y el GPS.
Comienza el 15 de Mayo: Modificacin del software para el monitoreo del AGV.
Comienza el 30 de mayo: Pruebas finales.
4 de junio: Terminacin del proyecto.
DIAGRAMA DE GANT.
Actividad
Febrero
Marzo
Abril
Mayo
Junio
de
la
etapa
de
potencia.
Pruebas para calibracin de sensores.
Pruebas para calibracin de GPS.
Pruebas para la integracin de los
sensores y el GPS.
Modificacin del software para el
monitoreo del AGV.
Pruebas finales.
Finalizacin y entrega.
CAPTULO 1.
1. ANTECEDENTES TEORICOS
Un vehculo guiado automticamente o AGV (Authomatic Guided Vehicle,
siglas en ingls) es un robot capacitado para moverse de forma autnoma en
un entorno determinado, realizando tareas como el transporte de objetos
pesados o la manipulacin y recoleccin de muestras, evitando la colisin con
los dems objetos que lo rodean. Un AGV consiste principalmente en una
plataforma con ruedas con un microprocesador incorporado y una fuente de
alimentacin propia, que es capaz de moverse por si misma, y recibe rdenes
de una unidad de control.
Los AGV pueden realizar diversos tipos de actividades como colocar
objetos en una superficie plana (cama), colocar y quitar objetos de una banda
movible, es posible adaptarle diferentes tipos de pinzas segn la conveniencia
del usuario, etc. en los hospitales resultan bastante tiles pues son ideales para
el transporte de documentacin o medicina. [1]
1.1 Sensores ultrasnicos (SRF02)
Principios de operacin: los sensores ultrasnicos funcionan emitiendo y
recibiendo ondas de sonido de alta frecuencia. La frecuencia generalmente es
de aproximadamente 40 a 200kHz, un valor demasiado alto para ser detectado
por el odo humano (fig 1.1).
Zona ciega: los sensores ultrasnicos tienen una zona ciega inherente
ubicada en la cara de deteccin. El tamao de la zona ciega depende de la
frecuencia del transductor. Los objetos ubicados dentro de la zona ciega no se
pueden detectar de manera confiable.
Modos de operacin: hay dos modos bsicos de operacin, el modo
opuesto y modo difuso (eco). En el modo opuesto, un sensor emite la onda de
sonido y otro, montado en posicin opuesta al emisor, recibe la onda de sonido.
En el modo difuso (Fig 1.2), el mismo sensor emite la onda de sonido y luego
escucha el eco que rebota de un objeto.
requerida
en
nuestro
dispositivo
es
el
primero
en
implementarla.
electrnica que se llama control por regulacin de ancho de pulso (PWM, Pulse
Width Modulated en ingls). [3]
10
11
A) Aplicaciones:
12
E) Altitud: 20.200 km
F) Perodo: 11 h 56 min
G) Inclinacin: 55 grados (respecto al ecuador terrestre).
H) Vida til: 7,5 aos
I) Seal RF [23] Frecuencia portadora:
14
L) Hora: 1 ns
M) Cobertura: mundial
N) Capacidad de usuarios: ilimitada
O) Sistema de coordenadas:
15
robotizado
mediante
una
flota
de
vehculos
guiados
tienen
17
18
no
controlados
tecnologas
como
el
GPS
(sistema
de
19
CAPTULO III.
3. GENERALIDADES.
Como se menciono en el capitulo II el diseo del AGV en [1] consta de
sistemas electrnicos a las cuales se le puedan programar tareas simples con
el fin de controlar el movimiento del robot de manera autnoma, con
tecnologas como el GPS, sensores ultrasnicos y sensores pticos.
En base a este diseo, se procede en el reconocimiento fsico del
prototipo ya avanzado por el ingeniero Lacenlot [1], y posteriormente se
prueban los sensores, motores, hardware y software para poder comprender y
analizar los objetivos ya logrados en el prototipo que se nos entreg y poder
tener un punto de partida para poder mejorar el prototipo y hacerle un sistema
de control ms eficaz utilizando los sensores.
Para comprender mejor la estructura de conexin del AGV se determin
especificar las conexiones de modulo a modulo del hardware. La topologa
bsica de conexin del AGV es la siguiente:
d)
Modulo GPS.
b) Computadora
Tarjeta Principal.
e)
f)
Etapa de
potencia.
a) Bateria de 12V
Sensores
g)
c)
Motores
20
En el eje del motor se le perforo a una profundidad de 1/3 cm, para que se le
haga una especie de cua como se logra apreciar en la figura 3.2:
22
Inicio
Configuracin del
microcontrolador
Se enva la orden
STOP al mdulo de
potencia.
Se inicializa el mdulo de
comunicacin HID USB de la tarjeta
principal de control hacia el
ordenador.
Lectura de sensores
pticos.
Envo de datos a la
etapa de potencia.
Lectura de sensores
ultrasnicos.
Lectura del
acelermetro.
dispositivos.
23
por
su
gran
compatibilidad
poca
complejidad
de
configuracin y uso.
B) Lectura de mdulos externos:
En esta parte, el micro entra en una rutina ciclada, lo primero que hace
es obtener las mediciones de distancia de los sensores pticos y
ultrasnicos, mencionados anteriormente en el captulo 1, en este
proceso, el micro tiene un retardo bastante considerable, ya que
requiere de unos 100 mili segundos para realizar dicho algoritmo.
24
26
27
Una de las limitantes en el uso de este tipo de sensores fueron los lbulos del
ngulo de deteccin, ya que en los primeros 50 cm no se tiene ningn
problema, pero al alejarse, se empiezan a tener lecturas de tipo falso positivo,
ya que se requieren objetos bastante grandes para que puedan ser detectados
con certeza. A continuacin se muestran los angulos en la cual opera este
sensor:
28
29
dispositivo se puede orientar hacia las nuevas coordenadas a las que se desea
llegar.
La obtencin de datos de la brjula, se hace con una conversin de datos
en el ordenador, como la operacin es de punto flotante, el resultado obtenido
es de gran exactitud. La operacin es la siguiente:
D) El micro controlador obtiene los datos de la brjula por medio del
protocolo SPI.
E) Los datos se ordenan en el micro controlador y se envan hacia el
ordenador por el protocolo USB.
F) Los datos recibidos se guardan en variables de una extensin LONG
(Punto flotante) en el software del ordenador.
G) Se convierten los datos en radianes para obtener una medicin
correcta.
H) Se aplica la funcin ARCTAN (Y/X).
Una vez obtenida la posicin respecto al norte, se despliegan en el
software los grados y la orientacin a la cual se encuentra el robot, esta puede
ser norte, sur, este u oeste. Este dato es de vital importancia, ya que con eso,
se puede saber la orientacin respecto al norte de las coordenadas que brinda
el GPS con el objetivo de saber en dnde se encuentra el AGV en ese
momento. Al obtener las coordenadas anteriores y la orientacin del robot, es
posible dirigir el AGV haca las nuevas coordenadas.
El acelermetro en esta investigacin, fue utilizado como un inclinmetro,
con el objetivo de que el ordenador obtenga la posicin que tiene el AGV
respecto a los ejes X, Y y Z. Con esta informacin se puede saber si el robot
est subiendo una pendiente, si se encuentra en declive o si el robot est en un
terreno plano. Con este elemento es viable saber, si el AGV se encuentra en
una zona en donde puede voltearse, la referencia a la que se encuentra el
robot con respecto al eje Z, es el dato que determina si el AGV est en un
terreno inestable. Cabe recalcar que esta rutina no fue implementada,
simplemente se muestra la posicin que tiene el AGV en los respectivos ejes.
30
32
33
El
kit
de
evaluacin
GPS
EVA1035-H
receptor / mdulo
de
evaluacin
inteligente A1035-H,
Al igual se aseguro con esta antena tener una buena recepcin. Al usar la
antena externa incluida se aseguro la activacin de esta mediante el
establecimiento del DIP ANT_SW a la posicin de ON.
Para iniciar el software de Cockpit GPS, que permite visualizar los datos de
salida NMEA procedentes del receptor GPS, Se copio los archivos incluidos en
el CD-ROM. En una carpeta en nuestra PC, en estos archivos se encuentra el
archivo GPSCockpit.exe solamente tenemos que abrir este archivo para iniciar
el software sin requerir de una instalacin.
36
37
Ahora se necesita activar el puerto correcto mediante GPS Cockpit por lo que
en el software se selecciona COM port conections.
38
Figura 3.18: Terminal NMA del GPS cockpit con datos NMA
39
3.7. Software.
En esta seccin, se muestra como son utilizados los datos obtenidos de
todos los mdulos (brjula, acelermetro, GPS y mdulos esclavos) que tiene
integrado el AGV, El algoritmo es el siguiente:
Inicio
Se inicializa el mdulo de
comunicacin HID USB de la
tarjeta principal de control hacia el
ordenador.
41
42
CAPITULO IV
RESULTADOS.
A Continuacin se mostraran los resultados una vez que se ha integrado tanto
el software como hardware al AGV. El prototipo se muestra en la figura 16,
muestra que cuenta con su etapa de potencia, GPS, tarjeta principal y el
ordenador
43
c)
d)
44
CONCLUSIONES.
En la realizacin de este proyecto se busc un control ptimo de la velocidad
del AGV y la de evadir obstculos, pero, al hacer pruebas observamos que
algunos sensores no funcionan ptimamente, algunos motores tienen desviado
el eje e incluso algunas soldaduras con la llanta no funcionan y de esa manera
nos topamos con la variable que no podemos controlar del todo, que es el
gasto econmico. Con muy poco presupuesto se trat compensar los
desperfectos del prototipo tal y como se nos dio.
De lo planteado por el ingeniero [1], se le agrego la comunicacin va skype,
hay que mencionar que el ordenador debe estar conectado siempre a la
internet para que la comunicacin se logre va skype. Tambin se ancl a la
interface el programa google earth, donde el usuario busca la coordenada que
se quiera llevar al AGV, pero aun se falta integrar de manera ptima el google
earth con la interface donde con unos simples clics se anexen las coordenadas
a donde se enviara el AGV. As mismo se planea a un futuro, desarrollar en la
interface la comunicacin con los plug-in de skype, donde podamos controlar el
AGV desde skype. En los anexos a futuro del ingeniero[1], plantea la
incorporacin de un mdulo bluetooth, pero consideramos que en esta fase del
45
46
REFERENCIAS BIBLIOGRAFICAS
[1]
http://pishrobot.com/files/products/datasheets/srf02.pdf
Robotic
http://robots-argentina.com.ar/MotorCC_puenteH.htm
Robots
[6]
http://www.artisteril.com/transporte-robotizado-AGV-industrial.html.
Richard
Gottschalk,
lvaro
Snchez
Miralles,
ngela
Ribeiro,
47
Agosto de 2010.
[13]
Danny
Weyns1,
Kurt
Schelfthout1,
and
Tom
Holvoet1,
Architecture-Centric Development of an AGV Transportation System, MultiAgent Systems and Applications IV, Volume 3690/2005, ISBN 978-3-54029046-9, pp. 640-644.
[16]
D.
Herrero-Perez
and
H.
Martinez-Barbera,
Decentralized
Dzuraidah Abdul Wahab and Jaber Abu Qudeiri, Real-time AGV Action
Decision in AD-FMS by Hypothetical Reasoning, European Journal of Scientific
Research, ISSN 1450-216X, Vol.25, No.2 (2009), pp.310-324
[18]
48
49
ANEXOS
Anexo 1: Programacion de la tarjeta principal
'*
*
'* ***************************************************************************
INCLUDE "modedefs.bas"
' Definiciones de los modos usados en los comandos
' SHIFTHIN Y SHIFTOUT
DEFINE OSC 48
' Velocidad del CPU a 48 MHZ
DEFINE LOADER_USED 1
' Para el uso de Bootloader
DEFINE RESET_ORG 0x001000 ' Vector de reset para usar el Bootloader
DEFINE INTERRUPT_ORG 0x001018 ' Vector de reset para usar el Bootloader
DEFINE I2C_HOLD 1
' Vector de Interrupcion para usar el Bootloader
DEFINE I2C_SLOW 1
' Velocidad estandar 100 Kbps
DEFINE ADC_BITS 8
' Resolucion del ADC a 8 bits
'*****************************************************************************
'CONSTANTES
RESET
CON %0000
MEDICION
CON %1000
REPORTE
CON %1100
LISTO
CON %1100
MASCARA_NEGATIVA
CON %1111100000000000
CONVERTIDOR
CON 14418
VREF
CON 3
'*****************************************************************************
'VARIABLES
USB
VAR BYTE[30]
CONTADOR_USB
VAR BYTE
ESTADO_BRUJULA
VAR BYTE
EJE_ACELEROMETRO
VAR BYTE
GPS_LATITUD
VAR WORD
GPS_LONGITUD
VAR WORD
VOLTAJE_INFRARROJO
VAR WORD
INFRARROJO_1
VAR byte
INFRARROJO_2
VAR byte
INFRARROJO_3
VAR byte
INFRARROJO_4
VAR byte
INFRARROJO_5
VAR byte
EJE_X_BRUJULA
VAR WORD
EJE_Y_BRUJULA
VAR WORD
ULTRASONICO_1
VAR WORD
ULTRASONICO_2
VAR WORD
ULTRASONICO_3
VAR WORD
ULTRASONICO_4
VAR WORD
ULTRASONICO_5
VAR WORD
EJE_X_ACELEROMETRO
VAR WORD
EJE_Y_ACELEROMETRO
VAR WORD
EJE_Z_ACELEROMETRO
VAR WORD
REFERANCIA_ACELEROMETRO
VAR WORD
VOLTAJE_EJE_ACELEROMETRO
VAR WORD
FUERZA_GRAVEDAD_ACELEROMETRO VAR WORD
'*****************************************************************************
50
' ALIAS
IN_UNO
IN_DOS
SDA
SCL
DIO
CL
CS
DINDOUT
CLK
EN
LED1
LED2
PUSH_BOTON
VAR PORTA.0
VAR PORTA.0
VAR PORTB.0
VAR PORTB.1
VAR PORTB.3
VAR PORTB.4
VAR PORTB.2
VAR PORTB.7
VAR PORTB.5
VAR PORTB.6
VAR PORTC.1
VAR PORTC.2
VAR PORTA.4
'*****************************************************************************
' CONFIGURACION DE ENTRADAS Y SALIDAS
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
INPUT
INPUT
INPUT
SCL
CL
CS
CLK
EN
LED1
LED2
IN_UNO
IN_DOS
PUSH_BOTON
'*****************************************************************************
ADCON1 = %00001010
' PUERTO A como entradas analogicas
'ADCON2.7 = 0
' Justificacion hacia la izquierda
'T0CON = %11001000
' TIMER 0 habilitado a 8 bits y sin preescaler
'INTCON = %10100000
' Interrupciones globales y del Timer 0
'****************************AT THE BEGINING**********************************
I2CWRITE SDA,SCL,$06,[%0,%0,0]
while (PUSH_BOTON == 1)
HIGH LED1
high LED2
wend
LOW LED1
low LED2
'*****************************************************************************************************
**
' PROGRAMA DE LA COMUNICACION USB
COMUNICACION_USB:
USBINIT
PROGRAMA_USB:
51
gosub LEER_GPS
GOSUB CONTROL_DE_MOTORES
GOSUB RECIBIR_DATOS
' Recibe datos por USB desde el Ordenador
IF USB[3]=255 THEN
high led1
else
low led1
endif
USB[1] = INFRARROJO_1
' Vector de valores para ser enviados
USB[2] = INFRARROJO_2
USB[3] = INFRARROJO_3
USB[4] = INFRARROJO_4
USB[6] = ULTRASONICO_1.byte1
USB[7] = ULTRASONICO_1.byte0
USB[8] = ULTRASONICO_2.byte1
USB[9] = ULTRASONICO_2.byte0
USB[10] = ULTRASONICO_3.byte1
USB[11] = ULTRASONICO_3.byte0
USB[12] = ULTRASONICO_4.byte1
USB[13] = ULTRASONICO_4.byte0
USB[14] = ULTRASONICO_5.byte1
USB[15] = ULTRASONICO_5.byte0
USB[16] = EJE_Y_BRUJULA.BYTE1
USB[17] = EJE_Y_BRUJULA.BYTE0
USB[18] = EJE_X_BRUJULA.BYTE1
USB[19] = EJE_X_BRUJULA.BYTE0
USB[20] = EJE_X_ACELEROMETRO.byte1
USB[21] = EJE_X_ACELEROMETRO.byte0
USB[22] = EJE_Y_ACELEROMETRO.byte1
USB[23] = EJE_Y_ACELEROMETRO.byte0
USB[24] = EJE_Z_ACELEROMETRO.byte1
USB[25] = EJE_Z_ACELEROMETRO.byte0
USB[26] = GPS_LATITUD.byte1
USB[27] = GPS_LATITUD.byte0
USB[28] = GPS_LONGITUD.byte1
USB[29] = GPS_LONGITUD.byte0
GOSUB ENVIAR_DATOS
' Envia datos por USB Hacia el Ordenador
GOTO PROGRAMA_USB
'*****************************************************************************************************
***
LEER_SENSORES_INFRARROJOS:
' Subrutina que mide la distancia de los
sensores infrarrojos
' Se lee el voltaje en el AN0 y se guarda en
VOLTAJE_INFRARROJO
'INFRARROJO_1=6787/(VOLTAJE_INFRARROJO-3) ' Se hace una linealizacion para
una medicion mas confiable
ADCIN 0, INFRARROJO_1
' Se lee el voltaje en el AN1 y se guarda en
VOLTAJE_INFRARROJO
ADCIN 1, INFRARROJO_2
ADCIN 2, INFRARROJO_3
ADCIN 3, INFRARROJO_4
RETURN
LEER_SENSORES_ULTRASONICOS:
sensores ultrasonicos
52
CONTADOR_USB = 30
' Numero de datos a leer
USBService
' Se verifica si el puerto esta disponible
USBIn 1, USB, CONTADOR_USB, RECIBIR_DATOS
' Leer datos del USB con
endpoint 1 y guardarlos en la variable USB correspondiente
RETURN
' Subrutina que envia datos hacia el USB
ENVIAR_DATOS:
CONTADOR_USB = 30
' Numero de datos a enviar
USBService
' Se verifica si el puerto esta disponible
USBOut 1, USB, CONTADOR_USB, ENVIAR_DATOS ' Escribir datos al USB con
endpoint 1 contenidos en la variable USB correspondiente
RETURN
CONTROL_DE_MOTORES:
if (INFRARROJO_2 >= 200) then
I2CWRITE SDA,SCL,$06,[ 128,%0101,%0101] 'Puerto A,B,C T.Exclava
else
I2CWRITE SDA,SCL,$06,[0,%0101,%0101] 'Puerto A,B,C T.Exclava
ENDIF
return
LEER_ACELEROMETRO:
FOR EJE_ACELEROMETRO = 0 TO 2
LOW CS
SHIFTOUT Dio, Cl, MSBFIRST, [%11\2, VRef\3]
SHIFTIN Dio, Cl, MSBPOST, [REFERANCIA_ACELEROMETRO\13]
HIGH CS
PAUSE 1
LOW CS
SHIFTOUT Dio, Cl, MSBFIRST, [%11\2, EJE_ACELEROMETRO\3]
53
THEN
EJE_X_ACELEROMETRO
THEN
EJE_Y_ACELEROMETRO
THEN
EJE_Z_ACELEROMETRO
LEER_BRUJULA:
HIGH EN:LOW EN
SHIFTOUT DinDout,CLK,MSBFIRST,[Reset\4]
HIGH EN:LOW EN
SHIFTOUT DinDout,CLK,MSBFIRST,[MEDICION\4]
ESTADO_BRUJULA = 0
While LISTO != ESTADO_BRUJULA
HIGH EN:LOW EN
SHIFTOUT DinDout,CLK,MSBFIRST,[REPORTE\4]
SHIFTIN DinDout,CLk,MSBPOST,[ESTADO_BRUJULA\4]
WEND
SHIFTIN DinDout,CLK,MSBPOST,[EJE_X_BRUJULA\11,EJE_Y_BRUJULA\11]
HIGH EN
IF (EJE_X_BRUJULA.10
MASCARA_NEGATIVA
IF (EJE_Y_BRUJULA.10
MASCARA_NEGATIVA
RETURN
1)
THEN
EJE_X_BRUJULA=EJE_X_BRUJULA
1)
THEN
EJE_Y_BRUJULA=EJE_Y_BRUJULA
LEER_GPS:
I2CREAD
SDA,SCL,$05,[gps_latitud.byte1,gps_latitud.byte0,gps_longitud.byte1,gps_longitud.byte0]
return
'*****************************************************************************************************
**
end
'DISABLE
'INTERRUPCION:
54
'INTCON=$80
' Se desabilitan las interrupciones globales
'LED1=0
' se apaga el led
'GOTO COMUNICACION_USB
'ENDIF
'INTCON.2=0
'RESUME
'ENABLE
55
VAR
VAR
PORTC.3
PORTC.4
56
Again:
IF SSPIF = 1 Then
call i2cslave
endif
Goto Again
i2cslave:
SSPIF = 0
IF R_W = 1 Then i2crd
IF BF = 0 Then i2cexit
IF D_A = 1 Then i2cwr
IF SSPBUF != 6 Then i2cexit
readcnt = 0
writecnt = 0
GoTo i2cexit
'(1) LEE
'(1) ESCRIBE
i2cwr:
datain = SSPBUF
writecnt = writecnt + 1
if writecnt = 1 then current = DATAIN 'MOSFET
if writecnt = 2 then PORTB = DATAIN 'DIRECCION DE RELAYS
if writecnt = 3 then PORTA = datain 'LEDS
GoTo i2cexit
i2crd:
IF D_A = 0 Then
readcnt = 0
EndIF
SSPBUF = dataout[readcnt]
CKP = 1
readcnt = readcnt + 1
GoTo i2cexit
i2cexit:
Return
TEST:
pause 1000
PORTB = %1010
PORTA = PORTB
cUrRent = 160
y=0
while (Y != 1000)
wend
current = 0
y=0
while (Y != 10)
wend
PORTB = %0101
PORTA = PORTB
current = 160
y=0
while (Y != 1000)
wend
current = 0
y=0
while (Y != 10)
wend
57
PORTB = %1001
PORTA = PORTB
current = 196
y=0
while (Y != 1000)
wend
current = 0
y=0
while (Y != 10)
wend
PORTB = %0110
PORTA = PORTB
current = 196
y=0
while (Y != 1000)
wend
current = 0
y=0
while (Y != 10)
wend
PORTB = %0000
PORTA = PORTB
return
DISABLE
VARVEL:
intcon.2 = 0
' Apagamos el TOIF
y=y+1
if (current == 0) then
HPWM 1,0,500
' Send a 50% duty cycle PWM signal at 500 Hz
HPWM 2,0,500
' Send a 50% duty cycle PWM signal at 500 Hz
x=0
else
if (current > x) then x = x + 1
if (current < x) then x = x - 1
HPWM 1,x,500 ' Send a 50% duty cycle PWM signal at 500 Hz
HPWM 2,x,500 ' Send a 50% duty cycle PWM signal at 500 Hz
endif
resume
ENABLE
58