ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FACULTAD DE INGENIERÍA EN ELECTRICIDAD Y COMPUTACIÓN
LABORATORIO DE TELECOMUNICACIONES
Avance proyecto Barco controlado mediante comunicación bluetooth y una Tablet Samsung galaxy 2, utilizando un PIC16F887 como controlador
Alumnos: Kelvin Ponce, Josué Chalén Kristell Aguilar, José Narváez
Paralelo # 3
Fecha de presentación: Viernes 20 de Diciembre Diciembre del 2013
INDICE Introducción: ....................................................................................................................................... 3 Objetivos ............................................................................................................................................. 4 Breve descripción teórica .................................................................................................................... 4
1
Descripción del proyecto con diagrama de bloques ......................................................................... 10 Simulación ......................................................................................................................................... 15 Implementación ................................................................................................................................ 15 Resultados reales y análisis de los resultados ................................................................................... 16 Lista de precios .................................................................................................................................. 17 Futuros trabajos ................................................................................................................................ 17 Conclusiones y recomendaciones ..................................................................................................... 17 Bibliografía ........................................................................................................................................ 17 Anexos ............................................................................................................................................... 17
2
Introducción:
Debido a los continuos usos y facilidades que presenta la tecnología inalámbrica hemos enfocado nuestro proyecto de en la implementación de un transmisor-receptor “half -duplex”, aprovechando el avance en la tecnología se integraron diseños tanto de hardware como de software creando un prototipo fácilmente aplicable en diseños de automatización, domótica e inmótica etc. Visto desde el punto de vista de ingeniería esta combinación abre un sin numero de aplicaciones dejando por sentado el conocimiento básico para seguir diseñando posibles usos a este producto. La transmisiones inalámbricas en los últimos tiempos han llegado a un punto en que no es necesario construir un dispositivo inalámbrico, lo que implica el uso de bobinas y su calibración manual, ahora debemos aprovechar lo que nos proporcionan y concentrar el diseño en otros 3
dispositivos o programas que aprovechen las nuevas tecnologías. Así la programación cuenta un papel importante en el diseño de este proyecto, en este caso se programó tanto en lenguaje C como en lenguaje G, programación orientada a hardware. Además las comunicaciones inalámbricas brindan el beneficio de una mayor movilidad, sin las molestias que representan un tendido de cables eléctricos, lo que significa no tener que estar en un solo lugar para monitorear una actividad.
Objetivos
Realizar la comunicación bluetooth entre un circuito electrónico y un dispositivo android, utilizando un pic 16f887 como controlador.
Breve descripción teórica
APP inventor
Esta aplicación Online nos permite desarrollar programas en ambiente Android, de una manera fácil ordenada y sencilla, con conocimientos básicos, además nos permite configurar puertos como
reconocedores
de
voz,
giroscopios,
instrucciones de teclas, conexiones inalámbricas. La aplicación desarrollada como control de nuestro barco, consta de botones para salir, buscar dispositivos que me ayudara a emparejar el modulo bluetooth con la Tablet, flechas direccionales, para un manejo más controlado de 4
los motores, un botón de giroscopio para activar la función de censado de la Tablet.
¿Qué es un Compilador? Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación. Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a cómo piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
ESQUEMA ALGORITMICO DE UN COMPILADOR 5
PROTEUS Proteus es una herramienta software que permite la simulación de circuitos electrónicos con microcontroladores. Sus reconocidas prestaciones lo han convertido en el más popular simulador software para microcontroladores. Esta herramienta permite simular circuitos electrónicos complejos integrando inclusive desarrollos realizados con microcontroladores de varios tipos, en una herramienta de alto desempeño con unas capacidades graficas impresionantes. Presenta una filosofía de trabajo semejante al SPICE, arrastrando componentes de una barra e incrustándolos en la aplicación, es muy sencillo de manejar y presenta una interfaz gráfica amigable para un mejor manejo de las herramientas proporcionadas por el Proteus.
6
BL UETOOTH HC-06
El futuro es inalámbrico y la tecnología Bluetooth es una de las favoritas en el mundo de los aficionados a la electrónica, donde el enlace de datos físico” debe
“sin vínculo
ser robusto, confiable y seguro. Luego de haber ensayado
el módulo Bluetooth RN41, Distribuido en todo el mundo por Wavesen , el módulo Bluetooth HC-06 es un dispositivo muy fácil de obtener, económico y sencillo de utilizar. Con dimensiones tan pequeñas como un conector USB, el módulo Bluetooth HC06 es una de las piezas de mercado más económicas que puedas encontrar dedicadas a este tipo de conectividad. Durante los ensayos realizados, el módulo ha demostrado tener un solo punto débil: la escasa (y confusa) información que existe sobre él en la web. Una de las ventajas principales ventajas del módulo HC-06, además de su pequeño tamaño y sus buenas características de transmisión y recepción que le brindan un alcance muy amplio (por tratarse de un sistema local Bluetooth), es el bajo consumo de corriente que posee tanto en funcionamiento, como en modo de espera, es decir, alimentado con energía, pero sin conexión o enlace a otro dispositivo, por ejemplo, un móvil con SO Android. Otra característica interesante de este módulo es que una vez que ha realizado un enlace con otro dispositivo es capaz de r ecordarlo en su memoria y no solicita validación alguna (“ 1234” por defecto). Otro detalle particular es que su tensión de alimentación de 3,3Volts y su bajo consumo (8mA en transmisión/recepción activa) lo transforman en un dispositivo ideal para trabajar con microcontroladores de la misma tensión de alimentación, logrando de este modo equipos portátiles que pueden ser alimentados durante muchas horas por baterías recargables o alcalinas AA, demostrando características excepcionales en aplicaciones médicas, o para actividades recreativas donde la fuente energética debe ser liviana y portátil.
7
Características de la transmisión Bluetooth (IEEE 802,15) Bluetooth fue creado con la disposición de dar conexión a redes de corto alcance, conocidas como Wireless Personal Área Network (WPAN). Está definido por el estándar IEEE 802,15, que denota una tecnología inalámbrica que permite comunicar los equipos a una velocidad relativamente baja. Existen muchos aspectos importantes pero uno de los más relevantes es cómo esta tecnología se interconecta con el modelo OSI.
La tecnología inalámbrica de Bluetooth utiliza un radio de corto alcance que ha optimizado para el ahorro de energía, operación adecuada de la batería, tamaño pequeño y para ser utilizada en aparatos personales de bajo peso. Una WPAN es capaz de soportar canales sincrónicos de comunicación para telefonía de voz y canales de comunicación asincrónicas para comunicaciones de datos.
8
Dichas facilidades permiten que una amplia gama de aplicaciones y de aparatos trabaje en una WPAN. Ej: un teléfono celular puede usar canales circuit-switched para transportar audio desde y para receptor en el encabezado mientras se encuentra utilizando un canal packet-switched para intercambiar datos con una computadora portátil.
Una WPAN opera en la banda de 2,4 Ghz. Se utiliza un transceptor de fast frequency hop (1600 hops/s) para evitar la interferencia y la caída de señales. Para reducir la complejidad del transceptor se utiliza la técnica binaria FSK para transmitir símbolos con un rango de 1 Símbolos/s. Se utiliza un canal ranurado de 625 us, una trama de TDD se utiliza para permitir comunicaciones full dúplex en capas superiores. Un paquete normalmente cubre una sola ranura, pero se puede extender de 3 a 4 ranuras. Para tráfico de datos de manera unidireccional es posible transmitir un máximo de 723,2 Kbps entre 2 dispositivos. Un canal bi-direccional soporta un tráfico de voz entre 2 equipos pueden llegar hasta 64 Kbps.
La modulación es del tipo GFSK (Gaussian Frequency Shift Keying) con un tipo de ancho de banda BT = 0,5. El índice de modulación debe ser de entre 0,28 y 0,35.
9
Descripción del proyecto con diagrama de bloques
En el proyecto se procedió a investigar y configurar adecuadamente los elementos principales encargados de envío y recepción del módulo bluetooth hc 06, que mediante la Tablet Samsung Galaxy 2, daremos las instrucciones necesarias para poder guiar nuestro barco, la respuesta del mismo es representada mediante unos relé que me dirán que motor estará encendido en ese momento, provocando movimiento en la dirección inducida, por dos métodos, mediante teclas direccionales o giroscopio incluido en las aplicaciones con dispositivos del sistema OS Android.
10
Bloques de programación OS Android
Inicializar la pantalla
Activar el botón de giroscopio
11
Botón deshabilitar
Secuencia de buscar dispositivos activos
12
Botón salir
Controles de moviento
13
Control de giroscopio
14
Simulación Aquí podemos observar el giro del motor dado que obtenemos una salida de +5vcc del PIC 16F887, del circuito que observamos tenemos 4 para darle dirección al Barco.
Implementación
ESQUEMATICO DEL PIC 16F887
C C V
MOTOR1
R5 D1
10.0K
DIR1 1 NDIR12
R1 1
LED-GREEN
D3
1 L R
LED-RED
C1
GND
R2 330 RL2
22pF
X1
C2
CRYSTAL
22pF
D4
R3 330
LED-RED
D2
RL3
R4 330
LED-GREEN
TBLOCK-I2
U1
330
RE3/MCLR/VPP
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RA0/AN0/ULPWU/C12IN0RC2/P1A/CCP1 RA1/AN1/C12IN1RC3/SCK/SCL RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA RA3/AN3/VREF+/C1IN+ RC5/SDO RA4/T0CKI/C1OUT RC6/TX/CK RA5/AN4/SS/C2OUT RC7/RX/DT RA6/OSC2/CLKOUT RA7/OSC1/CLKIN RD0 RD1 33 RB0/AN12/INT RD2 34 RB1/AN10/C12IN3RD3 35 RB2/AN8 RD4 36 RB3/AN9/PGM/C12IN2RD5/P1B 37 RB4/AN11 RD6/P1C 38 RB5/AN13/T1G RD7/P1D 39 RB6/ICSPCLK 40 RB7/ICSPDAT RE0/AN5 RE1/AN6 RE2/AN7 2 3 4 5 6 7 14 13
PIC16F887 VDD=VCC VSS=GND
MOTOR2 RL4
NDIR2 1 DIR22 TBLOCK-I2
15
15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10
BLUETOOTH 1 2 3 4
GND VCC
RX TX GND VCC
CIRCUITO DE CONMUTACION PARA DIRECCIONAR LOS MOTORES
D10
+12V
D11
+12V
RL1 12V
1N4007
RL2
Q10 BC337
RL1
D12
12V
1N4007
Q11 BC337
RL2
+12V
D13
+12V
RL3 12V
1N4007
RL4
Q12 RL3
BC337
12V
1N4007
Q13 RL4
LEFT, RIGTH, UP, DOWN
Resultados reales y análisis de los resultados
16
BC337
Lista de precios Futuros trabajos Conclusiones y recomendaciones Bibliografía Anexos Programación en Lenguaje C program libre SYMBOL DIR1A= PORTA.0 'CONTROL DIRECCION MOTOR1 SYMBOL NDIR1A=PORTA.2 'CONTROL DIRECCION MOTOR1 SYMBOL DIR2A= PORTB.5 'CONTROL DIRECCION MOTOR2 SYMBOL NDIR2A=PORTB.3 'CONTROL DIRECCION MOTOR2
'SYMBOL DIR1T= PORTC.3 'CONTROL DIRECCION MOTOR1 'SYMBOL NDIR1T=PORTC.0 'CONTROL DIRECCION MOTOR1 ' 'SYMBOL DIR2T= PORTC.4 'CONTROL DIRECCION MOTOR2 'SYMBOL NDIR2T=PORTC.5 'CONTROL DIRECCION MOTOR2 dim byte_recibido as byte
'Sub procedure Pulsout(dim byref Puerto as byte,dim Pin as byte,dim Pos as Byte) ' Setbit(Puerto,Pin) ' Delay_Cyc(Pos) ' Delay_Cyc(Pos) 'Repeticion ' Clearbit(Puerto,Pin) 'End sub SUB PROCEDURE SET_MOTOR(DIM MOTOR2,MOTOR1 AS INTEGER) '******************** MOTOR 1*************** IF(MOTOR1<0)THEN 17
MOTOR1=-MOTOR1 DIR1A=0 NDIR1A=1 ' DIR1T=0 ' NDIR1T=1 ELSE If(MOTOR1=0)THEN DIR1A=0 NDIR1A=0 'DIR1T=1 'NDIR1T=0 else DIR1A=1 NDIR1A=0 end if END IF '******************** MOTOR 2*************** IF(MOTOR2<0)THEN MOTOR2=-MOTOR2 DIR2A=0 NDIR2A=1 'DIR2T=0 'NDIR2T=1 ELSE If(MOTOR2=0)THEN DIR2A=0 NDIR2A=0 'DIR1T=1 'NDIR1T=0 else DIR2A=1 NDIR2A=0 end if END IF PWM1_Set_Duty(MOTOR1) PWM2_Set_Duty(MOTOR2) END SUB main: OSCCON = 0X75 18
TRISA =0 PORTA =0 TRISD =0 PORTD =0
TRISB =0 PORTB =0 TRISC=%10000000 PORTC = 0X00 ' Selección de registro analógico. 1 analógico, 0 digitales ANSEL = 0 ' AN<7:0> ANSELH =0 ' AN<13:8> UART1_Init(9600) Delay_ms(100) INTCON = 0xC0 PWM1_Init(1000)'FRECUENCIA (HZ) PWM2_Init(1000)'FRECUENCIA (HZ) PWM1_Start() PWM2_Start() PWM1_Set_Duty(0) ' VEL0CIDAD 255-> 100% MAXIMA PWM2_Set_Duty(0) ' VELOCIDAD 0->0% MINIMA
WHILE(1) IF(UART1_Data_Ready =1)THEN byte_recibido=UART1_Read() PORTB = byte_recibido select case PORTB case 0x01 SET_MOTOR(170,170) case 0x02 SET_MOTOR(-170,-170) 19
case 0x00 SET_MOTOR(0,0) case 0x03 SET_MOTOR(170,-170) case 0x04 SET_MOTOR(-170,170) end select
END IF WEND end. Progr amación del PIC 16f887 (Lenguaje ens amb ler)
libre_SET_MOTOR: ;libre.mbas,25 ::
SUB PROCEDURE SET_MOTOR(DIM
MOTOR2,MOTOR1 AS INTEGER) ;libre.mbas,27 ::
IF(MOTOR1<0)THEN
MOVLW
128
XORWF
FARG_SET_MOTOR_MOTOR1+1, 0
MOVWF
R0+0
MOVLW
128
SUBWF
R0+0, 0
BTFSS
STATUS+0, 2
GOTO
L_libre_SET_MOTOR39
MOVLW
0
SUBWF
FARG_SET_MOTOR_MOTOR1+0, 0
L_libre_SET_MOTOR39: BTFSC
STATUS+0, 0
GOTO
L_libre_SET_MOTOR2
;libre.mbas,28 ::
MOTOR1=-MOTOR1 20
MOVF
FARG_SET_MOTOR_MOTOR1+0, 0
SUBLW
0
MOVWF
FARG_SET_MOTOR_MOTOR1+0
MOVF
FARG_SET_MOTOR_MOTOR1+1, 0
BTFSS
STATUS+0, 0
ADDLW CLRF
1 FARG_SET_MOTOR_MOTOR1+1
SUBWF
FARG_SET_MOTOR_MOTOR1+1, 1
;libre.mbas,29 :: BCF
DIR1A=0
PORTA+0, 0
;libre.mbas,30 :: BSF GOTO
NDIR1A=1
PORTA+0, 2 L_libre_SET_MOTOR3
;libre.mbas,33 ::
ELSE
L_libre_SET_MOTOR2: ;libre.mbas,34 ::
If(MOTOR1=0)THEN
MOVLW
0
XORWF
FARG_SET_MOTOR_MOTOR1+1, 0
BTFSS
STATUS+0, 2
GOTO
L_libre_SET_MOTOR40
MOVLW
0
XORWF
FARG_SET_MOTOR_MOTOR1+0, 0
L_libre_SET_MOTOR40: BTFSS
STATUS+0, 2
GOTO
L_libre_SET_MOTOR5
;libre.mbas,35 :: BCF
PORTA+0, 0
;libre.mbas,36 :: BCF GOTO
DIR1A=0 NDIR1A=0
PORTA+0, 2 L_libre_SET_MOTOR6
;libre.mbas,39 ::
else 21
L_libre_SET_MOTOR5: ;libre.mbas,40 :: BSF
DIR1A=1
PORTA+0, 0
;libre.mbas,41 :: BCF
NDIR1A=0
PORTA+0, 2
;libre.mbas,42 ::
end if
L_libre_SET_MOTOR6: ;libre.mbas,43 ::
END IF
L_libre_SET_MOTOR3: ;libre.mbas,45 ::
IF(MOTOR2<0)THEN
MOVLW
128
XORWF
FARG_SET_MOTOR_MOTOR2+1, 0
MOVWF
R0+0
MOVLW
128
SUBWF
R0+0, 0
BTFSS
STATUS+0, 2
GOTO
L_libre_SET_MOTOR41
MOVLW
0
SUBWF
FARG_SET_MOTOR_MOTOR2+0, 0
L_libre_SET_MOTOR41: BTFSC
STATUS+0, 0
GOTO
L_libre_SET_MOTOR8
;libre.mbas,46 :: MOVF
MOTOR2=-MOTOR2
FARG_SET_MOTOR_MOTOR2+0, 0
SUBLW
0
MOVWF
FARG_SET_MOTOR_MOTOR2+0
MOVF
FARG_SET_MOTOR_MOTOR2+1, 0
BTFSS
STATUS+0, 0
ADDLW CLRF SUBWF
1 FARG_SET_MOTOR_MOTOR2+1 FARG_SET_MOTOR_MOTOR2+1, 1 22
;libre.mbas,47 :: BCF
DIR2A=0
PORTB+0, 5
;libre.mbas,48 :: BSF GOTO
NDIR2A=1
PORTB+0, 3 L_libre_SET_MOTOR9
;libre.mbas,51 ::
ELSE
L_libre_SET_MOTOR8: ;libre.mbas,52 ::
If(MOTOR2=0)THEN
MOVLW
0
XORWF
FARG_SET_MOTOR_MOTOR2+1, 0
BTFSS
STATUS+0, 2
GOTO
L_libre_SET_MOTOR42
MOVLW
0
XORWF
FARG_SET_MOTOR_MOTOR2+0, 0
L_libre_SET_MOTOR42: BTFSS
STATUS+0, 2
GOTO
L_libre_SET_MOTOR11
;libre.mbas,53 :: BCF
PORTB+0, 5
;libre.mbas,54 :: BCF GOTO
DIR2A=0 NDIR2A=0
PORTB+0, 3 L_libre_SET_MOTOR12
;libre.mbas,57 ::
else
L_libre_SET_MOTOR11: ;libre.mbas,58 :: BSF
PORTB+0, 5
;libre.mbas,59 :: BCF
DIR2A=1 NDIR2A=0
PORTB+0, 3
;libre.mbas,60 ::
end if
L_libre_SET_MOTOR12: ;libre.mbas,61 ::
END IF 23
L_libre_SET_MOTOR9: ;libre.mbas,63 :: MOVF
FARG_SET_MOTOR_MOTOR1+0, 0
MOVWF CALL
PWM1_Set_Duty(MOTOR1) FARG_PWM1_Set_Duty_new_duty+0
_PWM1_Set_Duty+0
;libre.mbas,64 :: MOVF
FARG_SET_MOTOR_MOTOR2+0, 0
MOVWF CALL
PWM2_Set_Duty(MOTOR2) FARG_PWM2_Set_Duty_new_duty+0
_PWM2_Set_Duty+0
RETURN ; end of libre_SET_MOTOR _main: ;libre.mbas,67 ::
main:
;libre.mbas,68 ::
OSCCON = 0X75
MOVLW
117
MOVWF
OSCCON+0
;libre.mbas,69 :: CLRF
TRISA+0
;libre.mbas,70 :: CLRF
TRISB =0
TRISB+0
;libre.mbas,77 :: CLRF
PORTD =0
PORTD+0
;libre.mbas,76 :: CLRF
TRISD =0
TRISD+0
;libre.mbas,73 :: CLRF
PORTA =0
PORTA+0
;libre.mbas,72 :: CLRF
TRISA =0
PORTB =0
PORTB+0
;libre.mbas,79 ::
TRISC=%10000000 24
MOVLW
128
MOVWF
TRISC+0
;libre.mbas,80 :: CLRF
PORTC = 0X00
PORTC+0
;libre.mbas,83 :: CLRF
ANSEL = 0 ' AN<7:0>
ANSEL+0
;libre.mbas,84 :: CLRF
ANSELH =0 ' AN<13:8>
ANSELH+0
;libre.mbas,86 ::
UART1_Init(9600)
MOVLW
51
MOVWF
SPBRG+0
BSF
TXSTA+0, 2
CALL
_UART1_Init+0
;libre.mbas,87 ::
Delay_ms(100)
MOVLW
2
MOVWF
R11+0
MOVLW
4
MOVWF
R12+0
MOVLW
186
MOVWF
R13+0
L__main14: DECFSZ GOTO
R13+0, 1 L__main14
DECFSZ GOTO
R12+0, 1 L__main14
DECFSZ GOTO
R11+0, 1 L__main14
NOP ;libre.mbas,89 ::
INTCON = 0xC0
MOVLW
192
MOVWF
INTCON+0 25
;libre.mbas,91 ::
PWM1_Init(1000)'FRECUENCIA (HZ)
BCF
T2CON+0, 0
BCF
T2CON+0, 1
BSF
T2CON+0, 0
BSF
T2CON+0, 1
MOVLW
124
MOVWF
PR2+0
CALL
_PWM1_Init+0
;libre.mbas,92 ::
PWM2_Init(1000)'FRECUENCIA (HZ)
BCF
T2CON+0, 0
BCF
T2CON+0, 1
BSF
T2CON+0, 0
BSF
T2CON+0, 1
MOVLW
124
MOVWF
PR2+0
CALL
_PWM2_Init+0
;libre.mbas,93 :: CALL
_PWM1_Start+0
;libre.mbas,94 :: CALL
PWM1_Start() PWM2_Start()
_PWM2_Start+0
;libre.mbas,95 ::
PWM1_Set_Duty(0) ' VEL0CIDAD 255-> 100%
MAXIMA CLRF
FARG_PWM1_Set_Duty_new_duty+0
CALL
_PWM1_Set_Duty+0
;libre.mbas,96 ::
PWM2_Set_Duty(0) ' VELOCIDAD 0->0% MINIMA
CLRF
FARG_PWM2_Set_Duty_new_duty+0
CALL
_PWM2_Set_Duty+0
;libre.mbas,100 ::
WHILE(1)
L__main16: ;libre.mbas,102 :: CALL
IF(UART1_Data_Ready =1)THEN
_UART1_Data_Ready+0 26
MOVF XORLW
R0+0, 0 1
BTFSS
STATUS+0, 2
GOTO
L__main21
;libre.mbas,103 :: CALL MOVF
byte_recibido=UART1_Read()
_UART1_Read+0 R0+0, 0
MOVWF
_byte_recibido+0
;libre.mbas,104 :: MOVF
PORTB = byte_recibido
R0+0, 0
MOVWF
PORTB+0
;libre.mbas,106 :: MOVF XORLW
case 0x01
PORTB+0, 0 1
BTFSS
STATUS+0, 2
GOTO
L__main26
;libre.mbas,107 ::
SET_MOTOR(170,170)
MOVLW
170
MOVWF
FARG_SET_MOTOR_MOTOR2+0
CLRF
FARG_SET_MOTOR_MOTOR2+1
MOVLW
170
MOVWF
FARG_SET_MOTOR_MOTOR1+0
CLRF
FARG_SET_MOTOR_MOTOR1+1
CALL
libre_SET_MOTOR+0
GOTO
L__main23
L__main26: ;libre.mbas,108 :: MOVF XORLW
case 0x02
PORTB+0, 0 2
BTFSS
STATUS+0, 2
GOTO
L__main29 27
;libre.mbas,109 ::
SET_MOTOR(-170,-170)
MOVLW
86
MOVWF
FARG_SET_MOTOR_MOTOR2+0
MOVLW
255
MOVWF
FARG_SET_MOTOR_MOTOR2+1
MOVLW
86
MOVWF
FARG_SET_MOTOR_MOTOR1+0
MOVLW
255
MOVWF
FARG_SET_MOTOR_MOTOR1+1
CALL GOTO
libre_SET_MOTOR+0 L__main23
L__main29: ;libre.mbas,110 :: MOVF XORLW
case 0x00
PORTB+0, 0 0
BTFSS
STATUS+0, 2
GOTO
L__main32
;libre.mbas,111 ::
SET_MOTOR(0,0)
CLRF
FARG_SET_MOTOR_MOTOR2+0
CLRF
FARG_SET_MOTOR_MOTOR2+1
CLRF
FARG_SET_MOTOR_MOTOR1+0
CLRF
FARG_SET_MOTOR_MOTOR1+1
CALL
libre_SET_MOTOR+0
GOTO
L__main23
L__main32: ;libre.mbas,112 :: MOVF XORLW
case 0x03
PORTB+0, 0 3
BTFSS
STATUS+0, 2
GOTO
L__main35
;libre.mbas,113 ::
SET_MOTOR(170,-170) 28
MOVLW
170
MOVWF
FARG_SET_MOTOR_MOTOR2+0
CLRF
FARG_SET_MOTOR_MOTOR2+1
MOVLW
86
MOVWF
FARG_SET_MOTOR_MOTOR1+0
MOVLW
255
MOVWF
FARG_SET_MOTOR_MOTOR1+1
CALL GOTO
libre_SET_MOTOR+0 L__main23
L__main35: ;libre.mbas,115 :: MOVF XORLW
case 0x04
PORTB+0, 0 4
BTFSS
STATUS+0, 2
GOTO
L__main38
;libre.mbas,116 ::
SET_MOTOR(-170,170)
MOVLW
86
MOVWF
FARG_SET_MOTOR_MOTOR2+0
MOVLW
255
MOVWF
FARG_SET_MOTOR_MOTOR2+1
MOVLW
170
MOVWF
FARG_SET_MOTOR_MOTOR1+0
CLRF
FARG_SET_MOTOR_MOTOR1+1
CALL
libre_SET_MOTOR+0
GOTO
L__main23
L__main38: L__main23: ;libre.mbas,118 ::
end select
L__main21: ;libre.mbas,122 :: GOTO
WEND
L__main16 29
GOTO
$+0
; end of _main
Caracterí sticas del módu lo blu etooth 06
Constreña de fabrica : 1234
Característi cas de tran sm isión
Fabricación del Puente H 30
hc
Es q u em átic o s bási c os
31