Details
Data Gathering Robot
I thought of creating an open source system for data gathering in a hazardous situation not fit for directly accessing by a human. It is inspired by all terrain robot Viper by Elbit and several other robots like rhex and sand flee by bostan dynamics
Video Demonstration of Features
Suppose there is a major fire outbreak and after the fire outbreak the building is not safe to be entered becoz the iron bars melt and walls become weak so it has to be checked by the experts so that they can certify it to be safe. Now getting inside the building is not safe for the experts too, why not send a robot that could be controlled from outside,go in and send the video and images so that the team has the idea of the kind of damage and cracks and can further make a decision. Moreover the rover can also sense fumes and other toxic gas levels.As the weight of the rover will be lesser than the human weight it will further reduce the chances of collapsing the building. Can also be tweaked to gather data from radioactive ,industrial gas leakage situation or for any other situation where there are no sensors already installed. Further,There is a thought process behind creating any new thing a journey and a story of how you face hurdles and how you tackle them. In this post i will share about how i created the rakshak-1 system
Hardware Integration
The board numbered 1 is the first board on which i tested various motors . The IC used is L298 by STmicroelectronics. The board is a paper epoxy board designed on eagle and completely fabricated at home using the laser printer and hot iron method. Once i found it good i went for a more compact design that is numbered as 2 this is a glass epoxy board ,i ran two of my robots using this board. I wanted to make a shield(A shield is an arduino compatible pin configuration) so that the hardware can be neatly stacked on the arduino uno .I came across a motor driver on an online shop and i found the design to be very compact. After running the motors of Rakshak-1 on it i understood that it is a overuse of resources and space to go with big power diodes IN5408 for blocking the spikes produced by motors rather a IN4007 would suffice and would make the design compact. To make the system up and running i needed to have a hardware which can provide different voltages and can give enough power to drive the motors and power the sensors, micro-controller and other peripherals. Initially the GUI software is tested with the hardware arrangement numbered as 3. The shield was handwired and i have used a 11.1 v 1500mAh lithium ion battery to power the system. If you would look closely there are 4 resistors of quarter watt attached in parallel to drop the voltage from 11.1 to 9v This 9v is fed to the motors and 5v regulator provides power to arduino ,IC operations and LM35. Since i couldnot find a single resistor of high wattage adding 4 in parallel solved the wattage problem but still using resistors to drop voltage when current drawn is high is an inefficient method. Hence i decided to use a buck configuration in the next design of shield. A coil is an integral part of a buck circuitry,but soon i realised that finding a coil of particular value is a uphill task ,i searched on element14 and a few other places but an exact coil was very hard to find ,moreover the price of coil was almost of the same price as that of a buck convertor module that include an IC ,some capacitors LED. So i initially though i will buy a module will desolder the coil and use it on the board i will design but there was another thing that was going to put me in a tight spot and that was the board house. The board house that i had easy access to still follows manual processes so i couldn't route the wires too close,too thin, moreover i have to use the locally available through hole components because the SMD components are harder to find locally and the vender wouldn't make something available to you until you order in bulk. So finally the most practical solution was to buy the buck converter module and use it as a component. So i designed the pads where i can fix the module. The only SMD component that i used are the LM1117 regulators which were not only small in size but can also provide current upto 800mA. After all this came the design number 4 , i had to add a component externally and it worked but i missed a few design consideration as i designed it in a hurry. In the next design no 5 i fixed those things and finally got something good .The shield that i designed on Eagle CAD
Custom Shield stacked on top of Arduino and seedstudio Xbee shield
Temperature and Gas Sensor
Software
The software on the onboard micro-controller turns on and turns off the geared DC motors ,headlights and set the position of servo motors depending upon the data received by the GUI. It also samples the temperature sensor and gas sensor data using its 10 bit successive approximation type ADC. It also measures the number of revolutions of motor by using a hardware setup which includes a hall effect sensor by allegro and a magnetic ring, the ring has 8 poles north and south places alternatively the ring is mounted on the output shaft of the motor when one of the two pole passes the output of the sensor turns high and when other one passes the output becomes low. These state changes are counted by the micro controller over a period of time using the interrupts and then are sent to the GUI to use this data to find out the RPM and distance by taking into account the Circumference of wheel. I have tried to keep the manipulation on the GUI side as the microcontroller is a low end 8 bit microcontroller working at just 16Mhz. The GUI software is written using open source processing development environment. This GUI software can run on MAC, Windows or Linux.
The current position of various elements on the GUI have come up after a number of iterations and after looking at the ease of user experience i found this placement to be most suitable.One challenge in creating the software was to manage the sending of commands and receiving of data. Xbee series 2 modules are used for transmitting and receiving the data and xbee are half duplex .Receiving the data and transmitting the commands in real time would require a full duplex system. So an approach is used where just for the short time while command is sent the channel is occupied ,rest of the time the time the channel is free to receive the incoming data. The microcontroller is set to send the sensor data once every second . This way while we have slight delay of 1 sec while receiving the data the rover can be controlled instantaneously,so it is not that you will have to stop the rover to receive the sensor value ,the usercan keep on moving it and make it go wherever he wants and he will keep on receiving the data too. It is kind of parallel approach,may be in future versions things can be improved even more.3D Printing
There are several parts of the robot chasis which are manufactured using 3d printing. This section shows the process
Concept, design, prototyping, 3D printed parts and firmware by Deepankar Maithani