KevsRobots Learning Platform
40% Percent Complete
By Kevin McAleer, 2 Minutes

In this lesson, weβll take a closer look at how to properly set up the PCA9685 servo driver with your Raspberry Pi and write a simple Python script to test servo control. This is a crucial step in bringing our robot arm to life.
Ensure your Raspberry Pi is turned off before making any connections to prevent damage. Connect the PCA9685 to the Raspberry Pi as follows:
Connect your external power supply to the PCA9685, and then connect a servo to one of the PCA9685βs channels, ensuring the orientation of the wires is correct.
With the hardware set up, letβs write a simple Python script to test controlling a servo.
from Adafruit_PCA9685 import PCA9685
from time import sleep
pwm = PCA9685()
pwm.set_pwm_freq(60) # Set frequency to 60Hz
Weβll make the servo connected to channel 0 move back and forth.
channel = 0
min_pulse = 150 # Min pulse length out of 4096
max_pulse = 600 # Max pulse length out of 4096
while True:
pwm.set_pwm(channel, 0, min_pulse)
sleep(1)
pwm.set_pwm(channel, 0, max_pulse)
sleep(1)
This script sets the servo to its minimum position, waits a second, moves it to its maximum position, and waits again in a continuous loop.
You have now successfully set up the PCA9685 servo driver with your Raspberry Pi and tested it by controlling a servo. This foundational knowledge will be invaluable as we proceed to design and program the movements of our robot arm.
Experiment with different values for min_pulse and max_pulse to see how they affect the servoβs movement. Try connecting and controlling multiple servos on different channels of the PCA9685.
You can use the arrows β β on your keyboard to navigate between lessons.
Comments