You are on page 1of 4

MEC3027/8058 Assignment

Introduction
You are to develop a scale model autonomous car to take part in a model car version of the
24 hour Le Mans race. The track consists of barriers at each side of the road with signs
positioned at 100m from the next corner (a sign of 1 indicates a gentle bend up to a sign of 3
for a sharp bend). The car should be rear wheel driven (1 motor to drive both rear wheels)
with Ackermann steering (using a servo motor to set steering angle). The car needs to relay
all sensor information back to a Labview based interface and this Labview interface will also
send signals to the car for steering and speed control. The car should be full autonomous
but with the option of manual override in case of any unforeseen problems. You do not
need to complete the mechanical design of the car (a basic schematic will suffice) but you
will need to develop any electrical circuitry and any program coding to complete the task.

Specifications
Drive
The vehicle is battery powered and has a single sensored dc motor to drive the rear wheels.
This motor is to be driven both forward and reverse via a L293D chip. For the main program
demonstration, this motor may be driven open loop (see additional requirements below).
The steering is to be accomplished with a servo motor. You should use an edited figure from
https://en.wikipedia.org/wiki/Ackermann_steering_geometry to show approximately where
you would place these motors. A Labview program will issue values (to a master Arduino) to
be used by these motors appropriately.

Sensors
You must include the following sensors on your car:
 an ultrasonic sensor placed at the front of the car (the car should slow down if something
is in front of it) and ultrasonic sensors placed on each side of the car (to maintain position
in the centre of the road)
 a bumper (microswitch or similar) to immediately stop the vehicle if a collision is
detected (ideally the Labview interface gives you the option of what to do next following
such an event)
 a light sensor to enable automated operation of the headlights (the Arduino should be
programmed to ensure appropriate operation of these headlights)
 a slave Arduino (for example Slave IMU) connected via I2C that transmits magnetometer
readings to the master Arduino – use a potentiometer input into this slave Arduino to set
car direction
 a slave Arduino (for example Slave CAMERA) connected via I2C that transmits an output
from a neural network to the master Arduino – use 3 digital pins of this slave Arduino to
represent a value of 1, 2 or 3 being output from the neural network (see additional
requirements below). Note that you do not need to include any actual camera module on
this Arduino.

Labview interface / control


 The interface needs to clearly display all sensor information. The Labview interface
should be able to initially load in sensor calibration data from a file so that values being
received from the Arduino can be adjusted/scaled accordingly.
 Fuzzy logic controller should be used to control the speed and direction of the vehicle
when it is automatic mode (using ultrasonic, compass and camera information). This
controller should have the ability to steer the car and drive it at appropriate speeds.
 A manual control mode should be available on the Labview interface to override the
automatic mode if desired.
 Communication between the Arduino and Labview interface should be done by
displaying an appropriate set of characters and then manually entering these into the
serial monitor/text input. You should try to include transmission error checking in this
process.

Aesthetics
 Your Labview interface needs to clearly display all relevant information and have user
functionality (the user can use the interface to enter data/commands for any manual
modes). The interface should be self-explanatory – someone not familiar with your
project should be able understand the interface from the information/instructions given
on it.
 The wiring of your Tinkercad circuit needs to be tidy with sensors/motors/etc placed
roughly where they are shown on the schematic.
 You Arduino program needs to be well structured with comments to indicate what
sections of program code is for. Someone not familiar with your program (although they
can program themselves) should be able to easily understand your program from the
comments given in the code.

Additional
In separate demonstration programs, you should also aim to show:
 how you would accomplish PID closed loop control of the drive motor (forward direction
only), this should be tuned appropriately. Note: do not include this in your main vehicle
simulation circuit as it will significantly reduce the speed of your simulation.
 a way to process images from a camera to visually recognise the cornering signs, you
should use Matlab software to demonstrate this part.

