You are on page 1of 17

Taller de Microbtica

Temario
1. Introduccin y mecnica
1.1 Presentacin y objetivos
1.2 Comprobacin del material
1.3 Torre Bot: pautas para construir el microbot
1.4 Mecnica: motores y estructura
1.5 Prueba del microbot con el programa CT293+

2. Programacin I
2.1 Tarjetas CT6811
2.2 Programacin en ensamblador del 68HC11: as11 y ejemplos sencillos
2.3 Programas de comunicaciones: puerto serie, norma RS-232, programas ctdialog, mcboot.
2.4 Tarjeta CT293+: etapa de potencia y sensores

3. Programacin II y microbtica
3.1 Interrupciones : ejemplos y grabacin en 68HC11-A1
3.2 Experimentos, concursos, otros microbots, otras tarjetas de control (uClinux).

4. Hardware de control
4.1 Drivers de la tarjeta CT293+. Puente en H
4.2 LDR's, potencimetros y su programacin
4.3 Motores paso a paso y drivers
4.4 Robots articulados: control en bucle cerrado
4.5 Programacin cliente-servidor

5. Cierre
5.1 Utilizacin de los microbots en el futuro. Otros proyectos
5.2 Puesta a punto de los microbots y concurso final

Taller de Microbtica

La TorreBOT

Nivel de COOPERACIN

Nivel de COMUNIDAD

Nivel de INTELIGENCIA

Nivel de CONTROL

Nivel de REACCIN

Nivel FSICO

Comprende los sistemas en los cuales, a partir de


un Nivel de Comunidad, se planifican o programan
los microbots para que tengan conocimiento de la
existencia de otros, tal que posean la capacidad de
cooperar para el buen desarrollo de una tarea.
Se trata de la puesta en funcionamiento de ms de
un microbot dentro de un mismo entorno de forma
simultnea y sin que ninguno de ellos tenga
conocimientos explcitos de la existencia de otros en
su mismo entorno.
Abarca el planificador a largo plazo; en este nivel
se introducen los objetivos del
microbot que tienen relativa independencia de los
sensores.
Incluye los circuitos ms bsicos que relacionan
las salidas de los sensores con las restantes
unidades.
Est formado por la batera de sensores
independientemente de su naturaleza,
as como los sistemas bsicos para su manejo.
Comprende la estructura fsica, las unidades
motoras y las etapas de potencia.

Taller de Microbtica

SERVOMECANISMO FUTABA S3003


Servomecanismo Futaba S3003

Motor utilizado en aplicaciones de aeromodelismo. Forma parte de una amplia familia siendo el
ms barato de todos. Nosotros lo utilizamos porque la relacin calidad-prestaciones-precio es muy
buena, compitiendo sobretodo con motores del tipo Maxon, Minimotor, etc

Seal de control del servomecanismo

La seal que controla el servo es del tipo PWM. En este caso, el ancho del pulso en lugar de
controlar la velocidad, lo ms habitual en este tipo de seales, controla la posicin. Los valores que
definen el periodo y los anchos de la seal se representan en la figura de arriba.

Taller de Microbtica

Caja de engranajes

Desmontando el circuito de control

Eliminando el tope mecnico

Taller de Microbtica

LOS SENSORES DE INFRARROJOS


Esquema y conexin a la CT293+

1. El sensor de infrarrojos es un CNY70. Sin entrar en detalles vamos a proceder a montarlo, en


captulos posteriores se explicar su funcionamiento y el circuito de polarizacin.
2. De las cuatro patas del sensor dos se conectan a masa por lo que las podremos corocircuitar, para
ahorrarnos un cable de conexin.
3. Utilizaremos el cable que ha sobrado del servomecanismo. Como tiene tres hilos soldaremos
cada uno de ellos con cada una de las patas del sensor. Recomendamos seguir el esquema de la
figura para que todos los sensores sean compatibles.
4. En el manual de usuario se recomienda conectar los motores y los sensores de una manera
determinada para que todas las explicaciones que hay a continuacin coincidan con la realidad.
Si optamos por seguir el orden que nosotros queramos, tal vez la orden ir recto producir que el
robot gire a la derecha. :-))

Taller de Microbtica

ESTRUCTURA DEL MICROBOT

Taller de Microbtica

CONEXIN DE LOS MOTORES Y SENSORES AL


MICROBOT

Taller de Microbtica

Diagrama de bloques del 68HC11 y de la tarjeta CT6811

Taller de Microbtica

Ensamblador del 68HC11 y comunicaciones serie


