How to Control A Servo with The Basys 3 (FPGA)

As you may be aware if you follow the blog closely, I’ve been working on building the claw machine. The claw machine is one of those infuriating devices that camps in front of various places of business to lure you into paying a dollar to discover that you likely do not in fact, have the skills required to maneuver said claw in a successful toy-picking up manner. However, in an effort to show that I’m not bitter, I’m making one of my own.

So far in the process I have controlled a stepper motor with the FPGA, and used a Joystick to control the stepper motor with FPGA. Now I have gotten control of a servo with FPGA. More specifically I’m using the Basys 3 to send signals through the PmodCON3, to a GWS servo. I even wrote an Instructable.

Here is the project in action:

Each switch corresponds to sending the servo to a different positions, starting at 0 degrees and adding 24 degrees with each switch.

In my Instructable I go through the details of why I wrote this and how the project works.

Background knowledge on controlling a servo with FPGA.
Background knowledge on controlling a servo with FPGA.

Some background info on how servos work.

A step explaining how servos work.
A step explaining how servos work.

How my code works….

The block diagram of my code, and explanation of how it works on a waveform.
The block diagram of my code, and explanation of how it works on a waveform.

…and lastly, the Instructable details how to integrate my project into your designs!

Check it out here.

Author

Be the 1st to vote.

3 Comments on “How to Control A Servo with The Basys 3 (FPGA)”

    1. Hi there!

      This project looks really interesting! If you are looking for help specific to your project, we would recommend posting the question for our support engineers on our forum here: https://forum.digilent.com/

      Best of luck on your project and we would be interested to see it when you are done!

      Digilent Team

Leave a Reply

Your email address will not be published. Required fields are marked *