Sound Servo (EZB)

+ How To Add This Control To Your Project (Click to Expand)
  1. Load the most recent release of ARC.
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Control from the button ribbon bar in ARC.
  4. Choose the Audio category tab.
  5. Press the Sound Servo (EZB) icon to add the control to your project.
Use your EZ-B's audio output to control servos! You can control many servos with this skill by using the Multi Servo option in the settings or adding multiple instances of the skill. Specify the scalar to increase the dynamic range of the audio in relation to the position of the servo. Don't worry if that sounds confusing, play with it, and see what you get.

Use this skill for moving the mouth of your robot. If there is a track playing, you can have your robot's mouth move to the audio level.

Main Window

1. Level Value
This is the detected sound level being sent to the EZ-B.

2. Servo Position
Displays the current servo position between the maximum and minimum values set up in the Settings menu. This value is controlled by the level value multiplied by the scalar in the Settings menu.

3. Pause Checkbox
This checkbox pauses the capture of audio.

4. Audio Waveform
This gives visual feedback for your EZ-B's audio output.


1. Title Field
This field contains the title of the skill. You can change it if you'd like.*Note: Changing the title will also change the title in the controlCommand() associated with this skill.

2. Board Index Drop-down
Select the EZ-B index number that your servo is connected to.

3. Update Speed Drop-down
This is the sample rate that the level will be detected at. The selectable range is 100 to 60000 and the default value is 100 milliseconds.

4. Port Drop-down
Select the digital port that your servo is connected to.

5. Scalar Drop-down
This is a selectable multiplier that will scale the level value to a servo position. The selectable range is 0.25 to 9.75 and the default scale value is 1.5.

6. Minimum Position Adjust
Click and hold the left mouse button to adjust the minimum servo position value. Right-click to enter it in with the keyboard.

7. Maximum Position Adjust
Click and hold the left mouse button to adjust the maximum servo position value. Right-click to enter it in with the keyboard.

8. Multi Servo Edit Window
This window allows you to select multiple servos that you'd like to mirror the movement of the master servo.

9. Invert Direction Checkbox
When checked this checkbox allows you to invert the direction that the servo moves when a position value is sent to it. Ex: When normally a 180 position value makes the servo move all the way left, with the inverted directed checkbox enabled the servo will move all the way right when 180 is sent to it.

10. Variable Field
This variable is for the detected audio output level.

How to Use Sound Servo (EZB)

1) Connect ARC to an EZ-B with audio output capabilities.

2) Connect a servo to the EZ-B.

3) Add the Sound Servo (EZB) Skill to your ARC project (Project -> Add Skill -> Audio -> Sound Servo (EZB)).

4) Setup the connected servo in the Settings menu.

5) Add the Soundboard (EZB) Skill to your ARC project (Project -> Add Skill -> Audio -> Soundboard (EZB)).

6) Add and play an audio track with the Soundboard (EZB) skill.

7) Adjust the volume slider on the Soundboard (EZB) skill until the average audio level in the Sound Servo Skill is in the middle of the waveform display.

8) Adjust the scalar value in the Sound Servo (EZB) skill settings until you get the desired servo movement.


You will need an EZ-B I/O controller and a servo to use this skill.

How would you use this to generate a PWM signal to control the intensity of an LED for when a robot talks and his mouth is just an LED?
#2   — Edited
The servo is a pwm variable voltage. Simply select the port and change the servo position range from 1 to 180

otherwise, you can write a script to loop and modify pwm commands manually

also, probably makes most sense to use the Talk servo skill