Programa LEDP:



 &
   
 "!$#%
'
()*,+),-$./-102,0$.43"5,*63-4),-8704)9020:;<-=*>0?@5,-><-4)2,0<-1!"ABCCD

E 7,<,0F3"),*+4)-$./-870>=0G08:-),+-4)90?@5,-9#IH?<04),?-1=05@A,BCCJ





K
L
H

.
M
3

5

0

.

0
4
?
,
<
@
0

7
>
0

0

?

:

H

0

?

=
O
0
8
N

7
O
0
$
/
3
,
4
+
1

0
>
5

5

0
>
=

=
@
0
,
5
>

<
4

)
,
2

0

<
1


"
!
,
A

B

C
J
C

 
:*.H0?/S*

QPRRR

 L##TPCRRR
#IUPVR
W-$.GMH-4)9=0>07,<-=*105XG"H,<OL#A
K,!##TPCRRR

 YQU4PZZZZ
[04-45H4S-)F;4?-F3-,;7,=04:
 Y
YQU4R
,\4 O=04:
#:*.H0?"S$*
[0304<4H)905X3")*:,07,*
,\/
]D^`_4abdc1e/fMghi^kjmlncopqorstbdp4_4bucvwcxh'y{z}|'~ 
Compilador AS11 y programa de comunicaciones DOWNMCU:

ikABCC4!/A,BCC9,4L
Z)00-),0O-4770.G0)X#MK'&  F/04)8CDRD
\;.4G0)1*60))*)47OR
ikABCC4!/A,BCC4$M@,4,$"
\"LiJCJRML\*/H0$.4G/),04CAM
4?"*1=0F3/)*,+),-$."-479-85,-10?4<),0?4-,=4*)Z4;H,0:),0<*8
),*>70-1)0H?0{"H-4)"> k50=*?{KC

;5708),070<10?@5,-10?4<),0?4-,=4*)-
!4),-?7L.MH,<4H0?=*{


k'
4?"*O:*))0:,<*
!-."-,4*1=05X3/)*,+)-."-[G/N<07
ikABCC4!/A,BCC
]D^`_4abdcO//gyMjcLv"scopqorstbdp4_bdcvwcxhiyiz~ rL/pqcsclncbrlnc'f"

Taller de Microbtica

Programacin de la tarjeta CT6811: programa CTDIALOG


23"4 . )%5"5*
6 . # . 3* '$#87(0 %("$#

 
"$#&%('$)'*+%('$,
- * -/. #10 "



  
23"$)39:#&"$,;%('
#<'52 - #=*>"*

     

!  

?@1ACB3D>E/EFA?/G$BHD/E>EJIKL;M5NPORQHSTQ/U/VPW5X;Y5WXTZHQ3L;O$[
\^]_>`RaJb ?3cedgfECdihkj<?Rlnm>o/c5p ]rq5sHq d `tPu$vPwPx/y$zHw(a E5{>{/BRd
|/}3u~3t>w$z3t>z>x$THw/}/zHw/}/>/tz3
/v>Pwz>tw>}3uv3/z @d:A >HwzPuw5z di/E5{
pP wz>>tHwzvPw @? ]/b$
pP >HwzHw(Pww>}T3w>}zHw/}/>/tz3 d>d/d
G z>3}(JxvH5vPw/}>t @gI/I>I/I>I/I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I/I>I/I>I/I>I/I>I/I
I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I/I>I/I>I/I>I/I>I/I
I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I/I>I/I>I/I>I/I>I/I
I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I>I/I/I>I/I>I!d>d/d>d/d>d ]5
|/}3u~3t3tz>z3w>>t
G ;x>/t/w5$z3t>z>x$ @ / h y(/3w(
?@1ACB3D>E/EFA?/G$BHD/E>EJI(QUPK53>L3ZHQ3L;O$[

?/G \J(P] mf wz>v33} ECdihj&?lnm3o/c5p ]rq5sHq d \v3vPwPx/y$zHw E{/{>B


G w5/Hw>w>|/ p (z3tPy(>w/}>w5z> 
pP wz>>t3 5 @? ]>bR
|(3>Py$HwvPw/}>t3t>}>w>(v3>}3t>}>z>3w// d/d>d/d>d >t3}/w3v33}w(H/;yRPw5/vH/
C&/5>>(FH$P<>5P5(
e

Taller de Microbtica
 

  
   "!#"$%'&(*)
 +   )&#  *%!

,.-- -- -- -- -- -- -- -

0/1*2 34657218 9:62


 
  
   "!#"$%'&(*)
 +   )&#   

- -- -- -- -- -- -- --;

0/1*2 34657218 9:62


<>=
?A@CBD EGFH IJ KMLON*P'LOQ6@RQ SUTVFXWYFB F*QSZQP[O\]K]^#QP_;QP`P[acbM^edgfh\jiek

Programa de ejemplo: "menu.asm"


l0mn nnn nn nn nn nn nn nn nn nn nn nn nn nnn nn nn nn nn nn nn nn nn nn nn nn nnn nn nn nn nn nn nn nn nn nn*m
tR$u0v w x y>z({ |{}-~)*5*/O*52 
lpoeq &r6s
o
lpon nnn nn nn nn nn nn nn nn nn nn nn nn nnn nn nn nn nn nn nn nn nn nn nn nn nnn nn nn nn nn nn nn nn nn nnjo
lpo y2 6 9'O9 565"6O12 969*56 56568*469:62 5 19 96 59 $6 .o
lpo &* 5 29"9*5: 5*/58 96951*9w* q  569 :51* Ao
lpo
o
lpo & *51*2 :58"2O956 9465 : 528 2 5 969O 29"9 65968 n
o
lpo 72 82 514"49 2Mo
l0mn nnn nn nn nn nn nn nn nn nn nn nn nn nnn nn nn nn nn nn nn nn nn nn nn nn nnn nn nn nn nn nn nn nn nn nn*m
$ w

5 3 4 
5 3 4

w 522 :58 92


l 6
l 79 685: 51 569

l w65 *62: 5 1$


!*x %
*$ $ w
*$ $ w
*$w
*$6%*w

5 3 4!
5 3 4*$
5 3 4 %
5 3 4&
5 3 4 )
%*  

/48615
9

28 2 

%*X5 4
! w5 : 8 9:
! w1556 8 9
$ q y>}
! &2"O8 2
$ q y>}M
! &2"O8 2
! w* 9
%'    
&z w6 
*"    
! w* 9

