Tag Archives: Servo

Robot Core – The Ultimate Raspberry Pi Robot Controller

The Robot Core, which is a robot control board for the Raspberry Pi and Arduino, brings many different elements into one awesome package. It allows you to efficiently control motors, servos, and read sensor data without needing 3-4 additional boards to hookup. Several Robot Core boards can be connected together in a linear series to add even more functionality.

The Robot Core board
The Robot Core board

Robot Core uses I²C (Inter-Integrated Circuit) to communicate with Raspberry Pi. I²C is a widely used serial computer bus invented by Philips Semiconductor. It is a very easy-to-use two-wire bus that your Pi has no difficulty talking with. A built-in level shifter ensures compatibility to both 3.3 volt and 5 volts I²C buses. The Robot Core supports all Raspberry Pi boards (the past and present versions) and some Arduino boards also.

Now, let’s talk about the technical details.

Software Support:

The board has software provided in the form of libraries and python example programs to get you started fast. Thanks to Second Robotics for making the software Open Source. All required resources will be available in July 2017. Currently, available links are – Drivers and LibrariesSupport Documents.

Software for The Robot Core
Software for The Robot Core
The Robot Core Python Script
The Robot Core Python Script

Motor Drive:

This board provides up to two 5 Amp continuous load DC motor outputs that can be used as a pair to drive a single stepper motor. The Robot Core’s built in safety protection prevents overheating and detects the motor failure.

Servo Control:

The Robot Core can set servos to exact position with the help of 16 bit PWM signal. It has eight ports for both analog and digital conventional servos. You can tune each servo using software-based GUI tuning method and also set their start-up positions individually.

Two ports are provided for connecting Dynamixel servos. Connecting multiple Dynamixel servos at the same time is supported. All functionalities are accessible by simple low-level commands. Many example python codes are available there to get started with Dynamixel servos.

Ultrasonic Sensors:

You can connect up to 4 ultrasonic sensors (HC-SR04) with the board. Given libraries convert measured distance into millimeter. The Robot Core board can provide filtered outputs with higher accuracy or raw outputs with greater speed, the choice is yours.

Analog Input:

Up to 8 12-bit analog inputs are supported for sensors or feedback. Each input has a range of 0-5V and the board also provides protection from exceeding the input limits. The additional analog reading for main power voltage lets you monitor supply voltage in real-time. The Robot Core has configurable warnings for low power.


The range of input voltage is 6.4v to 14v. An onboard DC-DC regulator is there for generating 5 volts, capable of providing 6 Amps current to the load. Optional separate power supply inputs for servos and for Dynamixel servos are also present.

Other Technical Information:

  • Clear on-board labeling. Each port and screw terminal has its pins labeled.
  • Prototyping space for adding more functionality. This space removable to make the board smaller.
  • Easy to access voltage rails.
  • Access to the Raspberry Pi I²C at 5V logic level.
  • Status LEDs are for main power voltage, DC motor status, and script controllable status.
RobotCore board details
Robot Core board details

Application Of The Robotcore Board:

The Robot Core is an all-in-one solution for many projects. One can do pretty much any autonomous and/or robotics projects with this board. The possibilities are endless. Below are just some example projects:

  • A smart plant monitoring system that reads ambient light, temperature, plant moisture, and even uses two water pumps to water two different plants.
  • Using a single board, you can build a 2 wheeled robot with a ring of 8 analog ultrasonic sensors and a strong Dynamixel smart servo arm.
  • With an IMU (Inertial Measurement Unit) tied into the I²C bus, you can create a two-wheeled self-balancing robot.
  • Build a biped walker robot with sensors to navigate based around the board and a Pi using powerful servos or Dynamixel smart servos.
  • Make an automated greenhouse. Have analog sensors for light, temperature, carbon dioxide, moisture, water leaks, and also control two water pumps.
The Robot Core plant watering system
The Robot Core plant watering system

Controlling A Robotic Arm By Gestures Using Kinect Sensor & Arduino

B.Avinash and J.Karthikeyan had developed a robotic arm that mimic their moves using a Kinect sensor with MATLAB Simulink and an Arduino. The arm was built based on servo motors that replicate the right arm shoulder, elbow and hand movements.


ic568992The Kinect sensor is a horizontal bar of motion sensing input devices which enable users to control and interact with their computers through a natural user interface using gestures and spoken commands.

The sensor consists of a RGB camera, depth sensor, and multi-array microphone running proprietary software. It provides full-body 3D motion capture, facial recognition, and voice recognition capabilities.

MATLAB Simulink is a graphical programming environment for modeling, simulating and analyzing multidomain dynamic systems. It supports simulation, automatic code generation, and continuous test and verification of embedded systems.

Simulink is developed by Mathworks, and it offers integration with MATLAB environment, enabling developers to incorporate MATLAB algorithms into models and export simulation results for further analysis. Simulink is widely used in automatic control and digital signal processing for multidomain simulation and Model-Based Design.

To build a similar gesture-controlled arm you need these components:

Thanks to Simulink support for Kinect, the computer collects data from the connected kinect device and translates them into servo angles in MATLAB. These angles are sent to the servos through the arduino via TTL device, resulting movement of the arm with a slight delay.

TTL - Arduino & Arduino - Servo Connection Schematic
TTL – Arduino & Arduino – Servo Connection Schematic
Simulink Model
Simulink Model

This project has been chosen in the week’s (29/10/2016) Pick of the Week during Matlab Simulink Hardware Challenge 2016, and it also had won the 4th place in “MATLAB International Simulink Hardware Challenge 2016“.

