Charrobot - RoboCup Humanoid League 2006

Norberto Velázquez, Salvador Alejandro Velázquez, Juan Guillermo Fitch, Roberto Carlos Ramírez, Daniel Laborin

Panamerican University, Campus Guadalajara


Abstract Here we describe the design and realization of Charrobot , a humanoid robot that plays soccer manufactured by students, able to make several tasks, as walking, identifies objects like a soccer ball and approaches to it and kicks it. Also there will be described not only its primary functions, but all the constraints presented along and characteristics of our design like sizes, components, specifications and design of the structure and electronic system. Because we are presenting two robots, we will specified the two different program codes, one for the player and the other for the goal keeper.

This is the first time we participate in this League and the design we are presenting is totally new.

1 Introduction

From the beginnings of robotic we have been trying to emulate the movements of human beings initiating with some insects movements because of their great functionality and adaptability in certain lands and conditions. The actual challenge of robotic is to equal the mobility of the human being to make movements of great complexity and precision.

With this project we pretend to develop an adaptable prothesis to the legs of a person, with the objective and possibility that an invalid person could walk again and recover great part of he's activities.

We do not have already the design of the prothesis, because this project just begins, in fact the RoboCup competitions will be an opportunity to prove our designs and prototype.

Because of the necessity of automatization, technology and control has been developing because lots of tasks or processes are performed via robots, replacing men and keeping always the simplest and most comfortable way to do things, many ideas can be achieved thanks to these machines.

As robots are flexible enough to develop many or specific challenges, it's design, manufacturing and testing are important points to take care of.

2 Image of the robot

Fig.1. Image of the robot (Charrobot)
Fig.1. Image of the robot (Charrobot)

3 Name of the robot

Charrobot

4 Robot height

The height of the robot was determine by (1):

$$H = \min(H_{top} 2.2 \bullet H_{com}) \tag{1}$$

The total height (Htop) of our robot is of 52 cm, and the center of mass (Hcom) is at a distance of 27 cm from the floor. Applying this distances in equation (1), we obtain H.

$$H = \min(52cm, 2.2 \bullet 27cm)$$

Because H is 52 cm and contemplating that our robot is participating in the Kid Size Category it fulfills the next condition (2).

$$30cm \le H \le 60cm \tag{2}$$

$$30cm \le 52cm \le 60cm$$

5 Size of the robot

Fulfilling with the Humanoid Robots Specifications we will present de general sizes of the robot.

Each foot of the robot must fit in an area of (3):

$$A = \frac{H^2}{22} \tag{3}$$

$$A = \frac{52^2}{22} = 1352cm^2$$

The robot must fit in cylinder diameter of (4):

$$D = \frac{H}{2} \tag{4}$$

$$D = \frac{52}{2} = 26cm$$

The arms extensión maximally streched in horizontal direction is less than (5):

$$1.2 \bullet H \tag{5}$$

$$1.2 \bullet 52 = 62.4$$ cm

The robot does not possess a configuration where it is extended longer than (6):

$$1.5H\tag{6}$$

$$1.5 \bullet 52 = 78cm$$

The length of the legs Hleg=23.5, including the feet, satisfies (7):

$$.04 \bullet H \le H_{leg} \le .6H \tag{7}$$

$$.04 \bullet 52cm \le 23.5 \le .6 \bullet 52cm$$

The height of the head Hhead= 7.5cm, including the neck, satisfies (8):

$$0.1 \bullet H_{head} \le 0.2 \bullet H \tag{8}$$

$$0.1 \bullet 7.5cm \le 0.2 \bullet 52cm$$

Fig.2. Heights of the robot (Hhead,HTop,Hleg,Hcom )
Fig.2. Heights of the robot (Hhead,HTop,Hleg,Hcom )

6 Weight of the robot

The weight of the robot is of 2.1 kg and was design so that the torque of our motors could move all the joints in an efficient way. We decide to cut some of the unnecessary aluminum parts that will help us reduce weight without sacrificing resistance joints.

