element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
IoT: In the Cloud
  • Challenges & Projects
  • Project14
  • IoT: In the Cloud
  • More
  • Cancel
IoT: In the Cloud
Blog Arduino IoT Cloud controlled MKR Robot ARM: Das Blinken LED
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join IoT: In the Cloud to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: jomoenginer
  • Date Created: 22 Mar 2019 8:07 AM Date Created
  • Views 3085 views
  • Likes 10 likes
  • Comments 13 comments
  • mkr_1010
  • arduino iot cloud
  • arduino_iot_cloud
  • arduino mkr 1000
  • iotcloudch
  • robot arm
  • arduinoday2019ch
  • arduino mkr wifi 1010
  • arduino
Related
Recommended

Arduino IoT Cloud controlled MKR Robot ARM: Das Blinken LED

jomoenginer
jomoenginer
22 Mar 2019

IoT: In the Cloud - Arduino IoT Cloud controlled MKR Robot ARM

 

Introduction

 

The Internet of Things is still a hot marketing topic covering everything from Voice Assistants, and Smart Lights, to connected Refrigerators that can order groceries straight from a panel on the door of the frig. There are many predictions that by 2025 there will be something like 21 billion IoT devices chirping on the net.  Considering this, and the increase of the MKR line of dev boards from Arduino, it seems quite appropriate for the folks at Arduino to delve into the Cloud with their Arduino IoT Cloud offering which is Powered by Amazon Web Services (AWS).  Although the IoT Cloud is still in Beta, it does offer some very cool features that take advantage of the MKR devices as well as other connected Arduino devices and Linux based systems such as Raspberry Pi, BeagleBone, and the latest Intel UP boards.

 

Hardware

In this project, a Robot Arm controlled by a MKR1000 and a MKR1010 powered conveyor belt will be used to test the Arduino IoT Cloud features and how it can be used to control these devices in a simulated Manufacturing environment. Also, a MKR Relay Proto Shield, MKR MEM Shield and a MKR2UNO Adapter board along with a Make Wicked Devices Motor Controller board will be used. A Robot ARM make of foam board with 5 servos connected to the Make Motor controller and MKR1000 will be used to simulate a Robot Arm in a manufacturing environment. A conveyor belt will be created to connect to a MKR1010 and MKR Relay Proto Board will be used to move widgets for the Robot Arm.

 

MKR WiFi 1010 - https://www.newark.com/arduino/abx00023/development-board-arm-cortex-m0/dp/71AC0169

MKR1000          - https://www.newark.com/arduino/abx00004/dev-board-32bit-arm-cortex-m0/dp/47AC4164?st=mkr1000

MKR Relay Proto Shield - https://www.newark.com/arduino/tsx00003/relay-proto-shield-mkr-board/dp/47AC6341?st=MKR%20Relay%20Proto%20Shield

MKR2UNO Adapter Board - https://www.newark.com/arduino/tsx00005/eval-expansion-board-uno-shield/dp/47AC6343

MKR MEM Shield - https://www.newark.com/arduino/asx00008/mkr-mem-shield-mkr-development/dp/71AC0214

Make Motor and RC Shield for Arduino v1.1

American Robotic Supply MG-90M Micro Servos

Tower Pro SG92R Micro Servos

Parallax 2-Axis  Joysticks

 

Software

Arduino IoT Cloud - https://www.arduino.cc/en/IoT/HomePage

Arduino Create - https://www.arduino.cc/en/Main/Create

Eclipse MQTT - https://mqtt.org/tag/eclipse

 

 

Related Posts

Arduino IoT Cloud controlled MKR Robot ARM: We have Movement

 

Robot ARM

Robot Arm based on the FoamArmDS design at EasyDS

https://mauriciodgsantos.wixsite.com/easyds/copia-easyfinderds

 

image

 

 

MKR1000, MKR2UNO and Make Motor Controller stack and Joystick control

 

image

 

 

MKR1000 Firmware Update

There could be issues seen connecting the MKR1000 to a WiFi router and thus the IoT Cloud, so before connecting a MKR1000 to the Arduino IoT Cloud, it is best to check the firmware version installed on the board and update it as necessary.

 

For MKR WiFi 1010 Firmware Update, see the following post

MKR WiFi 1010 - Enable BLE Support

 

The instructions for the MKR1000 are from the following:

