# Arduino Engineering Kit - Review

### Scoring

 Product Performed to Expectations: 6 Specifications were sufficient to design with: 9 Demo Software was of good quality: 10 Product was easy to use: 6 Support materials were available: 9 The price to performance ratio was good: 10 TotalScore: 50 / 60
• Evaluation Type: Electromechanical
• Was everything in the box required?: Yes
• Comparable Products/Other parts you considered: none, unique kit
• What were the biggest problems encountered?: The Matlab to Arduino Server software loaded to MKR1000 would be reported to fail by the error log and messages. The tool could not reliably delete all the server files and directories placed in the TEMP/APPS hidden directory. Occasionally the SW would report that the MKR1000 was Genuino rather than an Arduino. My PC was already slow due to 100% Disk Useage in Windows 10, MATLAB pegged into that alot.

• Detailed Review:

Arduino Engineers Kit Element 14  Notes for Road Test Report

December 2018 – January 2019 by Gary Yohe

Qty 1 kit Bar Code 7630049200227

https://create.arduino.cc/edu/reg/

Project 4 Drawing Robot https://youtu.be/paqFx46_kww

Project 5 Mobile Rover:

Project 6 Self Balancing Motorcycle

# Test Plan

1. Visual Inspection of container and contents, check parts list, record observations
2. Register kit, overview instructions found at https://create.arduino.cc/edu/courses/course/ record observations.
3. Install additional software tools , record observations  https://create.arduino.cc/edu/courses/mod/book/view.php?id=83&chapterid=89
4. Power up assembled kit, familiarize, record observations
5. Connect to IDE per manual, familiarize, record observations with Windows PC and then with a Linux PC.
6. Follow tutorial book to check each experiment, familiarize, check accuracy of explanation, enough details and still keeping it simple, age appropriate explanations, did it work as indicated ?  record observations
7. Review concepts introduced by each experiment for logical progression, successful structured learning, new science concepts, was it fun and interesting ? could something small be added to make a bigger impact ? improve ?
8. Summarize final conclusions and recommendations

NOTE:  During the Road Test, I kept daily notes on progress and issues including screen captures, photos, videos, and comments.

Those 200+ pages of notes are the basis of this Road Test report.

# – Road Test Summary -

Visual Inspection:

Upon receipt, the kit packaging made a disappointing first impression. The stickers were peeling off the plastic box.  It would have been better to have a fold down handle on the lid to facilitate carrying.

Parts inventory on receipt was excessively time consuming, and unclear if all the parts were there. The parts list on the box wasn’t plain, the on line parts list with photos was better. The magnets included were not bagged, and eventually I found them tightly attached to the servo screws.

1. PRO: The laser cut parts were all made from black plastic acrylic, accurately cut, bagged into clearly labeled project bags. I had only one piece that was missing a couple holes.
2. CON: It would have been better for the user to have each project’s laser cut pieces in a different color.
3. PRO: The various screws, nuts, etc were all bagged by common part.
4. CON: None of the 12 parts bags were labelled, and the magnets weren’t bagged at all. I finally took the time to individually label each parts baggie to save time later.

Project Assembly:

PRO: The assembly videos were thorough, and “build by model” is the manufacturing trend these days, so best to learn that technique.

CON: The assembly videos rarely used text. The graphics in the video and the screen captures relied the user’s ability to see colors, especially in wiring. Depending on the browser, the colors may be indiscernible. The user may be color blind. Please mark all  wiring in videos and screen captures relying on wire color to be labeled with their color in text.

CON: After assembly, it is important for each project to start with a commission test to make sure each IO device is working and each motion moves with proper polarities and directions before starting. The assembly videos were thorough, but it was really easy to miss some important points like a change to encoder wiring.

CON: In initial start up of rotating equipment and controls, it is extremely important for the commissioner to understand nomenclatures (which motor is the LEFT side motor for example), directions of rotation, polarities, sensor feedback calibrations and directions. I put stickers on each motor for function, SW name, expected direction (forward clockwise rotation, etc) .

CON: I wish there was enough screws and nuts supplied so a complete teardown of a project wasn’t required to build the next project.

My PC met the requirements for the application software. However my Windows 10 PC already struggled with being slow and the dreaded 100% Disk Use at times. Please take this into account in my whining.

The Introduction sections of the online tutorial were great.

Having the tutorials embedded into MATLAB were very helpful and productive on the drawing robot and the Mobile Rover.

The Motorcycle didn’t have embedded lessons, but did have all the major logic blocks available in case you had a problem.

Simulink – Arduino interface seemed much more reliable than the MATLAB-Arduino interface.