We also distributed the weight of the robot so that the center of mass will help us achieve the necessary height so that this will be in an specified range.

7 Number of degrees of freedom (DOF)

The total number of degrees of freedom in our robot is 16. In each one of the joints of the robot we decided to put a servo motor that each one will represent a (DOF).

Fig.3. Ankle Joint
Fig.3. Ankle Joint

7.1 Actuators

The total number of actuators in our design is of 16 servo motors. Our robot in conform of two different torque servo motor. The first one is a FUTABA S3003 with a torque of 3kg-cm and the second one is a HITEC HS-5645MG with a torque of 12 kg-cm, both with a speed of 60°/0.19 sec. We decide to use the HITEC HS-5645 MG of 12 kg-cm of torque in the

lowest part of the robot, because is where he needs more force to walk,

kick and stand up in case of falling. By the opposite we use the FUTABA S3003 with a torque of 3kg-cm in the upper part of the robot.

Head: 2 servo motor, FUTABA S3003

Arms (2): 1 servo motor in each arm, FUTABA S3003

Waist: 2 servo motors, FUTABA S3003

Ingle: 4 servo motor, the HITEC HS-5645 MG

Knee (2): 1 servo motor in each knee, the HITEC HS-5645 MG Ankle (4): 2 servo motor in each ankle, the HITEC HS-5645 MG

Fig.4. Servomotors (Futaba & Hitec)
Fig.4. Servomotors (Futaba & Hitec)

8 Communication

The robot was designed to act autonomously during the competition, so no external power supplies, teleoperation, of any kind of remote control are used on the system. The start and stop signals are sent them manually to the robot using the control panel; it was programmed to give the robot handler a few seconds to leave the field before it starts to move.

In this occasion, being our first participation and because of the short time in which we developed the project, we did not use a remote control system; without blocking that the robot fulfills with the established rules since it must be able to play even without a wireless network or a low signal of it. However , this will not interference with the robot's performance and fulfillments of the rules.

The communication between the robots, base in our design, was not necessary because each of the robots has specific duties and therefore the programming of each one was independent.

9 Processing boards

It only counts of a processor board that is the brain and was design and construct by members of the team. This contains the microcontroller, he's oscillating circuit, two voltage regulators and connection for the feeding and the control signal of the 16 servomotors. Next we present the distribution of the electronic components of the board.

Fig.5. PCB layout
Fig.5. PCB layout

9.1 Battery

Analyzing the electronic system, we saw that the peak current of the robot its 2 amperes and the operational current its 0.8 amperes, therefore the robot is using four rechargeable AA batteries of 1.2 volts each one and they work at 1200mAh.

Fig.6. rechargeable AA batteries of 1.2 volts
Fig.6. rechargeable AA batteries of 1.2 volts

10 Control

The control system of the robot is basically a microcontroller in which several sensors are connected that provide necessary information to assure the correct operation. The brain is microcontroller AT89S8252 of the 8051 family of ATMEL. We choose this element because of his low price, easy programming and because of the four ports of 8 bits of entrance and exits for handling data. The program code its shown in appendix because the program was made in assembler language.

Below is a diagram of the elements that conform it and we will explain its operation ahead.

Fig.7. Block diagram of the general control system
Fig.7. Block diagram of the general control system

10.1 Digital Camera

The main sensor placed on the robot's head is the camera CMUcam2 and it consists of a SX52 microcontroller interfaced with an OV7620 Omnivision CMOS camera on a chip that allows simple high level data to be extracted from the camera's streaming video. The board communicates via a RS-232 or a TTL serial port and has the following functionality:

  • Track user defined color blobs at up to 50 Frames Per Second*

  • Track motion using frame differencing at 26 Frames Per Second

  • Find the centroid of any tracking data

  • Gather mean color and variance data

  • Gather a 28 bin histogram of each color channel

  • Manipulate Horizontally Pixel Differenced Images

  • Transfer a real-time binary bitmap of the tracked pixels in an image

  • Arbitrary image windowing

  • Adjust the camera's image properties

  • Dump a raw image (single or multiple channels)

  • Up to 160 x 255 Resolution 1

  • Supports Multiple Baudrates: 115,200 57,600 38,400 19,200 9,600 4,800 2,400 1,200

  • Control 5 servo outputs

  • Slave parallel image processing mode off of a single camera bus

  • Automatically use servos to do two axis color tracking

  • B/W Analog video output (PAL or NTSC)

