Assignment title: Management
COURSEWORK ASSESSMENT SPECIFICATION
Module Title: Microcontrollers in Embedded Systems
Module Number: EN0343
Module Tutor
Name(s):
Academic Year: 2016-2017
% Weighting (to
overall module):
70%
Coursework Title: Algorithm and program development to control the NXP car
Average Study
Time Required by
Student:
50 hours
Further Information
Learning Outcomes tested in this assessment (from the Module
Descriptor)
See Assignment Script
Assessment Criteria/Mark Scheme:
See Assignment Script
Nature of the submission required:
Hardcopy report.
Instructions to students:
Referencing Style:
IEEE numbered referencingAcademic Conduct:
You must adhere to the university regulations on academic conduct. Formal
inquiry proceedings will be instigated if there is any suspicion of misconduct
or plagiarism in your work. Refer to the University's regulations on
assessment if you are unclear as to the meaning of these terms. The latest
copy is available on the university website.
Penalties for the late submission of coursework
If a student fails to meet the agreed assessment deadline, and has not
been granted an extension of time, the work submitted will be regarded
as not having been completed and a mark of zero will be awarded. The
Examination Board will deem the student to have failed the module.
Recommended Time for Project
Project work:
– hardware development, software development, build and test:
40 hours per student
Project report
10 hours per student
Learning Outcomes
1. Demonstrate the application of knowledge in the design of embedded systems
with application to real world problems
2. Design an embedded system to meet a given specification
3. Build and test an embedded system using IDE software tools Keil uVision5
IDE and practical test equipment
4. Critically analyse the performance of the embedded system.
5. Document design, development, testing analysis and conclusion in the form of a
reportBACKGROUND
NXP Car
NXP have developed a model car incorporating motors for forward movement, a
servomotor for steering/direction control and a camera to establish car position. The
control of the onboard systems is via an ARM cortex M0+ development board
KL25Z128KLV4. The task is to integrate the above systems into a single effective
control system enabling the NXP car to drive around a track autonomously in the
fastest time.
Such is the engineering challenge of the NXP car in terms of software development,
embedded systems and control, NXP competitions have become popular amongst
Universities around the world.
THE PROJECT
The requirement of the project is for students, in groups of three, to develop C
programs to control drive motors, servomotors, and camera, and to develop control
algorithms to enable autonomous control of the NXP car. A time trial will take place
between groups upon completion of the work to determine which developed
algorithms allow the car to drive around the track in the fastest time.
The required tasks should be divided amongst the group such that one student in the
group considers the motor drive algorithms and programming. Another student will
tackle the steering control, and the third student will tackle the position control.
All three tasks require significant testing and evidence of performance.
All students in the group should come together in the development of the control
algorithm to effectively integrate all three developed systems into a single control
system capable of driving the NXP car autonomously around the track
Each group tackling this activity should submit a single report. The report should
contain explanations of all software developed with flowcharts and program listings
evidence of exhaustive testing, results of testing, including generated waveforms and in
depth analysis of results. The report should also include detailed explanations of all
algorithms in particular the control algorithm that integrates the developed programs,
and clear flowcharts, program listings, results and analysis of the integrating control
algorithm.
For the speed control of the car via UART0, users send commands from a PC to the
car via USB cable. The control program should be able to recognize the commands
and take the appropriate action immediately. The two basic control commands are
"start ##" and "stop", where ## is a two-digit number representing the percentage of
full speed. Please note, all the commands finish with two special characters "\r\n".For the steering control via UART0, users send commands from a PC to the FRDM
KL25Z control board via a USB cable. The control program should be able to
recognize the commands and take the appropriate action immediately. The two basic
control commands are "left ##" and "right ##", where ## is a two-digit number
representing the steering angle. Here it is assumed that the central axis of the car is
zero degree. Please note, all the commands finish with two special characters "\r\n".
For the position detection via UART0, the FRDM KL25Z control board is required to
send the results of line camera to a PC via a USB cable. The line camera programme
should be able to read the 128 values of line camera, determine the position of the car
against the track (e.g. a mark tape) and send the results to the PC via the UART0. On
the PC screen (e.g. a terminal window), the value shows the positon of the car by a
number ranging from 0 to 127. (e.g. 0 means furthest left, 127 means furthest right, 64
means in the middle). Please keep in mind each result sent by the control board should
finish with two special characters "\r\n".
EMBEDDED SYSTEMS - ASSESSMENT
INDIVIDUAL MARK (as evidenced in report and practice)
1. Development of algorithm to control the speed of the car
Explanation of algorithm 10
Flowchart and program listing 10
Results of implementation 10
In depth analysis including conclusion 10
Forward drive and speed control via UART0 demonstration 10
2. Development of algorithm to control the steering of the car
Explanation of algorithm 10
Flowchart and program listing 10
Results of implementation 10
In depth analysis including conclusion 10
Steering control via UART0 demonstration 10
3. Development of algorithm to determine the position of the car
Explanation of algorithm 10
Flowchart and program listing 10
Results of implementation 10
In depth analysis including conclusion 10
Position control via UART0 demonstration 10GROUP MARK (as evidenced in report)
Development of control algorithm to integrate the individual development and
enable autonomous control of the car
Explanation of algorithm 10
Flowchart and program listing 10
Results of implementation 10
In depth analysis including conclusion 10
TIME TRIAL RESULT (added to group mark)
1) Completes one lap of the track 10
Total 100%