This project is designed for Animatronics and Puppeteer applications, however it can be used in other applications like sound responsive toys, robots etc. Especially this project helps to move the jaw or mouth of animatronics creature.
The project moves RC servo once receives any kind of sound. Rotation angle depends on sound level, more the sound level more the movement. Movement of the servo is proportional to sound level.
Circuit has 4 channel servo drivers, First channel is driven by sound, and rest 3 RC servos controlled by on board trimmer potentiometer, these 3 channels helps to drive other movement of animatronics figure.
Sound Received by microphone is convered to DC voltage, PIC16F72 microcontroller converts DC voltage into RC PWM signal. Circuits works with 6V DC , advisable to use battery for low jitter.
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.
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.
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 Libraries, Support Documents.
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.
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.
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.
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.
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 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.
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]
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
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.
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
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.
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]
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