|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|
Arduino Engineers Kit Element 14 Notes for Road Test Report
December 2018 – January 2019 by Gary Yohe
Qty 1 kit Bar Code 7630049200227
Project 4 Drawing Robot https://youtu.be/paqFx46_kww
Project 5 Mobile Rover: https://youtu.be/JIu58hMgBaY
Project 6 Self Balancing Motorcycle: https://youtu.be/xALECg2Yuw8
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.
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.
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.
MATLAB and Simulink
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.
Loading MathLab was expectantly time consuming.
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.
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.
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.
Splash page is simple and well organized.
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™.
Oh boy - another iteration of create an account.
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
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.
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 ?
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
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: https://youtu.be/JIu58hMgBaY
Assembled Mobile Rover. Fits together pretty well,
****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*****
Continue assembly, one piece needs drilled.
Assembled Rover photo
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.
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.
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:
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.
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.
. LIFT SERVO FAILED jammed in down position
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 ?
MISTAKE IN TUTORIAL: SAYS 6000 instead of 4000, confused me
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
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.
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:
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
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.