I thought the best thing to do was "walk through" the main program (i'm talking about v1.1, released here) and come back to discuss the various other functions in later posts.
Firstly some basics for anyone really new to python:
# Python control for Maplin Robotic Arm # v 1.1 (c) Neil Polwart 2011 import usb.core, sys, time, optparse, pickle, csv
The real basics: the # symbol is used in python for comments - the program ignores anything that follows it on this line. These comments are either to remind myself of what something does or to help you follow it (or hopefully both).
The import command calls in other modules that this program uses, effectively saving writing complex code from scratch each time. The modules that the program imports are:
usb.core - the module which lets us communicate with the USB port. This is part of the pyUSB package which you need to install.
sys - imports some basic commands that allow communication with the system, e.g. command line, inputs-outputs, etc... however I don't think its actually being used (it was in a prototype when I was playing around) - so it might vanish in an update!
time - imports "time" functions - which,l not surprisingly measure time, introduce delays etc.
optparse - is a clever module which parses (gathers, chops up and allocates) the command line options and values
pickle - is another smart module from python's inbuilt libraries which lets you move chunks of data around rather easily - especially for loading and dumping variables to a file
csv - is a module specifically for importing and exporting comma separated value files
Each of the links above points to some detailed documentation about the relevant module.
As per convention the program calls the main() function via the line lurking right at the end of the file:
if __name__== '__main__':main()
This will only directly run the main function if the program is run from the command line (or interpreter) but not if "imported" as part of another module.