Make A Swimming Robo Snake
Make A Swimming Robo Snake
Make A Swimming Robo Snake
Living
Outside
Play
Technology
Workshop
Step 3: Prepare the frame: cut the carbon fiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Step 4: Prepare the frame: attach the brackets to the carbon fiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Step 5: Prepare the frame: attach the c-brackets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Step 6: Prepare the frame: Mount the servos on the brackets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Step 7: Prepare the frame: Mount the c-bracket pairs to the servo brackets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Step 8: Screw in the servo horn to the bracket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Step 9: Make the circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Step 10: Upload the firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Step 11: Make a remote control transmitter, or just use xbee & computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Step 12: Wire it up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Step 13: Attach the batteries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Step 14: Add the on / off buttons, and prepare the head and tail caps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Step 15: Prepare the pump battery and elongate the body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Step 16: Caulk the caps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Step 17: Put on the skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Step 18: Put on the water pump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Step 19: Take it outside! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
Sneel is an open-source, biomimetic, locomotive, aquatic robot. The electromechanical design of Sneel mimics the structure and motion of a real water snake, as a test to explore swimming behavior in an undulating linear robot. The inspiration for Sneel originates from a fascination with reptilian forms of motility and the implications of modelling hardware from biological structures and functions. Sneel uses a custom-written software library to propagate an oscillating wave down a line of servo motors that comprise the robots body. The current model is a platform for the development of other low-cost snake drones, with semi-autonomous navigational control for waypoint following, and sensing capabilities for obstacle avoidance. Worldwide applications for Sneel include remote marine data collection of salinity / toxicity levels, nuclear level monitoring, pipeline or underwater exploration, fishery monitoring, and oil-collection. Sneel version 2 swimming like a real snake:
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
Step 4: Prepare the frame: attach the brackets to the carbon fiber
-Using the fat screws that came with both brackets, line up the holes you cut with the holes in the brackets. -Screw in the screws to attach the carbon to the brackets. Make sure you screw with the bolt on the backside of the brackets as shown in the photo.
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
Step 7: Prepare the frame: Mount the c-bracket pairs to the servo brackets
-Mount the red servo-brackets to the red c-brackets, and the black to the black: RED: Slip the c bracket over the servo horn and under the servo bracket, as shown in the photo. Use the screw and bearing to secure it in place. BLACK: Slip the c bracket over the servo covering most of its body. Slip it over the servo horn and under the servo bracket. Make sure that the top side on the servo horn is the side with one large hole and four small holes. The injected molded segment on the bottom should pop into place in the small hole. Now you should have a full length snake like structure.
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
Image Notes 1. servo signal pin connected to arduino digital pins and 6V and GND
Image Notes 1. RX pin from xbee tx to arduino pin 1, rx 2. digital output pins 3. ground (right terminal) and 6V power (on left)
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
Image Notes 1. power and ground from battery power to power the servos
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
Step 11: Make a remote control transmitter, or just use xbee & computer
For this version of the snake, various character inputs (numbers 1-6) affect the wave behavior. OPTION 1: xbee+computer (see this instructable for more info) -Plug in xbee to the xbee explorer. -Plug xbee explorer into your computer via the USB cable. -Download and open CoolTerm . -Click "OPTIONS". -Make sure the BAUD RATE is set to 57600. -Make sure that after "PORT:" it says something like "usbserial-A700xxx". If not, select "RESCAN SERIAL PORTS". -Click OK. -Click "CONNECT" -Make sure your xbee is set to 57600 baud rate: Type "+++" (you might not see anything written in the serial port unless you have checked "LOCAL ECHO" in the TERMINAL tab of the OPTIONS.) You should get "OK" returned in the serial monitor of CoolTerm. If you are not, perhaps xbee is not set to that baud rate. to debug, go back to OPTIONS and select "baud rate 9600" and try again. Now you have entered xbee's "command mode". Type "ATBD" then ENTER.(and don't wait too long or you will exit command mode). You should get an integer returned, corresponding to the baud rate xbee is set at. To make sure it is set to 57600, type "ATBD 6" then ENTER. You should get "OK" returned. Now type "ATWR". Now, when you type the characters 1-6 in the serial monitor, when the snake is turned on, the characters should affect the motion. 5&6: affect the speed of the rotation of the servos. 3&4: affect the period of the wave (speed of propagation down the line of servos). 1&2: affect the amplitude of the wave. Visualize in software how the wave behavior is affected by the various parameters, or typing in integers 1-6..
The attached graphs show the output angle values of each servo mapped over time, slightly out of phase from each other. The difference is when there is a different offset (delay in the time it takes one servo to get to the angle of the previous one in the line of waves). If you don't want to use your computer, and want to have a free standing remote control, feel free to make an arduino based r/c. To do this, plug in the xbee to an xbee shield mounted on Arduino (see image). Make a 6 button inputs . I hacked into a joystick that had 2 extra buttons. Connect the 6 buttons to Arduino digital pins 2-7. Upload the following code to arduino. And now affect the snake behavior the same way as through coolTerm.
//Code written by Gabriella Levine to take inputs from button pins and output //chars to the serial port // set pin numbers: const int buttonPin1 = 2; const int buttonPin2 = 3; const int buttonPin3 = 4; const int buttonPin4 = 5; const int buttonPin5 = 6; const int buttonPin6 = 7; const int ledPin = 13; // variables int buttonState1 int buttonState3 int buttonState2 int buttonState4 int buttonState5 int buttonState6
// the number of the pushbutton // the number of the pushbutton // the number of the pushbutton // the number of the pushbutton // the number of the pushbutton // the number of the pushbutton // the number of the LED pin
= = = = = =
0; 0; 0; 0; 0; 0;
// // // // // //
void setup() { Serial.begin(9600); // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin1, INPUT); pinMode(buttonPin2, INPUT); pinMode(buttonPin3, INPUT); pinMode(buttonPin4, INPUT); pinMode(buttonPin5, INPUT); pinMode(buttonPin6, INPUT); } void loop(){ if(Serial.available()>0){ byte incomingByte = Serial.read(); if(incomingByte=='1'||incomingByte=='2'||incomingByte=='6'||incomingByte=='5'||incomingByte=='0') { digitalWrite(ledPin, HIGH); delay(10); digitalWrite(ledPin, LOW); } } // read the state of the pushbutton value: buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2);
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
= = = =
// check if the pushbutton is pressed. if (buttonState1 == HIGH) { Serial.print('1'); } if (buttonState2 == HIGH) { Serial.print('2'); } if (buttonState4 == HIGH) { Serial.print('4'); } if (buttonState3 == HIGH) { Serial.print('3'); } if (buttonState5 == HIGH) { Serial.print('5'); } if (buttonState6 == HIGH) { Serial.print('6'); } delay(10); }
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
Image Notes 1. 6 buttons are inside this joystick, four on the joystick, and two mounted on the surface. I hacked into these.
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
Image Notes 1. power and ground from battery power to power the servos
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
Step 14: Add the on / off buttons, and prepare the head and tail caps
I'm using one button for the water pump (12V battery) and one for the arduino / servos (6V battery). The water pump cannot be turned on unless the snake is in the water or the pump will dry up. So I turn on the snake first then turn on the pump. See the next step for attaching the water pump. Cut two a piece of rubber about 1.75" diameter, so that it fits inside of the vacuum reducers. Cut two pieces of cord about 2 feet long, to act as tethers and to help position the body inside of the skin. FOR THE HEAD (near the Arduino): Place the rubber into the vacuum reducer, and cut a small slit, large enough to pass the wires. Run the string through the vacuum reducer so that there is about 8 inches of string on the inside. There doesn't need to be too much on the outside because the tether will be located at the tail. Run both buttons up through the vacuum reducer. Run the wire (containing power and ground) from the waterpump down through the hole in the vacuum reducer. So in total, the following wires should run through the vacuum reducer and the rubber pad : power and ground from both switches; one string; power and ground from pump. FOR THE TAIL : Just string the other piece of string through. Leave about 10 inches of string on the inside, and a little more on the outside. This string acts solely as a tether. You can eventually lengthen it by attaching another string to it so that you can have a longer tether. Now, solder the on / off button to the red 6V wire that attaches to the screw terminal, so that when you power this on, the arduino turns on and the servos get power. This button is the master on/off button.
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
Step 15: Prepare the pump battery and elongate the body
-Add two 4" pieces of carbon fiber to either end of the snake, so that the head and tail extend outward a few inches. -Solder together a battery junction for the battery to connect directly to the pond pump, but solder the other on/off switch to the red wire between the battery and the pump. The battery sits right next to the Arduino. -Attach the battery to the carbon fiber with zipties. Now you should have something that moves like this when the batteries are plugged in:
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/
Related Instructables
PROTEI_007 by gabriellalevine
Waterproof your servo motors by gabriellalevine How To Enter Instructables and RoboGames Robot Contest by Contest Robot
http://www.instructables.com/id/Make-a-swimming-Robo-Snake/