Section 1 – Requirements
Robot is a kind of automatic machine, which has particularly a series of similar competences as human-being, such as sensing capability, planning capability, moving capability and so on. The word ‘Robot’ was referred by Czech writer Karel ÄŒapek in his play R.U.R (Rossum’s Universal Robots), which was published in 1920.  Moreover, the word robotics, which describes this kind of field of study, was referred accidentally by the science fiction writer Isaac Asimov. In his science fiction, all the robots must obey the Three Laws of Robotics (a set of three principles). The laws are stated as follows:
1. A robot may not injure a human being or, through inaction, allow a human being to come to harm.
2. A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law.
3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.
With the developing of science and technology of modern society, robot is moving toward the trend of the development of intelligent. The one we will design is called Autonomous Mobile Robot which is a kind of mobile robot. It has varieties of sensors and controllers on itself. In addition, it is a robot that can independently complete some tasks without external information input and control during operations. The target for autonomous mobile robot is to, in the absence of external intervention and without making any provisions on the circumstance and changing conditions in carrying out the process, sense around the local circumstance information continuously and make a variety of decision-making independently and finally move purposeful and the complete the tasks. Accordingly, navigation technology is the core of autonomous mobile robot.
The diagram of lifecycles for this project is given below. It shows from the beginning of the project to the end.
The system project management is an extremely vital part in every project, though it is always ignored in many teams. We need make a point of doing project management before do everything. We could discuss in a group to think out all of the possibilities which may happen in the project. ‘Many torpedoes are better than a single bullet.’  Therefore, a group discuss together may motivate more and more inspiration rather than each single thinks it alone. A typical system feature should have simple function but complex design. It need also make a series of requirements after discussing by group, because it provides some different point of views. Possibly, there will be some quarrels during the discussion, hence, we need to respect to everyone and every point of view. In addition, a straight discipline will be built throughout the project. Every engineer should behave in honest and ethically responsibility. Otherwise, they will not be treated as a professional engineer in their field. Nearly half of team, who is failed in the project, is due to a bad project management. However, the majority of teams may give incomplete requirements in the project; therefore, the result for them is also fail. To sum up, building a high-quality project management and system engineering will decrease project failure probability.
1.3 Quality Plan
The quality plan displays the required product qualities and how these are measured and defines the most important quality attributes. The product quality is defined in High-level which emphasize the capabilities of developers for this project. Therefore, we have to consider if the project objectives are specific, measurable, achievable, realistic and time-limited. The quality plan structure is showed in table 2.
Build all of the motors, microcontrollers, sensors and other components on the housing. Then connect all components to the power supply. In addition, build the software code into microcontrollers. Finally, before the formal race, we need to test the robot and improve on the ability such as speed, stable and so on.
To drive as fast as possible and also ensure the egg will not get out of the car.
Table 2. Quality Plan Structure
1.4 Requirements specification
There are a series of requirements going to be given in the paper. It can be grouped in terms of Mandatory, Preference and Operational. Three specific tables of these requirements are given as follows:
To make the wheels rotate. Designer need two motor corresponding with two rear wheels.
To provide the robot drive on the right route. It uses A/D conversion to send the signal into singlechip.
To step-down the voltages from the power supply. The work voltage for singlechip is around 5V, but the power supply given is much higher than it. Hence, designer needs to reduce the voltage.
To make the robot running. Designer need two rear wheels which measure the speed of rotating and one base wheel which makes the robot balance. It
To integrate all inputs, outputs and memory etc. into one chip.
To put all components on. It is a base for the robot car.
To provide voltage so that works successfully.
To connect all components from one hole to another.
To carry an egg whilst undertaking its journey.
To give the robot a track to race. The black line is 5 meter long. It can be designed any shape of routes.
To prettify the robot from inside to outside. It will be done after dealing with all Hardware and Software components, including adding several Led lights or a sound box. Also, orderly wires connected on the breadboard will be considerate. All of the opinion above would make consumer happy.
To give a wireless robot car. Using a pack of battery instead of wired power supply can make a ‘real’ robot. However, it will increase the weight of robot itself.
To distribute each part of project to each of six team member specially. In the project, there are different tasks such as programming design, hardware design, mechanical construction etc. After discussion by group, we can filter out the best parts of each section. Therefore, the project can be distributed to each team member who did the best in his field. In addition, there should be a team leader, for supervising and coordinating every part in this project.
To test the robot after designing and assembling work. Designer can use different types of raceways to test the ability of the robot such as the maximum speed, minimum and maximum radius of turning circle etc.
To fix the robot with exact tools. Designer needs some basic tools to assemble the components on the housing.
To give some specific details. Designer may search online to get some technical data, which can prove our design point.
To design the programming code. Using Microchip MPLAB(if designer use PIC microchip) or other similar software to build the programming code.
To control the budget. As we know, designer should give a budget before working. In this project, the budget is 40 pounds, while we can exceed the budget by paying own. However, it is not a good solution. Therefore, the budget should be controlled strictly.
Section 2 – Design
2.1 Design Outline
We divide the design outline into two parts. One is Hardware, and the other is Software. Both of them are extremely vital in this project. We will use EE2A laboratory component to guide us design the project throughout.  All of the specific details for each component will be given in each part. A table for design outline is as follows:
188.8.131.52 Servo Control
The key of Servo Control is motor. In this paper we will give two kinds of motors—Servo motor and Stepper motor.
It is one kind of indirect subsidy motor speed changing device which can control the mechanical components of the engine running. It can control the speed, displacement accuracy. In addition, it makes voltage signal into torque and rotational speed to drive the controller. The servo motor is divided into DC servo motor and AC servo motor.
Servo motor mainly relies on impulse to locate. Also, when servo motor receives a pulse, then it will rotate an angle which is corresponding to one pulse. Thus, it may achieve a displacement. Because of the servo motor has sent a pulse function itself, hence, each servo motor will sent the corresponding numbers of pulse when it rotates an angle. Moreover, it is connected to the pulse which is received by the servo motor, or called ‘Closed-loop’. Furthermore, the system will know how many pulses have been sent and how many pulses have been received simultaneously. Accordingly, we can control the motor rotation accurately, in order to achieve precise positioning which can reach 0.001mm.
In DC servo motor, it is divided into brush and brushless motors. The characteristics of brush motor and brushless motor are as follows:
Brush: Low cost, simple structure, large starting torque, speed range is wide, easy control. Do need to maintain (but easy maintenance).
Brushless: Small size, light weight, fast response, high speed, small inertia, smooth rotation, stable torque. Complicated control, easy to implement intelligence. High efficiency, low operating temperature, small electromagnetic radiation. Motor maintenance-free.
Stepper motor is an open-loop control element which translates electrical impulse signals into angular displacement or linear displacement. Under the non-overload condition, motor speed and stop location only depend on pulse frequency and pulse number, regardless of the load change. That is, to send an electrical pulse signal, then turn one motor step angle. The existence of this kind of linear relationship, coupled with only a periodic error of stepper motors without the accumulated error, makes simple to control the stepper motor in terms of speed, position and other control areas. The characteristics of stepper motor are given as follows:
· Stepper motors are constant power devices
- When there is a motor speed increasing, then the torque decreases
- The torque curve may be extended by using current limiting drivers and expanding the driving voltage.
- Stepper motor has more vibration than any other motors.
- The vibration becomes awful at some speeds and may affect the motor to lose torque.
- The effect can be reduced by increasing velocity quickly through the problem speeds range, actually damping the system, or using a half-stepping motor.
- Motors with many phases also display smoother operation than those with fewer phases.
The technical requirements of the servo control system
1. System Accuracy
The accuracy refers to the reappearance of the input signal corresponding with the output of the precision required, which performs in the form of errors. It can be summarized as dynamic error, steady-state errors and static errors, which are composed of three aspects.
The stability of the system means that when acting on the system after the disappearance of the interference, the system can be restored to its original steady-state capacity; or when there is a new input to the system command, the system will reach a new stable operation of state capacity.
The response refers to the output follow the input commands changing in reaction speed, which determines the efficiency of the system. The Response speed corresponds with a number of factors, such as the computer’s speed, movement system damping and quality etc.
4. Operating Frequency
The operating frequency usually refers to the system which allows the input signal frequency range. When the operating frequency signal is input, the system will work according to the technical requirements, while the other frequency signal is input, the system will not work properly.
The classifying of servo control system
There are three kinds of common classifying as follows:
1. According to the different characteristics of parameters.
2. According to the types of the driving components.
3. According to the control theory.
The Structure of servo control system
Servo control system typically includes in five parts—–controller, controlled object, implementation part, testing part and comparison part.
Controller is usually a computer or a PID control circuit. The most important task is to compare the warpage output signal and deal with the transform processing, in order to control the implemental components act under the requirements.
2. controlled object
The object is controlled including displacement, velocity, acceleration, force and torque.
3. implementation part
The function of the implementation part is in term of control signals, according to the requirements of the various forms energy of the input transform into mechanical energy, in order to drive the controlled object.
4. testing part
Testing part is a device which is able to measure the output and convert into more areas of the dimension that needed to. Typically, it includes sensors and conversion circuits.
5. comparison part
Comparison part is to compare between the input command signals and the feedback signals of system, in order to attain the deviation between the output and input signal, which is usually achieved by a specific circuit or computers.
Accordingly, we design this project with using stepper motor. Considering with the difficult in doing the program code, we have to give up using DC servo motor. Moreover, DC servo motor may create some pulses when it works; we have to make each program separately. Furthermore, the advantage for using stepper motor is that we have already programmed the code. Hence, we could use it with some modification easily.
In this project, housing is as to the robot, just like trunk as to human-being. The stability and adaptability is the key of the project. Therefore, we prefer buy a readymade housing or the car online. There are 3 advantages for using this method. Firstly, we do not need to deal with the mechanical construction anymore. All of the basic components have already been built on the housing model. It can save an amount of time to do other work; secondly, the housing model is reliable, for the seller has sold so many models already, particularly to the competitors for the race; thirdly, the cost is lower than we do it ourselves. It can control the budget very well. To sum up, we choose this way to get the housing. In addition, the specific size of each component should be given on the prospectus.
Therefore, after choosing kinds of different type of housing, we pick up an advanced housing with wheels.
The size of wheels could affect the speed and the angle when it is driving. Under the same condition, using big wheels can go fast in the straight line. However, when there is a curve at the end of straight line, it is harder to turn the right direction immediately than small size wheels, because of its big radius of turning circle.
The material of wheels could also affect the speed and angle when it is driving. Using plastic rear wheel may provide a high speed because of less friction. However, without more friction, it may get trouble at turning point with high angular velocity. In our case, to make sure the robot go through the black line track is the most important task. Therefore, rubber wheels should be in favour.
Hence, to make wheels rotate flexible, we choose a stainless steel base wheel with 3mm inter radius, 10mm outer radius, 4mm thickness. Moreover, two rear wheels were designed with 20mm radius to make sure it has still some space under the housing to build our sensors on. According, the manufactory constructed the housing for these details we need. Finally, we fix two O-type rubber rings on the wheels.
In the front of the housing, we still need to deal with some specific works. Firstly, we need two stepper motors discussed before, the point is, how to fix them on the housing steady. Right, we need two clips to fix them on the housing. Then use one screw and one nut for each side to fix the motor steady. Secondly, to make the housing tidy, we need to add a steel plate. It can not only steady the housing, but also provide another new flat to fix chips on so that do the connection work later easier. Furthermore, we have another goal in this project. It is called ‘egg race’. It means we must build a spoon provided to carry an egg throughout the race. Hence, we have to consider how to ensure the egg will not be dropped off. Consequently, we design it that put the spoon on the cover of that added steel plate. It is a good place to lay the egg on, for it is not too high. In addition, we could add several wires around the spoon to double ensure it successfully.
An image sensor is a device which converts an optical image to an electric signal. It is used regularly in digital cameras and other imaging devices. Normally, an image sensor is a charge-coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) active-pixel sensor. Most digital still cameras use either a CCD image sensor or a CMOS sensor. Both types of sensor achieve the same task of capturing light and converting it into electrical signals. 
A CMOS chip is a type of active pixel sensor which is made by using the CMOS semiconductor method. Extra circuitry adjacent to each image sensor converts the light energy to a voltage. Moreover circuitry on the chip might be included to convert the voltage to digital data. It is a sensor which has high system integration. That is to say, a CMOS chip can integrate all of functions needed by image sensor into a system-on-chip so that to achieve the goal of reducing the cost of the production.
A CCD is an analog device. When light hits the chip, it is held like a small electrical charge in each photoelectric sensor. The charges are converted to voltage one pixel every time when they are read from the chip. Moreover, the circuitry in the camera converts the voltage into digital data too.
A CCD has a series of advantages as follows:
· High Resolution
· Low Noise
· High Dynamic Range
· High Quantum Efficiency
· Large Field of View
· Broad Spectral Response
· Low Image Distortion
· Small Size, Light Weight
· Low Consume Power, Without Strong Magnetic Fields Effect
· High Charge Transmission
A photoelectric sensor is a device used to detect the displacement, absence, or presence of an object by using an infrared transmitter and a photoelectric receiver. They are used broadly in industrial manufacturing. There are three different functional types: opposed, retro reflective, and proximity-sensing.
A self-contained photoelectric sensor contains the optics, along with the electronics. It requires only a power source. The sensor performs its own modulation, demodulation, amplification, and output switching. Some self-contained sensors provide such options as built-in control timers or counters. Because of hi-tech progress, self-contained photoelectric sensors have become more and more small. In addition, fibre optic is passive mechanical sensing components. They may be used with self-contained sensors. They have no electrical circuitry and no moving parts, and can safely pipe light into and out of antagonistic environments.
After discussing both image sensor and photoelectric sensor, we decide to use photoelectric sensor during the project. From the comparison of advantages and disadvantages, we can easily find that image sensor (usually use CCD method) is a complicated and advanced technology. It is based on photoelectric infrared transmitter and receiver, but use analogue signal to digital signal. It could be used in some complex task such as 3-D race track. In our project, we only challenge to do up to 5 meters race track. Hence, it is not so much useful to get such an exact detection. Moreover, one of the advantages of photoelectric sensor is high response. It is faster than using image sensor to detect the unknown track.
Accordingly, we prefer use photoelectric infrared sensor during the project. As we know, the point of photoelectric infrared sensor is infrared. We have to confirm two beside sensors do not disturb each other work. Hence, to get an appropriate distance between two sensors is the problem in this part.
From reading several example projects before, we find a majority of them prefer put all the sensors into one straight line where elicits our attention. It does not matter to put them in front or back of the robot. It is similar to the X-axis. We can define each sensor a coordinate. We prefer use seven infrared sensors (1cm space between two sensors), so we can define all of these sensors into [-3, -2, -1, 0, 1, 2, 3], which are the y-coordinate. Connect a LED light to the receiver of each sensor. Thus, we can know which sensor is working and which one is not. The specific diagram of sensors are showed in 1. For example, the robot starts at the centre of black line, so the LEDs should send us a data with [0, 0, 1, 1, 1, 0, 0] (when sensor detects black line, the LED will light. Because the different reflectivity of black and white line). Then it will go along the track until meet a turning point. The receiver might be received a data with [0, 1, 1, 1, 0, 0, 0, 0]. Thus, from the definition of setting before, we can identify the robot has departed from the centre of the black line to left. Therefore, the robot should turn left.
There will be some possible troubles during debugging the robot car. The sensors are not reliable after using for a long time. Therefore, the fixed LEDs will solve this problem definitely. When they work, the LEDs should be lighted.
A Microcontroller is a small computer based on a single IC (integrated circuit) which is consisting of a relative simple central processor unit combined with specific functions such as a crystal oscillator, timers, and watchdog timer etc. 
From the comparison with kinds of microcontroller, we choose MC33886 chip which is a member of the low-cost, high-performance HCS08 Family of 8-bit microcontroller units (MCUs). It is a monolithic H-Bridge ideal for fractional horsepower DC-motor and bi-directional thrust solenoid control. The 33886 chip is able to control continuous inductive DC load currents up to 5.0 A. Output loads can be pulse width modulated (PWM-ed)at frequencies up to 10 kHz. The 33886 chip is parametrically detailed over a temperature range of -40°C ≤ TA ≤ 125°C, 5.0 V ≤ V+ ≤ 28 V. The IC can also be operated up to 40 V with derating of the specifications. The IC is available in a surface mount power package with uncovered pad for heat sinking. The features of MC33886 chip is showed below: 
· Similar to the MC33186DH1 with Enhanced Features
· 5.0 V to 40 V Continuous Operation
· 120 mΩ RDS(ON) H-Bridge MOSFETs
· TTL /CMOS Compatible Inputs
· PWM Frequencies up to 10 kHz
· Active Current Limiting via Internal Constant OFF-Time PWM (with
Temperature-Dependent Threshold Reduction)
· Output Short Circuit Protection
· Under voltage Shutdown
· Fault Status Reporting
· Pb-Free Packaging Designated by Suffix Code VW
In addition, the simplified application diagram and internal block diagram for MC33886 chip is given as follows:
The 33886 chip has 20 pins. The diagram and specific Pin Layout function description will be given in 4 and table 1 as follow:
Pin Layout Name
Low-current analog signal ground.
Fault Status for H-Bridge
Open drain active Low Fault Status output requiring a pull-up resistor to 5.0 V.
Logic Input Control 1
True logic input control of OUT1
4, 5, 16
Positive Power Supply
Positive supply connections.
Output 1 of H-Bridge.
Do Not Connect
Either do not connect or connect these pins to ground in the application. They are test mode pins used in manufacturing only.
9, 10, 11, 12
Device high-current power ground.
Active Low input used to simultaneously tri-state disable both H-Bridge outputs. When D2 is logic Low, both outputs are tri-stated.
H-Bridge Output 2
Output 2 of H-Bridge.
Charge Pump Capacitor
External reservoir capacitor connection for internal charge pump capacitor.
Active High input used to simultaneously tri-state disable both H-Bridge outputs. When D1 is logic High, both outputs are tri-stated.
Logic Input Control 2
True logic input control of OUT2
Table 1. Pin Layout Function Definition
Some details for using the MC33886 chip should be noticed that how to use several chips together in this project. The method is using a number of MC33886 chips together in parallel. For there is no need to drive backward, hence, we could use half H-bridge and also make two half H-bridge in parallel. The consequence for this method is to enhance the driving ability of the chips. It is a common variation from full H-bridge that uses two transistors on one side of the load. Moreover, use one of the half H-bridge to drive the motor and the other one to provide power for the sensors.
184.108.40.206 Power Supply
Power supply is one of the most important components and the fundament for all components working. A regulated DC power supply provides 0~15 V voltage. There are two different way to build the power supply in this project. One is using two wires to connect 0 and +15V to the DC-DC converter; the other one is building a battery on the robot itself. Both of them have advantages and disadvantages. Therefore, we have to analyze both of them first.
· Wired Power supply
The advantages for the wired power supply are reliable, stable, durable and savable. The power supply is a regulated DC power supply. The only thing we need to do is using wires to connect both 0 and +15V to the DC-DC converter. Because the working voltage for whatever microcontroller, sensors and stepping motors is 5 volts, we need a DC-DC converter to convert voltage from 15V to 5V. Moreover, we do not need to consider the duration of the power supply. It will still work normally even if works after several hours. Furthermore, using wired power supply is an excellent method to consider the cost during the project, for the power supply is a preference requirement in this project. Hence, we do not need to cost a lot on it.
The disadvantage for the wired power supply is obviously wired. We have to let one person hold wires when it is driving. This is a consideration from personnel aspect. It is a waste of energy to the team.
· Wireless Power Supply
The advantage for the wireless power supply is that we can design a really autonomous robot. We do not need to contribute one person to look after it. However, we may meet a series of problems when using battery. Firstly, it may increase the weight of whole robot. As we know, it is hard to turn left or right when you drive a high weight car. It is similar to an autonomous robot. Secondly, the duration is limited. For we have to test the robot before the race competition, the problem is how long does this pack of battery provide the power. The answer is not too long. Therefore, if we choose to use battery as the power supply, we have to solve how to charge the battery first.
To sum up, it is not a good method to use battery in this project. Basically, we consider from the duration and the cost these two aspects. Accordingly, the final scheme we designed is to use wired power supply.
Because we do not have MC33886 chip yet, we have to use PIC 16F648A chip to simulate this design. It should be kinds of similar to each other, but particularly in using different software.
With the purpose of writing program data into a PIC chip, a software programmer is required. In the design, a USB controlled PICkit2 may be used. We will give following steps to guild us through the generation of the programme. Moreover, make sure retain a simple ‘debug’ programme in order to exercise any hardware, such as a simple flashing LED. There are a series steps to help us how to program the device. We pick them up from the laboratory notes.
1. Connect the PICkit2 Microcontroller Programmer to the PC by using the USB cable. Socket the 6-pin header on the bread board or frankly on to the hardware (for in-circuit programming).
2. Start MPLAB IDE from the shortcut icon on the desktop, or the Start menu. In addition, check the version number is MPLAB IDE v7.62 or above.
3. From the MPLAB IDE menu bar, select Project > Project Wizard…
4. It opens up the Project Wizard. Click Next to continue.
5. Wizard Step One: The laboratory project target device is the PIC 16F648A (Which we will give an example in the next section). In the wizard, select the ‘PIC 16F648A’ from the drop-down box and click next.
6. Wizard Step Two: select the use of the ‘CSSC Compiler for PIC12/14/16/18′ for the project language tool suite from the Active Tool suite drop-down box. We should browse so as to discover the location of the files on the hard disk. Then Click Next and continue.
7. Wizard Step Three: Name the project and select a directory. Then Click Next.
8. Wizard Step Four: There is possible that we want to add a file which has been written previously. The file tree view box on the left should already be prolonged to the project directory. Select the file which we want to add and click the ‘Add’ >> button to add it to the project. Since the project directory is the same as the file directory, there is no need to check the box to copy it. Then Click Next when done.
9. Wizard Summary: Click the Finish button. A new page and project are created in the MPLAB IDE. The new page includes information on the selected PIC MCU device, the active programmer and/or debugger, open windows and their location, and other IDE configuration settings. The page is also related with a ‘project’, which includes the files which are needed to build an application (source code, include files, linker scripts and so on.) along with associated language (co