https://www.arduino.cc/en/Tutorial/FirmwareUpdater

 

 

    1. Downloaded the latest version of the WiFi101 Libraries from:

           https://github.com/arduino-libraries/WiFi101

 

   2. Add the zip file via Add .Zip File... under Sketch -> Include Library

        NOTE: This updates the Wifi101 to 0.15.3

       https://create.arduino.cc/projecthub/nazarenko_a_v/mkr1000-connecting-to-the-wifi-3-steps-d02fed?f=1

 

    3. Under Examples->WiFi101, select, build and load the CheckWiFi101FirmwareVersion Sketch.

        If the result of the Firmware check is NOT PASSED, then proceed with updating the firmware:

       Ex.

WiFi101 firmware check.

  
WiFi101 shield: DETECTED
Firmware version installed: 19.4.4
Latest firmware version available : 19.5.4

  
Check result: NOT PASSED
 - The firmware version on the shield do not match the
  version required by the library, you may experience
  issues or failures.

 

 

    4. Under Examples->WiFi101, select, build and install the FirmwareUpdater sketch

 

image

 

 

    5. From the Arduino IDE Menu, under Tools, select Wifi1010 / WifiNINA Firmware Updater.

 

image

 

    6. Select the MKR1000 serial port connection and then Update Firmware version.

       Version 19.5.4 was selected to match the version shown in the FirmwareChecker but there was a newer version 19.6.1 shown.

 

    7. Click the Update Firmware button to update the firmware.

        When complete and successful, a pop up windows should appear indicating the firmware update completion.

image

 

 

   8. If successful, go back to the Firmware Checker (Step 3) and see if the firmware was updated.

       The result should now show PASSED

WiFi101 firmware check.

  
WiFi101 shield: DETECTED
Firmware version installed: 19.5.4
Latest firmware version available : 19.5.4

  
Check result: PASSED

 

 

    9. From the  Arduino Create IoT Cloud IDE, the device should indicated connection if working properly.

    Monitor output with debug set to 2

[ 10081 ] Connecting to Arduino IoT Cloud...
Compile time: 1553040000

  
[ 12186 ] Connected to Arduino IoT Cloud

 

Arduino Create IoT Cloud

 

If no device has been added to the Device Manager, click on Add New Board to add one.

 

image

 

Or go to the Getting Started Page:

 

image

 

After adding a device it will appear in Device Manager

NOTE: The device will appear if it is connected or not.

image

 

Click on the Checker board Icon in the upper left corner to navigate to get to Arduino IoT Cloud or other options.

image

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Click on Arduino IoT Cloud to add Things.

image

 

Here a MKRLED Thing was created which is use to turn on and off the LED_BUILTIN

NOTE: Currently only a single Thing can be created, I guess since I get the following when trying to add a new Thing

  "No more Things left on your current plan, please remove your existing Thing before creating a new one. Arduino Plans coming soon!"

 

 

Clicking on the defined Thing displays a window showing the Thing's Properties as well as options to add code and edit the thing. A Thing can have multiple Properties.

 

 

 

image

 

Selecting Edit Code will bring up the Arduino Create Editor

Here, a onLEDVAL_Change method was created when the MKRLED Thing was created.  The method is declared in thingProperties.h.

image

 

Click on "GO TO IOT CLOUD" to go back to the Thing.  Clicking on the eyeball Tab of the Thing brings up window to interact with the think.

A Switch that can be turned on and off is used to toggle the MKR1000 LED (6).

 

MKRLED Off

 

image

 

MKR1000 LED_BUILTIN Off

image

 

MKRLED On

image

 

MKR1000 LED_BUILTIN On

 

image

 

Video showing the the MKR1000 LED control from Arduino IoT Cloud

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

  • Sign in to reply

