RoadTest: Arduino Engineering Kit
Author: spiralphenomena
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: This kit can be compared to the Arduino robot kit.
What were the biggest problems encountered?: The biggest problem I encountered, bar the missing parts, was actually getting the software installed onto a computer for me to carry out the programming aspects of each project. I found it impossible to install completely on my MacBook and had to revert to using my Windows 10 desktop, even then it took several days to get the software fully working on the desktop. I will cover this in more detail in the detailed review. There are some inherent design flaws with the kit which are detailed in the main review.
Detailed Review:
First of all I must apologise for this review taking a long time to write, I ended up with wisdom tooth issues just at the point I started writing the review up. I would like to thank element14 for giving me the chance to write this review and their understanding in the review not getting released on time.
A little bit of a background on me before I get into the depths of the review. I studied an undergraduate masters in Electronics and Communications Engineering, this is where I was first introduced to MATLAB. I used MATLAB Simulink (more on this later) to build radio links and simulate their effectiveness when subjected to noise. After university I found myself once again using MATLAB to design transmit and receive chains for an avionics satcom system in my graduate role with a large engineering company. I am now a systems engineer working in the field of radio communications, but I still use MATLAB to crunch large amounts of data which would otherwise crash Excel.
I was drawn to this road test having used MATLAB before and having an interest in Arduino. I started using Arduinos whilst in my first year of university, building a line following robot. Since then I have used them for all sorts of tasks both in my job, to monitor power usage of a prototype system, and also at home to control RGB LED strips.
Arduino is an open-source electronics platform, the premise is that the hardware and software are intuitive and easy to pick up. It allows people to quickly program hardware to accept an input, process this and turn it into an output. Due to the length of time that the platform has existed a large ecosystem of communities, libraries and add on hardware has grownup around it, further supporting anyone wishing to learn it. I have included some links to learn more about Arduino at the end of the review.
The kit contains everything you need to build three really cool projects that teach some basic fundamentals in engineering. The projects included are:
Electronic Component | Quantity |
---|---|
Arduino MKR1000 Board | 1 |
Arduino MKR Motor Shield | 1 |
Arduino MKR IMU Shield | 1 |
DC Motor | 1 |
Geared DC Motor with Encoder | 2 |
Standard Micro Servo | 1 |
Hall Sensor Module | 1 |
Ultrasonic Sensor Module | 1 |
Webcam | 1 |
LiPo Battery | 1 |
LiPo Battery Charger | 1 |
Micro USB Cable | 1 |
3-Pin to 4-Pin Module Cable | 1 |
3-Pin Module Cable | 1 |
Mechanical Component | Quantity |
---|---|
Drawing Robot Kit of Plastic Parts | 1 |
Mobile Rover Kit of Plastic Parts | 1 |
Motorcycle Kit of Plastic Parts | 1 |
Wheel | 2 |
Caster Wheel | 1 |
Timing Belt | 1 |
Timing Pulley | 2 |
DC Motor Mounting Bracket | 2 |
Metal Shaft 90mm | 1 |
Metal D Shaft 50mm | 2 |
Set of Plastic Spacers 17mm | 1 |
Set of M2 Bolts 10mm, 25mm | 1 |
Set of M3 Bolts 10mm, 15mm, 25mm | 3 |
Set of M2 Nuts | 1 |
Set of M3 Nuts | 1 |
Set of M3 Locknuts | 1 |
Shaft Collar | 3 |
Propeller Adapter Screw | 1 |
Magnets | 2 |
Thread | 1 |
Red Whiteboard Pen | 1 |
Black Whiteboard Pen | 1 |
Sticker for Vision Recognition | 1 |
Software Component |
---|
MATLAB R2018b |
Arduino 1.8.5 |
MATLAB Support Package for Arduino Hardware |
Simulink Support Package for Arduino Hardware |
Arduino Engineering Kit Hardware Support 18b |
Arduino Engineering Kit Project Files |
System Requirements
Minimum | Recommended |
---|---|
Windows 7 or later/Mac OSX 10.11 or later | Windows 7 or later/Mac OSX 10.11 or later |
Any Intel or AMD x86-64 Processor | Any Intel or AMD x86-64 Processor with 4 or more cores |
4GB RAM | 8GB RAM |
A hard drive with at least 22GB free | A solid state disk with at least 22GB free |
A spare USB A port | A spare USB A port |
Materials Required (and Some That Might Be Useful)
Small Philips Screwdriver
Small Flathead Screwdriver
5.5mm Spanner or Small Adjustable Wrench
1.5mm Allen/Hex Key
Wire Cutters and Strippers
Sharp Knife
Set of Needle Files
Dremel and Cutting Bits
A Small Component Storage Box
A Whiteboard or Large Flip-board
The kit arrived in a sturdy branded cardboard box, and upon opening I must say I like the actual packaging of the kit; the toolbox style with a tray in the top for smaller components, and underneath this for the bulkier components. The box is of a good construction and I see it lasting a long time and holding up to a classroom environment.
Going through the contents of the kit is a must, checking against the bill of materials enclosed with the kit. My kit was missing the white plastic wheel hubs, the tyres, however, were in the box. Arduino support were very quick to reply when I sent an email to support, but I hit a hurdle as I was not the purchaser of the kit and didn’t have an invoice. Farnell stepped in and managed to obtain the replacement parts, these arrived within 6 weeks hence the review has taken a little longer to get out there.
The mechanical fixings are all individually bagged but it would not go amiss to label these bags so it is quick to identify which fixings are required at each stage of the build. The only thing that would have made the packaging better is for some sort of component storage for the small mechanical fixings, I had a spare box laying around that I utilised to keep everything seperated.
I'll talk about the general installation onto Mac OSX, I didn't manage to get the software fully working with my Macbook and in the interest of time I fell back to my Windows 10 desktop. The installation of MATLAB onto Mac is frustrating to say the least, I had several failed installations and each time the installer has to go and re-download all of the files it requires (upwards of 10GB), each time I would set it going and leave it to install and each time it had frozen whilst trying to install a package. I pinpointed the problem as being the power save settings and the Macbook was sleeping during the installation, I don't know if this is a bug that MATLAB need to fix to tell the operating system it is installing something but it is an annoying problem to diagnose. Once all the MATLAB packages had installed I started on the board support packages supplied as part of the Engineering Kit, these are pretty simple to install and just require double clicking them once they have downloaded, MATLAB knows what to do from here. The final hurdle I hit that I wasn't able to overcome was once the board support packages were installed, I couldn't configure them, they would sit there doing nothing until MATLAB froze, I have a feeling it was permissions related.
Onto Windows 10, and this wasn't without a few issues either, the MATLAB installation was pretty quick and I had Arduino 1.8.5 already installed. I installed all of the board support packages in the order they were given in the tutorials online, the last part of this was to put the libraries for the Arduino MKR Motor Shield into the libraries folder of my Arduino installation. Once these were in place Arduino picked them up and could see they were installed however the board support package in MATLAB couldn't see them so was unable to control the Motor Shield, I uninstalled the board support package and then re-installed and it was luckily able to see them.
The order I would recommend for installing the software is:
For anyone who hasn't used MATLAB before there are some great tutorials out there to show you the basics, it is a very powerful tool for analysing vast amounts of data and I use it frequently in my day job.
Once you've followed the instructions on the inside cover of the box for registration, you will be taken to the course home page where you are welcomed and presented with six chapters, these being:
The concepts chapter takes you through the basics of controlling motors, sensor types used within the projects, the protocol used to communicate with the sensors, the concept of interrupts and LiPo battery technology. This is a good grounding to understand how the projects actually function at a low-level.
Using image processing, trajectory calculation, and trajectory optimisation for path planning, the Drawing Robot draws an image on a whiteboard off a picture from a webcam that is digitised by MATLAB. The robot utilises pure MATLAB code and motor control system theory to convert a physical image to a digital format and onto a whiteboard. The project will teach you how to connect to an Arduino-based robot from MATLAB, to write MATLAB apps, functions, and scripts to control your robot, to apply concepts from geometry, physics, symbolic math, and image processing, and to automate a complete application workflow from start to finish.
Building the kit I came across a couple of issues with the instructions, I am not a big fan of video build instructions especially when they are entirely 3D with no voice over. There are components in the kit that are not represented very well at all on the video; notably the clips that hold the motors down, these are asymmetrical and it matters what way round you put them and where you put them on the motor, the video makes them look symmetrical and I had to disassemble the bot once I'd put the motors on. Another issue with the motor clips is that they aren't injection moulded well and I had to use a knife to be able to get a bolt through a hole.
The laser cut parts are made of ABS but the surfaces look like they weren't protected during cutting with a thin smoky film covering the print that makes it look like there is a clear plastic film over the print, this has also caused the edges around the cut to raise up meaning any parts that are supposed to move against each other need the edges filing or sanding down first. Once all the material issues were resolved I had a neat little robot ready to be put to work drawing on my whiteboard.
The lessons for this were straight forward, they were all built into MATLAB and were accessed from the folder containing all the course materials. The lessons start off by getting you to control the servo to push one of the pens against the board, I found that during this I had to adjust the angle of the servo to allow both pens to be able to reach the whiteboard.
After controlling the pens movement and working out what values are required for Black, Red and None, the course takes you onto controlling the motors with the pulleys attached
Straight forward enough, had to adjust the servo so that when the servo is halfway the pens are both up.
The Mobile Rover features position tracking via a remotely connected webcam and on-board sensing features for obstacle avoidance and movement. The rover uses a mix between MATLAB and Simulink programs to move around and interact with the world. The project will take you through the basic movement of differential drive robot from MATLAB, how to use kinematic equations to simulate the rover motion and perform open loop control, closed loop control of the rover, use states to program your rover, localisation of the rover using Image processing, control the rover and forklift to pick up the target and drop it off and Wi-Fi communication between rover and MATLAB.
Overall the rover was fairly straight forward to put together, there was nothing too fiddly. There were some manufacturing issues that I found while assembling the project, two of the plastic parts did not have the correct holes cut into them and required me to get my Dremel out to cut a rectangular slot in one of the parts and two holes into the other.
I found the lessons for the rover to be the easiest to follow and I was able to get through them at a quicker pace than the other projects. This is probably due to the control of the movement is more similar to what would be considered a conventional robot. I feel that this project is the easiest project to extend beyond the lessons provided by Arduino and design additional features for.
Featuring inverted pendulum dynamics using a reaction wheel and movement gyro, the Self-Balancing Motorcycle can move around and balance by itself. The motorcycle is using Simulink to monitor and control the movements, inertial sensing and filtering to make the motorcycle balance. This it the kit I was most looking forward to building and programming. The project will teach you how to simulate the vehicle’s overall behavior and create models of the components to improve the quality of the simulation as well as the one of the control algorithms, you will explore how to program the motorcycle with Simulink, to control its balance algorithm, make it move in a straight line, and detect obstacles.
I found this to be the most fiddly of the projects to put together, there are lots of things held between the two sides of the motorcycle that you have to align and keep in place while you try to bolt the two sides to each other with long spacers between. I found that the order of putting things together could have been altered slightly to make it easier, I think if they changed the format of the build instructions to a person putting it together these problems would go away. The ultrasonic sensor comes with a right angled connector which if you follow the chapters in order you will bend the legs of the connector straight in the mobile rover project, this isn't good, the sensor should be provided with the right connector to save damaging the sensor and also so that you can attack the projects in any order.
This was my favourite project to code, it was closer to what I have used MATLAB and Simulink for in the past, building models and then simulating them. I liked that you were given a model to start each lesson which you then modified through the lesson to create your custom block to be integrated later on. The lessons teach some very important safety engineering principles and gets students in the mindset of making designs safe, this included automatic shut off features and battery level checking. It was simple to bring all of the blocks together into a big project model to control all aspects of the motorcycle. I did find while testing the hall effect sensor to measure the speed of the flywheel that the magnets supplied with the kit are too weak to be picked up by the sensor, I doubled them up on one side of the flywheel which fixed the problem but meant I had an unbalanced flywheel which introduced some oscillations while trying to hold itself upright.
I found myself learning from this kit some areas of engineering I'd not studied before and for that I am grateful for the opportunity to have reviewed this kit. There were some things I loved about the kit:
There are some minor issues that I hope Arduino take on-board and fix in the future, while they are issues they can also be seen as problem solving lessons, the issues are:
Further reading about Arduino:
Further reading about MATLAB:
Further reading about the kit:
https://store.arduino.cc/arduino-engineering-kit
https://www.mathworks.com/campaigns/products/arduino-kit.html