PRO: The lesson material is more than enough for a 16 week class in MATLAB and SIMULINK with the help of an experienced instructor and an IT professional to help manage licensing and PC configuration.

It probably exceeds the material for a typical engineer student covers in the freshman and sophomore year.

The Online Tutorial - https://create.arduino.cc/edu/courses/course/

Overall the tutorial was good. It has room for improvements, which are listed later in this report.

The Drawing Robot: I found this project very frustrating and could do without it. It wasted so much of my time coaxing it to make it go, instead of learning.

PRO:  Leveraging MATLAB for arrays and vector math, multidimensional arrays for imaging. It showed some nice features for graphing and data analysis.

CONs: Wasted so much time on non-value things like software incompatibilities, robot clunkiness, robot misoperations, MKR1000 server loading issues, runaway motors, breaking the nylon line, etc.

This style of drawing robot would be more practical for learning MATLAB image processing: https://www.instructables.com/id/DIY-Arduino-Drawing-Machine/

The Mobile Rover: I liked this project, it has a lot of good learning nuggets, but it wasted a so much time for the image processing setup and calibration, & weird model problems, distracting from the good points.

MISS: This project could have be more fun if a storyline was added. The webcam could be the “eye in the sky” and the rover used for a daring rescue the robot mission, or a Wheres Waldo theme.

Near – Miss: Robot vision systems are useful in machines that pick and place, like surface mount component placement, which this is what this project reminded me of.  A more forward looking application for a Mobile Rover would be vision recognition for self driving, like a PixyCam. Of course a Wifi enabled webcam would be required.

PRO: There is a lot of fantastic learning material for developing a feel for PID regulators and motion control in this project. (I would like to understand more of how the MKR1000 executed the code, radian response limits based on code speed execution, scan time, and feedback resolution.)

CONs: There seems to be a big push in these exercises for MATLAB image processing. Sections on localization 5.5 & 5.6 were very time consuming, it seemed more to show off MATLAB capabilities than to educate the user.  I wasted a lot of time on the localization exercise as compared to what I learned.

CON: The Mobile Rover had lift mechanism and a ping sensor that were marginally used. I appreciate the 5.9 challenge was left to a course instructor, but in 5.9 would have more appreciated some simplified autonomous motion project and that included speed setpoint ramps and torque current limit in the exercises.

CON: Big miss on setting up calibration of the lift servo. I thought I had it good, but on a power up and download, the servo went to an endpoint angle driving into a mechanical limit and failed the servo.

SELF BALANCING MOTORCYCLE: 5 stars out of 5 stars  I LOVE this project.

The tutorial was fairly complete and logical in sequence. Most everything worked well.

The mechanical simulation modeling showed the value of Simulink , mechanical modeling, etc. well complementing (not distracting) from the main goal of the project.

For the most part, every step was detailed, directions and calibrations noted and tested in small steps, just like in real life.

CON: The HC-SR04 PING Sensor was only mounted for looks. Yes, it could be eventually used for object avoidance if the motorcycle could stay balanced infinitely.

I propose to add an LED output, with the LED aimed at markings on the flywheel to strobe and show where vertical is (per IMU). The actual center of gravity maybe off vertical, but a visual indication could be helpful, and would be cool to watch while the cycle is running. ( Like a engine timing light for a car ) My flywheel has small paint spots added to the center piece of the flywheel so mark where the magnets are mounted. After flywheel assembly, I taped fine lines to the axis where the magnets were located inside per this purpose. A physical scale mounted above the flywheel edge might do a better job for this idea.

Test Plan detailed observations and feedbacks

Observations – Visual Inspection

The kit Box was clean and undamaged from shipping.

The overall appearance of the kit packaging was an opening disappointment. The stickers were peeling off. It would have been better to have a fold down handle on the lid to facilitate carrying it.

The contents were packed compactly and precisely, and once opened, it was impossible to repack the contents well enough to close the lid.

Parts check:

