Welcome to DOFBOT-Ultra repository
7. DOFBOT Dancing
DOFBOT Dancing
1. Experiment Overview
This experiment controls the robotic arm to dance. By modifying the angles of different servos and adding delay times, a dancing-like effect is achieved.
2. Code
Code path:
~/dofbot_ctrl/scripts/07.dance.ipynb
x
#!/usr/bin/env python3#coding=utf-8import timefrom Arm_Lib import Arm_Device# Create robotic arm objectArm = Arm_Device()time.sleep(.1)time_1 = 500time_2 = 1000time_sleep = 0.5x
def main(): # Let the servos return to center position Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 90, 500) time.sleep(1) times = 0.003 while True: Arm.Arm_serial_servo_write(2, 180-120, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 120, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 60, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 180-135, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 135, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 45, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 180-120, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 120, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 60, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 180-80, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 80, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 80, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 180-60, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 60, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 60, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 180-45, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 45, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 45, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(times) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 20, time_1) time.sleep(times) Arm.Arm_serial_servo_write(6, 150, time_1) time.sleep(times) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(6, 90, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 20, time_1) time.sleep(times) Arm.Arm_serial_servo_write(6, 150, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(6, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(1, 0, time_1) time.sleep(times) Arm.Arm_serial_servo_write(5, 0, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(3, 180, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 0, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(6, 180, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(6, 0, time_2) time.sleep(time_sleep) Arm.Arm_serial_servo_write(6, 90, time_2) time.sleep(times) Arm.Arm_serial_servo_write(1, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(1, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(5, 90, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(3, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(time_sleep) print(" END OF LINE! ")try : main()except KeyboardInterrupt: print(" Program closed! ") passx
del Arm # Release the Arm objectOpen the program file from Jupyter Lab and click the "Run All Cells" button on the Jupyter Lab toolbar. You will see the robotic arm perform a dancing motion.

To exit, click the stop button on the toolbar.
