Download - Control Inalámbrico de Brazo Robótico
-
8/10/2019 Control Inalmbrico de Brazo Robtico
1/51
Control Inalmbrico de un brazo deRobot a travs de un RF pic
Resumen
La presente prctica tiene como objetivo implementar un control inalmbrico por
RF utilizando el Flash Starter Kit de Microchip de manera que se obtena
movilidad de un brazo de robot en el cual se sustituir el m!dulo que contiene los
botones de control " proramar un aloritmo de control para los cinco rados de
libertad del brazo mediante el transmisor del RF#IC$%&'()*
#osteriormente se dise+ar " proramar un aloritmo para recibir la se+al
de control enviada a &in de implementar una inter&ase l!ica " de potencia para
enviar la se+al de control recibida*
Dispositivos y lista de equipo
RF#IC &lash starter ,it Fuente de poder -. /ual 0rac,in Modelo1 -#C23434/* Mult5metro Flu,e $() Series $(4* Robotic 6rm 0rainer de 78iKit 44(. #IC$'F'('
Resistencias de $449 334" $, 0I#$$$ " 0I#$$) C/:)$);
1
-
8/10/2019 Control Inalmbrico de Brazo Robtico
2/51
Marco Terico
Espectro RF
Muchosproductosde consumoe industriales hacen uso de la ener5a electromantica*
9 inclu"endo ondasde radio " microondas9 las cuales
son usadas para proveer comunicaciones" radiodi&usi!n " otros servicios* Las ondas de
radio " microondas son &ormas de ener5a electromantica que son com?nmente
descritas por el trmino de radio&recuencia o RF* Las emisiones de RF " los &en!menos
asociados pueden ser discutidos en trminos de ener5a9 radiaci!n o campos* La
radiaci!n es de&inida como la propaaci!n de ener5a a travs del espacio en &orma de
ondas o part5culas* La radiaci!n electromantica puede ser descrita como ondas de
ener5a elctrica" mantica movindose conjuntamente a travs del espacio* @st
ondas son eneradas por el movimientode caras elctricas tales como en un objeto
conductor metlico o antena por ejemplo9 el movimiento alternante de caras en una
antena usado para la di&usi!n de radio " televisi!no en la antena de una estaci!n de base
celular eneran ondas electromanticas que son radiadas desde el transmisor " que son
recibidas por una antena tal como una antena de techo9 antena de radio de autom!vil o
una antena de tel&ono celular* @l trmino campo manticoes usado para indicar la
presencia de ener5a electromantica en un luar dado* @l campo RF puede ser descritoen trminos de potenciade campo elctrico"Ao mantico en un luar dado*
Figura 1. Caractersticas de una onda
2
http://www.monografias.com/trabajos12/elproduc/elproduc.shtmlhttp://www.monografias.com/trabajos14/consumoahorro/consumoahorro.shtmlhttp://www.monografias.com/trabajos5/elso/elso.shtml#ondashttp://www.monografias.com/trabajos/lacomunica/lacomunica.shtmlhttp://www.monografias.com/trabajos/enuclear/enuclear.shtmlhttp://www.monografias.com/trabajos13/genytran/genytran.shtmlhttp://www.monografias.com/trabajos15/kinesiologia-biomecanica/kinesiologia-biomecanica.shtmlhttp://www.monografias.com/trabajos5/adoles/adoles.shtmlhttp://www.monografias.com/trabajos/eltelefono/eltelefono.shtmlhttp://www.monografias.com/trabajos12/magne/magne.shtml#cahttp://www.monografias.com/trabajos14/trmnpot/trmnpot.shtmlhttp://www.monografias.com/trabajos13/electmag/electmag.shtml#CAMPOhttp://www.monografias.com/trabajos12/elproduc/elproduc.shtmlhttp://www.monografias.com/trabajos14/consumoahorro/consumoahorro.shtmlhttp://www.monografias.com/trabajos5/elso/elso.shtml#ondashttp://www.monografias.com/trabajos/lacomunica/lacomunica.shtmlhttp://www.monografias.com/trabajos/enuclear/enuclear.shtmlhttp://www.monografias.com/trabajos13/genytran/genytran.shtmlhttp://www.monografias.com/trabajos15/kinesiologia-biomecanica/kinesiologia-biomecanica.shtmlhttp://www.monografias.com/trabajos5/adoles/adoles.shtmlhttp://www.monografias.com/trabajos/eltelefono/eltelefono.shtmlhttp://www.monografias.com/trabajos12/magne/magne.shtml#cahttp://www.monografias.com/trabajos14/trmnpot/trmnpot.shtmlhttp://www.monografias.com/trabajos13/electmag/electmag.shtml#CAMPO -
8/10/2019 Control Inalmbrico de Brazo Robtico
3/51
@l trmino radio&recuencia9 tambin denominado espectro de radio&recuencia o RF9
se aplica a la porci!n del espectro electromantico en el que se pueden enerar ondas
electromanticas aplicando corriente alterna a una antena* /ichas &recuencias se
pueden dividir en @LF9 SLF9
-
8/10/2019 Control Inalmbrico de Brazo Robtico
4/51
Figura 2. Robotic Arm Trainer Kit.
@l 7.I244( R7;70IC 6RM 0R6IJ@R es un ,it que muestra los principios bsicos
de moci!n " sensado rob!tico* @l ,it inclu"e un control de ) interruptores conectado al
brazo mediante un cable de G hilos*
Como primer paso se desconect! el control de la parte trasera " se retir! la tapa
de la base in&erior9 con lo que qued! al descubierto el compartimiento de las bater5as* @n
la &iura siuiente se puede observar que la alimentaci!n proporcionada por las bater5as
se conecta con una terminal de G pines de color blanco =parte superior> que sirve para
conectar el control*
Figura 3 .Compartimiento de Bateras en la base del Brazo.
Bisto de &rente =con la base apo"ada> los pines corresponden a ) motores9 % niveles de
voltaje " $ tierra como se muestra en la siuiente tabla1
Figura . Conector de ! pines
4
-
8/10/2019 Control Inalmbrico de Brazo Robtico
5/51
#IJ Control o Boltaje$ 2 3Bcc =con #ilas>% Motor de los /edos3 Motor del Codo
: Motor de la ;ase) 0odos los Motores =Com?n 4B>' Motor del ombro( Motor de la Mu+ecaG 3Bcc =con #ilas>
Tabla 2. Relaci"n de los #ines $ los %otores del Brazo de Robot.
Los voltajes en las terminales $ " G s!lo eEisten en presencia de las : bater5as*
stas a su vez son necesarias cuando el movimiento del robot es diriido por el control*
Sin embaro en el eEperimento las bater5as &ueron removidas " para suministrar lapotencia se conectaron las terminales de la &uente de voltaje Leader reulada a 3 " 23 a
travs de un arrelo de transistores*
Diagramas Esquemticos
5
-
8/10/2019 Control Inalmbrico de Brazo Robtico
6/51
Figura &.'iagrama a blo(ues del sistema para lle)ar a cabo el control inal*mbrico del brazo.
#ara poder lorar el control de los motores implementamos un s8itch electr!nico
de potencia9 usando transistores 0I# $$$ " 0I# $$)* Cada par de transistores se usa paracontrolar un motor*
Figura +. Cone,i"n de 1 %otor.
@l &uncionamiento del circuito es el siuiente1 Como un demultipleEor cambia a la
salida solamente un bit por combinaci!n =en este caso hace 4N mientras que los dems
siuen en $N>9 en el circuito anterior no se pueden encender los optoacopladores al
mismo tiempo sino uno a la vez* @n la parte izquierda9 cuando a la salida del C/:)$);
es $N =) volts> no ha" di&erencia de potencial " entonces no ha" corriente por eloptoacoplador por lo que se encuentra apaada esa parte9 cuando llea 4N del
demultipleEor eEiste di&erencia de voltaje " entonces ha" corriente por el L@/ lo cual
enciende al optotransistor " entonces eEiste una corriente de colector a emisor9 al estar
conectado el emisor del optoacoplador a la base del 0I#$$$9 eEiste una corriente en la
base de ste ?ltimo " entonces lo enciende enerando una corriente que va de colector a
0eclado
0O
RO Control@tapa depotencia
6
-
8/10/2019 Control Inalmbrico de Brazo Robtico
7/51
emisor del 0I# por ser npn " entonces eEiste corriente en el motor la cual enera un
voltaje en l con polaridad 2 de arriba hacia abajo9 haciendo irar al motor en un sentido*
Cuando la parte positiva es la que recibe el 4 por parte del demultipleEor9 ha" una
corriente en el L@/ lo cual enciende al optotransistor " enera una corriente de colector a
emisor del optotransistor9 la cual a su vez enera una corriente en la base del 0I#$$) porestar conectado a ella9 al haber una corriente de base9 sta lora que se encienda el 0I#
enerando corriente de emisor a colector por ser pnp " entonces ha" una corriente a
travs del motor polarizndolo con un voltaje 2 visto de arriba hacia abajo9 entonces al
tener polaridad contraria a la vista cuando se enciende la parte izquierda9 el motor irar
en direcci!n contraria a la primera*
@l mismo diarama se repite otras : veces9 una vez por cada motor9 de modo que
enerando las se+ales de control adecuadas el brazo puede moverse en los ) rados delibertad*
Como podr verse si ambas se+ales de control se activan al mismo tiempo9 se
producir un corto circuito en las terminales del emisor* /el mismo modo9 dado que la
&uente de alimentaci!n para todos los motores ser5a la misma9 la corriente disminuir en
cada motor que se active por eso no es recomendable que se active ms de un motor a la
vez*
Funcionamiento del Circuito.
;sicamente una vez enviada la in&ormaci!n mediante por RF9 la in&ormaci!n que se
obtiene de las salidas del #ic del Receptor son codi&icadas para tener una salida de $'
bits9 lo cual hace posible que mediante el cambio de $ s!lo bit9 se pueda activar el motor
del brazo rob!tico correspondiente*
@n la etapa de transmisi!n9 se tienen dos controles9 mediante los cuales se puedeseleccionar el movimiento que se espera realice el brazo " otra para enviar la se+al de
activaci!nAdesactivaci!n* @sto se hace mediante una modulaci!n 6SK a 3$) Mz9 que es
el rano en el cual trabaja el transmisor " el receptor del RF #ic*
7
-
8/10/2019 Control Inalmbrico de Brazo Robtico
8/51
La etapa de recepci!n9 simplemente recibe la se+al enviada por el transmisor9 la
remodula " entrea a la salida un c!dio de : bits9 o en su de&ecto de $% bits mediante un
arrelo matricial* @s precisamente de esta salida que entrea el receptor de donde se
toma la in&ormaci!n para controlar los cinco rados de libertad del brazo rob!tico*
@l m!dulo #IC,it 0M FL6S Starter ,it9 cuenta con eEpansion eader =P3>9 en el
cual se puede introducir el m!dulo de transmisi!n1 rIC $%F'()* Se remueve el
#IC$'F'(9 tal como se indica en la siuiente imaen9 " por medio del cable
-
8/10/2019 Control Inalmbrico de Brazo Robtico
9/51
Consta de un pic soldado9 pines de coneEi!n9 dos potenci!metros -#4 " -#$9 " dos
botones -#3 " -#:* 6dems contiene un jumper para poder seleccionar alimentaci!n del
pic,it o alimentaci!n de la bateria que se encuentra en la parte posterior*
6 continuaci!n se muestra el siuiente diarama esquemtico para ste ?ltimo m!dulo1
6 continuaci!n se muestra el siuiente prorama que &ue modi&icado para loar lo
siuiente1
#or medio de -#3 se envi! palabras binarias que en el receptor se recibir5an como
c!dio para selector de movimiento del brazo robot* 6l no presionar el bot!n #;3 se envi!
esta in&ormaci!n9 " al momento de presionarlo se dejar5a de transmitir* Si se presionaba
#;:9 se enviar5a un bit de selecci!n onAo&& para cada motor* @ste prorama se muestra a
9
-
8/10/2019 Control Inalmbrico de Brazo Robtico
10/51
continuaci!n9 " se documenta por medio de recuadros que indican las partes modi&icadas
" areadas para poder lorar la transmisi!n tal como se eEplic!*
Algoritmos de T( y R(.
Transmisi)n.;----------------------------------------------------------------------; Software License Agreement;; The software supplied herewith by Microchip Technology Incorporated; (the "Company" for its !ICmicro Microcontroller is intended and; supplied to you# the Company$s customer# for use solely and; e%clusi&ely on Microchip !ICmicro Microcontroller products';; The software is owned by the Company andor its supplier# and is; protected under applicable copyright laws' All rights are reser&ed'; Any use in &iolation of the foregoing restrictions may sub)ect the; user to criminal sanctions under applicable laws# as well as to; ci&il liability for the breach of the terms and conditions of this; license';; T*IS S+,T-A./ IS !.+0I1/1 I2 A2 "AS IS" C+21ITI+2' 2+ -A..A2TI/S#; -*/T*/. /3!./SS# IM!LI/1 +. STAT4T+.5# I2CL41I26# 74T 2+T LIMIT/1; T+# IM!LI/1 -A..A2TI/S +, M/.C*A2TA7ILIT5 A21 ,IT2/SS ,+. A; !A.TIC4LA. !4.!+S/ A!!L5 T+ T*IS S+,T-A./' T*/ C+M!A25 S*ALL 2+T#; I2 A25 CI.C4MSTA2C/S# 7/ LIA7L/ ,+. S!/CIAL# I2CI1/2TAL +.; C+2S/84/2TIAL 1AMA6/S# ,+. A25 ./AS+2 -*ATS+/0/.';;9999999999999999999999999999999999999999999999999999999999999999999999
;; ,ilename: %mit'asm; 1ate: April ; ,ile 0ersion: ?'=; Assembled using: M!ASM =>'>= .eleased; Author: Ste&en 7ible; Company: Microchip Technology Inc';9999999999999999999999999999999999999999999999999999999999999999999999; ,iles re@uired: p?fB lights L/1 1= on the; !ICEit(tm ?' !ressing push button 6!G lights L/1 1?';; rc&rDanalogDdisplay'asm;; !ressing transmitter module push button 6!> lights L/1s 1=91B on; the !ICEit(tm ? with the upper H9bit &alue read from the
10
-
8/10/2019 Control Inalmbrico de Brazo Robtico
11/51
; transmitter module ?=9bit A1 channel = connected to potentiometer; 6!=' !ressing push button 6!G lights L/1s 1=91B with the upper; H9bit &alue read from A1 channel ? connected to potentiometer 6!?';; The protocol is a simplied FeeLo@(r protocol compatible with; the *CS?=? %ed code products' This recei&e code was adapted from; Microchip Technology application note A2BG=';
; The ?=9bit analog &alue is placed into the ?9bit counter eld of; the simplied FeeLo@(r protocol';;9999999999999999999999999999999999999999999999999999999999999999999999
list pJ?fB< ; list directi&e to dene processor Kinclude p?fB
CS.G CS.< CS. CS.B CS.H
Count Count 7itCount Time*i TimeLo
,unc7its ; ,unction 7its
endc
;9999999999999999999999999999999999999999999999999999999999999999999999; 1enes;9999999999999999999999999999999999999999999999999999999999999999999999
; Set up 6!I+ !ort (Section >'= ; ,unction of 6!I+ pins depend on: ; Conguration 7its (C+2,I6 (Section P'? ; -eaE !ull9up .egister (-!4 (Section >''? ; Interrupt9on9change 6!I+ .egister (I+C7 (Section >'' ; +ption .egister (+!TI+2D./6 (.egister G9? ; TIM/.? Control .egister (T?C+2 (.egister
-
8/10/2019 Control Inalmbrico de Brazo Robtico
12/51
; A1 Control .egister (A1C+2= (Section B'= (!IC?,B< +nly
Kdene !+T= 6!I+# = ; (Analog Input !otentiometer 6!=Kdene !+T? 6!I+# ? ; (Analog Input !otentiometer 6!?Kdene T31 6!I+# ; (+utput Transmit 1ataKdene !7> 6!I+# > ; (Input +nly !ush button switch 6!>Kdene !7G 6!I+# G ; (Input !ush button switch 6!GKdene .,/2A 6!I+# < ; (+utput ., /nable
; 1ene for T.ISI+ .egister (Section >'? ; ; 6!I+ is an 9bit wide# bi9directional port' The corresponding data ; direction register is T.ISI+' Setting a T.ISI+ bit (J ? will maEe ; the corresponding 6!I+ pin and input' Clearing a T.ISI+ bit (J = ; will maEe the corresponding 6!I+ pin an output' The e%ception is ; 6!># which is input only and its T.IS bit will always read as a Q?Q'
; 6!I+ !ins J %%?=Kdene 6!T.IS 7Q===??=??Q
; delaystimings
Kdene T64A.1 1QGQ ; G 3 T/Kdene !./AM7 1Q?Q ; !reamble length J ? pulses
;9999999999999999999999999999999999999999999999999999999999999999999999; !rogram Memory;9999999999999999999999999999999999999999999999999999999999999999999999
; !rogram Memory +rganiNation (Section '?
+.6 =%=== ; ./S/T 0ector
nop ; for IC1 use goto I2ITALIR/ ; goto I2ITALIR/ +.6 =%==G ; Interrupt 0ector mo&wf wDtemp ; sa&e - register swapf STAT4S# - ; swap status to be sa&ed into - bcf STAT4S# .!= ; 9999 Select 7anE = 99999 mo&wf statusDtemp ; sa&e STAT4S register
;9999999999999999999999999999999999999999; Interrupt Ser&ice .outine (IS.;; 1escription:;;9999999999999999999999999999999999999999
; Interrupt9on9change (Section >'' and P'G'>;; An input change on 6!I+ change sets the 6!I, bit' The interrupt can; be enableddisabled be settingclearing the 6!I/ bit' Indi&idual pins; are congured through the I+C register (see I2ITIALIRATI+2 below';; Clear the I+C interrupt by:; a Any read or write of 6!I+' This will end the mismatch condition'; b Clear the ag bit 6!I,
mo&fw 6!I+ ; read 6!I+ bcf I2TC+2# 6!I,
;9999999999999999999999999999999999999999
swapf statusDtemp# - ; swap statusDtemp into -# sets banE to originalstate mo&wf STAT4S ; restore STAT4S register swapf wDtemp# , swapf wDtemp# - ; restore - register
12
-
8/10/2019 Control Inalmbrico de Brazo Robtico
13/51
-
8/10/2019 Control Inalmbrico de Brazo Robtico
14/51
bcf STAT4S# .!= ; 9999 Select 7anE = 99999
return
;9999999999999999999999999999999999999999999999999999999999999999999999; Subroutine ./A1DA2AL+6DA2=; ./A1DA2AL+6DA2?;
; 1escription: .ead analog channel = (A2= or ? (A2?';; Constants: none;; 6lobal 0ariables: none;; InitialiNation: none;; +utput: A1./S* and A1./SL contain ?=9bit A1 result )ustied; according to A1C+2=# A1,M bit';;9999999999999999999999999999999999999999999999999999999999999999999999
./A1DA2AL+6DA2=
bcf A1C+2=# C*S? ; select analog channel A2= bcf A1C+2=# C*S=
goto ./A1DA2AL+6
./A1DA2AL+6DA2?
bcf A1C+2=# C*S? ; select analog channel A2? bcf A1C+2=# C*S=
./A1DA2AL+6
bsf A1C+2=# A1+2 ; Turn on A1C module
; After selecting a new channel# allow for suUcent sample time' ; The amount of sample time depends on the charging time of the ; internal charge holding capacitor (Section B''
mo&lw 1QQ ; At G M*N# a us delay mo&wf T/M! ; (us J us V >us V ?us decfsN T/M!# , goto W9?
bsf A1C+2=# 6+ ; start A1 con&ersion
btfsc A1C+2=# 6+ ; has A1 con&ersion completedX goto W9?
bcf A1C+2=# A1+2 ; Turn oO A1C module (consumes no operating current
return
;9999999999999999999999999999999999999999999999999999999999999999999999
; Subroutine: -ait%T/;; 1escription:;; Constants:;; 6lobal 0ariables:;; InitialiNation: - % G==us length of delay re@uired;; +utput: Count# Count as decrementing counters;
14
(( )uan&o no se presiona el"ot*n %+3 se llama esta ,un!i*para &espus ir aRE./..
En esta ,un!i*n se!on,igura el mo&ulo./) para lograr laa&quisi!i*n por me&io&el poten!i*metro 3'
El valor a&quiri&o seguar&a en ./RE
-
8/10/2019 Control Inalmbrico de Brazo Robtico
15/51
;9999999999999999999999999999999999999999999999999999999999999999999999
-ait%T/ mo&wf Count ; Y?Z
wait%lpmo&lw 1QBPQ ; Y?Z
mo&wf Count ; Y?Z
waitG==lp nop ; Y?Z nop ; Y?Z decfsN Count#, ; Y?Z goto waitG==lp ; YZ; 99999999; BP % < J >PP< V
-
8/10/2019 Control Inalmbrico de Brazo Robtico
16/51
; The !IC?,PB< de&ices ha&e one analog comparator' The inputs to; the comparator are multiple%ed with the 6!= and 6!? pins' There is; an on9chip Comparator 0oltage .eference that can also be applied to; an input of the comparator' In addition# 6! can be congured as; the comparator output' The Comparator Control .egister (CMC+2; contains bits to control the comparator' The 0oltage .eference; Control .egister (0.C+2 controls the &oltage reference module'
; Comparator Conguration (,igure 9; bcf CMC+2# CI20 ; Comparator +utput In&ersion: not in&erted; bcf CMC+2# C+4T ; Comparator +utput bit: 0inV 0in9; bcf CMC+2# CIS ; Comparator Input Switch: 0in9 connectos to Cin9
; CM:CM= J ??? 9 Comparator +O (lowest power bsf CMC+2# CM ; Comparator Mode bit bsf CMC+2# CM? ; Comparator Mode bit ? bsf CMC+2# CM= ; Comparator Mode bit =
; 0.C+2 (.egister 9 bsf STAT4S# .!= ; 9999 Select 7anE ? 99999
bcf 0.C+2# 0./2 ; C0ref circuit: powered down# no Idd drain
; bcf 0.C+2# 0.. ; C0ref .ange Selection: *igh .ange
; bcf 0.C+2# 0.> ; C0ref &alue selection bit >; bcf 0.C+2# 0. ; C0ref &alue selection bit ; bcf 0.C+2# 0.? ; C0ref &alue selection bit ?; bcf 0.C+2# 0.= ; C0ref &alue selection bit =
bcf STAT4S# .!= ; 9999 Select 7anE = 99999
;9999999999999999999999999999999999999999; Analog9to91igital Con&erter (A1 Module (Section B'= (!IC?,B< +nly;; The analog9to9digital con&erter (A1 allows con&ersion of an analog; input signal to a ?=9bit binary representation of that signal' The; !IC?,B< has four analog inputs multiple%ed into one sample and hold; circuit' There are two registers to control the functions of the A1
; module:; A1 Control .egister (A1C+2=; Analog Select .egister (A2S/L;; 2ote: -hen using 6!I+ pins as analog inputs# ensure the T.ISI+ register; bits are set (J ? for input'
bcf A1C+2=# A1,M ; A1 .esult ,ormed: left )ustied bcf A1C+2=# 0C,6 ; 0oltage .eference: 0dd bcf A1C+2=# A1+2 ; A1C is shut9oO and consumes no operating current
bsf STAT4S# .!= ; 9999 Select 7anE ? 99999
; select A1 Con&ersion ClocE Source: ,oscH bcf A2S/L# A1CS ; A1 Con&ersion ClocE Select bit bcf A2S/L# A1CS? ; A1 Con&ersion ClocE Select bit ?
bsf A2S/L# A1CS= ; A1 Con&ersion ClocE Select bit =
; select 6!I+ pins that will be analog inputs: 6!=A2=# 6!?A2? bcf A2S/L# A2S> ; Analog Select 6!GA2>: digital I+ bcf A2S/L# A2S ; Analog Select 6!A2: digital I+ bsf A2S/L# A2S? ; Analog Select 6!?A2?: analog input bsf A2S/L# A2S= ; Analog Select 6!=A2=: analog input
bcf STAT4S# .!= ; 9999 Select 7anE = 99999
;9999999999999999999999999999999999999999
16
-
8/10/2019 Control Inalmbrico de Brazo Robtico
17/51
; TIM/.? Module with 6ate Control (Section ''?;; /ach of the 6!I+ pins# e%cept 6!># has an indi&idually congurable; weaE internal pull9up' Control bits -!4% enable or disable each; pull9up' .efer to .egister >9?' /ach weaE pull9up is automatically; turned oO when the port pin is congured as an output' The pull9ups; are disabled on a !ower9on .eset by the 2+TD6!!4 bit (see +!TI+2D./6 below'
bsf STAT4S# .!= ; 9999 Select 7anE ? 99999
; 6!I+ !ins J %%
-
8/10/2019 Control Inalmbrico de Brazo Robtico
18/51
;9999999999999999999999999999999999999999; Interrupt9on9Change .egister (I+C7 (Section >'';; /ach of the 6!I+ pins is indi&idually congurable as an interrupt9; on9change pin' Control bits I+C7% enable or disable the interrupt; function for each pin' .efer to .egister >9' The interrupt9on9change; is disabled on a !ower9on .eset';
; 2ote: 6lobal interrupt enables (6I/ and 6!I/ must be enabled for; indi&idual interrupts to be recogniNed'
bsf STAT4S# .!= ; 9999 Select 7anE ? 99999
; 6!I+ !ins J %%?= mo&lw bQ===??===Q mo&wf I+C7 ; Interrupt9on9change enabled: 6!># 6!G
bcf STAT4S# .!= ; 9999 Select 7anE = 99999
;9999999999999999999999999999999999999999; !eripheral Interrupt /nable .egister (!I/? (Section '''G;; The !I/? register contains peripheral interrupt enable bits';; 2ote: The !/I/ bit (I2TC+2 must be set to enable any; peripheral interrupt'
bsf STAT4S# .!= ; 9999 Select 7anE ? 99999
bcf !I/?# //I/ ; // -rite Complete Interrupt: disabled bcf !I/?# A1I/ ; A1 Con&erter Interrupt (!IC?,B< +nly: disabled bcf !I/?# CMI/ ; Comparator Interrupt: disabled bcf !I/?# TM.?I/ ; TM.? +&erow Interrupt: disabled
bcf STAT4S# .!= ; 9999 Select 7anE = 99999
;9999999999999999999999999999999999999999; Interrupt Control .egister (I2TC+2 (Section '''>;
; The I2TC+2 register contains enable and disable ag bits for TM.=; register o&erow# 6!I+ port change and e%ternal 6!I2T pin; interrupts'
bcf I2TC+2# !/I/ ; disable !eripheral Interrupt /nable bit bcf I2TC+2# T=I/ ; disable TM.= +&erow Interrupt /nable bit bcf I2TC+2# I2T/ ; disable 6!I2T /%ternal Interrupt /nable bit bsf I2TC+2# 6!I/ ; enable !ort Change Interrupt /nable bit
; bcf I2TC+2# 6I/ ; disable global interrupts
;9999999999999999999999999999999999999999999999999999999999999999999999;9999999999999999999999999999999999999999999999999999999999999999999999; Main !rogram;9999999999999999999999999999999999999999999999999999999999999999999999
;9999999999999999999999999999999999999999999999999999999999999999999999
MAI2
bcf .,/2A ; 1isable Transmitter bsf I2TC+2# 6I/ ; enable global interrupts
;9999999999999999999999999999999999; Scan push buttons;9999999999999999999999999999999999
SCA2!7
18
En esta parte !e!amos siel "ot*n %+3 &e la tareta&el : se en!ontra"a
presiona&o' ientras no sepresionara se man&a"a atraer el valor anal*gi!o porme&io &e ; !ush 7utton 6!> pressedX goto S!7 mo&lw =%> ; ,unction S= selected iorwf ,unc7its# ,
call ./A1DA2AL+6DA2= ; read analog channel A2=
;S!7? ; btfsc !7G ; !ush 7utton 6!G depressedX ; goto S!7 ; no# )ump o&er
; mo&lw =%G> ; ,unction S? selected ; iorwf ,unc7its# , ;call ./A1DA2AL+6DA2? ; read analog channel A2?
S!7 mo&lw =%,, andwf ,unc7its# - ; -as any switch depressedX btfss STAT4S# R goto 3MIT ; 5es# transmit buOer
bcf .,/2A ; 2o# disable Transmitter
sleep ; !ut !ICmicro to sleep goto SCA2!7 ; 4pon waEe9up on pin change# scan push buttons
;9999999999999999999999999999999999; ll in transmission buOer;9999999999999999999999999999999999
3MIT
bsf .,/2A ; /nable Transmitter
mo&lw =%B> ; send Serial numbermo&wf CS.=
mo&fw ,unc7its ; send ,unction 7its mo&wf CS.?
; send ?9bit Counter ; ; send analog &alue (this is modied from the %ed
; FeeLo@(r protocol; these two elds are normally; used for ?9bit counter &alue
;
; bsf STAT4S# .!= ; 99999 Select 7anE ? 99999; CL., A1./SL ; A1./SL .esult; bcf STAT4S# .!= ; 99999 Select 7anE = 99999
7T,SC !7G6+T+ A!A6A1+6+T+ !./21I1+
!./21I1+;7S, STAT4S#.!= ; 99999 Select 7anE ? 99999
M+0L- bQ?=======Q
6+T+ C+2TI24A
A!A6A1+
19
o&as estas l$neas se !olo!aron!omo !omentario #a que none!esitar$amos el "ot*n %+4'
e !e!a si se logr*que el "ot*n %+3 no,uera presiona&o'
i se a&quiri* elvalor anal*gi!opor no presionar%+3 se realiza< := >>
En esta ,un!i*n sea"ilita el transmisor'
e env$a el valor &e laa&quisi!i*n &elpoten!i*metro en )R
/espus !e!amos sipresionamos el "ot*n%+4' i estapresiona&o se va a%RE/=/' i noesta presiona&o se va a
.%../'
e asigna al ?RE si ,uepresiona&o