Fig.8. Digital camera (CMUcam2)
Fig.8. Digital camera (CMUcam2)

10.2 Tilt sensors

We also used a pair of tilt sensors to detect when the robot fall to the ground or exceed the limit of tilde and this information is used by the microcontroller to decide the actions to take to get up or to keep the balance.

These are just switches who close when certain inclination is reached or when they are in an horizontal position.

10.3 Position and contact sensors

The position sensors are located in the ankle and knee joints of both legs of the robot and are variable resistances that when they are connected to a oscillator circuit, any variation in the doblez of the joint will be represented like a lineal variation of the period and the duty cycle of the exit signals of the oscillators, that will be too introduce to the micro.

The exit signals of the sensors indicate us sufficient precision the position of the legs of the robot with respect to a reference fija that is the stop position. This information its very important when the land where he is walking its irregular since it provides a new reference of the land and this will help maintain the necessary balance to walk in the land.

The contact sensors that are push buttons will be localized under the feet of the robot and when its connected to the brain, they will have like objective to indicate the moment in which the foot of the robot makes contact with any surface.

11 Conclusions

This project was a great experience for all of us in several aspects, and helped us to discover our different capabilities as well as our weaknesses, that we could handle and fix with the teamwork.

The teamwork was our better strength because we had a lot of problems along the project that we had to solve sometimes briefly, and the way we solved them, which we consider the best one, was the teamwork, since although we were divided in two parts; control system and mechanics; we helped each other in difficult situations and we never forgot that we are a team and we all took this project seriously and with the disposition needed, because this is a not easy project and it demands many time and sacrifice, as well as good will after all what happened even the situation of possible contest cancellation, what did not stop us from working.

This project help us to comprehend the different movements of human beings, because we had to analyze carefully how persons move to program our robot an try to imitate the exact movements.

It also help us to understand more about development of prothesis and the advantages that this offers to does people that need to recover their movements.

A very important thing is the fact that we received complete support from our University, part of the budget was supported by them and other resources like electronics and tool labs, computers, software. Another part of the budget was support by the members of the team.

It was a really good thing counting with their help all this time long, what we are very thankful of.

During this project we applied part of the knowledge acquired along the engineering studies, and in some occasions we had to investigate on subjects that didn't know about, and ask for support of some teachers who had the knowledge and the experience to advise us.

12 Appendix

12.1 Program code

ORG 00H

MOV 21H,#41H ;1 ;carga los
registros en la posición cero
MOV 23H,#18H ;2
MOV 25H,#30H ;3
MOV 27H,#4CH ;4
MOV 29H,#26H ;5
MOV 2BH,#82H;10H ;6
MOV 2DH,#31H ;7
MOV 2FH,#42H ;8
MOV 31H,#40H ;9
MOV 33H,#30H ;10
MOV 35H,#2CH ;11
MOV 37H,#12H;82H ;12
MOV 39H,#3DH ;13
MOV 3BH,#26H ;14
MOV 3DH,#6EH ;15
MOV 3FH,#2EH ;16