Top Comments

  • jomoenginer
    jomoenginer over 6 years ago in reply to balearicdynamics +3
    My view with the Arduino boards are that they are nice Maker boards or Prototype boards at best. With the partnership between Arduino and ARM and now the extended line of ARM based Arduino boards, they…
  • shabaz
    shabaz over 6 years ago +2
    Hi Jon, Very nice walk-through of the Arduino IoT platform.. I'd not seen this before. I think it will be very popular, if the MKR boards come out-of-the-box ready to use with it. Even if cloud is not…
  • jomoenginer
    jomoenginer over 6 years ago in reply to shabaz +2
    I appreciate the comment. The MKR line of Arduino boards are nice and the foot print allows them to be used in smaller projects similar to the Adafruit Feather or smaller Arduino Tiny boards. I believe…
  • jomoenginer
    jomoenginer over 6 years ago in reply to balearicdynamics

    Yeah, I had seen that site maintenance thing as well.

     

    With regards to the Arduino code issue, that would take someone or something that controls what code is checked into a base Arduino Repo or some other means to make the Interfaces and such of every Arduino library writer visible to everyone else and a gatekeeper to make sure everyone plays nice.  Sort of like the mainline Linux Kernel model.  In a complete Open Source environment, this is pushed to the user, or consumer of the code, to ensure the code they pull in is compatible with the current code base and does not break any other code.  The Arduino IDE sort of has this and will report when it sees multiple instances of the same code, or same names. There are ways to increase the warning levels and such in the Arduino IDE though.   In a true IDE, these triggers can be implemented and the code would not compile if there is a conflict.  The other option is to use some sort of Configuration Management and set triggers for code conflicts, but this is out of scope for a typical Arduino user.    

     

    Some of this is controlled on the Arduino GitHub repo, but they can not control what everyone else is doing for their individual Arduino based board or shield.  At one point the since ousted director of Arduino, AG, Frederico Musto, pulled much of the Open Source licenses, schematics and code from the Arduino site.  I suspect this was due to the number of non Arduino licensed products being developed.  I'm not sure what the resolve of this was, but if Arduino pulls all of the Open Source stuff back and make Arduino strictly a Closed Source Architecture and Software product, then it could control what code is developed for a particular Arduino board or shield.  However, I suspect Arduino would die on the vine if this happens.  In the mean time, with so many non truly Arduino products being created that call themselves Arduino compatible, it is basically use at your own risk with regards to hardware and code.  If there is an issue or conflict with Arduino build code, then an issue can be filed at their GitHub repo or posted on their forum which I have done for the Create Cloud IDE and Arduino IoT Cloud. No guarantee if it will be fixed though.

    https://github.com/arduino

     

    At least, that is the way I see it.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • balearicdynamics
    balearicdynamics over 6 years ago in reply to jomoenginer

    John,

     

    I have read your message yesterday night and started answering you. Then when things were almost finished, trying to send the reply I got the nice message 'system undergoing for maintenance' and goodbye, I went in bed.

     

    Now I forgot what I wrote but the concept is that I agree with you and continue pointing the attention on the problem (or just the issue) that who write the libraries never take care that maybe the same library will be used in conjunction with something else.

     

    Enrico

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jomoenginer
    jomoenginer over 6 years ago in reply to balearicdynamics

    My view with the Arduino boards are that they are nice Maker boards or Prototype boards at best.  With the partnership between Arduino and ARM and now the extended line of ARM based Arduino boards, they have moved more into to the dev kit space.  However, with regards to a crypto chip, looking at this from a production perspective, I would not want to have this exposed where someone or something could easily tap into the crypto with a hardware attack.   Thus, I would not have the i2c signals exposed if the crypto chip was used.

     

    As far as interrupts are concerned, that is an implementation issue, in that when interrupting the chip, how this affects anything else using it would have to be taken into account.  I've seen instances where code from a vendor will reinitialize all of the gpio pins when the begin is called for that driver which could reset predefined pin definitions.  Also, I've seen where a particular timer was used in one vendors code which conflicted with the default timer or the timer used in another vendor code.  I've also run into instances where 2 different libraries from separate shield vendors used the same namespace and class names, so there was no easy way to use both in the same app without changing one of the namespaces. Since there really is no control of who creates libraries for the Arduino boards, then conflicts are bound to happen. This is something that is not exclusive with Arduino though; its the joy of Open Source.

     

    With the Arduino IoT Cloud, I have found they are using some libraries that are not compatible with other common libs and actually limit the user from adding certain libs to the Create environment.  However, the limitations I was referring to previously are inherent with the development of the Arduino IoT Cloud as it stands now; Only 1 Thing can be active at a time, although you can define multiple boards (things), and only 5 Properties can be defined for a Thing. However, this is a Beta environment so I expect changes to be frequent and features limited.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • balearicdynamics
    balearicdynamics over 6 years ago in reply to jomoenginer

    John, you are right, me too I read of the SDA/SCL. But the concept is just this, you have a lot of pins and also a lot of potential limitations. I have not tried how does the interrupts will influence the behavior of the MKR IoT specific features.

     

    We should also consider one thing; many of these features are due to the libraries that are not 100% compatible with other devices. IMHO one of the big problems of the software libraries and general approach to the Arduino boards (especially but not only) is that all those make a piece of software or a shield, rarely think that some project needs more than one or two things only on the same board.

     

    Just a cascade example I have experienced recently: NeoPixel impact with the servo library (does not work). Servo library impact with PWM (two stop working and the other are unreliable). And I am sure these are only two of more cases.

     

    Enrico

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 6 years ago in reply to jomoenginer

    I had some conflicts in the i2c software. The MKR1010 and wire library don’t work nicely together. Had to insert some tactical init() calls. The radio made the Wire lib stop. The wire lib made the radio stop.

    There are still some rough edges in this new product range.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube