Theater StepperSpline Firmware Interface¶
The motion control server uses the following module to communicate with the Arduino motion controllers running the StepperSpline Arduino Sketch over USB serial.
stage.steppers¶
steppers.py : sample code in Python to communicate with an Arduino running StepperSpline
No copyright, 2021-2023, Garth Zeglin. This file is explicitly placed in the public domain.
- class stage.steppers.StepperSplineClient(port=None, verbose=False, debug=False, **kwargs)[source]¶
Class to manage a connection to a serial-connected Arduino running the StepperSpline script.
- Parameters:
port – the name of the serial port device
debug – true when debug log is enabled
verbose – flag to increase logging output
kwargs – collect any unused keyword arguments
- close()[source]¶
Shut down the serial connection to the Arduino, after which this object may no longer be used.
- send_knots(knots, mask='xyza')[source]¶
Issue a series of knot commands to append Bezier spline segments (specified in microsteps) to the current path.
- Parameters:
knots – a matrix in which each row specifies a knot point value for each active channel
mask – a string specifying the channels to include
- send_move(position)[source]¶
Issue a command to move to a [x, y, z, a] absolute position (specified in microsteps) and return immediately.
- Parameters:
position – a list or tuple with at least four elements
- send_relative_move(position, mask='xyza')[source]¶
Issue a command to move to a relative position (specified in microsteps) and return immediately.
- Parameters:
position – a list or tuple with one element per channel mask entry
mask – a string specifying the channels to include