MOV 41H,21H ;SERVO1 ;CARGO LA POSICIÓN INICIAL PARA EVITAR QUE SE VUELVAN LOCOS AL PRINCIPIO 
MOV 43H,23H ;SERVO2 
MOV 45H,25H ;SERVO3 
MOV 47H,27H ;SERVO4 
MOV 49H,29H ;SERVO5 
MOV 4BH,2BH ;SERVO6 
MOV 4DH,2DH ;SERVO7 
MOV 4FH,2FH ;SERVO8 
MOV 51H,31H ;SERVO9 
MOV 53H,33H ;SERVO10 
MOV 55H,35H ;SERVO11 
MOV 57H,37H ;SERVO12 
MOV 59H,39H ;SERVO13 
MOV 5BH,3BH ;SERVO14 
MOV 5DH,3DH ;SERVO15 
MOV 5FH,3FH ;SERVO16 
MOV 75H,#06H ;CARGO LA VEL 
LCALL DESPLAZA 
MOV 51H,#41H ;QUÉDATE UN MOMENTO 
MOV 75H,#0FFH 
LCALL DESPLAZA 
; EMPIEZA A CAMINAR

MOV 41H,#37H ;1 ;SE INCLINA A LA IZQUIERDA 
MOV 43H,#0EH ;2 
MOV 4FH,#38H ;8 
MOV 5BH,#1CH ;14 
MOV 45H,#33H;UN POCO AGACHADO 
MOV 75H,#02H 
LCALL DESPLAZA 

MOV 41H,#2CH ;1 ;SE INCLINA A LA
MOV 43H,#03H ;2 ;SOLO
IZQUIERDA
"A" POSICIONES
MOV 4FH,#2DH ;8 
MOV 5BH,#12H ;14
MOV 49H,#2EH ;MUEVE PIE
DERECHO PA DELANTE, 8 POSICIONES
MOV 59H,#45H
MOV 47H,#54H ;MUEVE EL PIE IZQ
PARA ATRÁS 8 POSICIONES
MOV 4DH,#39H
MOV 4BH,#16H; DOBLA UN POCO
"4"POS, LAS RODILLAS
MOV 57H,#7CH
MOV 5DH,#66H ;MUEVE LOS BRAZOS
MOV 5FH,#26H
MOV 75H,#02H ;VELOCIDAD
LCALL DESPLAZA

MOV 41H,#41H ;1 ;PARADITO
MOV 43H,#18H ;2 
MOV 4FH,#42H ;8 
MOV 5BH,#26H ;14
MOV 45H,#30H;ERGIDO OTRA VEZ
MOV 5DH,#5CH ;MUEVE LOS
BRAZOS
MOV 5FH,#1CH
MOV 4BH,#14H; REGRESA
"2"POS, LAS RODILLAS
MOV 57H,#7EH
MOV 75H,#02H 
LCALL DESPLAZA

MOV 51H,#41H ;QUÉDATE UN MOMENTO
MOV 75H,#0AFH 
LCALL DESPLAZA

;SEGUNDO PASO

MOV 41H,#4BH ;1 ;SE INCLINA A
LA DERECHA "A" POSICIONES
MOV 43H,#22H ;2
MOV 4FH,#4CH ;8
MOV 5BH,#30H ;14
MOV 45H,#34H ;UN POCO AGACHADO
MOV 75H,#02H ;CARGA VELOCIDAD
LCALL DESPLAZA

MOV 41H,#5AH ;1 ;SE INCLINA A LA
DERECHA
MOV 43H,#31H ;2 ;SOLO "A"
POSICIONES
MOV 4FH,#56H ;8 
MOV 5BH,#3AH ;14
MOV 49H,#26H ;5 ;MUEVE PIE DER
PA TRAS, 8 POSICIONES
MOV 59H,#3DH ;13
MOV 47H,#4CH ;4 ;MUEVE PIE IZQ PA
DELANTE, 8 POSICIONES
MOV 4DH,#31H ;7
MOV 5DH,#6EH ;15 ;MUEVE LOS
BRAZOS
MOV 5FH,#2EH ;16
MOV 75H,#02H ;VELOCIDAD
LCALL DESPLAZA

MOV 41H,#41H ;1 ;PARADITO
MOV 43H,#18H ;2 
MOV 4FH,#42H ;8 
MOV 5BH,#26H ;14
MOV 45H,#30H;ERGIDO OTRA VEZ
MOV 5DH,#76H ;MUEVE LOS
BRAZOS
MOV 5FH,#38H
MOV 75H,#02H 
LCALL DESPLAZA