Arduino code, other files and resources are reachable at this instructable and this hackster.io page.

A DIY obstacle avoiding robot using an SG90 servo and Ultrasonic Sensor

In this video educ8s.tv shows us how to build an Arduino Robot that can avoid obstacles:

The robot that we are going to build today is moving around and it can detect obstacles and avoid them. It uses a supersonic distance sensor in order to measure the distance from its front side. When it detects and obstacle it stops, goes backward for a few cms, looks around and then it turns to the direction with the more space available. As you are going to find out, building this impressive little robot is extremely easy and fun. It will not take you more than a couple of hours from start to finish. Then you can use my code, modify it and implement your own robot behavior easily. It is a great learning experience and great introduction to robotics for kids and adults. Let’s build it!

A DIY obstacle avoiding robot using an SG90 servo and Ultrasonic Sensor [Link]

Wi-fi browser controlled servomotors

This instructable shows how to control some servomotors remotely in a wi-fi network, using an ordinary internet browser. This might be used in several applications: toys, robots, drones, camera pan/tilt, etc. The motors were attached to an Arduino Uno, which connects the wi-fi network through a ESP-8266 module. The control interface was designed with HTML and jQuery. by IgorF2 @ instructables.com

Wi-fi browser controlled servomotors – [Link]

1000 steps Servo motor


TheSuperSewcio @ instructables.com shows us how to control a servo motor in high precision using Arduino:

In many project like CNC machines people use stepper motors. They are probably always more expensive than servos. They can rotate 360°, 1 step = 1,8° (mostly). Servos can rotate only from 0° to 180°, 1 step = 1°. But why are they working this way, inside them we will find potentiometer which rotates as servo (up to 180°), but have 1024 steps.

1000 steps Servo motor – [Link]

4 Channel RC Servo Controller Board


This PIC microcontroller based RC driver is able to control 4 RC Servo by on board independent 4 potentiometer , 4X3PIN header for RC servo interface, screw terminal for supply input, on board power LED, optional 4X3PIN header connector for external potentiometer.


  • Microcontroller based design for greater flexibility and ease of control
  • Individual servo controlled via onboard preset or external potentiometer
  • Power supply input 5 VDC
  • Screw terminal connector for easy connection of the input power supply
  • Protection diode for reverse supply
  • Berg connector for connection of Servos
  • Power-On LED indicator
  • Four mounting holes of 3.2 mm each
  • PCB dimensions 56.52mm x 64.14 mm
4 Channel RC Servo Controller Board – [Link]


ArdLock – Arduino Door Lock


EswarD2 @ instructables.com has build an Arduino based door lock using Arduino UNO, a keypad and a servo motor.

This a door lock built as fun project.It is quite easy to build and a fun way to learn and improve your knowledge of arduino.I tried to add a 16*2 display but there werent enough GPIO pins on arduino Uno.If You are interested in adding a display you would need an arduino Mega.

ArdLock – Arduino Door Lock – [Link]

Arduino Tutorial: Using a Servo SG90 with Arduino

educ8s.tv shows us how to use a servo motor with Arduino UNO:

A Servo is a small device that has an output shaft. This shaft can be positioned to specific angular positions by sending the servo a coded signal. That’s why we need the Arduino, in oder to send that signal to the servo. Servos in general require a lot of current to operate since they have a motor inside. If you only need to control one small servo like this one you can connect it directly to Arduino. If you need to control two or more servos you need an external power supply or battery pack. Today we are going to use only one servo so we are going to connect it directly to an Arduino Uno. We are using an SG90 micro servo today which is a very popular one and very cheap. It costs around 3$.

Arduino Tutorial: Using a Servo SG90 with Arduino – [Link]

RC Servo Driver 0-5V


0 – 5V Servo Controller project will control a hobby type servo motor connected to it via a preset or external DC source.  This kit will be ideal add on in animatronics and motion control application.

This is a simple but a useful circuit to control a single servo motor.  Its an ideal add on to a RC Hobbyist tool kit. The DC input to this circuit should be 5 to 6 VDC.  DC signal is given to this board at connector marked CN1 (+V and GND).   You can also feed in a variable DC signal source at the other two pins on this connector to control the servo.  To use this signal source you need to place the Jumper link at J1 in the E position.  Alternatively, you can also control the servo motor by preset PR1 mounted on the PCB.  For this you need to place the Jumper link in the I position at J1.A Servo motor is connected at connector marked CN2 on the PCB.  This connector has all the pins clearly marked for connection to the servo.LED D1 is a power on indicator ,  Diode D2 provides a reverse polarity protection for the Microcontroller.


  • Microcontroller based design for greater flexibility and ease of control
  • Single Servo control via clearly marked berg connector
  • Clearly marked jumper to select signal source to control the Servo
  • Onboard preset for ready to control option for this kit
  • Power-on LED indicator
  • Diode protection for reverse polarity connection of DC supply to the PCB
  • Four mounting holes 3.2 mm each
  • PCB dimensions 45 mm x 32 mm

RC Servo Driver 0-5V – [Link]

Control servo motors with potentiometers and Arduino


by break_it_fix_it @ instructables.com:

I needed to be able to control 3 different servo motors by altering the position of 3 potentiometers. There are lots of people out there doing things like this, but I couldn’t find an exact match for everything I needed, so I decided to post up this instructable to bring everything I learned together in one place so that anyone else who wanted to do something like this could get it up and running quickly. This instructable is really a summary of other peoples excellent work and effort.

Control servo motors with potentiometers and Arduino – [Link]