28 2 ! w*/64 81*5

y 9 9968 85 :56 95  26:51$


l

98 96 5


5 5 56861*9
l
l

l 568619 nn

z68 : 5 10 5 ]-

l 568619M nn

z68 : 5 10 5 ]-

l $69'6/ 965 9 :2/ #452

l 261"756 998 95 10 5

l>m6nn nnn nn nn nn nn nn nn nn nn nn nn nn nnn nn nn nn nn nn nn nn nn nn nn nn nnn nm
lo w 4 69 9615564689668 56 : 5 164656 2*56 5tg$u
o
lo 94 9 5 > 56 969*9 3465115465961*689668 56
o
lo &*rw%>YAVr 469Mo
lo X *%'& 19684*41*9 :26(82 6 5 551 8 9 8 5*58 / :62 o
l>m6nn nnn nn nn nn nn nn nn nn nn nn nn nn nnn nn nn nn nn nn nn nn nn nn nn nn nnn nm
1*5 5"8 9!w$ w*$wYX#  1556896
l & '59669*9 3465115465 48 9 8 5
%' *$6%*wYX
w6

Taller de Microbtica


   !"#%$'&#(*)+


,*-.#/10/2&435
*#67!/8 # 9:::  ;
<&=/*>*)0?/1& 3@, A CB


  ED.(>.F&#(&G.IHKJMLNOP  
&-G//Q&(0.2H=J
.-&


   R7 :7"!!"#SB

T>7 :7#UR62# 9 R:O


,*-.#/10/2&435.A"VW # 97X 7 9:  ;
<&=/*>*)0?/1& 35
#6*7!/8  9:9?U7


" 7Y*79>0//ZOH=V
\[* P/F:::  
(#[]?/Q^O
\_1` 97WR7 ?a
D
bMc#
&d8 
D*&G.R  
e,f1dF  *9 B
),V
\/ :"#AgB@"X 97P6*G6
D.#/Q" 7Y*7
h.#:7
c#
.-&

@0/-Gf1&


6* i
`(DR(.IH=>`*H>`
`((8j
[
,kW0
f](*)Kf,
*&j
`(DR(.IH=>`
`((8j
llllllllllllllll1j
`(DR(.IH=>`*H>`
`((8jEm4Bn(?6U79"7:>
0*j
`(DR(.IH=>`
`((8jpoCBn9&"P6* i1j
`(DR(.IH=>`
`((8jqf* S3rj
`(DMO

,0

Taller de Microbtica

Puerto A: Control Motores y sensores


1. El puerto A se localiza en la direccin $1000 del mapa de memoria.
2. El significado de sus bits es el siguiente:

3. La interpretacin del bit de un sensor es la siguiente:


bit a NIVEL ALTO '1' se ha detectado NEGRO
bit a NIVEL BAJO '0' se ha detectado BLANCO (No negro)
4. La interpretacin de los bits de los motores es:
MOTOR 1

MOTOR 2

BIT 5: ON (1) -> Derecha

DIRECCIN

BIT 6: ON (1) -> Izquierda

OFF (0) -> Izquierda


BIT 3: ON (1) -> Motor ON

ESTADO

OFF (0) -> Derecha


BIT 4: ON (1) -> Motor ON

OFF (0) -> Motor OFF

OFF (0) -> Motor OFF

5. Si se han conectado los motores y sensores como se dijo al principio:


Sensor 1
PA0

Sensor 2
PA1

Accin
Microbot

Estado
Motor 1

Direccin
Motor 1

Estado
Motor 2

Direccin
Motor 2

Byte

Avanzar

$18

Izquierda

$38

Derecha

$58

6. Ejemplo: Programa linea recta.

Taller de Microbtica

Puerto E: Entradas analgicas


1. El puerto E se localiza en la direccin $100A del mapa de memoria.
2. El significado de sus bits es el siguiente:

Otros sistemas/experiencias

Experimentos. Velas
Concursos
Sistemas basados en microcontrolador
Control de trenes
Cerraduras electrnicas

Taller de Microbtica

HARDWARE DE LA CT293+
DRIVER DE POTENCIA PARA LOS MOTORES

No se puede conectar el motor directamente a la tensin


positiva y negativa porque es necesario que stas se
puedan intercambiar para hacer girar al motor en ambos
sentidos. Para solucionar lo anterior se utiliza un
circuito conocido como puente en H.

S1

S3

S2

S4

Accin Motor

ON

OFF

OFF

ON

Derecha

OFF

ON

ON

OFF

Izquierda

ON

ON

OFF

OFF

Parado

OFF

OFF

ON

ON

Parado

OFF

OFF

OFF

OFF

Parado

ON

ON

ON

ON

Error

POLARIZACIN DE LOS SENSORES DE INFRARROJO


Los CNY70 se pueden polarizar de dos formas: En continua. (Utilizada en la CT293+) o con
modulacin de pulsos. Mediante la primera el circuito es muy sencillo y se obtienen muy buenos
resultados a la hora de distinguir entre negro y blanco. La segunda opcin permite un mayor alcance
pero se complica el circuito y el software.

Taller de Microbtica

MOTORES PASO A PASO


En un motor de CC el eje se puede detener en cualquier ngulo de giro, mientras que en uno
PP slo puede situarse en unos determinados. En concreto ' =
+ n. ' , donde 'n' corresponde al
nmero de pasos dados desde una posicin de partida. Generalmente los motores PP se caracterizan
por el nmero de pasos que hay que dar para girar 360, por ejemplo los hay de 48 y 200 pasos.
Lo bueno de estos motores es que para saber la posicin no hace falta cerrar el bucle, tan
slo conocer la posicin de partida. Lo malo es que consumen ms que uno equivalente en CC, y
que no giran tan rpido como los de continua.

Para mover el eje de estos motores hay que ir avanzando una posicin de la tabla siguiente. Segn
se haga en orden ascendente o descendente girar a la derecha o a la izquierda.
BIPOLAR

UINPOLAR

Taller de Microbtica

CONTROL EN BUCLE CERRADO


El control en bucle cerrado es necesario para la mayora de las aplicaciones de robtica.
Este tipo de control nos va a permitir conocer el estado de los motores y actuar sobre ellos cuando
se perciba alguna variacin no deseada de ste.
Con los motores paso a paso se tiene un control en bucle abierto, fcil de implementar pero
mantiene un alto grado de incertidumbre. Cualquier modificacin por error del eje del motor no ser
contemplada en el algoritmo de control y eso traer errores.
La tcnica descrita aqu se puede emplear tanto en motores paso a paso como en los de
continua, pero se suele aplicar sobre stos ltimos.

Ejemplo prctico: Control de posicin con potencimetro.

Se va a realizar un ejercicio prctico, mediante un potencimetro controlaremos la situacin


del eje de un motor. El potencimetro se encargar de generar la seal de referencia, que ms
adelante podr ser sustituida por una generada por ordenador o directamente por la CT6811.

You might also like