Skip to content

Robotic arm and smart control system with the IoT and GUI manipulator.

Notifications You must be signed in to change notification settings

Sathursan-S/sArm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sArm

Introduction

A robotic arm is a type of mechanical arm, usually programmable, with similar functions to a human arm. current days robotic arms are becoming a replacement for humans in working tasks, especially repetitive tasks. They are more efficient and accurate than humans. Robotic arms are currently used in many fields such as medical, space, nuclear and other researches, industries, education, etc.

when thinking about robotic arms, what comes to mind is their high price, big size and complexity. For students and small industries, it has been not possible to access a better robotic arm for educational or industrial purposes. In this mini-project, a robotic arm manipulator was built to resolve that problem. It has many facilities such as

  • GUI manipulator

  • IoT (Internet of Things) controllability

  • Inverse kinematic

  • Programmable

  • Multiple platform support

  • Educational value

  • Low cost and open source

With these utilities, a fully functional robot arm can be afforded for home, school and professional use. This robotic arm will help to study robotics, learn to code, automate works and bring peoples ideas to real life. With its' IoT controllability it can do more things like remote access from any ware, safe nuclear researches, make a global network for robot arms, implement ML(Machine Learning) and AI (Artificial Intelligence) with IoT cloud, etc. it opens a new space for makers, robot enthusiasts, engineers and students to explore robotics. This robotic arm is named as sArm.

Methodoligy

The concept of this project is controlling a servo based robotic arm through a microcontroller (Arduino UNO) and the microcontroller is controlled in different ways such as connect the microcontroller to IoT and control it, program the microcontroller for a specific task, connect the microcontroller to a computer and control it in various ways like GUI simulation control.

Components

  • Arduino UNO R3 ATMEGA328 SMD CH340 with Cable.

  • Micro servo SG90 Tower Pro.

  • Connecting wires.

Mechanical design

The robotic arm used here is a miniature model based on ABB IRB 460 Palletizing Robot mechanism. It has 4 degrees of freedom (DOF). It is powered by four micro servos. In this case, an open-source robot model mearm is used for the prototype (Thingiverse.com, 2016).

image.png

image.png

image.png

Electronic design

This robotic arm is controlled by an Arduino UNO microcontroller. Servos in the assembled robotic arm are connected to Arduino like in the Schematics.

Inverse kinematics

Inverse kinematics is one of the most important things for manipulating robotic arms effectively. inverse kinematics is the mathematical process of calculating the joint angles from the position of the end-effector. In this case, three controllable joints are there. Base to arm joint (𝜃3), solder joint (𝜃1), elbow joint (𝜃2). They are founded with trigonometric.

image.png

image.png

Control with basic Arduino code

In this case, the robot is programmed to do certain work. Some functions were written to program the arm easily. Those functions are based on inverse kinematics.

Blynk based IoT control

This system is made with an IoT platform called Blynk (Blynk, 2021). It is one of the best platforms for IoT beginners. First, a mobile application made with the Blynk application that is very easy with Blynk widgets. and in this case, Arduino was coded and connect to IoT through a USB connection with a PC. There is no need for any Wi-Fi modules with Blynk USB support. Local Blynk servers also build easily with the Blynk server library.

image.png

##GUI Based Manipulator

Graphical User Interface is the best way for beginners to manipulate. And also, this GUI manipulator has more features than others such as Record and Play mode, simulation-based controller. This system works on two modes one is with sArm manipulator software and wired connection via USB and the other is IoT control with the web-based manipulator.

PC software sArm Manipulator

This software was built with the Processing IDE and the JAVA (Ben Fry, 2020). This software controls the Arduino through serial communication with Firmata protocol (soundanalogous, 2021).

image.png

The above block diagram [Figure 8.7] shows the concept of this system. the Firmata protocol is used to make serial communication between the Arduino and the processing. To do that the Arduino was uploaded with StandedFirmatPlus.ino from the Firmata library. a GUI controller was built with the Processing by the following Java code.

Web-based sArm manipulator

This web-based manipulator made to control the robotic arm through IoT with simulation. This is made with node.js, p5.js, and johnny-five library for p5.js (p5.j5) (Montes, 2020). This web-based manipulator is hosted from a node.js server and the server communicate with the Arduino by serial communication through the Firmata protocol via USB. The server has three web pages one is for connect the Arduino, one is for the GUI manipulator desktop version and another is for the mobile version. The code for this system was written in JavaScript. the flowing block diagram explains this system.

image.png

Result

-Control sArm with the Arduino code

This code and functions that are mentioned in the methodology are working very well. Many different tasks are coded with these functions and tested. It was easier than the typical coding. For example with six drawLine() function can move the end effector in a hexogen path.

  • Blynk based IoT control

Blynk can work with both the official Blynk server and the local Blynk server. Both are working well with sArm but the official Blynk server give limited access for free but the local server has no limitation. With the Blynk two type of interfaces was built and tested. One is a basic joint based controller it works through the official Blynk server and another interface works with the basic joint based controller, inverse kinematic based coordinate control and record and plays mode this is based on the local Blynk server.

This system is very good for beginners to experiment and play with the IoT and the robotic.

image.png

image.png

  • GUI based Manipulator

This category has two types of manipulators one is a software controller and another is a web-based manipulator through the IoT. Desktop software has facilities such as control with simulation, record and play mode and slider control also. The sArm can be controlled by clicking and dragging the mouse on the simulation model. While controlling this way sArm use the connected computers' CPU to do processing so, it is very powerful to do heavy processing tasks and it has a very accurate record and play mode than basic Arduino control because it uses the computer RAM to seave positions so it can seave more data than Arduino. Automate the sArm is very easy with this manipulator.

image.png

  • Web-based GUI manipulator

This is the IoT version of the above GUI manipulator and it also has a mobile version too. There are three web pages one is for connecting the Arduino through serial comminution this should be done from a compute that connected to sArm via USB, and others are for manipulators for desktop and mobile these can be run through the internet.

image.png

image.png

image.png

image.png

About

Robotic arm and smart control system with the IoT and GUI manipulator.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published