Robot
-
Upload
mahayudin-saad -
Category
Documents
-
view
3 -
download
0
Transcript of Robot
-
PSZ 19:16 (Pind. 1/07)
DECLARATION OF THESIS / UNDERGRADUATE PROJECT PAPER AND COPYRIGHT
Authors full name : HISYAM BIN ABDUL RAHMAN
Date of birth : 7 MAY 1988
Title : PASSIVE UPPER-LIMB EXOSKELETON ROBOT FOR HAND
REHABILITAION OF STROKE PATIENT
Academic Session: 2010/2011
I declare that this thesis is classified as:
I acknowledged that Universiti Teknologi Malaysia reserves the right as follows:
1. The thesis is the property of Universiti Teknologi Malaysia.
2. The Library of Universiti Teknologi Malaysia has the right to make copies for the
purpose of research only.
3. The Library has the right to make copies of the thesis for academic exchange.
Certified by:
SIGNATURE SIGNATURE OF SUPERVISOR
880507-04-5127 Assoc Prof Dr Rosbi Bin Mamat (NEW IC NO. /PASSPORT NO.) NAME OF SUPERVISOR
Date: 7 MAY 2011 Date:
NOTES: * If the thesis is CONFIDENTIAL or RESTRICTED, please attach with the letter from
the organisation with period and reasons for confidentiality or restriction.
UNIVERSITI TEKNOLOGI MALAYSIA
CONFIDENTIAL (Contains confidential information under the Official Secret Act 1972)*
RESTRICTED (Contains restricted information as specified by the Organisation where research was done)*
OPEN ACCESS I agree that my thesis to be published as online open access (full text)
-
"I hereby declare that I have read this thesis and in my opinion this thesis is sufficient
in term of scope and quality for award of the degree of Bachelor of Engineering
(Electrical - Mechatronic)"
Signature: __________________
Name of supervisor: ASSOC PROF DR ROSBI BIN MAMAT
Date:
-
PASSIVE UPPER-LIMB EXOSKELETON ROBOT FOR HAND
REHABILITATION OF STROKE PATIENT
HISYAM BIN ABDUL RAHMAN
A thesis submitted in fulfillment
of the requirements for the award of the degree of
Bachelor of Engineering (Electrical - Mechatronics)
Faculty of Electrical Engineering
Universiti Teknologi Malaysia
MAY, 2011
-
ii
I declare that this thesis entitled Passive upper-limb exoskeleton robot for hand
rehabilitation of stroke patient" is the result of my own research except as cite in the
reference. The thesis has not been accepted for any degree and is not currently
submitted in candidature of any degree.
Signature : __________________
Name : HISYAM BIN ABDUL RAHMAN
Date :
-
iii
Specially dedicate to:
My beloved family, lectures and all friends for their external support, encouragement,
and inspiration throughout my journey of education
MAY ALLAH BLESS US
-
iv
ACKNOWLEDGEMENT
First of all, I would like to thank Allah SWT for giving me strength to
complete this project successfully on time. I would to express my gratitude to my
project supervisor, Assoc Prof Dr Rosbi Bin Mamat who willing to accept me as his
student to carry out my final year project under him. Besides, I would like to thank
Assoc Prof Dr Rosbi Bin Mamat for the passionate guidance and advices he gave
upon me throughout the entire project. It would be difficult to complete this project
without his support and understanding.
However, I wish to deeply indebted to my family member for giving me spirit
along with the support assisting my project and throughout years in UTM. Their
blessings were the main effort for me to overcome all the hardships and obstacles
that I will face. Not forgotten to their hardworking to provide me financial support to
ensure my successfulness in this project.
Next, my sincerest appreciation goes to my friends and especially to my
entire course mate who always giving me valuable guidance, suggestions, kindness
and valuable time during the accomplishment of this project. Lastly I would like to
extend my deep appreciation for the technicians of the laboratory for give me as
much patient and guidance and support to enhance my project. Thank you so much.
-
v
ABSTRACT
In recent years, the exoskeleton robot has been applied in the areas of
rehabilitation and power assist for daily life. The using of exoskeleton robot in field
of medical is increasing due to increasing of stroke patient. The exoskeleton robot
becomes alternative for rehabilitation of stroke patient due to not enough therapists
available. However, compared to normal rehabilitation, exoskeleton robot is more
attractive because some of the exoskeleton robot provides some attractive vision
system so that the patient did not feel bored during rehabilitation. If compare to
therapist, the patient need to come to the hospital or where the exoskeleton robot
were placed. This thesis is mainly concern on improving the mechanical design. This
project focuses on the basic movement for rehabilitation and method to control the
exoskeleton robot. This project is using C language as the programming language for
microcontroller. There are two methods to control this exoskeleton robot, first is the
manual control and second is automatic control. During the manual control, the user
can set the position due to user condition. Wired remote control is used as the
controller device for control the exoskeleton robot. Display and six buttons are
implemented at the remote control. There also an emergency stop button for this
exoskeleton robot for emergency case.
-
vi
ABSTRAK
Sejak beberapa tahun ini, robot Exoskeleton telah dilaksanakan dalam bidang
pemulihan dan kuasa membantu untuk kehidupan seharian. Penggunaan robot
Exoskeleton dalam bidang perubatan semakin meningkat kerana peningkatan pesakit
stroke. Robot Exoskeleton menjadi alternatif untuk pemulihan pesakit stroke kerana
kekurangan terapis. Namun, jika dibandingkan dengan pemulihan biasa, robot
Exoskeleton lebih menarik kerana sebahagian robot Exoskeleton menyediakan
beberapa sistem visual yang menarik sehingga tidak membosankan pesakit semasa
menjalani pemulihan. Jika dibandingkan dengan terapis, pesakit perlulah pergi ke
tempat dimana robot exoskeleton itu ditempatkan. Tesis ini secara utamanya
berfokuskan pada perbaikan desain mekanik. Projek ini memfokuskan pada gerakan
asas untuk pemulihan dan kaedah untuk mengendalikan robot Exoskeleton. Projek
ini menggunakan bahasa pengaturcaraan C sebagai bahasa pengaturcaraan untuk
mikrokontroler. Ada dua kaedah untuk mengendalikan robot Exoskeleton, pertama
adalah dengan kawalan manual dan kedua adalah dengan kawalan automatik. Semasa
kawalan manual, pengguna boleh menetapkan kedudukan bergantung kepada
keadaan pengguna. Kabel remote control digunakan sebagai alat kawalan untuk
mengawal robot Exoskeleton. Paparan dan enam butang dipasangkan pada remote
control. Robot Exoskeleton ini juga mempunyai butang kecemasan untuk kes-kes
kecemasan.
-
vii
TABLE OF CONTENTS
CHAPTER TITLE PAGE
DECLARATION
DEDICATION
ACKNOWLEDGEMENT
ABSTRACT
ABSTRAK
TABLE OF CONTENTS
LIST OF TABLES
LIST OF FIGURES
LIST OF SYMBOLS AND ABBREVIATIONS
LIST OF APPENDICES
ii
iii
iv
v
vi
vii
x
xi
xiii
xiv
1 INTRODUCTION
1.1 Background
1.2 Problem Statement
1.3 Project Objective
1.4 Project Scopes
1
1
2
3
3
2 LITERATURE REVIEW
2.1 4-DOF Saga University Exoskeleton Robot
2.1.1 Advantages of 4-DOF Saga University
Exoskeleton Robot
2.2 7-DOF Salford University Soft Actuated
Exoskeleton robot
4
4
5
6
-
viii
2.2.1 Advantages of 7-DOF Salford University
Soft Actuated Exoskeleton robot
2.3 Hand-Wrist Assisting Robotic Device (HWARD)
2.3.1 Advantages of Hand-Wrist assisting robotic
device
2.4 7-DOF Exoskeleton Robot Design: CADEN-7
2.5 Analysis of Previous Exoskeleton Robot
2.5.1 Solution
7
7
8
8
9
11
3 METHODOLOGY
3.1 Hardware Part
3.1.1 Hardware Design Using Computer Aided
Design (AutoCAD 2010)
3.1.2 Motor
3.2 Electronics Design
3.2.1 Sensor
3.2.2 Cytron 40 Pins Start-Up Kit
3.2.3 7-Segment Display
3.2.4 Microcontroller: PIC 16F777
3.2.5 Motor Driver
3.2.6 Wired Remote Control
3.2.7 Power Supply
3.2.8 Interfacing Circuit
3.3 Software Part
3.3.1 Movement Algorithm
12
12
13
15
16
16
17
19
20
22
23
24
26
28
30
-
ix
4 RESULT AND ACHIEVEMENT
4.1 Exoskeleton Robot Prototype
4.2 Mechanical Stopper
4.3 Potential Meter
4.4 Exoskeleton Robot Accomplishment
4.5 Typical Human Upper-Limb Movement
4.6 Manual and Automatic Control
4.7 Position Setting
4.8 Mechanical Backbone Support
4.9 Emergency Stop Button
4.10 Sensor Detection
33
33
35
37
38
38
42
43
44
45
45
5 DISCUSSION AND CONCLUSION
5.1 Discussion
5.2 Suggestion and Future Development
5.3 Conclusion
46
46
47
49
REFERENCES 50
APPENDICES
APPENDIX A
APPENDIX B
APPENDIX C
52
52
53
56
-
x
LIST OF TABLES
TABLES NO. TITLE PAGE
1.1
2.1
Analysis of Previous Exoskeleton Robot
Power Supply Specification
9
25
3.1 Mode Selection and Description 38
3.2 Result of the Exoskeleton Robot 39
3.3 Type of Movement 40
-
xi
LIST OF FIGURES
FIGURES NO. TITLE PAGE
2.1 4-DOF Saga University Exoskeleton Robot 4
2.2 7-DOF Salford University Soft Actuated
Exoskeleton Robot
6
2.3 Hand-Wrist Assisting Robotic Device (HWARD) 7
2.4 CADEN-7 8
3.1 (a) Isometric view. (b) Back view 13
3.2 Front View 14
3.3 Left View 14
3.4 Power Window Motor 15
3.5 Limit Switch 16
3.6 Potential Meter 16
3.7 Cytron 40 Pins PIC Start-Up Kit 17
3.8 SK40C Board Layout 18
3.9 7-Segment Display and BCD 45HC11 19
3.10 PIC16F777 Pin Diagram 20
3.11 Motor Driver Circuit Connection 22
3.12 Assembled Motor Driver 23
3.13 Wired Remote Control 23
3.14 Power Supply 25
3.15 Modified Power Supply 26
3.16 Interfacing Block Diagram 27
3.17 Interfacing Circuit 28
-
xii
3.18 MikroC PRO Interface 29
3.19 Movement algorithms 30
4.1 Exoskeleton Robot Front View 34
4.2 left view 34
4.3 Back View 35
4.4 Without Mechanical Stopper 36
4.5 With Mechanical Stopper 36
4.6 Potential Meter Coupling 37
4.7 Motor Shaft with Wing Bolt 37
4.8 Remote Control 39
4.9 Elastic String 42
4.10 Back Bone Support 44
4.11 Emergency Stop Button 45
-
xiii
LIST OF SYMBOLS AND ABBREVIATIONS
ADC Analog-to-Digital Converter
DIY Do It Your Self
HWARD Hand Wrist Assisting Device
LED Light Emitting Diode
Li-Po Lithium Polymer
PWM Pulse Width Modulation
DOF Degree of Freedom
CR Center of Rotation
PMA Pneumatic Muscle Actuators
MCP Metacarpal
CAD Computer Aided Design
DC Direct Current
MCU Microcontroller Unit
PIC Programmable Integrated Circuit
BCD Binary Code Decimal
MAX Maximum
-
xiv
LIST OF APPENDICES
APPENDIX NO. TITLE PAGE
A
B
C
Human upper-limb segment
Schematic circuit diagram
Programming
52
53
56
-
1
CHAPTER 1
INTRODUCTION
1.1 BACKGROUND
The exoskeleton robots have been used in the industry for military and
medical application. In recent years, the exoskeleton robots have been applied in
the areas of rehabilitation and power assist for daily activity. The use of
exoskeleton robot is increasing in the areas of rehabilitation in the hospital in
which the number of physically weak such as stroke patients is increasing.
Active exoskeleton robots were studied for the purpose of industry or
medical applications in the 1960s and 1970s [1]-[2]. In addition, some
exoskeleton robots were proposed to extend the strength of the human force [3],
in early 1990s. In recent years, many active upper-limb exoskeleton robot
systems [4]-[6] have been proposed for rehabilitation and power assist.
-
2
The passive term in this project title is because the robot move the hand
for hand exercise or rehabilitation while the active term is the robot assists the
hand for human assisted power. The passive upper-limb exoskeleton robot
structure is the same as the active upper-limb exoskeleton robot structure. The
different is on the algorithm and some of the sensor. The passive upper-limb
exoskeleton robot is suitable for stroke patient to help them exercise to regain
their hand function again.
The difficulty of the upper-limb exoskeleton robot is on the mechanical
design because the upper-limb structure is complex than lower-limb structure
(leg). So these projects have reviewed some of the active upper-limb exoskeleton
robot so that the passive upper-limb exoskeleton robot can be developed.
1.2 PROBLEM STATEMENT
Nowadays too many stroke patient come to the hospital to get therapy.
The regain their hand function again, the patient required to do the hand exercise
for 15 minute every one hour. The therapist at the hospital is not enough to
handle the patient if the patient is too many. If the therapist monitor the patient
during the rehabilitation process, it might take a long time to regain the hand
function again because the patient need to wait long time to get the rehab from
the therapist.
So this project might help the therapist to handle the patient to regain
their hand function again. This robot can operate automatically so that the
therapists just monitor the patient while the therapist handles the other patients.
-
3
1.3 PROJECT OBJECTIVE
The objectives of this project are as below:
I. To design an upper limb exoskeleton robot for hand rehabilitaion for
stroke patient with manual and automatic control.
II. Set the position of hand movement according to the patient condition.
1.4 PROJECT SCOPE
The scopes of this project are as below:
I. To implement the upper-limb exoskeleton robot which consist three
degree of freedom (3DOF) for shoulder, upper arm and forearm.
II. Focus on right hand upper-limb movement:
Shoulder extension/flexion.
Shoulder adduction/abduction.
Elbow extension/flexion.
Forearm supination/pronation.
-
4
CHAPTER 2
LITERATURE REVIEW
This chapter describes the literature review which is related to this
exoskeleton robot project. All of the information about the exoskeleton robot has
been studied from different resources to perform this project.
2.1 4-DOF SAGA UNIVERSITY EXOSKELETON ROBOT
Figure 2.1: 4-DOF Saga University Exoskeleton robot
-
5
A 4DOF active exoskeleton robot [4] with moving center of rotation (CR)
mechanism [9] have been projected in Saga University to assist shoulder vertical
flexion/extension, shoulder horizontal flexion/extension, elbow flexion/extension
and forearm supination/pronation motions. This exoskeleton robot was installed on a
mobile wheel chair since many disable persons use it, so that the user does not feel
the weight of the exoskeleton robot at all. The human upper-limb is complex, so this
project developed a mechanism to provide the movement of upper-limb. A special
moving CR mechanism was proposed for the shoulder joint of the exoskeleton robot.
The mechanism design prevents the ill effects caused by the position difference
between the CR of the robot shoulder and the human shoulder. Mechanical stoppers
have been attached for each single motion to prevent exceeding of movable range for
safety and precaution. The position of the movable range of the robot can be set so
that the user more comfortable with the robot [4].
2.1.1 ADVANTAGES OF 4-DOF SAGA UNIVERSITY EXOSKELETON
ROBOTS:
I. The mechanism cancels out the ill effects caused by the position
difference between the CR of the robot shoulder and the human shoulder.
II. Mechanical stoppers have been attached for each individual motion to
prevent exceeding of movable range for safety.
-
6
2.2 7-DOF SALFORD UNIVERSITY SOFT ACTUATED
EXOSKELETON ROBOT
Figure 2.2: 7-DOF Salford University Soft Actuated Exoskeleton robot
The 7DOF exoskeleton robot was developed by Tsagarakis and Caldwell for
upper arm training and rehabilitation. This robot is able to generate motions of
shoulder flexion/extension, abduction/adduction, internal/external rotation, elbow
flexion/extension, forearm supination/pronation, wrist flexion/extension and
radial/ulnar deviation.
This project focus on the soft actuated which is the actuator that this
project use is pneumatic muscle. Therefore, the fulfillment control is allowed by the
robots antagonistic action. This exoskeleton robot was using pneumatic muscle as
an actuator because to have a high power/weight ratio and safety due to the inherent
compliance. Two layered cylinder has been designed by pneumatic Muscle
Actuators (pMA).The structure of the muscles gives the actuator a number of
desirable characteristics. An appropriate antagonistic torques through cable and
pulley driven by the pneumatic actuators has been design so that the joint motion
/torque for the rehabilitation and training can be achieved [5].
-
7
2.2.1 ADVANTAGES OF 7DOF SALFORD UNIVERSITY SOFT
ACTUATED EXOSKELETON ROBOT:
I. Safety and human soft interaction which provides a soft
feeling in human manipulation.
II. Low mass and excellent power/weight ratio.
2.3 HAND-WRIST ASSISTING ROBOTIC DEVICE (HWARD)
Figure 2.3: Hand-Wrist Assisting Robotic Device (HWARD)
Hand Wrist Assisting Robotic Device (HWARD) was developed by
Cramer et al. in 2007. This exoskeleton robot has 3DOF to exercises and training
grasping and releasing movements using real objects during therapy. This is
achieved by providing a clear palm area where different objects can be
implementing for interaction during training. This project was using pneumatic
actuated desk mounted exoskeleton that supports the patients arm and is attached
on the thumb and fingers. This type of actuator can bend or extend all 4 fingers
together about the metacarpal (MCP) joint, the thumb at the MCP joint and the
-
8
wrist. This exoskeleton robot provides the joint angle sensors in the structure to
measure the movement of the exoskeletons joints, and hence, movement of the
patients limbs [6].
2.3.1 ADVANTAGES OF HAND-WRIST ASSISTING ROBOTIC
DEVICE (HWARD):
I. An emergency stop button to stop the movement and move to
default position.
II. Provide the angle sensors for movements and safety.
2.4 7-DOF EXOSKELETON ROBOT DESIGN: CADEN-7
Figure 2.4: CADEN-7
Figure 2.4 shows the active exoskeleton robot that consist 7 DOF. This
system can generate the motion of shoulder extension/flexion,
abduction/adduction, internal/external rotation, elbow flexion/extension, forearm
supination/pronation, wrist flexion/extension and radial/ulnar deviation using the
-
9
complex mechanical design. For this project, the difficulty is to match the human
arm with the mechanical joint range that provide by CADEN-7. For the safety
system, this project implemented the mechanical stopper and emergency stop
button. This safety system is important to prevent the user from any dangerous
condition [8].
2.5 ANALYSIS OF PREVIOUS EXOSKELETON ROBOT
Regarding the three project in the literature review, there have some limitations
of each project.
Table 1.1: Analysis of Previous Exoskeleton Robot
4-DOF Saga University
Exoskeleton robot
>Didnt have emergency stop
button.
>Limited for shoulder, forearm
and elbow only.
-
10
7DOF Salford University Soft
Actuated Complex mechanical
design.
> User needs to stand.
> Didn't have mechanical stop.
3DOF Hand-Wrist Assisting
Robotic Device (HOWARD)
>Focus on wrist only.
>Higher force to assist the grasp.
7DOF Exoskeleton Robot
Design: CADEN-7
>Complex mechanical design.
>User needs to stand.
-
11
2.5.1 SOLUTION:
I. Combine the four projects into one project which is focus on
shoulder, forearm, elbow and grasping and releasing movement.
II. Simplify the mechanical design and the degree of freedom.
III. Install the robot on the chair so that the user not feels the weight of
the exoskeleton robot.
IV. Install the emergency stop button to stop all the movement.
V. Install the mechanical stopper for each movement.
-
12
CHAPTER 3
METHODOLOGY
This chapter describes the methodology and approach taken in the
project. Methodology of this project is divided into three parts. The first part will
explain about the hardware part, second will touch about electronics part and
lastly will explain about the software part.
3.1 HARDWARE PARTS
Choosing the suitable hardware is crucial in determining the best design
for this project. In this part, the structural design and hardware component that
are used in construct the passive upper-limb exoskeleton robot will be discussed.
-
13
3.1.1 HARDWARE DESIGN USING COMPUTER AIDED DESIGN
(AUTOCAD2010)
The base for this robot must be strong enough to handle the stroke
patient, so the steel chair and sponge at the seat were used. The base should also
be able to suit for all type of weight and size of the user. The structure of the
robot will be using the aluminums plate with the thickness of 5mm. This
aluminum is strong enough to handle the users hand. Figures 3.1 (a) and (b)
below are the illustrations of the mechanical design of exoskeleton robot
developed.
(a) (b)
Figure 3.1: (a) Isometric view. (b) Back view
Figure 3.1 (b) shows that where circuit will be placed. The main reason to
place the circuit at the back is because for the safety of the user and it also make
the therapist easier to handle and monitor the patient. Figure 3.2 show the front
view of the robot. The yellow spherical is the squeeze ball. It is for the patient to
train the grasp and release exercise. The squeeze ball will be attached to the
aluminum that bended 90 degree and at the end of the aluminum, there are some
-
14
string. The main reason of using the string for tighten the aluminum is so that it
is flexible during the movement.
Figure 3.2: Front view
Figure 3.3: Left view
-
15
3.1.2 MOTOR
Motor is one of the important parts for this project as an actuator. For this
project, the motor must have higher torque because it needs to handle the user
hand and to move the users hand and to hold the robot itself. The suitable motor
for this project is DC motor. After the research of the type of DC motor, type of
motor that suitable on this project is power window motor because it have higher
torque and low cost. Figure 3.4 is the power window that will be used.
One of the features that very important for this motor is high torque. This
higher torque motor cannot move manually because the internal gearing system.
So after the motor move by the supply voltage at some position, the movement
should be stop. This type of motor not allowed the robot to move back during
take up the robot hand. The robot hand part is very heavy, so type of motor can
avoid the robot hand to turn down the robot hand.
Figure 3.4: Power Window Motor
-
16
3.2 ELECTRONICS DESIGN
Choosing the suitable electronics part is also one of the important things
on this project. Several electronics component are used for specific reason such
as display the selection movements, controller for the robot and the sensor.
3.2.1 SENSOR
Figure 3.5: Limit Switch Figure 3.6: Potential Meter
Figure 3.5 and Figure 3.6 show the sensors that will be used in this
project. The usage of this sensor is to protect the users hand from moving
exceeding the limit of human hand movement. The sensor is very important for
this project because if there is no sensor, the robot might be moved the users
hand beyond the limit and that will cause some damage or broke the hand. So
using two sensors is safer for the user [7].
-
17
3.2.2 CYTRON 40 PINS PIC START-UP KIT
Figure 3.7: Cytron 40 Pins PIC Start-Up Kit
This PIC start-up kit was developed by Cytron Company for ease of the
microcontroller unit (MCU) user. this PIC start-up kit will ease the user because
all the component are already in the connection such as crystal, 5.0V regulator
and the socket for the voltage supply and the user can directly use this start-up kit
as main board. The input output pins are already labeled to avoid misconnection
by user. to power up this start-up kit, there have three method; first by directly
plug in the start-up kit using USB to computer, second by using DC power
adapter between 7V to 15V, and the last method is by directly connect an input
voltage such as battery. ICSP programmer is needed to program the
microcontroller (PIC16F777) and must be connected to the ICSP connector of
the start-up kit. For this project, an ICSP programmer from cytron, UIC00A was
used to program the microcontroller [7].
-
18
Figure 3.8: SK40C Board Layout
For the main circuit, the output voltage from SK40C circuit is around
4.5V to 4.7V. So to make the supply voltage is always 5V, the external voltage
regulator circuit was developed. This is because some of the electronic circuit
will not stable with 4.5V. The internal voltage regulator from the SK40C is use
as standby power supply. The external voltage regulator circuit is use as main
power supply.
-
19
3.2.3 7-SEGMENT DISPLAY
Figure 3.9: 7-Segment Display and BCD 45HC11
Figure 3.9 shows that the common cathode 7-segment displays that will
be use at this project. The purpose of this 7-segment display in this project is to
display time for user because the rehabilitation did not focus on how many tries
exercise are, but how long in time the exercise is. The limit for exercise is
between 10 to 15 minutes. To reduce the connection to main circuit
(PIC16F777), the BCD chip need to be used so that the connection can be
reduced from 8 to 4, at the same time, the use of the BCD chip make the program
become easier. The BCD chip converts the binary to decimal value. This 7-
segment display has been attached at the remote control circuit as shown in
Figure 3.13.
-
20
3.2.4 MICROCONTROLLER: PIC16F777
In this project, PIC16F777 will be using as the controller of the
exoskeleton robot as shown in the Figure 3.10. This type of microcontroller is a
combination of a microprocessor, memory, input and output port and some
special functions. The main function of the controller is to control the process of
the exoskeleton robot movement and to process the feedback from the sensors
give command to the actuator to perform the movements. It acts as the brain for
the exoskeleton robot where it controls all the exoskeleton robot behavior. The
other type of controller also have the same features, but this project require 3
PWM mode because this project uses 3 motors to make the movement of
rehabilitation, so this type of controller full fill the requirement.
Figure 3.10: PIC16F777 Pin Diagram
-
21
The microcontroller acts as a brain of this robot and will make the
decision has been programmed to perform for any case occurs. Below is the
specific task for the microcontroller to perform:
I. Motor control
Rehabilitation has some movements to exercise, so the
microcontroller will control the motor clockwise or anticlockwise.
Since this project contains 3 motors, so the controller need to select
the motor that will be move at one time.
II. Position setting
During the movement of the robot, some positions need to be set
by the microcontroller. The microcontroller needs to memorize the
position so that the movement is between that positions only if there
is any changes of the position.
III. Sensor reading
The sensor will send the signal to the microcontroller. The type of
signal is either analog or digital. For this exoskeleton robot,
microcontroller will receive both types of signals. The digital signal is
from the limit switch and the analog signal from the potential meter.
This analog signal will be converted to digital signal using internal
Analog-Digital-Convertor (ADC) from the microcontroller before it is
processed. For limit switch sensor, the signal is already in digital
form, so it is not necessary to convert it using ADC.
-
22
3.2.5 MOTOR DIVER
To drive the motor, it cant directly be connected to the microcontroller
because the current required for the motor is higher than current flow to
microcontroller. So the motor driver is needed to drive the motor. Since the
power window is operate at starting current of 1.5 Ampere are, motor driver is
needed to regulate the requirement current to drive the motor.
For this exoskeleton robot, the motor driver that are used is consists of
relays with up to 10 Ampere, MOSFET (IRFZ44N) and transistor (BC547).
Since this exoskeleton robot used 3 motors, so it needs 3 motor drivers. The
circuit connection of the motor driver is shown in Figure 3.11:
Figure 3.11: Motor Driver Circuit Connection
The features of this motor driver are; support high current up to 10
Ampere and can control the speed of motor using MOSFET. This type of motor
driver also can control bidirectional which is clockwise and anticlockwise. Every
-
23
motor diver required 2 relays, 1 MOSFET and two transistors. The function of
transistor is to switch the current flow through the relay. Its like on off switch
for the relay.
To indicate the current flow through the relay, LED is place in series
between microcontroller and transistor. When the LED is light on, that mean the
transistor is allowing the current flow through the coil inside the relay and it will
switch on the relay if the supply voltage is connect to normally close pin.
Figure 3.12: Assembled Motor Driver
3.2.6 WIRED REMOTE CONTROL
Figure 3.13: Wired Remote Control
-
24
Figure 3.13 show that the remote control circuit. This remote control is
the interface between the 7-segment displays, button and microcontroller. The
data send from the button will be in digital signal and it is wired by ribbon cable.
Data from microcontroller also will send in digital signal through ribbon cable to
7-segment displays and to LEDs.
The use of this remote control is to control the movement of the
exoskeleton robot. In addition, this remote also can select the mode of movement
which is for shoulder, upper-arm and forearm. There has 2 buttons for movement
control, 1 button for mode selection, 1 button for position setting, 1 button for
automatic mode and the small button is for emergency stop. The emergency
button was connected to master clear pin at the microcontroller. The function of
the emergency button is for safety features. The design of this remote control is
user friendly for the therapist to train the patient.
The function of the LED is to indicate during the mode selection. The red
LED will turn on when mode 1 was selected which is for shoulder movement,
yellow LED is for mode 2 indicator which is for upper-arm movement and the
green LED is for mode 3 indicators which are for forearm movement.
3.2.7 POWER SUPPLY
Computer power supply is being used in this project rather than lithium
polymer (Li-Po) batteries because of the upper-limb exoskeleton robot design
and the characteristic of the power supply itself. In this project the exoskeleton
robot designed not to be moved, so it is more suitable to use the computer power
-
25
supply rather than battery. This project required several stable input voltages and
high current to operate the exoskeleton robot.
The microcontroller and 7-segment display required 5V input voltage and
the actuator required 12V input voltage. Since the power window motor require
high current, this type of power supply is suitable to supply the high current
requirement of the motor. The specifications of the power supply are shown in
Table 2.1.
Figure 3.14: Power Supply
Table 2.1: Power Supply Specification
AC~ INPUT
VOLTAGE CURRENT FREQUENCY
115V~
230V~
10A
5A 50-60HZ
DC ==
OUTPUT
3.3V 5V 12V 5V 12V 5Vsb PS-ON POK COM
28A 40A 20A 0.5A 0.8A 2.0A REMOTE P.G. RETURN
MAX 250W 240W 2.5W 9.6W 10W
TOTAL MAX POWER 450W MAX 427.9W MAX 22.1W
-
26
This type of power supply cant be used directly because the ground
connection is on the open circuit. So the ground needs to be connected first. This
power supply has been modified so that it will have on off switch and two 12V
output connector.
Figure 3.15: Modified Power Supply
3.2.8 INTERFACING CIRCUIT
Interfacing circuit is a circuit to interface the microcontroller circuit with
other circuits. Below is the block diagram for interfacing circuit:
TWO 12V
CONNECTOR ON-OFF
SWITCH
SWITCH
INDICATOR
-
27
Figure 3.16: Interfacing Block Diagram
The interfacing circuit for this project is at the main board where the PIC
KIT SK40C has been attached. On the right side, the components need to go
through interfacing circuit first before being connected to microcontroller circuit.
At the same time, the power supply will be distributed at the interfacing circuit.
Interfacing circuit makes the circuit design become more systematic.
When there have some new connection or we want to modify the connection of
the circuit, we just need to modify the interface circuit only so this will reduce
the complexity to debug all circuits.
INTERFACING
CIRCUIT
MICROCONTROLLER
DISPLAY BUTTON
SENSOR
MOTOR
REMOTE
CONTROL
POWER SUPPLY
-
28
Figure 3.17: Interfacing Circuit
3.3 SOFTWARE PART
Software part is where the program of the exoskeleton robot will be
designed. Apart from the hardware and electronic design, software design is
important to control the operation of hardware through circuit. In the software
design, C language, MICRO C PRO and PICkits tool are used. C language is
used since PIC16F777 support the C language. However, it is easy to write the
program and use it. Figure 3.18 is MicroC PRO interface.
Interface with
remote control
Interface with
potential meter
Interface with
limit switch
-
29
Figure 3.18: MikroC PRO Interface
There are three main parts of the MICRO C PRO. The first part that is
located at the left side of the interface shows the code explorer. This window
eases the user by giving a clear view of every declared item in the source code.
The second part is the code editor which is the largest window and main window
where the user writes the C code that will be program to the microcontroller and
the third part is the error window located at the bottom of the interface. This
window will display locations and type of errors compiler has encountered.
Figure 3.19 is the algorithms flow chat that show how the program of the
exoskeleton robot work. The actual program can be review at the appendix.
-
30
3.3.1 MOVEMENT ALGORITHM
Figure 3.19: Movement Algorithm
Start
Mode selection 1 - 3
Execution
Mode 2 Mode 1 Mode 3
Push button
up
Push button
down
Push button
set position
Position
set
Motor1 rotate
clockwise
Limit switch 1 Stop motor1
Position set Set position
Position
set
Motor1 rotate
anticlockwise
Limit switch 2 Stop motor1
-
31
Figure 3.19: Movement Algorithm, continue
Mode 2
Push button up
Push button
down
Push button
set position
Position set Motor2 rotate
anticlockwise
Limit
switch 3 Stop motor2
Position set Set position
Position set Motor2 rotate
clockwise
Limit
switch 4 Stop motor2
Start
-
32
Figure 3.19: Movement Algorithm, continue
Mode 3
Push button up
Push button
down
Push button
set position
Position set Motor3 rotate
anticlockwise
Limit
switch 5 Stop motor3
Position set Set position
Position set Motor3 rotate
clockwise
Limit
switch 6 Stop motor3
Start
Push button
auto mode Count
-
33
CHAPTER 4
RESULT AND ACHIEVEMENT
This chapter discusses the result of the project and several problems faced
during the process of testing the exoskeleton robot.
4.1 EXOSKELETON ROBOT PROTOTYPE
In this chapter, the results and achievement of the project is discussed.
This design is slightly different from the design in the previous chapter because
during the construction of this real prototype, there are some factors that must be
consider such as the placement of the motor, limit switch, placement of
mechanical stopper and the potential meter. Figure 4.1, 4.2 and 4.3 below shows
the fabricated of robot hand structure from different side of view.
-
34
Figure 4.1: Exoskeleton Robot Front View
Figure 4.2: left view
-
35
Figure 4.3: Back View
As mentioned in previous chapter, the circuit is placed at the back of the
chair because this is the safe place to avoid the user from the electrical shock.
This prototype is focus on the patients right hand movement.
4.2 MECHANICAL STOPPER
Mechanical stopper is one of the safety features that must be installed on
this type of robot because this is the last part of stopping the motor from
continuous movement if the limit switch and the potential meter break down.
-
36
Figure 4.4 show the forearm part without mechanical stopper. During this
session, there is no connection to the motor, so the forearm part will move freely.
Figure 4.4: Without Mechanical Stopper
From the figure 4.4, we can see that the forearm part is at the unsafe
condition. If the user place the hand and start the movement, the user hand will
broke. The placement of the mechanical stopper is important in this exoskeleton
robot. The following figure shows the forearm part with mechanical stopper. The
mechanical stopper has made by installed the screw on the forearm part so during
some position, the screw will hit the upper arm part and automatically the
forearm part will stop moving.
Figure 4.5: With Mechanical Stopper
No
connection
for the
motor
Mechanical
stopper
-
37
4.3 POTENTIAL METER
These exoskeleton robots have been used the potential meter for position
setting. However, this type of potential meter dint have the coupling to the motor,
so I need to design the potential meter coupling so that the rotation of the motor
will be detect by rotation of potential meter. This potential meter has been
installed at the shaft of the motor. This is because the shaft of the motor is at the
center of the rotation. So the flexible bracket is used so that the potential meter is
movable. This is because to screw the bolt to the motor shaft, there must be no
connection between the shaft, so with the flexible bracket, the potential meter can
move away from the shaft and after screwed the shaft, the potential meter must
be connect to the wing bolt that have been modified to have the place for
potential meter. Figure 4.6 and 4.7 shows that the coupling of the potential meter.
Figure 4.6: Potential Meter Coupling
Figure 4.7: Motor Shaft with Wing Bolt
Shaft of the
motor without
bolt
-
38
4.4 EXOSKELETON ROBOT ACCOMPLISHMENT
The exoskeleton robot achieved the objective where it is able to perform
the basic typical human movement and grasp, set the position and it also can
perform automatic movement. In more details, the robot hand is able to achieve 8
types of movement and they are categorized into 1-3 modes as shown in the
Table 3.1.
Table 3.1: Mode Selection and Description
MODE SELECTION DESCRIPTION OF THE PERFORMANCE
Mode 1 Shoulder movement
Mode 2 Upper arm movement
Mode 3 Forearm movement
During every mode Grasp and forearm movement
4.5 TYPICAL HUMAN UPPER-LIMB MOVEMENT
This robot hand is able to perform certain typical human movement such
as shoulder adduction and abduction, upper arm extension and flexion, forearm
extension and flexion. Table 3.2 below shows the result of the exoskeleton robot.
-
39
Table 3.2: Result of the Exoskeleton Robot
TYPE OF MOVEMENT CAPABILITY
Shoulder adduction
Shoulder abduction
Upper arm flexion
Upper arm extension
Forearm flexion
Forearm extension
Forearm supination
Forearm pronation
Grasping
Besides, the ways to control the movement task of this exoskeleton robot
can be categorized into two types and they are manual type control and automatic
type control. The manual type control is for every mode and the automatic mode
is for mode 3 only. Figure 4.8 below shows the remote control of this
exoskeleton robot.
Figure 4.8: Remote Control
Mode change
button
Auto mode
button
Position set
button
Emergency
stop button
Interface with
interfacing circuit
7-segment
display
Down
movement
button
Up
movement
button
Mode 1
indicator
(red LED)
Mode 2
indicator
(yellow LED)
Mode 3
indicator
(green LED)
-
40
Table 3.3: Type of Movement
Type of movement Result of exoskeleton robot
Shoulder movement
Upper arm movement
-
41
Table 4.3: Type of Movement, continue
Forearm movement
Forearm movement and grasping
method
-
42
However, during shoulder and upper arm movement, the length of the
exoskeleton robot become longer than user hand, this is because the center of
rotation between user and exoskeleton robot is slightly different. So to overcome
this from happening, some flexible material has been installed at the forearm.
Figure 4.9: Elastic String
For the grasping exercise, the squeeze ball was used. The squeeze ball is
one of the resistance exercise which mean when we squeeze the ball, the ball will
produce reaction force to resist the human squeeze force. For the normal person,
the ball is nothing because the normal person has enough strength to squeeze the
ball, but for stroke patient there must strangle to squeeze the ball.
4.6 MANUAL AND AUTOMATIC CONTROL
Manual control has been program for three modes which is mode one for
shoulder movement, mode two for upper arm movement and mode three for
forearm movement. For the upper arm movement, there have some problem
Elastic string
-
43
occur which is the speed of the movement for take up and pull down the upper
arm cant be controlled due to heavy load. The upper arm part needs to be
supplied with high value of PWM because the motor cant take up the heavy
load. So the PWM supply value is constant. For the others movement, this
exoskeleton robot can properly perform the task.
For this project, the automatic control is focused on the forearm
movement due to this part did not have any load problem. The automatic control
has been programmed to perform forearm flexion and extension movement.
During the automatic control, this system can display and counting from 9 to 0
which is equivalence to ten seconds. The automatic control will be started if the
users pushed the button auto mode button in mode three. The system will start
counting just after the user push the auto mode button. After ten second the
forearm movement will stop automatically.
4.7 POSITION SETTING
Position setting is one of the main objectives for this project. This
objective is applied at the mode three of this project which is forearm movement.
The position setting is actually set by the analog potential meter where the
potential meter has been attached at the shaft of the motor. The user needs to
make some movement first and stop wherever the user wants to stop then push
the set position button. After set the position, the user can start make some
movement as usual but the movement now is limited from the forearm is in
straight position until where the position that has been set to stop. If the user
needs to make some changes to the position, the user need to push the reset
button and select mode three again and start to set the position. This system has
-
44
been proposed due to different ability of user. Some user has different position
that they can handle. So with this system, any type of user can use this
exoskeleton robot.
4.8 MECHANICAL BACKBONE SUPPORT
This robot is focus on the right hand side only. So this exoskeleton robot
needs external support so the material of the exoskeleton robot will not be
bending. Ten millimeter hollow aluminum has been use as the back bone of this
exoskeleton robot. Figure 4.10 shows the back bone supports. The place where
the back bone is placed is the best place because the back bone support from the
top of the exoskeleton robot. So the exoskeleton robots will not bending due to
heavy load that the exoskeleton robot need to handle. However, some part there
did not have the support, so this can be implementing in the future development.
Figure 4.10: Back Bone Support
Back bone
support
-
45
4.9 EMERGENCY STOP BUTTON
Emergency stop button is connected directly to the MCLR pin at the
microcontroller. This is because when the MCLR pin is low, the whole system is
reset and back to the initial condition. The initial condition for this project is at
the no mode condition which is no mode has been selected yet. There have two
stop button at this exoskeleton robot, one is at the wire remote control and the
other one is at the PIC start up kit that provided by Cytron.
Figure 4.11: Emergency Stop Button
4.10 SENSOR DETECTION
Sensors would ensure that the user is in safe condition when user makes
some movement from this exoskeleton robot. Every movement of this
exoskeleton robot has been installed with limit switched. The limit switch
position is the exactly where it should be. The entire limit switch is well
functioning.
Emergency
stop button
-
46
CHAPTER 5
DISCUSSION AND CONCLUSION
5.1 DISCUSSION
Based on the outcome, achievement and the comment from the lecturer
and other students, the weight of the exoskeleton robot itself is the obvious
problem faced in this project. The main root of cause is the use of actuator.
Power window motor is quite heavy compared to other DC motor, but yet the
performance of this power window is better than other DC motor from the torque
specification. Power window DC motor has higher torque than other normal DC
motor. Meanwhile, due to the structure of the exoskeleton robot, the exoskeleton
robot is not capable to control the speed of the movement. Although the power
window is higher torque DC motor, this type of motor have specific value of
weight that can be handle.
-
47
The other factors that increase the weight of this robot are the material
using in this exoskeleton robot. The material to implement this robot is 3mm
thickness aluminum. In this project, to overcome this kind of weight, a lot of
holes to reduce the weight are made. The direct shaft connection cant be
implemented if the load is too heavy. To overcome this problem, there must be
using belting method or use the muscle actuator. The mechanical design need to
be changed so that it can implement the belting or muscle actuator.
Apart from that, center of rotation problem is also one of the inadequate
in this exoskeleton robot project as the center of rotation is slightly different than
human hand. This issue can be clarified by the mechanical design of the
exoskeleton robot. Since the upper limb is complex joining, the mechanical
design also complex to design. The size of the power window is too big so that
will affect to design the center of rotation of the human hand. Choosing the
correct size and specification is one of important thing before implement the
design. The type of motor must successfully fulfill the requirement of the design
which is small size and higher torque until can handle the heavy load.
5.2 SUGGESTIONS AND FUTURE DEVELOPMENT
From the observation, there are several improvements that can be made to
this exoskeleton robot:
-
48
I. Implement The Gearing System
Gearing system will increase the specification of the DC motor in
the aspect of higher torque. Gearing system is one way to
accommodate the heavy load. By implement this system into this
exoskeleton robot, the movement of the robot will be smooth.
II. Reduce The Weight
The total weight of this robot is too heavy. Some movement not
moves smoothly. The total weights of this robot are including the
motor and the material used in this project. By selecting the
lighter material such as high quality plastic and select the suitable
size and type of motor can reduce the total weight of the robot.
III. Replace The Potential Meter With Digital Encoder
Encoder will make the system more intelligent. By adding the
digital encoder, the response of the system will be faster. This is
because this robot is interacting with the human, every movement
need faster response.
IV. Replace The Upper Arm With Flexible Material
The flexible part will make this robot more flexible to everybody,
because every person has different length of their hand. So with
-
49
this type of feature, the robot can fit for everybody whatever their
hand length.
V. Choose The Suitable Type of Actuator
The type of actuator is one of the important things for this project.
This project needs to handle the weight of the robot itself and also
the hand of the user. So the total weight is become heavier and
need the high specification from the actuator. The appropriate
types of actuator are hydraulic and pneumatic system. Hydraulic
and pneumatic can support the heavy load. This system also can
control the speed of the movement of the robot where this system
need slow movement but constant speed.
5.3 CONCLUSION
The main objective of this project is to design an upper limb exoskeleton
robot for hand rehabilitation for stroke patient has been developed with manual
and automatic control and to set the position of the movement due to the patient
condition has been achieved. The robot can set the position correctly and make
the movement properly. But, several improvements still can be made in the
future.
-
50
REFERENCES
[1] Cloud. W, Man Amplifiers: Machines that Let You Carry a Ton, Popular
Science, vol. 187, no. 5, pp. 7073, 1965.
[2] Mosher. R. S, Handyman to Hardiman, Society of Automotive Engineers
Publication, MS670088, 1967.
[3] Benjuya. N, and S. B. Kenney, Hybrid Arm Orthosis, J. Prosthetics Orthotics,
vol. 2, no. 2, pp. 155-163, 1990.
[4] Kiguchi. K, Active Exoskeletons for Upper-Limb Motion Assist, J. Humanoid
Robotics, vol. 4, no. 3, pp. 607-624, 2007.
[5] Tsagarakis. N. G, and Caldwell. D. C, Development and Control of a Soft-
Actuated Exoskeleton for Use in Physiotherapy and Training, J. Autonomous
Robots, vol. 15, pp. 21-33, 2003.
[6] Cramer. S. C, Takahashi. C. D, Der-Yeghiaian. L, See. J, Motiwala. R. R, and
Le. V, Robot-Based Hand Motor Therapy after Stroke, in Proc. Int. Stroke
Conf., 2007.
[7] Cytron. (n.d.). Retrieved December 2009, from http://www.cytron.com.my
[8] Perry. J. C, Rosen. J, and Burns. S Upper-Limb Powered Exoskeleton Design,
IEEE/ASME Trans. on Mechatronics, vol. 12, no. 4, pp. 408-417, 2007.
-
51
[9] Kiguchi. K, Iwami. K, Iwami. M. Iwami, Watanabe. K, and Fukuda. T, An
Exoskeletal Robot for Human Shoulder Joint Motion Assist, IEEE/ASME
Trans. on Mechatronics, vol. 8, no. 1, pp. 125-135, 2003.
-
52
APPENDICES
APPENDIX A
HUMAN UPPER-LIMB SEGMENT
Human Upper-Limb Motion
Shoulder Elbow Forearm
-
53
APPENDIX B
SCHEMATIC CIRCUIT DIAGRAM
MAIN BOARD
-
54
MOTOR DRIVER
-
55
REOMOTE CONTROL
-
56
APPENDIX C
PROGRAMMING
/*******************************MOTOR1***************************/
#define pwm1 CCPR3L
#define m1L PORTD.F4
#define m1R PORTD.F5
/*******************************MOTOR2***************************/
#define pwm2 CCPR1L
#define m2L PORTD.F2
#define m2R PORTD.F3
/*******************************MOTOR3***************************/
#define pwm3 CCPR2L
#define m3L PORTD.F0
#define m3R PORTD.F1
/*******************************BCD*******************************/
#define bcdA PORTC.F7 //LSB
#define bcdB PORTC.F6
#define bcdC PORTC.F5
#define bcdD PORTC.F4 //MSB
/******************************BUTTON******************************/
#define swas PORTB.F0 //switch angel set
#define swstrt PORTB.F1 //switch start
#define swmc PORTB.F2 //switch mode change
#define swup PORTB.F3 //switch up
#define swdown PORTB.F4 //switch mode change
-
57
/*******************************LED********************************/
#define ledr PORTD.F6 //red led
#define ledy PORTB.F6 //yellow led
#define ledg PORTB.F7 //green led
/***************************LIMIT SWITCH****************************/
#define ls1 PORTA.F3 //limit switch 1
#define ls2 PORTA.F4 //limit switch 2
#define ls3 PORTA.F5 //limit switch 3
#define ls4 PORTE.F0 //limit switch 4
#define ls5 PORTD.F7 //limit switch 5
#define ls6 PORTC.F3 //limit switch 6
/*************************function declaration*********************/
unsigned int mode,count,read,i,x, set2, speed,speed2,temp ;
unsigned int set1=0;
void mode_condition();
void called_mode(int);
void select_motor(int);
void display();
void _init();
void clockwise_m1(unsigned int);
void clockwise_m2(unsigned int);
void clockwise_m3(unsigned int);
void unclkwise_m1(unsigned int);
void unclkwise_m2(unsigned int);
void unclkwise_m3(unsigned int);
void stopm1(void);
void stopm2(void);
void stopm3(void);
void auto1(void);
void auto2(void);
void auto3(unsigned int);
/*************************main function****************************/
-
58
void main() {
_init();
while(1)
{
if (swmc==0)
{
mode_condition();
}
else
select_motor(mode);
}
}
/*************************function prototype***********************/
void _init()
{
ADCON1=0x8C;
TRISA=0x1F;
TRISB=0x1F;
TRISC=0x08;
TRISD=0x80;
TRISE=0x01;
mode=0;
ledr=ledy=ledg=1;
bcdD=bcdC=bcdB=bcdA=1;
m1L=m1R=m2L=m2R=m3L=m3R=0;
//Setup up PWM operation
PR2=255; //Set PWM period
CCP1CON = 0b00001100; //Configure CCP1CON to on the PWM1 operation
CCP2CON = 0b00001100; //Configure CCP2CON to on the PWM2 operation
CCP3CON = 0b00001100; //Configure CCP3CON to on the PWM3 operation
T2CON = 0b00000100;
-
59
pwm1 = 0; //Clear motor1 speed
pwm2 = 0; //Clear motor2 speed
pwm3 = 0; //Clear motor3 speed
}
void mode_condition()
{
if(swmc==0)
{
delay_ms(50);
if(swmc==0)
{
delay_ms(50);
while(swmc==0) continue;
delay_ms(50);
mode=mode+1;
called_mode(mode);
if (mode>3)
mode=0;
}
}
}
void display()
{
switch(count)
{
case 0:break;
case 1:bcdD=0;bcdC=0;bcdB=0;bcdA=0;
break;
case 2:bcdD=0;bcdC=0;bcdB=0;bcdA=1;
break;
case 3:bcdD=0;bcdC=0;bcdB=1;bcdA=0;
break;
-
60
case 4:bcdD=0;bcdC=0;bcdB=1;bcdA=1;
break;
case 5:bcdD=0;bcdC=1;bcdB=0;bcdA=0;
break;
case 6:bcdD=0;bcdC=1;bcdB=0;bcdA=1;
break;
case 7:bcdD=0;bcdC=1;bcdB=1;bcdA=0;
break;
case 8:bcdD=0;bcdC=1;bcdB=1;bcdA=1;
break;
case 9:bcdD=1;bcdC=0;bcdB=0;bcdA=0;
break;
case 10:bcdD=1;bcdC=0;bcdB=0;bcdA=1;
break;
}
delay_ms(1000);
}
void called_mode(int num)
{
switch(num)
{
case 1:
ledr=0;
ledy=1;
ledg=1;
break;
case 2:
ledr=1;
ledy=0;
ledg=1;
break;
case 3:
-
61
ledr=1;
ledy=1;
ledg=0;
break;
}
}
void select_motor(int num)
{
switch(num)
{
case 1: ADCON0=0x05;
stopm2();
stopm3();
if(swup==0)
{
if(swup==0)
{
while(swup==0)
{
delay_ms(100);
read=Adc_Read(0);
if(ls1==0||swup==1)
stopm1();
else
clockwise_m1(100);
}
}
else
stopm1();
}
else if(swdown==0)
{
-
62
if(swdown==0)
{
while(swdown==0)
{
delay_ms(100);
read=Adc_Read(0);
if(ls2==0||swdown==1/*||read
-
63
read=Adc_Read(1);
temp=read;
if(swup==0)
{
if(swup==0)
{
while(swup==0)
{
delay_ms(50);
read=Adc_Read(1);
if(ls3==0||swup==1)
stopm2();
else
unclkwise_m2(speed);
}
}
else
stopm2();
}
else if(swdown==0)
{
if(swdown==0)
{//unclkwise_m2(230);
while(swdown==0)
{
delay_ms(100);
read=Adc_Read(1);
if(ls4==0||swdown==1)
stopm2();
else
clockwise_m2(speed2);
}
-
64
}
else
stopm2();
}
else if(swas==0)
{ delay_ms(50);
read=Adc_Read(1);
while(swas==0)continue;
{
delay_ms(100);
read=Adc_Read(1);
set1=read;
}
}
else
stopm2();
break;
case 3: ADCON0=0x15;
stopm1();
stopm2();
//set1=0;
if(swup==0)
{
if(swup==0)
{
while(swup==0)
{
delay_ms(100);
read=Adc_Read(2);
if(read
-
65
unclkwise_m3(90);
}
}
else
stopm3();
}
else if(swdown==0)
{
if(swdown==0)
{
while(swdown==0)
{ delay_ms(100);
read=Adc_Read(2);
if(ls6==0||swdown==1)
stopm3();
else
clockwise_m3(70);
}
}
else
stopm3();
}
else if(swas==0)
{
read=ADC_Read(2);
set1=read;
if(swas==0)
{
read=ADC_Read(2);
while(swas==0)continue;
{
ledr=0;
-
66
read=ADC_Read(2);
set1=read;
}
delay_ms(100);
read=ADC_Read(2);
set1=read;
}
}
else if(swstrt==0)
{
auto3(set1);
}
else
stopm3();
break;
}
}
void auto1()
{
while(swstrt==0)continue;
{
while(1)
{
for(count=10;count>=0;count--)
{
delay_ms(50);
read=Adc_Read(0);
if(ls1==0)
{
delay_ms(100);
unclkwise_m1(110);
read=Adc_Read(0);
-
67
}
else if(ls2==0)
{
delay_ms(100);
clockwise_m1(110);
read=Adc_Read(0);
}
if(count=0;count--)
{
delay_ms(50);
read=Adc_Read(1);
if(read>=set1||ls3==0)
{
-
68
delay_ms(100);
clockwise_m2(70);
read=Adc_Read(1);
}
else if(ls4==0)
{
delay_ms(100);
unclkwise_m2(100);
read=Adc_Read(1);
}
if(count=0;count--)
{
-
69
read=ADC_Read(2);
delay_ms(500);
if(ls6==0&&ls5==1)
{
unclkwise_m3(110);
read=ADC_Read(2);
}
else if(read
-
70
{
pwm1=pwm;
m1L=1;
m1R=0;
}
void clockwise_m2(unsigned int pwm)
{
pwm2=pwm;
m2L=1;
m2R=0;
}
void clockwise_m3(unsigned int pwm)
{
pwm3=pwm;
m3L=1;
m3R=0;
}
void unclkwise_m1(unsigned int pwm)
{
pwm1=pwm;
m1L=0;
m1R=1;
}
void unclkwise_m2(unsigned int pwm)
{
pwm2=pwm;
m2L=0;
m2R=1;
}
void unclkwise_m3(unsigned int pwm)
{
pwm3=pwm;
-
71
m3L=0;
m3R=1;
}
void stopm1()
{
pwm1=0;
m1L=0;
m1R=0;
}
void stopm2()
{
pwm2=0;
m2L=0;
m2R=0;
}
void stopm3()
{
pwm3=0;
m3L=0;
m3R=0;
}
borang thesisdeclarationcontent and listthesis fyp