Arduino Engineering Kit - Review

Table of contents

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:

Introduction

About Me

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.

About the Kit

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:

  1. Whiteboard Drawing Robot - A robot that can take a reference image and duplicate it onto a whiteboard using red and black board makers.
  2. Rover - A mobile rover that can navigate between reference points and move objects using a forklift.
  3. Self-Balancing Motorbike - A motorcycle that can manoeuvre itself on varying terrain and remaining upright using a flywheel for balance.

Bill of Materials

Electronic ComponentQuantity
Arduino MKR1000 Board1
Arduino MKR Motor Shield1
Arduino MKR IMU Shield1
DC Motor1
Geared DC Motor with Encoder2
Standard Micro Servo1
Hall Sensor Module1
Ultrasonic Sensor Module1
Webcam1
LiPo Battery1

LiPo Battery Charger

1
Micro USB Cable1
3-Pin to 4-Pin Module Cable1
3-Pin Module Cable1

 

Mechanical ComponentQuantity
Drawing Robot Kit of Plastic Parts1
Mobile Rover Kit of Plastic Parts1
Motorcycle Kit of Plastic Parts1
Wheel2
Caster Wheel1
Timing Belt1
Timing Pulley2
DC Motor Mounting Bracket2
Metal Shaft 90mm1
Metal D Shaft 50mm2
Set of Plastic Spacers 17mm1
Set of M2 Bolts 10mm, 25mm1
Set of M3 Bolts 10mm, 15mm, 25mm3
Set of M2 Nuts1
Set of M3 Nuts1
Set of M3 Locknuts1
Shaft Collar3
Propeller Adapter Screw1
Magnets2
Thread1
Red Whiteboard Pen1
Black Whiteboard Pen1
Sticker for Vision Recognition1

 

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

MinimumRecommended
Windows 7 or later/Mac OSX 10.11 or laterWindows 7 or later/Mac OSX 10.11 or later
Any Intel or AMD x86-64 ProcessorAny Intel or AMD x86-64 Processor with 4 or more cores
4GB RAM8GB RAM
A hard drive with at least 22GB freeA solid state disk with at least 22GB free
A spare USB A portA 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

Unboxing

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.

imageimageimage

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.

imageimageimage

imageimageimage

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.

image

Software Setup

Mac OSX

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.

Windows 10

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:

  1. Arduino
  2. MATLAB
  3. Arduino Libraries
  4. Board Support Packages

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.

Online Content

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:

  1. Introduction
  2. Getting Started
  3. Concepts
  4. Drawing Bot
  5. Mobile Rover
  6. Self-Balancing Motorcycle

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.

Drawing Bot

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

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.

image

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.

image

Coding

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.

imageimage

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.

Mobile Rover

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.

Building

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.

imageimage

Coding

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.

imageimage

Self-Balancing Motorcycle

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.

Building

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.

Coding

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.

Wash Up

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:

  • The format of the course for the Drawing Robot and the Rover, being included into MATLAB makes it so much easier to follow the lessons as everything is inside one window.
  • The pace of the courses is just right, each lesson is about an hours worth of work which makes it quite straight forward to plan.
  • The support email was very quick to respond.
  • The stacking style of boards, although this has been a hallmark of Arduino hardware for a long time, it is still appreciated that you don't need to have lots of trailing wires between boards.
  • The introduction to open-loop and closed-loop control systems made it very easy to understand and implement, and I feel that I could use this knowledge to design a control system in the future.
  • The pre-built code/models to aid the lessons and also if your model doesn't work you have something to compare against and fault find.

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:

  • The assembly videos need improving; the 3D rendered videos are not clear at several points how things fit together and I think a real life assembly video would make this much less confusing.
  • Quality control of the components in the kits; I found myself having to file plastic parts and cut holes into plastic parts where they hadn't been laser cut correctly.
  • Increase the strength of the magnets, or include 4 magnets rather than 2; the magnets were not strong enough alone to be picked up by the hall effect sensor, but doubled up they were.
  • Put the correct parts into the kit; an example of this is the ultrasonic sensor being sent with a right angle connection and then bending it into a straight connection, this could easily damage the connection to the board or result in a pin being snapped. Another example being the motor, just pick a voltage of motor to send with the kit, this eliminates any accidental damages to motors by putting too high a voltage onto them.
  • Check every kit has all the components in before packaging them; my kit was sent without the plastic wheel hubs and it is an annoyance to sort out spares.
  • Provide thicker plastic line with the kit; I found that I couldn't get the whiteboard robot to do anything without it snapping the plastic line.
  • Provide screws that are the right length; the screws going between the 2 sides of the motorcycle were marginally too small and only allowed a nut to go on a few turns.
  • Provide some basic tools, or at least advertise what tools are required; I'm sure most people have the tools but it would be nice to provide a basic set with the kit.
  • The tolerances on the plastic parts is too small; notably on the parts that the servo had to mount through, the hole is too tight to get the part back out without removing the back cover of the servo.
  • It would be useful to have CAD files available for all the parts used in the kits, a lot of people have the means to make new parts for broken parts or parts that have not arrived correctly.

Useful Links

Further reading about Arduino:

https://www.arduino.cc/

https://blog.arduino.cc/

Further reading about MATLAB:

https://www.mathworks.com

Further reading about the kit:

https://store.arduino.cc/arduino-engineering-kit

https://www.mathworks.com/campaigns/products/arduino-kit.html

Anonymous