The design concept of Roger Bot is based on two main features. The robotic arm functions and the the rover maneuverability functions. In addition to this, several sensors have been installed on the rover to retrieve sensory data and display them upon request on a LCD display. All the parts were designed using CATIA V5 software and exported as STL files and printed on a 3D printer.
Roger Bot is designed for indoors and will not be able to handle bumpy and crooked grounds although it performs well on smooth flat surfaces. This is a downfall on the drive capabilities for now and I hope to address this in the future with your input. It has a tripod style wheel arrangement with ample width between the back two wheels so that mild to intense robotic arm movements will not topple Roger Bot over. The three supports with rolling ball wheels on the underbelly of the rover acts as an additional support for the robot arm on the rover.
Another fact that I want to highlight at this point is that as I started to design initially my plan was to control the steering of the rover using a servo motor attached to the front wheel, but with testing later I had found out that the distance between the two back wheels were too large hence even with full steer from the front wheel very little turn was resulted by the rover. So I have just left the design as it is for now and used the opposite turning of the two back wheels at the same time for the turning movements in clockwise and anticlockwise direction.
The drive capabilities of the rover are powered by stepper motors and the robotic arm is powered by servo motors. These are controlled by an Arduino Mega 2650 which is seated at the back of the rover.
Roger Bot also has the capability to play music and record audio of up to about 10 seconds and play it back. All the functions of Roger Bot are controlled via Bluetooth with a dedicated APP created using MIT App Inventor 2.
Please click this link to visit my youTube channel to watch more videos of RogerBot.
THE BUILDFor clarification I have divided the build into three main parts, which are:
- The body
- The head
- The arm
All the structural members of the body are 3D-printed except for the wheels. It consists of two plates fixed with vertical screw in beams. The gap between the two plates are used for housing the voltage regulator modules, two 11.1 V LiPo batteries, one 7.4 V LiPo battery and one 9 V normal battery. Clips are screwed to the bottom side of the top plate for routing the wires from the sensors, the voltage regulator modules, the steering servo and head rotation servo and Stepper Motors. The bottom face of the top plate has the three support legs with screw in ball wheels attached to the bottom of each support leg. The ball wheels on the legs can be screwed in or out to a desired level for distribution of load and overall balance of Roger Bot.
Two side structures are attached on either side of the top plate that house the two stepper motors used for the rover movements of Roger Bot. Two speakers respectively for the mp3 player and the voice recorder module are fixed on top of these side structures. The wheels were purchased separately for this project. They are connected to the shafts of the motors with metal couplings. The collar that holds the wheel and the coupling are 3D-printed.
The fwd of the top plate is fixed the head mount structure which houses the steering assembly (with the bearing) and head assembly. On top of the head mount structure is a mini breadboard with the blutooth module, PIR sensor and the transistors and resistors used in the circuitry for the mp3 player module and the voice recorder module.
The mid section of the top plate houses the structural member that hold the base rotation servo for the robot arm.
The aft of the top plate is allocated for the box which holds the Arduino Mega board, two stepper motor drivers and two mini breadboards and circuitry for the wiring and connections. RGB leds and normal leds are also housed inside the box for a more colorful look. These can be controlled via the dedicated APP for Roger Bot. On top of the box are fixed the LCD display (with I2C LCD backpack for optimizing pins on the Arduino Mega) and the cooling fan for the two stepper motor drivers.
The head assembly consists of the housing structure for the steering and head rotation servos. The head of Roger Bot houses the sonic sensors for measuring the distance and two RGB led Modules which can also be controlled. The sonic sensors are used in the surveillance mode for avoiding obstacles and moving around. In surveillance mode, the gripper head of Roger Bot can be swapped with a camera holder which can hold a RunCam2. Sadly the camera is not automated but its something I would like to learn and explore with the help of the Arduino community.
The arm is mounted on the base servo motor with a 3D-printed round beam with a hole in the middle. I used a 5 mm diameter metal SS rod cut into the length of the short beam and inserted it to the hole in the beam to give additional strength. The arm has six degrees of freedom including the gripper mechanism. The gripper uses a screw mechanism which loosens and tightens the the bolt attached to one of the grip clamps. Two hollow rods(not too sure of the material but is strong and rigid enough) is used as guide rails for the clamps. A kill switch is at the end of the gripper to revert back a few steps forward after the clamp is fully loosened. As of yet I haven't programmed the kill switch but all the necessary hardware is ready for it to be programmed. The gripper uses a high torque small stepper motor which is light in weight and easy to program.
A counter weight of 100 g is used at the mid arm section for countering the moment forces of the arm. Also it assists in the overall balance of the arm when in motion.
HOW IT WORKSTo further explain on how it works, I'll divide it into five main parts:
- Audio capability
- Mechanical movement capability
- Interaction capability
- Power management
AUDIO CAPABILITY
The two modules used for audio are the MP3 module and the voice recorder module.
MP3 Audio Sound Player Decoder Module
This module comes with built in switches for play/pause, next, previous, repeat buttons. The modification I made to the circuitry is to add four npn transistors to control the functions of these buttons via Bluetooth through the APP. The mini bread board behind the head of Roger Bot is used for making all the connections with the module and the transistors. The 'collector' pins of the transistors are connected to the ground, the 'base' pins are connected to the digital pins respectively of the Arduino Mega, and the 'emitter' pins are soldered to the left leg of the push buttons for each function. When the signal is 'HIGH' on any of the digital pins the 'base' pin allows the current to flow thereby completing the circuit.
Voice Recorder (ISD 1820)
The ISD1820 is a voice recorder module that can record sound up to 10s and playback. Similar to the MP3 module, the ISD1820 also comes with push buttons for Record and Playback. In addition to this this module comes with connecting options with the Arduino with its pin out for record and playback functions. By simply setting a 'HIGH' or 'LOW' on any of these pins enables or disables the functions respectively. The pins are connected to digital pins on the Arduino Mega. Since this module runs on 3.3 V, it was necessary that the signals sent from the Arduino board also were of 3.3 V although Arduino runs on 5 V. Therefore a simple voltage divider resistor circuit is connected with the help of the mini bread board behind the head of Roger Bot to step down the 5 V to 3.3 V.
MECHANICAL MOVEMENT CAPABILITY
The mechanical movements of the arm, movements of the steering front wheel and the head will be explained here in addition to the stepper motors and their respective drivers.
The robotic arm consumes six servos in total. Five servos out of this have a rotation angle limit of 300 degrees and the servo used for rotating the gripper has a rotation angle limit of 180 degrees. The steering servo also have a limiting angle of 180 degrees. Finally the head servo has a limit rotation angle of 180 degrees. All the servos except the head servo performs best at 8 V and the head servo is supplied with 4 - 6 V. The power leads of the servos are supplied power via a 16 V 100mF capacitor for smoothing the servo movements. The base of the arm is powered by two servo motors and after assembling I found out that one servo was off by 5.5 degrees from the other so I adjusted that in the program.
The two bipolar stepper motors (Nema 17) used for driving Roger Bot uses two A4988 drivers. A small 5 V cooling fan is mounted on top of the box right above the two drives for cooling and a transistor is used as an electronic switch for blutooth control. It takes some tweaking to get the right amount of step and torque of the motors for the rover to move smoothly.
A small high torque 4 phase small stepper motor (28BJY-48) is used in the gripper for tightening and loosening the grip. It is driven by a ULN2003 driver. The driver is placed below and in between the two audio modules.
INTERACTION CAPABILITY
Interaction with the Roger Bot is made via Bluetooth connection through the dedicated APP designed using the MIT App Inventor 2. It supplies sensory data when requested and displays them on the LCD display though I2C.
The HC-05 Bluetooth modules is connected to the Arduino Mega using the RX and TX pins and communicates via serial port. The Bluetooth module is paired with the dedicated APP built using MIT App Inventor 2.
The HC-SR04 Sonic sensor's VCC is connected to 5 V with the GND pins grounded and Echo and Trig pins to digital pins of the Arduino Mega. Data from this sensor is used in the 'surveillance mode' of Roger Bot.
The LM35 Temperature sensor module and DHT11 humidity sensor's VCC is connected to 5 V with the GND pin grounded and The signal pin of the LM35 is connected to analog pin on Arduino Mega and the DHT11 to digital pin. These two sensors are located under the top plate where the batteries are located.
The PIR sensor and light sensor also is connected and with the 5 V VCC and GND to ground with the signal wire of light sensor is connected to analog pin and the signal wire of PIR sensor is connected to digital pin on Arduino Mega.
POWER MANAGEMENT
- 11.1 V LiPo Battery - Used to power the five 300-degree servos and the ULN2003 driver.
- 11.1 V LiPo Battery - Used to power the two 18-degree servos and the two stepper motors for driving the rover.
- 7.4 V LiPo Battery - Used to power most of the LEDs, LCD and the 5V voltage required to run most modules.
- 9 V Normal Battery - Used to power the Arduino Mega board, cooling fan and few LEDs.
The voltage from the two 11.1 V LiPo batteries are stepped down to 8 V for powering the servos using the voltage step down module. Direct 11.1 V is used from the batteries to power the three stepper motors (two drive motors and gripper motor). All connections are made on breadboard and took me quite awhile manage all the wires in a small confined box.
Comments