-
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