MOV 51H,#41H ;QUÉDATE UN MOMENTO
MOV 75H,#0AFH 
LCALL DESPLAZA

MOV 41H,#41H ;1 ;carga
los registros en la posición cero
MOV 43H,#18H ;2
MOV 45H,#30H ;3 
MOV 47H,#4CH ;4 
MOV 49H,#26H ;5 
MOV 4BH,#12H;10H ;6 
MOV 4DH,#31H ;7 
MOV 4FH,#42H ;8 
MOV 51H,#40H ;9 
MOV 53H,#30H ;10 
MOV 55H,#2CH ;11 
MOV 57H,#80H;82H ;12 
MOV 59H,#3DH ;13 
MOV 5BH,#26H ;14 
MOV 5DH,#6EH ;15
MOV 75H,#01H
MOV 5FH,#2EH ;16

EMPEZARE: LCALL DESPLAZA
LJMP EMPEZARE ;por ahora vuelvo a empezar

;TODAS LAS DE ABAJO SON SUBRUTINAS DE NIVEL BÁSICO (PWM Y CONTROL DE VELOCIDAD)

DESPLAZA: MOV 77H,#00H ;BORRA LAS BANDERAS
MOV 78H,#0C0H ;por ahora un C0 porque solo manejamos 14 servos

CARGAPWM: MOV R1,75H ;CARGA VELOCIDAD

OTROPWM: LCALL PWM ;CORRE PWM
DJNZ R1,OTROPWM

DAMEOTRO1: MOV A,21H ;EMPIEZA LAS COMPARACIONES
CJNE A,41H,QUELADO1 ;COMPARA SERVO 1
ORL 77H,#01H
SJMP DAMEOTRO2

QUELADO1: CLR C
MOV A,21H 
SUBB A,41H 
JC MENOR1 
DEC 21H
SJMP DAMEOTRO2

MENOR1: INC 21H

DAMEOTRO2: MOV A,23H ;COMPARA SERVO 2
CJNE A,43H,QUELADO2
ORL 77H,#02H
SJMP DAMEOTRO3

QUELADO2: CLR C
MOV A,23H 
SUBB A,43H 
JC MENOR2 
DEC 23H
SJMP DAMEOTRO3

MENOR2: INC 23H

DAMEOTRO3: MOV A,25H ;COMPARA SERVO 3
CJNE A,45H,QUELADO3
ORL 77H,#04H
SJMP DAMEOTRO4

QUELADO3: CLR C
MOV A,25H 
SUBB A,45H 
JC MENOR3 
DEC 25H
SJMP DAMEOTRO4

MENOR3: INC 25H

DAMEOTRO4: MOV A,27H ;COMPARA SERVO 4
CJNE A,47H,QUELADO4
ORL 77H,#08H
SJMP DAMEOTRO5

QUELADO4: CLR C
MOV A,27H 
SUBB A,47H 
JC MENOR4 
DEC 27H
SJMP DAMEOTRO5

MENOR4: INC 27H

DAMEOTRO5: MOV A,29H ;COMPARA SERVO 5 
CJNE A,49H,QUELADO5 
ORL 77H,#10H 
SJMP DAMEOTRO6 

QUELADO5: CLR C 
MOV A,29H 
SUBB A,49H 
JC MENOR5 
DEC 29H 
SJMP DAMEOTRO6 

MENOR5: INC 29H

DAMEOTRO6: MOV A,2BH ;COMPARA SERVO 6
CJNE A,4BH,QUELADO6
ORL 77H,#20H
SJMP DAMEOTRO7

QUELADO6: CLR C
MOV A,2BH 
SUBB A,4BH 
JC MENOR6 
DEC 2BH
SJMP DAMEOTRO7

MENOR6: INC 2BH

DAMEOTRO7: MOV A,2DH ;COMPARA SERVO 7
CJNE A,4DH,QUELADO7
ORL 77H,#40H
SJMP DAMEOTRO8

