CSULB IEEE Robotic Arm

What is CSULB’s Robotic Arm?


The goal of our project is to design and build a robotic arm that can be programmed to perform simple commands.

How was the Robotic Arm built?

The structure for the robotic arm is assembled from 3D printed parts. Each part is designed, printed, and assembled by our mechanical engineering team. The electrical wiring and circuit that drives the servos in our robotic arm is managed by our electrical team. Finally, our programming team is in charge of interfacing our microcontrollers to the robotic arm to make it come alive.

Phase 1 – Research

I have worked with a group of engineering students to design and build a robotic arm for the IEEE chapter at CSULB. For the first phase of the project I was tasked with assembling the robotic arm, researching how to program and the capabilties of the intel galileo board, and coding the servos to control the robotic arm. I designed and built a small prototype board that bridges all the VCC and grounds for every servo on the robotic arm. This board is used to reduce the number of pins needed to control the robotic arm down to 8. Two pins are for the vcc/gnd that will go to each servo. Each of the other 6 pins is a signal pin that will transmit a signal/command to a specific servo. You can see the dangling prototype board in the video.

Intel Galileo Boards / Arduino

Our project were sponsored by IEEE but we were provided development boards: Intel Galileos by Intel. We encountered strange behaviors when attempting to control servos with the Intel Galileo board. The issue we were having was a known issue that intel addressed in their forums. After discussing our problems with our project management, we agreed to use the Arduino development board to control our robotic arm. The reason was because there was not a solution from intel to solve our servo/galileo issue at the time and the arduino provides a library that can easily interface with servos. This would reduce the time it took to construct a library that will control servos for a new microcontroller/development board. Performance was not an issue because this project did not require a large amount of processing and the atmega328 (arduino’s microcontroller) provided the necessities needed to get our Robotic Arm moving.

Phase 2 – Management

The goal for phase two of the project is to create a bigger robotic arm with 3 fingers using an additional servo. I am tasked with managing the programming team for this project. My goal for the programming team is to control the robotic arm using a playstation 2 controller. Controlling the robotic arm with a playstation 2 controller was a requirement from my project manager. I found a great library to accomplish this task – here However unlike phase 1 of the project, this phase will be interfacing the robotic arm with an intel galileo development board. There was a minor problem with controlling servos using the intel galileo board but after more research, my team has found a solution by editing the servo library provided by intel.

Phase 2 – Mentoring

On top of expanding the original robotic arm’s capabilities to use 3 fingers and be controlled by a playstation 2 contoller, I am tasked with mentoring 3 new groups of students. Each group will consist of 10 engineering students that will each build their own robotic arm. I presented the basics of programming a servo to all three teams. We met weekly to build the robotic arms and each week I would help the students if they had any questions or were stuck.