This experiment is to control the dancing of the robotic arm. By modifying the angles of different servos of the robotic arm and increasing the delay time, an effect similar to the dancing of the robotic arm can be achieved.
After entering the Raspberry Pi 5 desktop, open a terminal and run the following command to start the container corresponding to Dofbot:
xxxxxxxxxx
./Docker_Ros.sh
Access Jupyter Lab within Docker:
xxxxxxxxxx
IP:9999 // Example: 192.168.1.11:9999
Code path:/root/Dofbot/3.ctrl_Arm/7.dance.ipynb
xxxxxxxxxx
#!/usr/bin/env python3
#coding=utf-8
import time
from Arm_Lib import Arm_Device
#Create a robotic arm object
Arm = Arm_Device()
time.sleep(.1)
time_1 = 500
time_2 = 1000
time_sleep = 0.5
x# Robotic arm dances in a loop
def main():
# Reset the servo to center
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! ")
pass
del Arm # Release the Arm object