Dancing With Music 2!

Follow along: Robot Arm Dancing with music 2

The program launching process along with parameter settings are all simplified and set up on the Jupyter Notebook Environment.
  • Open the 05_09_music_dance.ipynb Jupyter Notebook
  • Load Arm_Lib module and register the robot arm as an object
  • Initialize the sound file
  • Initialize the starting position of the robot arm
  • Play the music and the dance at the same time
(The Jetson Board used for these examples are => Jetson Nano)

  • 05_09_music_dance.ipynb

  • Running the cell code
    Ctrl + Enter
  • Load Arm_Lib module and register the robot arm as an object

from pygame import mixer
import time
from Arm_Lib import Arm_Device

# register the robot arm as an object
Arm = Arm_Device()
time.sleep(.1)
  • Initialize the sound file

# Register ogg file
mixer.init(48000, 16, 2, 2048)
music = mixer.Sound('music.ogg')
bomb = mixer.Sound('bomb.ogg')
music.set_volume(0.02)
bomb.set_volume(0.1)
  • Initialize the robot arm location

# Initialization
Arm.Arm_serial_servo_write6(0, 90, 0, 180, 90, 90, 2000)
  • Play the music and the dance at the same time

while(1):
    music.play()
    # 모터 범위 0~180
    Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 90, 2000)
    time.sleep(2.1)
    Arm.Arm_serial_servo_write6(180, 90, 0, 180, 90, 90, 2000)
    time.sleep(2.1)
    Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 90, 2000)
    time.sleep(2.1)
    Arm.Arm_serial_servo_write6(0, 90, 0, 180, 90, 90, 2000)
    time.sleep(2.1)
    Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 90, 2000)
    time.sleep(2.1)
    Arm.Arm_serial_servo_write6(180, 90, 0, 180, 90, 90, 2000)
    time.sleep(2.1)
    Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 90, 1600)
    time.sleep(1.61)
    Arm.Arm_serial_servo_write6(90, 90, 0, 90, 90, 90, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(90, 90, 0, 180, 90, 90, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(0, 90, 0, 180, 0, 180, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(90, 90, 0, 180, 90, 90, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(180, 90, 0, 180, 180, 180, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(90, 90, 0, 180, 90, 90, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 90, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(90, 90, 0, 180, 90, 90, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(0, 90, 0, 180, 0, 180, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(90, 90, 0, 180, 90, 90, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(180, 90, 0, 180, 180, 180, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(90, 90, 0, 180, 90, 90, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(180, 90, 0, 180, 180, 180, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(90, 90, 0, 180, 90, 90, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(0, 90, 0, 180, 0, 180, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(90, 90, 0, 180, 90, 90, 600)
    time.sleep(0.82)
    Arm.Arm_serial_servo_write6(90, 90, 0, 90, 90, 90, 1500)
    time.sleep(1.5)
    Arm.Arm_serial_servo_write6(90, 90, 0, 90, 90, 180, 500)
    time.sleep(1.5)
    music.stop()
    bomb.play()
    break
my_sound.stop()
  • Terminate sound