Submission details
You are required to prepare a 10 minute video presentation of your work in mp4 format
(anything in the range 8 to 12 minutes will be acceptable). You should use screen recordings
of your work (these can be annotated with additional text) and a verbal description (voice
over) to explain the points you are making. The format of the presentation should be in the
following order (as outlined in W8_Demo_assignment section 5.2):
1) A schematic of your solution to the problem and a bullet list of what the vehicle can
achieve (i.e. what you will be demonstrating in this video).
2) Give a view of the overall Tinkercad circuit, Labview program and Labview interface.
3) Demonstrate each bullet point listed in step 1. You will need to show the code, the circuit
and a demonstration of it working to the specification you have claimed.
4) Finish your presentation by slowly scrolling through all your program code whilst giving a
verbal summary of the complete project (a recap on what you have achieved).
Additional points:
 It is very important to demonstrate that your code and circuit function (i.e. actually
work). Also demonstrate any solutions you have when things do not work as expected
(for example what does your program do if it thinks it has an incorrect sensor reading).
 Even if some part of your solution is not working, you should try and demonstrate how
far you got with this aspect. We will be marking on the principle of ‘start at 0 and get
points for each relevant piece of project development’ rather than losing marks for parts
not working. We want to see how much work you have done and give you credit for it.
 Make sure your video is sharp (we will need to be able to read any text on the screen)
and voice over is clear. Your video ideally needs to be less than 100 MB in size.

Dates for submission:


You should aim to submit your work to Canvas by 5pm on Friday 16th December. Note that
there can be delays in this process (Tinkercad software not working for 24 hours, slow
upload time during submission). You need to account for this in your planning and work
around any technical difficulties, submit what you have done by the deadline. Start the
assignment early and give yourself plenty of time to mitigate against any unforeseen delays.
Of course, you can submit your work prior to this date if you wish.

The maximum file size you can upload is around 100 MB and therefore you should try to
keep your submission to within this limit. If all else fails you will need to upload your video
to YouTube and for your submission, submit a text file with the URL of the YouTube link.

Marking Criteria
It is important to use your presentation time allowance to efficiently demonstrate all the
goals you have achieved for this project. We will stop watching after 12 minutes so be sure
to keep within time (anything after that time will not be watched/marked and therefore you
will not get credit for it). Remember that each examiner will be marking around 10 hours of
presentation video so it is important that you present clear explanations on what you are
demonstrating.

Marking is based on how well it appears that you have achieved each of the required project
objectives (therefore be very clear in your presentation on each point you have achieved
and show that it works). Your overall mark for this assignment is based on the following
criteria:
0 – 40: Little evidence of work done, basic requirements of functional Arduino and Labview
not met.
40 – 50: Car and Labview functions but to a very basic level.
50 – 60: Good effort, you have demonstrated you have understood the material to a
reasonable level and your car and Labview interface are suitably designed and meet all the
essential specifications although design could be more robust (important detail is missing).
60 – 70: Excellent effort, very good understanding of the material with either essentials
done to a robust standard (everything needed has been done) or essential and additional
specifications have been done to a reasonable standard.
70 – 100: Exceptional work, you have completed everything required to a very high standard
and you have produced a robust solution to the problem in which every scenario during the
car’s race has been accounted for. This may include relevant additional developments
beyond what was given in the tutorials.
Final points
Your submission must be your own unique solution. You can ask your colleagues for advice
but what you submit must be your own work. Evidence of plagiarism will be penalised.

You will not be able to ask academic staff any technical questions about the assignment, i.e.
how to do something. However you may post any non-technical questions on the discussion
board if there is something that is not clear about the assignment (note that unless this is a
personal issue, this must be posted on the discussion board rather than email so that
everyone can see the answer). If in doubt you can always post the question and I can reply
with either an answer or (if the question is not suitable) with ‘You will need to work that out
for yourself’. In the latter case, the answer is probably somewhere in your tutorial notes.

You might also like