QUELADO7: CLR C
MOV A,2DH 
SUBB A,4DH 
JC MENOR7 
DEC 2DH
SJMP DAMEOTRO8 

MENOR7: INC 2DH

DAMEOTRO8: MOV A,2FH ;COMPARA SERVO 8
CJNE A,4FH,QUELADO8
ORL 77H,#80H
SJMP DAMEOTRO9

QUELADO8: CLR C
MOV A,2FH 
SUBB A,4FH 
JC MENOR8 
DEC 2FH
SJMP DAMEOTRO9

MENOR8: INC 2FH

DAMEOTRO9: MOV A,31H ;COMPARA SERVO 9
CJNE A,51H,QUELADO9
ORL 78H,#01H
SJMP DAMEOTRO10

QUELADO9: CLR C
MOV A,31H 
SUBB A,51H 
JC MENOR9 
DEC 31H
SJMP DAMEOTRO10

MENOR9: INC 31H

DAMEOTRO10: MOV A,3DH ;COMPARA SERVO 15
CJNE A,5DH,QUELADO10
ORL 78H,#02H
SJMP DAMEOTRO11

QUELADO10: CLR C
MOV A,3DH 
SUBB A,5DH 
JC MENOR10 
DEC 3DH
SJMP DAMEOTRO11

MENOR10: INC 3DH

DAMEOTRO11: MOV A,3FH ;COMPARA SERVO 16
CJNE A,5FH,QUELADO11
ORL 78H,#04H
SJMP DAMEOTRO12

QUELADO11: CLR C
MOV A,3FH
SUBB A,5FH 
JC MENOR11
DEC 3FH
SJMP DAMEOTRO12

MENOR11: INC 3FH

DAMEOTRO12: MOV A,37H ;COMPARA SERVO 12
CJNE A,57H,QUELADO12
ORL 78H,#08H
SJMP DAMEOTRO13

QUELADO12: CLR C
MOV A,37H 
SUBB A,57H 
JC MENOR12 
DEC 37H
SJMP DAMEOTRO13

MENOR12: INC 37H

DAMEOTRO13: MOV A,39H ;COMPARA SERVO 13
CJNE A,59H,QUELADO13
ORL 78H,#10H
SJMP DAMEOTRO14

QUELADO13: CLR C
MOV A,39H 
SUBB A,59H 
JC MENOR13
DEC 39H
SJMP DAMEOTRO14

MENOR13: INC 39H

DAMEOTRO14: MOV A,3BH ;COMPARA SERVO 14
CJNE A,5BH,QUELADO14
ORL 78H,#20H
SJMP DAMEOTRO17

QUELADO14: CLR C
MOV A,3BH 
SUBB A,5BH 
JC MENOR14 
DEC 3BH
SJMP DAMEOTRO17

MENOR14: INC 3BH

DAMEOTRO17: MOV A,77H ;CHECA LAS BANDERAS Y NO DEJA PASAR HASTA QUE TODAS ESTEN HABILITADAS
CJNE A,#0FFH,BRINCOTE
MOV A,78H
CJNE A,#0FFH,BRINCOTE
SJMP AREGRESO

BRINCOTE: LJMP CARGAPWM

AREGRESO: RET

PWM: SETB P1.0 ;RUTINA DE 2mS QUE ACTUALIZA 2 REGISTROS A LA VEZ SERVOS 1 Y 2
SETB P1.1
LCALL RETA1MS
MOV R0,#90H

OTRO1: MOV A,20H
CJNE A,21H,DDOS
CLR P1.0
SJMP DOSS

DDOS: INC 20H
NOP
SETB P1.0

DOSS: MOV A,22H
CJNE A,23H,TTRES
CLR P1.1
SJMP FIN1

TTRES: INC 22H
NOP
SETB P1.1

FIN1: DJNZ R0,OTRO1

MOV 20H,#00H 
MOV 22H,#00H

