Obtaining control over more than one servo is kind of tricky, specially when you want to store the points or locations, I mean if you have a robotic arm and you want to control it and store the locations, using the traditional way of writing pre define values that servos will rotate to, so I achieve the following scenario controlling the robotic arm, (via GUI: Graphical User Interface) and when I want to store a specific location for specific purpose I move the robotic arm via sliders on the GUI and then press a save button and the application will store the coordinates of my servos to a database, later if I want to get back to these locations, I have to pass the location name (which I gave when I saved) and the application will get the coordinates from database and command the robotic arm to go to the destination.
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: Preparing Hardware + Software
The robotic arm is ordered online, so I have to do nothing with the structure, its 5 axis (5 servo motors),
I have just connected them to Arduino mega PWM pins which are (2.to.13, 42.to.46).
I wrote a simple python application using Tkinter as my GUI, and SQLite database to store the positions in order to retrieve them automatically.
On Arduino I uploaded "Standard Firmata" which is from Firmata library, and on my pc I used the "pyfirmata" to communicate with Arduino. The steps are straight forward if you have:
1) Arduino Board
2) Robotic arm ( doesn't matter number of axis you can modify the code)
3) Power supply ( to power up servos since Arduino can't supply power for more than 2)
4) Arduino IDE Arduino IDE
5) Arduino Firmata library for Arduino board Arduino Firmata
5) Python IDE (IDLE) I used python 2.7.x (x is any version check what is available as latest) Python Site
6) Pyfirmata library for python application Pyfirmata
7) SQLite studio software to monitor the database easily when storing positions Sqlite studio
After you obtain the requirements, you can run my test.py code and modify it as you like.