Thales' cellular IoT products business is now part of Telit Cinterion, find out more.

You are here

Telit Cinterion IoT Developer Community

Robotic arm demo

Showcase, October 31, 2017 - 1:59pm, 5736 views

This Cinterion Concept Board demo lets you control robotic arm using Leap motion hand tracking technology.

The components used in this demo are available for sale online:

  • Cinterion Concept Board  / ConnectShield   
  • Leap Motion controller (optional)
  • PWM/Servo shield for Arduino
  • Robotic arm kit
  • 6V 7A Switching Power Supply

Here is a block diagram showing the dataflow in this demo.

Block diagram

Demo App

The original 6DOF robotic arm kit (with 6 servos) turned out to be too heavy for the "shoulder" servo - it's gears (inside) would start to slip after a couple of minutes. I had to remove the 2 servos controlling robot "wrist" roll and pitch to make it lighter and more robust.

If you have a LeapMotion controller, please install the drivers from LeapMotion website, if you don't - you still can control each servo by using the GUI sliders or you can activate a pre-recorded hand motion playback. 

The desktop GUI application and Java midlet can be downloaded from here https://github.com/weber4/CinterionRobot

Preparing Cinterion Concept Board:

  • Place ASC0 DIP switch in FTDI position
  • Mount PWM/Servo shield on top
  • Connect the servos to PWM/Servo shield: rotation servo - ch 0, shoulder - ch 1,  forearm - ch 2,  claw - ch 3
  • Connect USB marked as ASC0 to your PC and find the COM port number in device manager
  • in index.html file change 'COM154' to your COM port number
  • copy files from "EHSx JavaMidlet" directory to module file system and install:

AT^SJAM=0,"a:/Robot_Demo.jad",""

  • then start the midlet - it receives I2C control messages from GUI running on PC and forwards them to I2C

    AT^SJAM=1,"a:/Robot_Demo.jad",""

    • RXD0 LED rapid blinking indicates incoming servos control data from PC.

    Connect external power supply to PWM/Servo Shield.

    You should monitor the voltage and have a fast cut-off switch until you find proper orientation of each robot arm link on it's servo shaft, When servo shaft movement is blocked mechanically, servo will get overheated and potentially damaged. 

    Manual control of each servo from the GUI sliders should help you to ajust the links position on servos shafts -  the target is to make the real robot arm movement identical to the movement of the 3D model in GUI application

    The GUI application is based on NW (NodeWebkit) - you can download it here, for easy start - extract it in the same directory with index.html and package.json files and run nw.exe

    Here is a video of live demonstration:

    [video:https://youtu.be/VoIqWy7g3Mk]

    Author

    ASHVARTS's picture
    ASHVARTS