RUTINA2: SETB P1.2 ;RUTINA DE 2mS QUE ACTUALIZA 2 REGISTROS A LA VEZ SERVOS 3 Y 4
SETB P1.3 
LCALL RETA1MS 
MOV R0,#90H 

OTRO2: MOV A,24H 
CJNE A,25H,CCUATRO
CLR P1.2 
SJMP CUATROO

CCUATRO: INC 24H
NOP
SETB P1.2

CUATROO: MOV A,26H
CJNE A,27H,CCINCO
CLR P1.3 
SJMP FIN2

CCINCO: INC 26H
NOP
SETB P1.3 

FIN2: DJNZ R0,OTRO2

MOV 24H,#00H 
MOV 26H,#00H

RUTINA3: SETB P1.4 ;RUTINA DE 2mS QUE ACTUALIZA 2 REGISTROS A LA VEZ SERVOS 5 Y 6
SETB P1.5 
LCALL RETA1MS
MOV R0,#90H

OTRO3: MOV A,28H
CJNE A,29H,SSEIS
CLR P1.4

SSEIS: INC 28H
NOP
SETB P1.4
SJMP SEISS

SEISS: MOV A,2AH
CJNE A,2BH,SSIETE
CLR P1.5 
SJMP FIN3

SSIETE: INC 2AH
NOP
SETB P1.5

FIN3: DJNZ R0,OTRO3

MOV 28H,#00H 
MOV 2AH,#00H

RUTINA4: SETB P1.6 ;RUTINA DE 2mS QUE ACTUALIZA 2 REGISTROS A LA VEZ SERVOS 7 Y 8
SETB P1.7 
LCALL RETA1MS 
MOV R0,#90H

OTRO4: MOV A,2CH
CJNE A,2DH,OOCHO
CLR P1.6 
SJMP OCHOO

OOCHO: INC 2CH
NOP
SETB P1.6

OCHOO: MOV A,2EH
CJNE A,2FH,NNUEVE
CLR P1.7 
SJMP FIN4

NNUEVE: INC 2EH
NOP
SETB P1.7

FIN4: DJNZ R0,OTRO4

MOV 2CH,#00H 
MOV 2EH,#00H

RUTINA5: SETB P3.0 ;RUTINA DE 2mS QUE ACTUALIZA 2 REGISTROS A LA VEZ SERVOS 9 Y 10
SETB P3.1
LCALL RETA1MS 
MOV R0,#90H

OTRO5: MOV A,30H
CJNE A,31H,DDIEZ
CLR P3.0
SJMP DIEZZ 

DDIEZ: INC 30H
NOP
SETB P3.0

DIEZZ: MOV A,32H
CJNE A,33H,OONCE
CLR P3.1 
SJMP FIN5

OONCE: INC 32H
NOP
SETB P3.1

FIN5: DJNZ R0,OTRO5

MOV 30H,#00H 
MOV 32H,#00H

RUTINA6: SETB P3.2 ;RUTINA DE 2mS QUE ACTUALIZA 2 REGISTROS A LA VEZ SERVOS 11 Y 12
SETB P3.3 
LCALL RETA1MS 
MOV R0,#90H

OTRO6: MOV A,34H
CJNE A,35H,DDOCE
CLR P3.2
SJMP DOCEE 

DDOCE: INC 34H
NOP
SETB P3.2

DOCEE: MOV A,36H
CJNE A,37H,TTRECE
CLR P3.3 
SJMP FIN6

TTRECE: INC 36H
NOP
SETB P3.3

FIN6: DJNZ R0,OTRO6

MOV 34H,#00H 
MOV 36H,#00H

RUTINA7: SETB P3.4 ;RUTINA DE 2mS QUE ACTUALIZA 2 REGISTROS A LA VEZ SERVOS 13 Y 14
SETB P3.5
LCALL RETA1MS
MOV R0,#90H 

OTRO7: MOV A,38H
CJNE A,39H,CCATORCE
CLR P3.4
SJMP CATORCEE