The parts list was printed in the lid label. Checked the online Intro (https://create.arduino.cc/edu/courses/mod/book/view.php?id=83&chapterid=87 ) to get a better checklist of included parts with visuals. Taking inventory was difficult as parts were not packaged orderly. The packaged parts for projects were not called out specifically.

I created an excel spreadsheet, pasted in the parts list to create a parts checklist. The parts inventory was time consuming and unclear if all parts were there since small parts weren’t called out in detail.

# 1. INTRODUCTION Registration and Installation: observations and feedback

Kit registration was frustrating and cumbersome. It took multiple tries on consecutive days to get logged in. The registration code is too long.  Ran Task Manager on W10 PC looking for issues.

https://create.arduino.cc/edu/courses/course/

Splash page is simple and well organized.

# Install SW tools, record observations

You will need the following MathWorks products to program the projects in the Arduino Engineering Kit: MATLAB®, Simulink®, Control System Toolbox™, Curve Fitting Toolbox™, DSP System Toolbox™, Image Processing Toolbox™, Instrument Control Toolbox™, Optimization Toolbox™, Signal Processing Toolbox™, Simscape™, Simscape Multibody™, Stateflow® and Symbolic Math Toolbox™.

https://create.arduino.cc/edu/courses/mod/book/view.php?id=83&chapterid=89

Oh boy - another iteration of create an account.

• 10 hours later get to part for ADDITIONAL PLUGINS

Didn’t go well.

I have 1.8.7 IDE installed which I already has problems with my old library files and structure from Arduino 1.06.

Continued to delete and relabel directories to get rid of INVALID LIBRARY ERRORS

This is My Nemesis Error , which I could never get rid of, but if I beat on the PC enough, could eventually make it work once.

Cmd prompt -> type in netplwiz, brings up accounts screen, I select myself as administrator and apply

Reboot PC, start MATLAB, select manage add ons,  MATLAB SUPPORT ADD ON, no change

Section 2

1.WHY DOESN’T the TUTORIAL SHOW A ONE LINE for the MOTOR BOARD Power Flow ?

2.MATLAB getting started https://create.arduino.cc/edu/courses/mod/book/view.php?id=83&chapterid=92

Navigate to the "work" folder by typing the following command in MATLAB Command Window and pressing Enter.>> cd(arduinokit.workRoot)

DOESN’T WORK, My DIRECTORY STRUCTURE INSTALLED IS DIFFERENT.

3.1 CONTROLLING MOTORS https://create.arduino.cc/edu/courses/mod/book/view.php?id=83&chapterid=118

Why not mention the DC motor equation , V = CEMF + IR in the tutorial ?

The encoder connections are not clearly marked on the ckt board or the illustration., but buried in the code example. Why not bring them to the forefront before loading code ?

Sensors:

UltrasonicRF_test HC-SR04 worked first time. I didn’t realize the TRIG pin could be used for both TRIG and ECHO.

The long declarations are at the end of the sketch rather than in the beginning…….

3.2.2 HALL SENSOR MODULE

EXAMPLE drawing shows Hall sensor connected to IN2, code is defaulted to IN4. Works with change.

Magnets were very hard to find in the box. They are small, and had a death grip on the servo screw bag.

Mount on a small 2mm slot blade screwdriver for testing. Need small screwdriver in kit.

IMU_test - I added stickers to the IMU board labeling the vector directions.

A digital level ! Worked Great

//Initialize I2C communication

Wire.begin();

CHAPTER 4. DRAWING ROBOT - verbage to be added in a bit

These charts were great to learn Matlab capabilities. On the other hand, altho the red box shows the

areas where there is enough motor torque for drawing, the nylon string provided wasnt that strong, and I had

multiple nylon string failures.

Project 5 Mobile Rover

Project 5 Mobile Rover:

Assembled Mobile Rover. Fits together pretty well,

• One plastic piece was missing drill holes.
• One screw hole was especially hard to assemble the way shown, see photo.
• Recommend to wash the plastic pieces before use, they are burned from the laser cutter, makes a mess.
• Recommend straightening the ping sensor leads with pliers perpendicular to the surface rather than bending them in the connector per the video.

****the calibration of the servo should be made clearer for where the 0 degree mark/home position should be set to avoid stalling the servo/mechanical damage on initial power up*****

• Include some small tyraps for securing the extra length of motor leads.

Continue assembly, one piece needs drilled.

Assembled Rover photo

1. 5.1 Control Rover from Matlab

Ran motors at 25% speed, and it spun in a circle, not straight as wired. I missed in the instructions the driver side motor wires need swapped.

I didn’t have to know lift servo calibration angle (i.e. home position angle, zero point) , not direction. Tutoral leaves me dumb.

# 5.2 EXERCISE 2: SIMULATING ROVER KINEMATICS AND OPEN LOOP CONTROL

The explanation is confusing and awkward. (i.e. instantaneous center of curvature ??? remember the audience skill level)

Why not say simply in engineering units

Rover speed = axle speed (rpm)* wheel circumference (feet/rev) = wheel surface speed in fpm ?

Wheel circumference = 2*PI*wheel radius  or PI*diameter ?

Then go into discussion of Rover steering dynamics.

r = 4.5 cm

Should illustrate this equation better when introduced in the tutorial:

θ(t)=t0ω(t)dt  x(t)=t0v(t)cosθ(t)dt     y(t)=t0v(t)sinθ(t)dt

The kinEq_sim is really cool. The students should be reminded that the integral of velocity is position.

# 5.4 EXERCISE 4: PROGRAM ROVER TO FOLLOW PATH INSTRUCTIONS

kinEq_states_sim

and State Machines ………that was cool.

I have the blue and purple wires encoder wires swapped on the driver side, which was the one side acting weird while running. FIX and retry.

BIG CHANGE !!!! Works nicely !

This mistake reinforces 2 points lacking in the tutorial:

1. the instructions should note color of wires in TEXT
2. After assembly, there should be a calibration test of each component to bump for operation , direction, polarity, and note any calibration

# 5.5 EXERCISE 5: LOCALIZATION TO CALCULATE ROVER POSITION

Make a white paper arena 17 inches X 23 inches

I mounted webcam in the ceiling

edit roverCalibration   needs done everytime a change is made in lighting

Height is 22 inches 55.9 cm, width =30 inches 76.2 cm

Ran thru calibration process. Didn’t like last calibration for color as the image was too big ???

Reworked arena, repeat setup

Height is 21.5  inches  54.6 cm, width =27.75 inches 70.5 cm

Retry calibration again, with focus adjusted better.

Retry

Height is 21.5 inches  54.6 cm, width =27.75 inches 70.5 cm

Move track to ping pong table

17 inches wide 43 cm 11 inches 28 cm

Camera 54 inches from track

edit roverLocalization, same exact result of the calibrated webcam visualizaion after multiple retries of various track sizes, camera angles, lighting conditions.

# 5.7 EXERCISE 7: CONTROL THE ROVER OVER WI-FI

. LIFT SERVO FAILED jammed in down position

• USING FPOPEN for forcing controls worked but not effective, often after each FOPEN and FCLOSE cycle, I had to reset. The commands needed a lot of time to execute.

1. 6. Build the motorcycle

Best to slightly bevel edges of plastic tabs so they fit together easier.
I had problems jamming the front axle thru the wheel, tight fit and some misalignment pushing the axle thru the forks, doesn’t spin freely.

There should be a note or identification during the physical build that the cycle frame does have a left and right hand side (i.e. encoder side and gearbox side. Another time killer.

Had to slot the hall effect sensor hole to accommodate the sensor IC see photo.The hall sensor harness to just a bit too short and stiff. MAYBE LABEL CABLES DURING INSTALL ?

Lost 16mm spacer, had to make one,

The assembly video should be marked plainly which cable is ping, which is hall sensor when plugging to motor shield, and also the red & black motor leads VERY CONFUSING !!! Battery polarity cant be determined ( used the rover diagrams) .

Quick test program after build ?

1. 6.2 program motorcycle components

MISTAKE IN TUTORIAL: SAYS 6000 instead of 4000, confused me

1. 6.1 Simulation has bike flip twice then flip back & forth. NOTE: X & Y in the simulation is different than the x y orientation of the IMU.

Back to 6.2

the tutorial examples are covered up by the block child windows

And this one also refers to the incorrect logic block name

# 6.3 EXERCISE 3: CLOSED-LOOP CONTROL (BALANCE IN PLACE)

THE MOTOR SHIELD Datasheet SAYS IT CAN MONITOR output CURRENT -  WHY NOT ADD A SIMPLE FLYWHEEL MOTOR THERMAL MODEL ?

Next, load and test. With Trq Ref disabled, IMU calibrate. Flags set OK.I cant do a good job of balancing with the USB cord snaked thru the front.

1. 6.4

The motor wiring illustration is hard to read colors on my PC. Why not mark them with color names for the sake of the color blind users ?

I WISH I COULD POST TABS on the WEBSITE SO I COULD FIND MY LAST STOPPING POINT.

in tutorial 6.4, the text says:

### BALANCING WHILE DRIVING IN A STRAIGHT LINE

Now let’s integrate the rear wheel into the system model, and attempt to balance the motorcycle with forward and backward motion. Copy all the blocks from myDrive.slx to myMoto.slx except for the Scope block and lay out the model approximately as shown:

Is the text supposed to say to copy MyDrive.slx blocks to MyNewMoto.slx (instead of MyMoto.slx) ?

Thanks Gary  YES it WAS A TYPO

1. 6.5  For leaning during a turn

θopttan1(V2δ/(LFRg))

WHAT ARE ENGINEERING UNITS ? length meters, angle in radians ? I figured it out, but should include in the tutorial.

My calcs show result is a + - .2 degrees theta trim, relatively minor correction

On repeated crashes, battery loses its balance position. The flywheel is unbalanced and out of alignment, loosens up and too much play in its bearings in the axle axis.

Really crappy that I have to keep the steering at 30 degrees to plug the USB cable in.