Phoenix/ARC-32 Assembly/Tutorial Instructions Rev. 5.
Updated 11/28/2010.
Safety first! Wear eye protection and never touch a powered robot!
The purpose of this guide is to construct the chassis, attach the legs, and install the electronics. As long as the servo horns have not been removed from the servos, you do not have to center them during the assembly process.
Note: We include two screws for attaching panels to servo horns. You may want to use four screws, as shown in some images in this guide. The 2-56 x 1/4" screws are available separately here.
Important! These instructions are for the robot’s right legs. You will need to mirror these instructions and build three left legs as well.
Software:
[hr][/hr]
Step 1.
Place an HS-645 servo against a tibia (lower) leg piece as shown, and secure in place using the hardware specified in Figure 1-1.
[hr][/hr]
Step 2.
Attach a ball bearing to the multi-purpose bracket as shown. Refer to Figure 2-1 for detailed information.
[hr][/hr]
Step 3.
Attach the two multi-purpose brackets as shown, using two 2-56 x .250" screws and 2-56 nuts.
[hr][/hr]
Step 4.
Attach servos into the brackets as shown in Figure 4-2 using the hardware specified in Figure 4-1. Use an HS-475 servo in the multi-purpose bracket with the ball bearing installed, and an HS-645 servo in the other.
[hr][/hr]
Step 5.
Attach a leg femur (upper) piece as shown. If you are using nylon servo horns, use #2 tapping screws; if you are using aluminum servo horns, use 2-56 screws.
[hr][/hr]
Step 6.
Attach the two leg assemblies together as shown. If you are using nylon servo horns, use #2 tapping screws; if you are using aluminum servo horns, use 2-56 screws.
[hr][/hr]
Step 7.
Use the 4-40 x 3/8" hex socket screws to attach the spacers to the underside of the top panel. The panel is symmetrical; whichever side you attach the hex spacers to will be the inside of the robot.
[hr][/hr]
Step 8.
Use the 4-40 x 3/8" hex socket screws to attach the bottom of the robot to the spacers.
[hr][/hr]
Step 9.
Attach the wiring harness to the ARC-32 VS1/VS2 and VL. Using four 4-40 x 3/8" hex socket head screws, attach the 1.0" hex spacers to the board as shown.
Double check your connections against the schematic below.
[hr][/hr]
Step 10.
Slip the ARC-32 in through the hole in the top of the robot and use four 4-40 x 3/8" hex socket screws to attach the board as shown. Make sure the USB port on the board is at the front of the robot, opposite the power switch hole! This will ensure you can easily plug in the servo cables. Install the power switch in the power switch hole at the rear of the robot.
[hr][/hr]
Step 11.
Install all the legs. Refer to Figure 11 for clarification.
[hr][/hr]
Step 12.
Route the servo wires as shown in Figure 14. Make sure you leave enough slack to fully extend the legs! This is very important!
[hr][/hr]
Step 13.
Finally plug the servo wires in to the ARC-32 in whichever servo pin is most convienient. Continue with Tutorial 2.
[hr][/hr]
Step 14.
Place the robot on top of a CD spindle or similar to hold the legs off the ground.
Open Basic Micro Studio 2.0.
[hr][/hr]
Step 15.
Open the file “hexapod_calibrate.bas”. This file is included in the Phoenix project zip file.
Turn on power for the Phoenix robot.
Attach a mini USB cable to the ARC-32 board. A few moments after pluging in the USB cable the PC will detect and install the drivers for the ARC-32 USB serial port. Once that has happend click the comport drop down list in Studio and select the new comport.
Set the processor family to BasicAtom Pro.
Set the processor model to AUTO for auto detection.
Figure 15.
http://downloads.basicmicro.com/downloads/tutorials/Studio_HexapodCalibrateLoaded.jpg
[hr][/hr]
Step 16.
Press the Program button to download the calibration program to the ARC-32.
Once the program has finished loading click the Terminal 1 tab at the bottom of the Studio scream. Set the comport to the same one you select when programming above. Set the baud rate to 38400. The remaining settings can remain at the defaults(No Parity, No Flow Control, Echo).
Click Connect to connect to the ARC-32. You will see the main menu of the calibration program.
Figure 16.
http://downloads.basicmicro.com/downloads/tutorials/Terminal1-MainMenu.jpg
[hr][/hr]
Step 17.
First we will set the pin numbers for each of the servos on the Phoenix robot.
Press 1 to enter the Servo pin setup menu. The first servo pin will be activated. If no servo has moved or is holding it’s position press “X” to move on to the next servo pin.Press the letter of the servo that is active to set that servo pin and move on to the next servo pin. if you make a mistake press “P” to move backwards and to re-set a servo pin. After all 32 servo pins have been set or skipped the program will return to the main menu.
Figure 17.
http://downloads.basicmicro.com/downloads/tutorials/Terminal1-ServoPins.jpg
[hr][/hr]
Step 18.
Now we will calibrate each servo leg.
Press 3 from the main menu to enter the Servo Selection menu. When you enter this mode all the servos that have been set in the Servo pin selection mode will be set to their center positions. Before calibrating the servos you can manually adjust the servo positions at this time by adjusting the angles of the servo horns.
Follow steps 19,20 and 21 to adjust each leg on the Phoenix robot.
[hr][/hr]
Step 19.
You need to adjust the robot’s horizontal hip servos. Select the left femor servo by pressing “2” from the Servo Selection menu, then adjust the angle of the servo using the “<” and “>” keys to rotate the servo. Press X to go back to the Servo Selection menu and save the current servos position.
[hr][/hr]
Step 20.
Now adjust the robot’s vertical hip servo by pressing “1” from the Servo Selection menu. Adjust the angle until the robot’s femur is parallel to the ground as shown.
[hr][/hr]
Step 21.
Now adjust the robot’s knee servo by pressing “0” from the Servo Selection menu. Adjust the angle until the tip of the robot’s foot is directly underneath the knee servo pivot point. From the servo’s pivot point to the tip of the foot should be perpendicular to the ground as shown.
[hr][/hr]
Step 22.
Once you have adjusted all 6 legs on the Phoenix robot press X from the Servo Selection menu to exit back to the main menu. From the main menu you can press 2 to display the pin settings and angle adjustments you have made on all the Phoenix servos.
This completes the Phoenix configuration process for the ARC-32. These settings have been saved in the ARC-32 onboard EEPROM so will not be lost when you power off the robot.
Figure 22.
http://downloads.basicmicro.com/downloads/tutorials/Terminal1-Feedback.jpg
[hr][/hr]
Step 23.
Flip the Phoenix over and attach the PS2 cable’s receiver socket as shown. Route the rest of the cable up and out the top.
[hr][/hr]
Step 24.
Plug in the PS2 cable as shown in Figure 14-1 and 14-2. The 4-pin header of the PS2 cable plugs into the ARC-32 Button header. The 2 pin power header of the PS2 cable plugs into the VCC and GND pins of teh ARC-32 AUX1 header.
Note: Refer only to Figure 14-2 for connection information. The cable colors in the picture may be outdated. If your cable’s colors do not match the diagram, you can find a complete listing of possible colors here.
[hr][/hr]
Step 25. Program the PS2 control program.
Open the “Phoenix_V20.prj” file in Studio. Press “Program” to load the Robot control program into the ARC-32. Once programming is complete you can power on your PS2 controller.
[hr][/hr]
Step 26. Controlling the Robot with PS2 Controller
The default is Walking mode 1. Use the Left joystick to move the robot around without turning (this is called “translation”), and the Right joystick rotates the robot as it moves. Up and Down on the D-Pad increases or decreases the height of the body. The Triangle button puts the body at 35mm from the ground. The Circle button puts the body onto the floor in a ‘resting’ position. Press Triangle or Up on the D-Pad to raise the body.
There are four special “body moves” functions that are triggered by pressing L1, L2, Circle, or X. While in one of these modes, the hexapod does not walk. The joysticks and some buttons change function depending on which mode is toggled on; see Table 17 for details.
[table=1,324,#000000][tr][td=35,#808080,#c0c0c0,center,1,1]Button[/td][td=65,#808080,#c0c0c0,middle,1,1]Function[/td][/tr][tr][td=100,#808080,#c0c0c0,center,2,1]Common Controls[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]Start[/td][td=65,#808080,#FFFFFF,middle,1,1]Turn robot on/off[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]R3[/td][td=65,#808080,#FFFFFF,middle,1,1]Switch between Walk mode 1 (default) and Walk mode 2[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]L1[/td][td=65,#808080,#FFFFFF,middle,1,1]Toggle Shift mode[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]L2[/td][td=65,#808080,#FFFFFF,middle,1,1]Toggle Rotate mode[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]O Circle[/td][td=65,#808080,#FFFFFF,middle,1,1]Toggle Single Leg mode[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]] Square[/td][td=65,#808080,#FFFFFF,middle,1,1]Toggle Balance mode[BR](Balance mode: Lifts and lowers body along with moving legs.)[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]/\ Triangle[/td][td=65,#808080,#FFFFFF,middle,1,1]Switch between body at 35mm from ground (walking default) and body lowered to ground[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]D-Pad Up[/td][td=65,#808080,#FFFFFF,middle,1,1]Body up 10mm[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]D-Pad Down[/td][td=65,#808080,#FFFFFF,middle,1,1]Body down 10mm[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]D-Pad Left[/td][td=65,#808080,#FFFFFF,middle,1,1]Decrease speed by 50mS[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]D-Pad Right[/td][td=65,#808080,#FFFFFF,middle,1,1]Increase speed by 50mS[/td][/tr][tr][td=100,#808080,#C0C0C0,center,2,1]Walk Mode Controls
(Default is Walk mode 1)[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]Select[/td][td=65,#808080,#FFFFFF,middle,1,1]Change gaits[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]Left Joystick[/td][td=65,#808080,#FFFFFF,middle,1,1]Walk mode 1: Walk/strafe
Walk mode 2: Disabled[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]Right Joystick[/td][td=65,#808080,#FFFFFF,middle,1,1]Walk mode 1: Rotate
Walk mode 2: Walk/rotate[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]R1[/td][td=65,#808080,#FFFFFF,middle,1,1]Toggle double gait travel speed[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]R2[/td][td=65,#808080,#FFFFFF,middle,1,1]Toggle double gait travel length[/td][/tr][tr][td=100,#808080,#C0C0C0,center,2,1]Shift Mode Controls
(Special mode)[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]L1[/td][td=65,#808080,#FFFFFF,middle,1,1]Turn Shift mode off[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]Left Joystick[/td][td=65,#808080,#FFFFFF,middle,1,1]Shift body X/Z[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]Right Joystick[/td][td=65,#808080,#FFFFFF,middle,1,1]Shift and rotate body Y[/td][/tr][tr][td=100,#808080,#C0C0C0,center,2,1]Rotate Mode Controls
(Special mode)[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]L2[/td][td=65,#808080,#FFFFFF,middle,1,1]Turn Rotate mode off[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]Left Joystick[/td][td=65,#808080,#FFFFFF,middle,1,1]Rotate body X/Z[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]Right Joystick[/td][td=65,#808080,#FFFFFF,middle,1,1]Rotate body Y[/td][/tr][tr][td=100,#808080,#C0C0C0,center,2,1]Single Leg Mode Controls
(Special mode)[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]O Circle[/td][td=65,#808080,#FFFFFF,middle,1,1]Turn Single Leg mode off[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]Select[/td][td=65,#808080,#FFFFFF,middle,1,1]Switch legs[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]Left Joystick[/td][td=65,#808080,#FFFFFF,middle,1,1]Move leg X/Z (relative)[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]Right Joystick[/td][td=65,#808080,#FFFFFF,middle,1,1]Move leg Y (absolute)[/td][/tr][tr][td=35,#808080,#FFFFFF,middle,1,1]R2[/td][td=65,#808080,#FFFFFF,middle,1,1]Hold/release leg position[/td][/tr][/table]Table 17.