CCATORCE: INC 38H
NOP
SETB P3.4

CATORCEE: MOV A,3AH
CJNE A,3BH,QQUINCE
CLR P3.5 
SJMP FIN7

QQUINCE: INC 3AH
NOP
SETB P3.5

FIN7: DJNZ R0,OTRO7

MOV 38H,#00H
MOV 3AH,#00H

RUTINA8: SETB P3.6 ;RUTINA DE 2mS QUE ACTUALIZA 2 REGISTROS A LA VEZ SERVOS 15 Y 16
SETB P3.7 
LCALL RETA1MS 
MOV R0,#90H

OTRO8: MOV A,3CH
CJNE A,3DH,DDIECISEIS
CLR P3.6
SJMP DIECISEISS

DDIECISEIS: INC 3CH
NOP
SETB P3.6

DIECISEISS: MOV A,3EH
CJNE A,3FH,DDIECISIETE
CLR P3.7 
SJMP FIN8

DDIECISIETE: INC 3EH
NOP
SETB P3.7

FIN8: DJNZ R0,OTRO8

MOV 3CH,#00H 
MOV 3EH,#00H

LCALL RETA1MS ;RETARDO DE 4mS PARA FINALIZAR LA RUTINA DE PWM
LCALL RETA1MS 
LCALL RETA1MS 
LCALL RETA1MS

RET

RETA1MS: MOV R5,#04H ;RETARDO DE 1mS
TIEMPO1: MOV R4,#0FAH
TIEMPO2: DJNZ R4 TIEMPO2
DJNZ R5 TIEMPO1
RET

END

13 References

  1. Arranz Ramonet Antonio. PLANIFICACIÓN Y CONTROL DE PROYECTOS. Grupo Noriega Editores. México 1993. Asti Vera Arrnando.: METODOLOGIA DE LA INVESTIGACION. Editorial Kapeluszo. Argentina. 1a. Ed. 1968. Barahona Abel; Barahona Francisco.: METODOLOGIA DE LOS TRABAJOS CIENTIFICOS. Editorial IPLER. Colombia. 4a. Ed.1984. (160 ).
  2. Diseño en ingeniería mecánica / Joseph Edward Shigley
  3. Electrónica : teoría de circuitos y dispositivos electrónicos / Robert L. Boylestad, Louis Nashelsky
  4. Enciclopedia de la electrónica, ingeniería y técnica / Char les Belove Mecanismos y dinámica de maquinaria / Hamilton H. Mabie, Charles F. Reinholtz
  5. Sistemas digitales: principios y aplicaciones / Ronald J. Tocci CMUcam2 User manual Humanoid League Rules 2006

14 Contacts

If any comment please contact us:

Norberto Velázquez Niño [email protected]

Daniel Laborin reina [email protected]

Roberto Carlos Ramirez [email protected]

Guillermo Fitch [email protected]

Salvador Alejandro Velásquez Niño [email protected]

References

  1. Arranz Ramonet Antonio. PLANIFICACIÓN Y CONTROL DE PROYECTOS. Grupo Noriega Editores. México 1993. Asti Vera Arrnando.: METODOLOGIA DE LA INVESTIGACION. Editorial Kapeluszo. Argentina. 1a. Ed. 1968. Barahona Abel; Barahona Francisco.: METODOLOGIA DE LOS TRABAJOS CIENTIFICOS. Editorial IPLER. Colombia. 4a. Ed.1984. (160 ).
  2. Diseño en ingeniería mecánica / Joseph Edward Shigley
  3. Electrónica : teoría de circuitos y dispositivos electrónicos / Robert L. Boylestad, Louis Nashelsky
  4. Enciclopedia de la electrónica, ingeniería y técnica / Char les Belove Mecanismos y dinámica de maquinaria / Hamilton H. Mabie, Charles F. Reinholtz
  5. Sistemas digitales: principios y aplicaciones / Ronald J. Tocci CMUcam2 User manual Humanoid League Rules 2006