Python 3 Interface for the Robotics Cape on the Beaglebone Black and the Beaglebone Blue
|
|
- Delphia Bates
- 6 years ago
- Views:
Transcription
1 Python 3 Interface for the Robotics Cape on the Beaglebone Black and the Beaglebone Blue Mauricio C. de Oliveira Aug 09, 2017
2
3 CONTENTS: 1 Introduction Installation Modules Module rcpy Module rcpy.clock Module rcpy.gpio Module rcpy.button Module rcpy.led Module rcpy.encoder Module rcpy.motor Module rcpy.servo Module rcpy.mpu Indices and tables 27 Python Module Index 29 Index 31 i
4 ii
5 CHAPTER ONE INTRODUCTION This package supports the hardware on the Robotics Cape running on a Beaglebone Black or a Beaglebone Blue. 1.1 Installation See for installation instructions. 1
6 2 Chapter 1. Introduction
7 CHAPTER TWO MODULES 2.1 Module rcpy This module is responsible to loading and initializing all hardware devices associated with the Robotics Cape or Beagelbone Blue. Just type: import rcpy to load the module. After loading the Robotics Cape is left at the state rcpy.paused. It will also automatically cleanup after you exit your program. You can add additional function to be called by the cleanup routine using rcpy. add_cleanup() Constants rcpy.idle rcpy.running rcpy.paused rcpy.exiting Low-level functions rcpy.get_state() Get the current state, one of rcpy.idle, rcpy.running, rcpy.paused, rcpy.exiting. rcpy.set_state(state) Set the current state, state is one of rcpy.idle, rcpy.running, rcpy.paused, rcpy.exiting. rcpy.exit() Set state to rcpy.exiting. rcpy.add_cleanup(fun, pars) fun function to call at cleanup pars list of positional parameters to pass to function fun Add function fun and parameters pars to the list of cleanup functions. 3
8 2.2 Module rcpy.clock This module provides a class rcpy.clock.clock that can be used to run actions periodically. Actions must inherit from the class rcpy.clock.action and implement the method rcpy.clock.action.run(). Examples of objects that inherit from rcpy.clock.action are rcpy.led.led and rcpy.servo.servo. For example: import rcpy.clock as clock from rcpy.led import red clk = clock.clock(red) clk.start() will start a thread that will blink the red LED every second. The command: clk.stop() will stop the LED blinking. The subclass rcpy.led.blink will in addition turn off the led after stopping Classes class rcpy.clock.action rcpy.clock.action represents and action. run() Run the action. class rcpy.clock.actions(*actions) Bases rcpy.clock.action rcpy.clock.actions represents a sequence of actions. actions comma separated list of actions. class rcpy.clock.clock(action, period) Bases threading.thread rcpy.clock.clock executes actions periodically. set_period(period) action (Action) the action to be executed period (int) the period in seconds (default 1 second) period (float) period in seconds Set action period. toggle() Toggle action on and off. Call toggle again to resume or stop action. start() Start the action thread. stop() Stop the action thread. Action cannot resume after calling rcpy.led.blink.stop(). Use rcpy. clock.clock.toggle() to temporarily interrupt an action. 4 Chapter 2. Modules
9 2.3 Module rcpy.gpio This module provides an interface to the GPIO pins used by the Robotics Cape. There are low level functions which closely mirror the ones available in the C library and also Classes that provide a higher level interface. For example: import rcpy.gpio as gpio pause_button = gpio.input(gpio.pause_btn) imports the module and create an rcpy.gpio.input object corresponding to the PAUSE button on the Robotics Cape. The command: if pause_button.low(): print('got <PAUSE>!') waits forever until the PAUSE button on the Robotics Cape becomes rcpy.gpio.low, which happens when it is pressed. The following slightly modified version: try: if pause_button.low(timeout = 2000): print('got <PAUSE>!') except gpio.inputtimeout: print('timed out!') waits for at most 2000 ms, i.e. 2 s, before giving up, which one can detect by catching the exception rcpy.gpio. InputTimeout. In the same vein, the method rcpy.gpio.input.high() would wait for the button PAUSE to become rcpy. gpio.high. For instance: if pause_button.high(): print('<pause> got high!') waits forever until the PAUSE button on the Robotics Cape is released. Note that nothing will print if you first have to press the button before releasing because rcpy.gpio.input.high() returns False after the first input event, which in this case would correspond to the GPIO pin going rcpy.gpio.low. The methods rcpy.gpio.input.is_low() and rcpy.gpio.input.is_high() are non-blocking versions of the above methods. For example: import time while True: if pause_button.is_low(): print('got <PAUSE>!') break time.sleep(1) checks the status of the button PAUSE every 1 s and breaks when PAUSE is pressed. A much better way to handle such events is to use the class rcpy.gpio.inputevent. For example: class MyInputEvent(gpio.InputEvent): def action(self, event): print('got <PAUSE>!') defines a class that can be used to print Got <PAUSE>! every time an input event happens. To connect this class with the particular event that the PAUSE button is pressed instantiate: 2.3. Module rcpy.gpio 5
10 pause_event = MyInputEvent(pause_button, gpio.inputevent.low) which will cause the method action of the MyInputEvent class be called every time the state of the pause_button becomes rcpy.gpio.low. The event handler must be started by calling: pause_event.start() and it can be stopped by: pause_event.stop() The event handler automatically runs on a separate thread, which means that the methods rcpy.gpio. InputEvent.start() and rcpy.gpio.inputevent.stop() are non-blocking, that is they return immediately. The class rcpy.gpio.inputevent defines two types of events: rcpy.gpio.inputevent.high and rcpy.gpio.inputevent.low. Note that these are not the same as rcpy.gpio.high and rcpy.gpio. LOW! It is often convenient to import the base class rcpy.gpio.inputevent: from rcpy.gpio import InputEvent Alternatively one could have created an input event handler by passing a function to the argument target of rcpy. gpio.inputevent as in: def pause_action(input, event): if event == InputEvent.LOW: print('<pause> went LOW') elif event == InputEvent.HIGH: print('<pause> went HIGH') pause_event = InputEvent(pause_button, InputEvent.LOW InputEvent.HIGH, target = pause_action) The function pause_action will be called when pause_button generates either event rcpy.gpio.inputevent. HIGH or rcpy.gpio.inputevent.low because the events passed to the the constructor InputEvent were combined using the logical or operator, as in: InputEvent.LOW InputEvent.HIGH, The function pause_action decides on the type of event by checking the variable event. This event handler should be started and stopped using rcpy.gpio.inputevent.start() and rcpy.gpio.inputevent.stop() as before. Additional positional or keyword arguments can be passed as in: def pause_action_with_parameter(input, event, parameter): print('got <PAUSE> with {}!'.format(parameter)) pause_event = InputEvent(pause_button, InputEvent.LOW, target = pause_action_with_parameter, vargs = ('some parameter',)) See also rcpy.button.button for a better interface for working with the Robotics Cape buttons. 6 Chapter 2. Modules
11 2.3.1 Constants rcpy.gpio.high Logic high level; equals 1. rcpy.gpio.low Logic low level; equals 0. rcpy.gpio.debounce_interval Interval in ms to be used for debouncing (Default 0.5ms) Classes class rcpy.gpio.inputtimeout Exception representing an input timeout event. class rcpy.gpio.input(pin) pin (int) GPIO pin rcpy.gpio.input represents one of the GPIO input pins in the Robotics Cape or Beaglebone Blue. is_high() is_low() Returns True if pin is equal to rcpy.gpio.high and False if pin is rcpy.gpio.low Returns True if pin is equal to rcpy.gpio.low and False if pin is rcpy.gpio.high high_or_low(debounce = 0, timeout = None) debounce (int) number of times to read input for debouncing (default 0) timeout (int) timeout in milliseconds (default None) Raises rcpy.gpio.inputtimeout if more than timeout ms have elapsed without the input changing Returns the new state as rcpy.gpio.high or rcpy.gpio.low Wait for pin to change state. If timeout is not None wait at most timeout ms otherwise wait forever until the input changes. high(debounce = 0, timeout = None) debounce (int) number of times to read input for debouncing (default 0) timeout (int) timeout in milliseconds (default None) Raises rcpy.gpio.inputtimeout if more than timeout ms have elapsed without the input changing Returns True if the new state is rcpy.gpio.high and False if the new state is rcpy. gpio.low Wait for pin to change state. If timeout is not None wait at most timeout ms otherwise wait forever until the input changes. low(debounce = 0, timeout = None) 2.3. Module rcpy.gpio 7
12 debounce (int) number of times to read input for debouncing (default 0) timeout (int) timeout in milliseconds (default None) Raises rcpy.gpio.inputtimeout if more than timeout ms have elapsed without the input changing Returns True if the new state is rcpy.gpio.low and False if the new state is rcpy. gpio.high Wait for pin to change state. If timeout is not None wait at most timeout ms otherwise wait forever until the input changes. class rcpy.gpio.inputevent(input, event, debounce = 0, timeout = None, target = None, vargs = (), kwargs = {}) Bases threading.thread rcpy.gpio.inputevent is an event handler for GPIO input events. input (int) instance of rcpy.gpio.input event (int) either rcpy.gpio.inputevent.high or rcpy.gpio. InputEvent.LOW debounce (int) number of times to read input for debouncing (default 0) timeout (int) timeout in milliseconds (default None) target (int) callback function to run in case input changes (default None) vargs (int) positional arguments for function target (default ()) kwargs (int) keyword arguments for function target (default {}) LOW Event representing change to a low logic level. HIGH Event representing change to a high logic level. action(event, *vargs, **kwargs) event either rcpy.gpio.high or rcpy.gpio.low vargs variable positional arguments kwargs variable keyword arguments Action to perform when event is detected. start() Start the input event handler thread. stop() Attempt to stop the input event handler thread. Once it has stopped it cannot be restarted. 8 Chapter 2. Modules
13 2.3.3 Low-level functions rcpy.gpio.set(pin, value) pin (int) GPIO pin value (int) value to set the pin (rcpy.gpio.high or rcpy.gpio.low) Raises rcpy.gpio.error if it cannot write to pin Set GPIO pin to the new value. rcpy.gpio.get(pin) pin (int) GPIO pin Raises rcpy.gpio.error if it cannot read from pin Returns the current value of the GPIO pin This is a non-blocking call. rcpy.gpio.read(pin, timeout = None) Raises pin (int) GPIO pin timeout (int) timeout in milliseconds (default None) rcpy.gpio.error if it cannot read from pin rcpy.gpio.inputtimeout if more than timeout ms have elapsed without the input changing Returns the new value of the GPIO pin Wait for value of the GPIO pin to change. This is a blocking call. 2.4 Module rcpy.button This module provides an interface to the PAUSE and MODE buttons in the Robotics Cape. The command: import rcpy.button as button imports the module. The Module rcpy.button provides objects corresponding to the PAUSE and MODE buttons on the Robotics Cape. Those are rcpy.button.pause and rcpy.button.mode. One can import those objects directly using: from rcpy.button import mode, pause After importing these objects: if mode.pressed(): print('<mode> pressed!') waits forever until the MODE button on the Robotics Cape is pressed and: 2.4. Module rcpy.button 9
14 if mode.released(): print('<mode> released!') waits forever until the MODE button on the Robotics Cape is released. Note that nothing will print if you first have to press the button before releasing because rcpy.button.button.released() returns False after the first input event, which in this case would correspond to the GPIO pin associated to the button going rcpy.button. PRESSED. rcpy.button.button.pressed() and rcpy.button.button.released() also raise the exception rcpy.gpio.inputtimeout if the argument timeout is used as in: import rcpy.gpio as gpio try: if mode.pressed(timeout = 2000): print('<mode> pressed!') except gpio.inputtimeout: print('timed out!') which waits for at most 2000 ms, i.e. 2 s, before giving up. The methods rcpy.button.button.is_pressed() and rcpy.button.button.is_released() are non-blocking versions of the above methods. For example: import time while True: if mode.is_pressed(): print('<mode> pressed!') break time.sleep(1) checks the status of the button MODE every 1 s and breaks when MODE is pressed. As with Module rcpy.clock, a much better way to handle such events is to use event handlers, in the case of buttons the class rcpy.button. ButtonEvent. For example: class MyButtonEvent(button.ButtonEvent): def action(self, event): print('got <PAUSE>!') defines a class that can be used to print Got <PAUSE>! every time the PAUSE button is pressed. To instantiate and start the event handler use: pause_event = MyButtonEvent(pause, button.buttonevent.pressed) pause_event.start() Note that the event rcpy.button.buttonevent.pressed was used so that MyButtonEvent.action is called only when the PAUSE button is pressed. The event handler can be stopped by calling: pause_event.stop() Alternatively one could have created an input event handler by passing a function to the argument target of rcpy. button.buttonevent as in: from rcpy.button import ButtonEvent def pause_action(input, event): if event == ButtonEvent.PRESSED: print('<pause> pressed!') elif event == ButtonEvent.RELEASED: 10 Chapter 2. Modules
15 print('<pause> released!') pause_event = ButtonEvent(pause, ButtonEvent.PRESSED ButtonEvent.RELEASED, target = pause_action) This event handler should be started and stopped using rcpy.button.buttonevent.start() and rcpy. button.buttonevent.stop() as before. Additional positional or keyword arguments can be passed as in: def pause_action_with_parameter(input, event, parameter): print('got <PAUSE> with {}!'.format(parameter)) pause_event = ButtonEvent(pause, ButtonEvent.PRESSED, target = pause_action_with_parameter, vargs = ('some parameter',)) The main difference between Module rcpy.button and Module rcpy.clock is that Module rcpy.button defines the constants rcpy.button.pressed and rcpy.button.released, the events rcpy.button.buttonevent. PRESSED and rcpy.button.buttonevent.released, and its classes handle debouncing by default Constants rcpy.button.pause rcpy.button.button representing the Robotics Cape PAUSE button. rcpy.button.mode rcpy.button.button representing the Robotics Cape MODE button. rcpy.button.pressed State of a pressed button; equal to rcpy.gpio.low. rcpy.button.released State of a released button; equal to rcpy.gpio.high. rcpy.button.debounce Number of times to test for deboucing (Default 3) Classes class rcpy.button.button Bases rcpy.gpio.input rcpy.button.button represents buttons in the Robotics Cape or Beaglebone Blue. is_pressed() is_released() Returns True if button state is equal to rcpy.button.pressed and False if pin is rcpy.button.released Returns True if button state is equal to rcpy.button.released and False if pin is rcpy.button.pressed pressed_or_released(debounce = rcpy.button.debounce, timeout = None) 2.4. Module rcpy.button 11
16 debounce (int) number of times to read input for debouncing (default rcpy.button.debounce) timeout (int) timeout in milliseconds (default None) Raises rcpy.gpio.inputtimeout if more than timeout ms have elapsed without the button state changing Returns the new state as rcpy.button.pressed or rcpy.button.released Wait for button state to change. If timeout is not None wait at most timeout ms otherwise wait forever until the input changes. pressed(debounce = rcpy.button.debounce, timeout = None) debounce (int) number of times to read input for debouncing (default rcpy.button.debounce) timeout (int) timeout in milliseconds (default None) Raises rcpy.gpio.inputtimeout if more than timeout ms have elapsed without the button state changing. Returns True if the new state is rcpy.button.pressed and False if the new state is rcpy.button.released Wait for button state to change. If timeout is not None wait at most timeout ms otherwise wait forever until the input changes. released(debounce = rcpy.button.debounce, timeout = None) debounce (int) number of times to read input for debouncing (default rcpy.button.debounce) timeout (int) timeout in milliseconds (default None) Raises rcpy.gpio.inputtimeout if more than timeout ms have elapsed without the button state changing. Returns True if the new state is rcpy.button.released and False if the new state is rcpy.button.pressed Wait for button state to change. If timeout is not None wait at most timeout ms otherwise wait forever until the input changes. class rcpy.button.buttonevent(input, event, debounce = rcpy.button.debounce, timeout = None, target = None, vargs = (), kwargs = {}) Bases rcpy.gpio.inputevent input (int) instance of rcpy.gpio.input event (int) either rcpy.button.buttonevent.pressed or rcpy.button. ButtonEvent.RELEASED debounce (int) number of times to read input for debouncing (default rcpy.button.debounce) timeout (int) timeout in milliseconds (default None) 12 Chapter 2. Modules
17 target (int) callback function to run in case input changes (default None) vargs (int) positional arguments for function target (default ()) kwargs (int) keyword arguments for function target (default {}) rcpy.button.buttonevent is an event handler for button events. PRESSED Event representing pressing a button; equal to rcpy.gpio.inputevent.low. RELEASED Event representing releasing a button; equal to rcpy.gpio.inputevent.high. action(event, *vargs, **kwargs) event either rcpy.button.pressed or rcpy.button.released vargs variable positional arguments kwargs variable keyword arguments Action to perform when event is detected. start() Start the input event handler thread. stop() Attempt to stop the input event handler thread. Once it has stopped it cannot be restarted. 2.5 Module rcpy.led This module provides an interface to the RED and GREEN buttons in the Robotics Cape. The command: import rcpy.led as led imports the module. The Module rcpy.led provides objects corresponding to the RED and GREEN buttons on the Robotics Cape, namely rcpy.led.red and rcpy.led.green. It may be convenient to import one or all of these objects as in: from rcpy.led import red, green For example: red.on() turns the RED LED on and: green.off() turns the GREEN LED off. Likewise: green.is_on() returns True if the GREEN LED is on and: red.is_off() 2.5. Module rcpy.led 13
18 returns True if the RED LED is off. This module also provides the class rcpy.led.blink to handle LED blinking. It spawns a thread that will keep LEDs blinking with a given period. For example: blink = led.blink(red,.5) blink.start() starts blinking the RED LED every 0.5 seconds. One can stop or resume blinking by calling rcpy.led.blink. toggle() as in: blink.toggle() or call: blink.stop() to permanently stop the blinking thread. One can also instantiate an rcpy.led.blink object by calling rcpy.led.led.blink() as in: blink = red.blink(.5) which returns an instance of rcpy.led.blink. rcpy.led.led.blink() automatically calls rcpy.led. Blink.start() Constants rcpy.led.red rcpy.led.led representing the Robotics Cape RED LED. rcpy.led.green rcpy.led.led representing the Robotics Cape GREEN LED. rcpy.led.on State of an on LED; equal to rcpy.gpio.high. rcpy.led.off State of an off led; equal to rcpy.gpio.low Classes class rcpy.led.led(output, state = rcpy.led.off) Bases rcpy.gpio.output output GPIO pin state initial LED state rcpy.led.led represents LEDs in the Robotics Cape or Beaglebone Blue. is_on() Returns True if LED is on and False if LED is off is_off() 14 Chapter 2. Modules
19 Returns True if LED is off and False if LED is on on() Change LED state to rcpy.led.on. off() Change LED state to rcpy.led.off. toggle() Toggle current LED state. blink(period) period (float) period of blinking Returns an instance of rcpy.led.blink. Blinks LED with a period of period seconds. class rcpy.led.blink(led, period) Bases rcpy.clock.clock rcpy.led.blink toggles led on and off periodically. led (LED) the led to toggle period (int) the period in seconds 2.6 Module rcpy.encoder This module provides an interface to the four encoder channels in the Robotics Cape. The command: import rcpy.encoder as encoder imports the module. The Module rcpy.encoder provides objects corresponding to the each of the encoder channels on the Robotics Cape, namely rcpy.encoder.encoder1, rcpy.encoder.encoder2, rcpy.encoder. encoder3, and rcpy.encoder.encoder4. It may be convenient to import one or all of these objects as in: from rcpy.encoder import encoder2 The current encoder count can be obtained using: encoder2.get() One can also reset the count to zero using: encoder2.reset() or to an arbitrary count using: encoder2.set(1024) after which: encoder2.get() will return Module rcpy.encoder 15
20 2.6.1 Constants rcpy.encoder.encoder1 rcpy.encoder.encoder representing the Robotics Cape Encoder 1. rcpy.encoder.encoder2 rcpy.encoder.encoder representing the Robotics Cape Encoder 2. rcpy.encoder.encoder3 rcpy.encoder.encoder representing the Robotics Cape Encoder 3. rcpy.encoder.encoder4 rcpy.encoder.encoder representing the Robotics Cape Encoder Classes class rcpy.encoder.encoder(channel, count = None) output encoder channel (1 through 4) state initial encoder count (Default None) rcpy.encoder.encoder represents encoders in the Robotics Cape or Beaglebone Blue. get() Returns current encoder count set(count) Set current encoder count to count. reset() Set current encoder count to Low-level functions rcpy.encoder.get(channel) channel (int) encoder channel number Returns current encoder count This is a non-blocking call. rcpy.encoder.set(channel, count = 0) channel (int) encoder channel number count (int) desired encoder count Set encoder channel count to value. 2.7 Module rcpy.motor This module provides an interface to the four motor channels in the Robotics Cape. Those control a high power PWM (Pulse Width Modulation) signal which is typically used to control DC Motors. The command: 16 Chapter 2. Modules
21 import rcpy.motor as motor imports the module. The Module rcpy.motor provides objects corresponding to the each of the motor channels on the Robotics Cape, namely rcpy.motor.motor1, rcpy.motor.motor2, rcpy.motor.motor3, and rcpy. motor.motor4. It may be convenient to import one or all of these objects as in from rcpy.motor import motor2 This is a convenience object which is equivalent to: motor2 = Motor(2) The current average voltage applied to the motor can be set using: duty = 1 motor2.set(duty) where duty is a number varying from -1 to 1 which controls the percentage of the voltage available to the Robotics Cape that should be applied on the motor. A motor can be turned off by: motor2.set(0) or using one of the special methods rcpy.motor.motor.free_spin() or rcpy.motor.motor.brake(), which can be used to turn off the motor and set it in a free-spin or braking configuration. For example: motor2.free_spin() puts motor2 in free-spin mode. In free-spin mode the motor behaves as if there were no voltage applied to its terminal, that is it is allowed to spin freely. In brake mode the terminals of the motor are short-circuited and the motor winding will exert an opposing force if the motor shaft is moved. Brake mode is essentially the same as setting the duty cycle to zero Constants rcpy.motor.motor1 rcpy.motor.motor representing the Robotics Cape Motor 1. rcpy.motor.motor2 rcpy.motor.motor representing the Robotics Cape Motor 2. rcpy.motor.motor3 rcpy.motor.motor representing the Robotics Cape Motor 3. rcpy.motor.motor4 rcpy.motor.motor representing the Robotics Cape Motor Classes class rcpy.motor.motor(channel, duty = None) output motor channel (1 through 4) state initial motor duty cycle (Default None) rcpy.motor.motor represents motors in the Robotics Cape or Beaglebone Blue Module rcpy.motor 17
22 set(duty) Set current motor duty cycle to duty. duty is a number between -1 and 1. free_spin() Stops the motor and puts it in free-spin mode. brake() Stops the motor and puts it in brake mode Low-level functions rcpy.motor.set(channel, duty) channel (int) motor channel number duty (int) desired motor duty cycle Sets the motor channel channel duty cycle to duty. This is a non-blocking call. rcpy.motor.set_free_spin(channel) channel (int) motor channel number Puts the motor channel channel in free-spin mode. This is a non-blocking call. rcpy.motor.set_brake(channel) channel (int) motor channel number Puts the motor channel channel in brake mode. This is a non-blocking call. 2.8 Module rcpy.servo This module provides an interface to the eight servo and ESC (Electronic Speed Control) channels in the Robotics Cape. The 3-pin servo connectors are not polarized so make sure the black/brown ground wire is the one closest to the Robotics Cape. The command: import rcpy.servo as servo imports the module. The Module rcpy.servo provides objects corresponding to the each of the servo and ESC channels on the Robotics Cape, namely rcpy.servo.servo1 through rcpy.servo.servo8, and namely rcpy. servo.esc1 through rcpy.servo.esc8. It may be convenient to import one or all of these objects as in from rcpy.servo import servo7 This is a convenience object which is equivalent to: motor7 = Servo(7) The position of the servo can be set using: 18 Chapter 2. Modules
23 duty = 1.5 servo7.set(duty) where duty is a number varying from -1.5 to 1.5, which controls the angle of the servo. This command does not send a pulse to the servo. In fact, before you can drive servos using the Robotics Cape you need to enable power to flow to servos using: servo.enable() For safety the servo power rail is disabled by default. Do not enable the servo power rail when using brushless ESCs as they can be damaged. Typical brushless ESCs only use the ground and signal pins, so if you need to control servos and ESC simultaneously simply cut or disconnect the middle power wire from the ESC connector. Use the command: servo.disable() to turn off the servo power rail. Back to servos, you can set the duty and send a pulse to the servo at the same time using the command: duty = 1.5 servo7.pulse(duty) Alternatively, you can initiate a rcpy.clock.clock object using: period = 0.1 clk = servo7.start(period) which starts sending the current servor duty value to the servo every 0.1s. The clock can be stopped by: clk.stop() The above is equivalent to: import rcpy.clock as clock period = 0.1 clk = clock.clock(servo7, period) clk.start() Similar commands are available for ESC. For example: from rcpy.servo import esc3 duty = 1.0 esc3.pulse(duty) sends a full-throttle pulse to the ESC in channel Constants rcpy.servo.servo1 rcpy.servo.servo representing the Robotics Cape Servo 1. rcpy.servo.servo2 rcpy.servo.servo representing the Robotics Cape Servo 2. rcpy.servo.servo3 rcpy.servo.servo representing the Robotics Cape Servo Module rcpy.servo 19
24 rcpy.servo.servo4 rcpy.servo.servo representing the Robotics Cape Servo 4. rcpy.servo.servo5 rcpy.servo.servo representing the Robotics Cape Servo 5. rcpy.servo.servo6 rcpy.servo.servo representing the Robotics Cape Servo 6. rcpy.servo.servo7 rcpy.servo.servo representing the Robotics Cape Servo 7. rcpy.servo.servo8 rcpy.servo.servo representing the Robotics Cape Servo 8. rcpy.servo.esc1 rcpy.servo.esc representing the Robotics Cape ESC 1. rcpy.servo.esc2 rcpy.servo.esc representing the Robotics Cape ESC 2. rcpy.servo.esc3 rcpy.servo.esc representing the Robotics Cape ESC 3. rcpy.servo.esc4 rcpy.servo.esc representing the Robotics Cape ESC 4. rcpy.servo.esc5 rcpy.servo.esc representing the Robotics Cape ESC 5. rcpy.servo.esc6 rcpy.servo.esc representing the Robotics Cape ESC 6. rcpy.servo.esc7 rcpy.servo.esc representing the Robotics Cape ESC 7. rcpy.servo.esc8 rcpy.servo.esc representing the Robotics Cape ESC Classes class rcpy.servo.servo(channel, duty = None) output servo channel (1 through 4) state initial servo duty cycle (Default 0) rcpy.servo.servo represents servos in the Robotics Cape or Beaglebone Blue. set(duty) Set current servo duty cycle to duty. duty is a number between -1.5 and 1.5. This method does not pulse the servo. Use rcpy.servo.servo.pulse() for setting and pulsing the servo at the same time. Otherwise use a rcpy.clock.clock or the method rcpy.servo.servo.start() to create one. The value of duty corresponds to the following pulse widths and servo angles: 20 Chapter 2. Modules
25 input width angle direction us 90 deg counter-clockwise us 60 deg counter-clockwise us 0 deg neutral us 60 deg clockwise us 90 deg clockwise pulse(duty) Set current servo duty cycle to duty and send a single pulse to the servo. run() Send a single pulse to the servo using the current value of duty. start(period) period (float) period Returns an instance of rcpy.clock.clock. Pulses servo periodically every period seconds. class rcpy.servo.esc(channel, duty = None) output ESC channel (1 through 4) state initial ESC duty cycle (Default 0) rcpy.servo.esc represents ESCs in the Robotics Cape or Beaglebone Blue. set(duty) Set current ESC duty cycle to duty, in which duty is a number between -0.1 and 1.0. This method does not pulse the ESC. Use rcpy.servo.esc.pulse() for setting and pulsing the ESC at the same time. Otherwise use a rcpy.clock.clock or the method rcpy.servo.esc.start() to create one. The value of duty corresponds to the following pulse widths and servo angles: input width power status us armed idle us 0% off us 50% half-throttle us 100% full-throttle pulse(duty) Set current ESC duty cycle to duty and send a single pulse to the ESC. run() Send a single pulses to the ESC using the current value of duty. start(period) period (float) period Returns an instance of rcpy.clock.clock. Pulses ESC periodically every period seconds Low-level functions rcpy.servo.enable() Enables the servo power rail. Be careful when connecting ESCs! 2.8. Module rcpy.servo 21
26 rcpy.servo.disable() Disables the servo power rail. rcpy.servo.pulse(channel, duty) channel (int) servo channel number duty (int) desired servo duty cycle Sends a normalized pulse to the servo channel channel, in which duty is a float varying from -1.5 to 1.5. See rcpy.servo.servo.set() for details. This is a non-blocking call. rcpy.servo.pulse_all(channel, duty) duty (int) desired servo duty cycle Sends a normalized pulse to all servo channels, in which duty is a float varying from -1.5 to 1.5. See rcpy. servo.servo.set() for details. This is a non-blocking call. rcpy.servo.esc_pulse(channel, duty) channel (int) servo channel number duty (int) desired ESC duty cycle Sends a normalized pulse to the ESC channel channel, in which duty is a float varying from -0.1 to 1.5. See rcpy.servo.esc.set() for details. This is a non-blocking call. rcpy.servo.esc_pulse_all(channel, duty) duty (int) desired ESC duty cycle Sends a normalized pulse to all ESC channels, in which duty is a float varying from -0.1 to 1.5. See rcpy. servo.esc.set() for details. This is a non-blocking call. rcpy.servo.oneshot_pulse(channel, duty) channel (int) ESC channel number duty (int) desired ESC duty cycle Sends a normalized oneshot pulse to the ESC channel channel, in which duty is a float varying from -0.1 to 1.0. This is a non-blocking call. rcpy.servo.oneshot_pulse_all(channel, duty) duty (int) desired ESC duty cycle Sends a normalized oneshot pulse to all ESC channels, in which duty is a float varying from -0.1 to 1.0. This is a non-blocking call. rcpy.servo.pulse_us(channel, us) 22 Chapter 2. Modules
27 channel (int) servo channel number us (int) desired servo duty cycle is μ s Sends a pulse of duration us μ s to all servo channels. This is a non-blocking call. This is a non-blocking call. rcpy.servo.pulse_us_all(channel, us) us (int) desired servo duty cycle is μ s Sends a pulse of duration us μ s to all servo channels. This is a non-blocking call. 2.9 Module rcpy.mpu9250 This module provides an interface to the on-board MPU-9250 Nine-Axis (Gyro + Accelerometer + Compass) MEMS device. The command: import rcpy.mpu9250 as mpu9250 imports the module. IMPORTANT: Beware that due to the way the Robotics Cape is written objects of the class rcpy.mpu9250.imu are singletons, that is they all refer to the same instance. Setup can be done at creation, such as in imu = mpu9250.imu(enable_dmp = True, dmp_sample_rate = 4, enable_magnetometer = True) which starts and initializes the MPU-9250 to use its DMP (Dynamic Motion Processor) to provide periodic readings at a rate of 4 Hz and also its magnetometer. The data can be read using: imu.read() which performs a blocking call and can be used to synchronize execution with the DMP. For example: while True: data = imu.read() print('heading = {}'.format(data['head'])) will print the current heading at a rate of 4 Hz. More details about the configuration options and the format of the data can be obtained in the help for the functions rcpy.mpu9250.initialize() and rcpy.mpu9250.read() Constants The following constants can be used to set the accelerometer full scale register: rcpy.mpu9250.accel_fsr_2g rcpy.mpu9250.accel_fsr_4g rcpy.mpu9250.accel_fsr_8g rcpy.mpu9250.accel_fsr_16g 2.9. Module rcpy.mpu
28 The following constants can be used to set the gyroscope full scale register: rcpy.mpu9250.gyro_fsr_250dps rcpy.mpu9250.gyro_fsr_500dps rcpy.mpu9250.gyro_fsr_1000dps rcpy.mpu9250.gyro_fsr_2000dps The following constants can be used to set the accelerometer low-pass filter: rcpy.mpu9250.accel_dlpf_off rcpy.mpu9250.accel_dlpf_184 rcpy.mpu9250.accel_dlpf_92 rcpy.mpu9250.accel_dlpf_41 rcpy.mpu9250.accel_dlpf_20 rcpy.mpu9250.accel_dlpf_10 rcpy.mpu9250.accel_dlpf_5 The following constants can be used to set the gyroscope low-pass filter: rcpy.mpu9250.gyro_dlpf_off rcpy.mpu9250.gyro_dlpf_184 rcpy.mpu9250.gyro_dlpf_92 rcpy.mpu9250.gyro_dlpf_41 rcpy.mpu9250.gyro_dlpf_20 rcpy.mpu9250.gyro_dlpf_10 rcpy.mpu9250.gyro_dlpf_5 The following constants can be used to set the imu orientation: rcpy.mpu9250.orientation_z_up rcpy.mpu9250.orientation_z_down rcpy.mpu9250.orientation_x_up rcpy.mpu9250.orientation_x_down rcpy.mpu9250.orientation_y_up rcpy.mpu9250.orientation_y_down rcpy.mpu9250.orientation_x_forward rcpy.mpu9250.orientation_x_back Classes class rcpy.mpu9250.imu(**kwargs) kwargs (kwargs) keyword arguments rcpy.mpu9250.imu represents the MPU-9250 in the Robotics Cape or Beaglebone Blue. Any keyword accepted by rcpy.mpu9250.initialize() can be given. 24 Chapter 2. Modules
29 set(**kwargs) kwargs (kwargs) keyword arguments Set current MPU-9250 parameters. Any keyword accepted by rcpy.mpu9250.initialize() can be given. read() Returns dictionary with current MPU-9250 measurements Dictionary is constructed as in rcpy.mpu9250.read() Low-level functions rcpy.mpu9250.initialize(accel_fsr, gyro_fsr, accel_dlpf, gyro_dlpf, enable_magnetometer, orientation, compass_time_constant, dmp_interrupt_priority, dmp_sample_rate, show_warnings, enable_dmp, enable_fusion) accel_fsr (int) accelerometer full scale gyro_fsr (int) gyroscope full scale accel_dlpf (int) accelerometer low-pass filter gyro_dlpf (int) gyroscope low-pass filter enable_magnetometer (bool) True enables the magnetometer orientation (int) imu orientation compass_time_constant (float) compass time-constant dmp_interrupt_priority (int) DMP interrupt priority dmp_sample_rate (int) DMP sample rate show_warnings (int) True shows warnings enable_dmp (bool) True enables the DMP enable_fusion (bool) True enables data fusion algorithm Configure and initialize the MPU All parameters are optional. Default values are obtained by calling the rc_get_default_imu_config() from the Robotics Cape library. rcpy.mpu9250.power_off() Powers off the MPU-9250 rcpy.mpu9250.read_accel_data() Returns list with three-axis acceleration in m/s 2 This function forces the MPU-9250 registers to be read. rcpy.mpu9250.read_gyro_data() Returns list with three-axis angular velocities in deg/s This function forces the MPU-9250 registers to be read. rcpy.mpu9250.read_mag_data() 2.9. Module rcpy.mpu
30 Raises mup9250error if magnetometer is disabled Returns list with 3D magnetic field vector in μt This function forces the MPU-9250 registers to be read. rcpy.mpu9250.read_imu_temp() Returns the imu temperature in deg C This function forces the MPU-9250 registers to be read. rcpy.mpu9250.read() Returns dictionary with the imu data; the keys in the dictionary depend on the current configuration If the magnetometer is enabled the dictionary contains the following keys: accel: 3-axis accelerations (m/s 2 ) gyro: 3-axis angular velocities (degree/s) mag: 3D magnetic field vector in (μt) quat: orientation quaternion tb: pitch/roll/yaw X/Y/Z angles (radians) head: heading from magnetometer (radians) If the magnetometer is not enabled the keys mag and head are not present. This function forces the MPU-9250 registers to be read only if the DMP is disabled. Otherwise it returns the latest DMP data. It is a blocking call. 26 Chapter 2. Modules
31 CHAPTER THREE INDICES AND TABLES genindex modindex search 27
32 28 Chapter 3. Indices and tables
33 PYTHON MODULE INDEX r rcpy, 3 rcpy.button, 9 rcpy.clock, 4 rcpy.encoder, 15 rcpy.gpio, 5 rcpy.led, 13 rcpy.motor, 16 rcpy.mpu9250, 23 rcpy.servo, 18 29
34 30 Python Module Index
35 INDEX A ACCEL_DLPF_10 (in module rcpy.mpu9250), 24 ACCEL_DLPF_184 (in module rcpy.mpu9250), 24 ACCEL_DLPF_20 (in module rcpy.mpu9250), 24 ACCEL_DLPF_41 (in module rcpy.mpu9250), 24 ACCEL_DLPF_5 (in module rcpy.mpu9250), 24 ACCEL_DLPF_92 (in module rcpy.mpu9250), 24 ACCEL_DLPF_OFF (in module rcpy.mpu9250), 24 ACCEL_FSR_16G (in module rcpy.mpu9250), 23 ACCEL_FSR_2G (in module rcpy.mpu9250), 23 ACCEL_FSR_4G (in module rcpy.mpu9250), 23 ACCEL_FSR_8G (in module rcpy.mpu9250), 23 Action (class in rcpy.clock), 4 action() (rcpy.button.buttonevent method), 13 action() (rcpy.gpio.inputevent method), 8 Actions (class in rcpy.clock), 4 add_cleanup() (in module rcpy), 3 B Blink (class in rcpy.led), 15 blink() (rcpy.led.led method), 15 brake() (rcpy.motor.motor method), 18 Button (class in rcpy.button), 11 ButtonEvent (class in rcpy.button), 12 ButtonEvent.PRESSED (in module rcpy.button), 13 ButtonEvent.RELEASED (in module rcpy.button), 13 C Clock (class in rcpy.clock), 4 D DEBOUNCE (in module rcpy.button), 11 DEBOUNCE_INTERVAL (in module rcpy.gpio), 7 disable() (in module rcpy.servo), 21 E enable() (in module rcpy.servo), 21 Encoder (class in rcpy.encoder), 16 encoder1 (in module rcpy.encoder), 16 encoder2 (in module rcpy.encoder), 16 encoder3 (in module rcpy.encoder), 16 encoder4 (in module rcpy.encoder), 16 ESC (class in rcpy.servo), 21 esc1 (in module rcpy.servo), 20 esc2 (in module rcpy.servo), 20 esc3 (in module rcpy.servo), 20 esc4 (in module rcpy.servo), 20 esc5 (in module rcpy.servo), 20 esc6 (in module rcpy.servo), 20 esc7 (in module rcpy.servo), 20 esc8 (in module rcpy.servo), 20 esc_pulse() (in module rcpy.servo), 22 esc_pulse_all() (in module rcpy.servo), 22 exit() (in module rcpy), 3 EXITING (in module rcpy), 3 F free_spin() (rcpy.motor.motor method), 18 G get() (in module rcpy.encoder), 16 get() (in module rcpy.gpio), 9 get() (rcpy.encoder.encoder method), 16 get_state() (in module rcpy), 3 green (in module rcpy.led), 14 GYRO_DLPF_10 (in module rcpy.mpu9250), 24 GYRO_DLPF_184 (in module rcpy.mpu9250), 24 GYRO_DLPF_20 (in module rcpy.mpu9250), 24 GYRO_DLPF_41 (in module rcpy.mpu9250), 24 GYRO_DLPF_5 (in module rcpy.mpu9250), 24 GYRO_DLPF_92 (in module rcpy.mpu9250), 24 GYRO_DLPF_OFF (in module rcpy.mpu9250), 24 GYRO_FSR_1000DPS (in module rcpy.mpu9250), 24 GYRO_FSR_2000DPS (in module rcpy.mpu9250), 24 GYRO_FSR_250DPS (in module rcpy.mpu9250), 24 GYRO_FSR_500DPS (in module rcpy.mpu9250), 24 H HIGH (in module rcpy.gpio), 7 high() (rcpy.gpio.input method), 7 high_or_low() (rcpy.gpio.input method), 7 31
36 I IDLE (in module rcpy), 3 IMU (class in rcpy.mpu9250), 24 initialize() (in module rcpy.mpu9250), 25 Input (class in rcpy.gpio), 7 InputEvent (class in rcpy.gpio), 8 InputEvent.HIGH (in module rcpy.gpio), 8 InputEvent.LOW (in module rcpy.gpio), 8 InputTimeout (class in rcpy.gpio), 7 is_high() (rcpy.gpio.input method), 7 is_low() (rcpy.gpio.input method), 7 is_off() (rcpy.led.led method), 14 is_on() (rcpy.led.led method), 14 is_pressed() (rcpy.button.button method), 11 is_released() (rcpy.button.button method), 11 L LED (class in rcpy.led), 14 LOW (in module rcpy.gpio), 7 low() (rcpy.gpio.input method), 7 M mode (in module rcpy.button), 11 Motor (class in rcpy.motor), 17 motor1 (in module rcpy.motor), 17 motor2 (in module rcpy.motor), 17 motor3 (in module rcpy.motor), 17 motor4 (in module rcpy.motor), 17 O OFF (in module rcpy.led), 14 off() (rcpy.led.led method), 15 ON (in module rcpy.led), 14 on() (rcpy.led.led method), 15 oneshot_pulse() (in module rcpy.servo), 22 oneshot_pulse_all() (in module rcpy.servo), 22 ORIENTATION_X_BACK (in module rcpy.mpu9250), 24 ORIENTATION_X_DOWN (in module rcpy.mpu9250), 24 ORIENTATION_X_FORWARD (in module rcpy.mpu9250), 24 ORIENTATION_X_UP (in module rcpy.mpu9250), 24 ORIENTATION_Y_DOWN (in module rcpy.mpu9250), 24 ORIENTATION_Y_UP (in module rcpy.mpu9250), 24 ORIENTATION_Z_DOWN (in module rcpy.mpu9250), 24 ORIENTATION_Z_UP (in module rcpy.mpu9250), 24 P pause (in module rcpy.button), 11 PAUSED (in module rcpy), 3 power_off() (in module rcpy.mpu9250), 25 PRESSED (in module rcpy.button), 11 pressed() (rcpy.button.button method), 12 pressed_or_released() (rcpy.button.button method), 11 pulse() (in module rcpy.servo), 22 pulse() (rcpy.servo.esc method), 21 pulse() (rcpy.servo.servo method), 21 pulse_all() (in module rcpy.servo), 22 pulse_us() (in module rcpy.servo), 22 pulse_us_all() (in module rcpy.servo), 23 R rcpy (module), 3 rcpy.button (module), 9 rcpy.clock (module), 4 rcpy.encoder (module), 15 rcpy.gpio (module), 5 rcpy.led (module), 13 rcpy.motor (module), 16 rcpy.mpu9250 (module), 23 rcpy.servo (module), 18 read() (in module rcpy.gpio), 9 read() (in module rcpy.mpu9250), 26 read() (rcpy.mpu9250.imu method), 25 read_accel_data() (in module rcpy.mpu9250), 25 read_gyro_data() (in module rcpy.mpu9250), 25 read_imu_temp() (in module rcpy.mpu9250), 26 read_mag_data() (in module rcpy.mpu9250), 25 red (in module rcpy.led), 14 RELEASED (in module rcpy.button), 11 released() (rcpy.button.button method), 12 reset() (rcpy.encoder.encoder method), 16 run() (rcpy.clock.action method), 4 run() (rcpy.servo.esc method), 21 run() (rcpy.servo.servo method), 21 RUNNING (in module rcpy), 3 S Servo (class in rcpy.servo), 20 servo1 (in module rcpy.servo), 19 servo2 (in module rcpy.servo), 19 servo3 (in module rcpy.servo), 19 servo4 (in module rcpy.servo), 19 servo5 (in module rcpy.servo), 20 servo6 (in module rcpy.servo), 20 servo7 (in module rcpy.servo), 20 servo8 (in module rcpy.servo), 20 set() (in module rcpy.encoder), 16 set() (in module rcpy.gpio), 9 set() (in module rcpy.motor), 18 set() (rcpy.encoder.encoder method), 16 set() (rcpy.motor.motor method), 17 set() (rcpy.mpu9250.imu method), 24 set() (rcpy.servo.esc method), Index
37 set() (rcpy.servo.servo method), 20 set_brake() (in module rcpy.motor), 18 set_free_spin() (in module rcpy.motor), 18 set_period() (rcpy.clock.clock method), 4 set_state() (in module rcpy), 3 start() (rcpy.button.buttonevent method), 13 start() (rcpy.clock.clock method), 4 start() (rcpy.gpio.inputevent method), 8 start() (rcpy.servo.esc method), 21 start() (rcpy.servo.servo method), 21 stop() (rcpy.button.buttonevent method), 13 stop() (rcpy.clock.clock method), 4 stop() (rcpy.gpio.inputevent method), 8 T toggle() (rcpy.clock.clock method), 4 toggle() (rcpy.led.led method), 15 Index 33
Me 3-Axis Accelerometer and Gyro Sensor
Me 3-Axis Accelerometer and Gyro Sensor SKU: 11012 Weight: 20.00 Gram Description: Me 3-Axis Accelerometer and Gyro Sensor is a motion processing module. It can use to measure the angular rate and the
More information9 Degrees of Freedom Inertial Measurement Unit with AHRS [RKI-1430]
9 Degrees of Freedom Inertial Measurement Unit with AHRS [RKI-1430] Users Manual Robokits India info@robokits.co.in http://www.robokitsworld.com Page 1 This 9 Degrees of Freedom (DOF) Inertial Measurement
More informationNubotics Device Interface DLL
Nubotics Device Interface DLL ver-1.1 Generated by Doxygen 1.5.5 Mon Mar 2 17:01:02 2009 Contents Chapter 1 Module Index 1.1 Modules Here is a list of all modules: Initialization Functions.............................??
More informationRobotics Adventure Book Scouter manual STEM 1
Robotics Robotics Adventure Book Scouter Manual Robotics Adventure Book Scouter manual STEM 1 A word with our Scouters: This activity is designed around a space exploration theme. Your Scouts will learn
More information9 Output Devices: Buzzers
9 Output Devices: Buzzers Project In this project, you will learn how to connect and control LEDs (Light Emitting Diode) and a buzzer with the Raspberry Pi. Components In addition to your Raspberry Pi,
More informationFARES PCB. General Description. Figure 1. FIPSD3.5M Driver Board
FARES PCB FARES Industrial Products Bipolar Stepper Driver General Description Driving stepper motor is common necessity in most robotic projects. A stepper motor is a brushless, synchronous electric motor
More informationFARES PCB. General Description. Figure 1. FIPSD10M Driver Board
FARES PCB FARES Industrial Products Bipolar Stepper Driver General Description Driving stepper motor is common necessity in most robotic projects. A stepper motor is a brushless, synchronous electric motor
More informationClearpath Communication Protocol. For use with the Clearpath Robotics research platforms
Clearpath Communication Protocol For use with the Clearpath Robotics research platforms Version: 1.1 Date: 2 September 2010 Revision History Version Date Description 1.0 26 March 2010 Release 1.1 2 September
More informationV ARIENSE SENSE Y O UR W ORLD. Inertial Measurement Unit VMU931. User Guide. Version 1.3. March VARIENSE INC.
V ARIENSE SENSE Y O UR W ORLD Inertial Measurement Unit VMU931 Version 1.3 March 2018 2017 VARIENSE INC. Contents 1 Product Overview 1 2 Safety 2 3 Setup 3 3.1 Mounting the sensor...........................................
More informationOperation and installation manual KNX IO 511 (1O2I) Application. 1. Installation and Connection
EN Operation and installation manual KNX IO 511 (1O2I) (Art. # 5232) Switching actuator with 1 output and 2 binary inputs A. KNX Programming mode The KNX programming mode is activated/deactivated either
More informationModern Robotics Inc. Sensor Documentation
Sensor Documentation Version 1.0.1 September 9, 2016 Contents 1. Document Control... 3 2. Introduction... 4 3. Three-Wire Analog & Digital Sensors... 5 3.1. Program Control Button (45-2002)... 6 3.2. Optical
More informationCBM-105FP Troubleshooting
CBM-105FP Troubleshooting SPECIFICATIONS SUBJECT TO CHANGE WITHOUT NOTICE Page 1 of 8 Section 1: Symptom Checking Page Power Moller does not run------------------------------------------------------------------
More informationEMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG
EMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG Adam Lindberg github.com/eproxus HARDWARE COMPONENTS SOFTWARE FUTURE Boot, Serial console, Erlang shell DEMO THE GRISP BOARD SPECS Hardware & specifications
More informationSERVO-DRIVE. PROGRAMMABLE STEP MOTOR CONTROLLER R ETH and R ETH. Manual Ver. 05
SERVO-DRIVE PROGRAMMABLE STEP MOTOR CONTROLLER R272-42-ETH and R272-80-ETH Manual Ver. 05 2018 1. Product designation Programmable step motor controller R272-42-ETH is designed to operate with hybrid two
More information2G Actuator Communications Protocol Document Rotary & Linear Actuators
2752 Capitol Drive Suite #103 Sun Prairie, WI 53590 2150080 2G Actuator Packets - Rotary & Linear Revision AI Date 4/25/2018 2G Actuator Communications Protocol Document Rotary & Linear Actuators DOCUMENT
More information2011 FIRST Robotics Competition Sensor Manual
2011 FIRST Robotics Competition Sensor Manual The 2011 FIRST Robotics Competition (FRC) sensors are outlined in this document. It is being provided as a courtesy, and therefore does not supersede any information
More informationAbsolute Encoder Multiturn
Absolute Encoder Multiturn Features Resolution: Singleturn: up to 16,384 (14 Bit) steps per revolution Multiturn: up to 16,777,216 (24 Bit) revolutions Interface: SSI (synchron serial interface) or BiSS
More informationEncoders IE Series. Magnetic Encoders 6,1 12, Features: 64 to 512 Lines per revolution 2 Channels Digital output
Encoders Magnetic Encoders Features: 64 to 52 Lines per revolution 2 Channels Digital output Series IE2 52 Lines per revolution Signal output, square wave Supply voltage Current consumption, typical (V
More informationGeneral Description. Figure 1. FIPSD2M Driver Board
FARES Industrial Products Bipolar Stepper Driver General Description Driving stepper motor is common necessity in most robotic projects. A stepper motor is a brushless, synchronous electric motor that
More informationcursesmenu Documentation
cursesmenu Documentation Release 0.5.0 Author March 04, 2016 Contents 1 Installation 3 2 Usage 5 2.1 Getting a selection............................................ 6 3 API Reference 7 3.1 CursesMenu
More informationHigh-speed Counter Module
DL05/06 High-Speed Counter I/O Module H4-CTRIO The High-Speed Counter I/O (H4-CTRIO) module is designed to accept high-speed pulse-type input signals for counting or timing applications and designed
More informationFasteners Documentation
Fasteners Documentation Release 0.14.1 Joshua Harlow Jul 12, 2017 Contents 1 Lock 3 1.1 Classes.................................................. 3 1.2 Decorators................................................
More informationAUTOMOTIVE CONTROLLER
SA-2793 USER GUIDE BR LEE 8515/8816 PAVER AUTOMOTIVE CONTROLLER Table of Contents I. Revisions.2 II. Software Specification.......2 III. Description of Operation...3 IV. Fault Codes for Status LED..8 V.
More informationMEDIS Module 2. Microcontroller based systems for controlling industrial processes. Chapter 4: Timer and interrupts. M. Seyfarth, Version 0.
MEDIS Module 2 Microcontroller based systems for controlling industrial processes Chapter 4: Timer and interrupts M. Seyfarth, Version 0.1 Steuerungstechnik 1: Speicherprogrammierbare Steuerungstechnik
More informationHG4930 INERTIAL MEASUREMENT UNIT (IMU) Installation and Interface Manual
HG4930 INERTIAL MEASUREMENT UNIT (IMU) Installation and Interface Manual HG4930 Installation and Interface Manual aerospace.honeywell.com/hg4930 2 Table of Contents 4 5 6 10 11 13 13 Honeywell Industrial
More informationArduino Cookbook O'REILLY* Michael Margolis. Tokyo. Cambridge. Beijing. Farnham Koln Sebastopol
Arduino Cookbook Michael Margolis O'REILLY* Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Preface xiii 1. Getting Started 1 1.1 Installing the Integrated Development Environment (IDE)
More informationBNO055 Quick start guide
BNO055 Quick start guide Bosch Sensortec Application note: BNO055 Quick start guide Document revision 1.0 Document release date Document number Mar.2015 BST-BNO055-AN007-00 Technical reference code 0 273
More informationAeroCore 2 for Intel Joule Module
AeroCore 2 for Intel Joule Module TM Gumstix, Inc. shall have no liability of any kind, express or implied, arising out of the use of the Information in this document, including direct, indirect, special
More informationSECOND EDITION. Arduino Cookbook. Michael Margolis O'REILLY- Tokyo. Farnham Koln Sebastopol. Cambridge. Beijing
SECOND EDITION Arduino Cookbook Michael Margolis Beijing Cambridge Farnham Koln Sebastopol O'REILLY- Tokyo Table of Contents Preface xi 1. Getting Started 1 1.1 Installing the Integrated Development Environment
More informationMore Fun with Timer Interrupts
More Fun with Timer Interrupts Chords Objective: Play a musical chord each time you press a button: Button RC0 RC1 RC2 Timer Timer0 Timer1 Timer3 RB0 A3 C4 E4 RB1 B3 D4 F4 RB2 C4 E4 G4 Calculations: Assume
More informationGumstix Pi HAT Sensor board
Gumstix Pi HAT Sensor board TM Gumstix, Inc. shall have no liability of any kind, express or implied, arising out of the use of the Information in this document, including direct, indirect, special or
More information8051 Microcontroller Interrupts
8051 Microcontroller Interrupts There are five interrupt sources for the 8051, which means that they can recognize 5 different events that can interrupt regular program execution. Each interrupt can be
More informationInnovation First, Inc Full-Size Robot Controller Reference Guide
2004 Full-Size Robot Controller Reference Guide 2.19.2004 www.innovationfirst.com Page 2 Table of Contents 1. Robot Controller Overview... 3 2. Main Power Input... 4 3. Battery Backup Power... 4 4. PROGRAM...
More informationRoBoard Module RM-G146 Manual V1.01 The Heart of Robotics. Jan 2011 DMP Electronics Inc
Manual V1.01 Jan 2011 DMP Electronics Inc Copyright The information in this manual is subject to change without notice for continuous improvement in the product. All rights are reserved. The manufacturer
More informationTB6600 Stepper Motor Driver
TB6600 Stepper Motor Driver V1.0 07 2018 Open Source Mechatronics LTD 2018 Safety Statement The author of this document is not liable or responsible for any accidents, injuries, equipment damage, property
More informationT Safety Board Test Procedure Revision: -
REV - DESCRIPTION Initial Release DATE 7/22/09 BY EAW T3-3003 Safety Board Test Procedure Revision: - SERIAL NUMBER TESTED Rev D FILENAME: T3-3003_TCS3_SB_RevD_Test_Procedure.doc LAST SAVE: 7/24/2009 10:35
More informationIntroduction to Arduino Programming. Sistemi Real-Time Prof. Davide Brugali Università degli Studi di Bergamo
Introduction to Arduino Programming Sistemi Real-Time Prof. Davide Brugali Università degli Studi di Bergamo What is a Microcontroller www.mikroe.com/chapters/view/1 A small computer on a single chip containing
More informationuser manual Getting started... 3 Calibration... 3 Getting to know your robot... 4
user manual Table of Contents Getting started... 3 Calibration... 3 Getting to know your robot... 4 Battery pack and power supply... 4 USB connector and power... 4 Arduino hardware... 5 Proximity sensor...
More informationSphero Lightning Lab Cheat Sheet
Actions Tool Description Variables Ranges Roll Combines heading, speed and time variables to make the robot roll. Duration Speed Heading (0 to 999999 seconds) (degrees 0-359) Set Speed Sets the speed of
More informationElevator Controller BRANDON AHO AND JINBO ZHU
Elevator Controller BRANDON AHO AND JINBO ZHU What are we modeling? What are our simplifications? Small model with robotics components No special operation such as special buttons, weight compensation,
More informationSTEP MOTOR DRIVER SMD-4.2DIN
SMART MOTOR DEVICES http://www.smd.ee STEP MOTOR DRIVER SMD-4.2DIN manual SMDDIN.42.001 2018 1. Product designation Step motor controller SMD-4.2DIN is an electronic device designed to operate with 2 or
More informationStuduino Block Programming Environment Guide
Studuino Block Programming Environment Guide [DC Motors and Servomotors] This is a tutorial for the Studuino Block programming environment. As the Studuino programming environment develops, these instructions
More informationSmartFPV RC Camera Control v2. User Guide (RCCC v2 without option to power cameras from RC receiver)
SmartFPV RC Camera Control v2 User Guide (RCCC v2 without option to power cameras from RC receiver) 6/9/2013 INTRODUCTION SmartFPV RC Camera Control board (RCCC) is multifunctional RC control board designed
More informationArduino Uno. Power & Interface. Arduino Part 1. Introductory Medical Device Prototyping. Digital I/O Pins. Reset Button. USB Interface.
Introductory Medical Device Prototyping Arduino Part 1, http://saliterman.umn.edu/ Department of Biomedical Engineering, University of Minnesota Arduino Uno Power & Interface Reset Button USB Interface
More information2-Axis Brushless Gimbal User Manual
2-Axis Brushless Gimbal User Manual I Introduction AGM 2-axis brushless gimbal is designed to accommodate the GoPro Hero3 camera, enhancing such various aspects of aerial videography as entertainment,
More informationrobotics/ openel.h File Reference Macros Macro Definition Documentation Typedefs Functions
openel.h File Reference Macros #define EL_TRUE 1 #define EL_FALSE 0 #define EL_NXT_PORT_A 0 #define EL_NXT_PORT_B 1 #define EL_NXT_PORT_C 2 #define EL_NXT_PORT_S1 0 #define EL_NXT_PORT_S2 1 #define EL_NXT_PORT_S3
More informationCONUCON Software. User Guide. for Linion, Dora and Fresadora. Dezember 2018 CONUCON Software v
CONUCON Software User Guide for Linion, Dora and Fresadora Dezember 2018 CONUCON Software v181216 1 Contents 1.First Steps...2 Installing Drivers...2 Connecting...4 Graphical User Interface...4 Safety
More informationPYTHON MULTITHREADED PROGRAMMING
PYTHON MULTITHREADED PROGRAMMING http://www.tutorialspoint.com/python/python_multithreading.htm Copyright tutorialspoint.com Running several threads is similar to running several different programs concurrently,
More information1.0 The System Architecture and Design Features
1.0 The System Architecture and Design Features Figure 1. System Architecture The overall guiding design philosophy behind the Data Capture and Logging System Architecture is to have a clean design that
More informationInertial Measurement Units I!
! Inertial Measurement Units I! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 9! stanford.edu/class/ee267/!! Lecture Overview! coordinate systems (world, body/sensor, inertial,
More informationINTRODUCTION HARDWARE
Project Kit Table of Contents INTRODUCTION... 3 HARDWARE... 3 Hardware built-in micro:bit:... 3 Hardware included in this kit:... 4 CODE... 5 Pseudo Code:... 5 Coding Tools:... 5 Running Programs:... 8
More informationData sheet CPU 115 (115-6BL02)
Data sheet CPU 115 (115-6BL02) Technical data Order no. 115-6BL02 Type CPU 115 General information Note - Features 16 (20) inputs 16 (12) outputs from which are 2 PWM 50 khz outputs 16 kb work memory,
More informationMINDRACER SPECIFICATION
MINDRACER SPECIFICATION Highlights - Ultra mini size, weight only ~6g - High performance F4 168MHz floating point processor, super fast throttle response - Support OneShot ESC - Support PPM/SBUS/DSM radio
More informationSpiNN 3 System Diagram
SpiNNaker AppNote SpiNN-3 DevBoard Page AppNote - SpiNN-3 Development Board SpiNNaker Group, School of Computer Science, University of Manchester Steve Temple - 4 Nov - Version. Introduction This document
More informationTWO PLAYER REACTION GAME
LESSON 18 TWO PLAYER REACTION GAME OBJECTIVE For your final project for this level for the course, create a game in Python that will test your reaction time versus another player. MATERIALS This lesson
More informationMCU: Interrupts and Timers. Ganesh Pitchiah
MCU: Interrupts and Timers Ganesh Pitchiah What s an MCU? Frequency = 8 MHz Time Period = 1/f = 0.125 us Code for Switching LED int a; voltage while(1) { a = PINA.0; input) If (a==1) PORTA.1=1; else PORTA.1=0;
More information845G. Description. Features. Specifications
845G The 845G is a heavy duty NEMA Type 4 and 13 single turn absolute encoder that digitizes shaft position. The absolute encoder has a unique digital output for each shaft position. The use of absolute
More informationPiCAN GPS + Gyro +Accelerometer USER GUIDE V1.0
PiCAN GPS + Gyro +Accelerometer USER GUIDE V1.0 Product name Model number Manufacturer PiCAN GPS + Gyro + Accelerometer CAN-Bus Board for Raspberry Pi RSP-PICANGPSACC SK Pang Electronics Ltd 1 Contents
More informationAPPLICATION NOTE /20/02 Getting started using IPM240-5E with a brushless motor
Problem: For new users of an intelligent drive, starting to implement a motion control application can be a quite complex task. You need to know how to hook-up the components of the motion system, to configure
More informationHow-To #3: Make and Use a Motor Controller Shield
How-To #3: Make and Use a Motor Controller Shield The Arduino single-board computer can be used to control servos and motors. But sometimes more current is required than the Arduino can provide, either
More informationData Sheet MEM 22. Absolute Encoder Multiturn
Absolute Encoder Multiturn Features Resolution: Singleturn: up to 16,384 (14 Bit) steps per revolution Multiturn: up to 16,777,216 (24 Bit) revolutions Interface: SSI (synchron serial interface) or BiSS
More informationINSTRUCTIONMANUAL. 24V motor control device for DIN-rail mounting
INSTRUCTIONMANUAL 24V motor control device for DIN-rail mounting Product group: shutters, sliding windows, sliding shutters Version: 1.0 Language: english Orig. Language: german (deutsch) Document: ------
More informationProject Final Report Internet Ready Refrigerator Inventory Control System
Project Final Report April 25, 2006 Dustin Graves, dgraves@gwu.edu Project Abstract Appliance vendors have started producing internet enabled refrigerators which allow users to keep track of refrigerator
More informationZIO Java API. Tutorial. 1.2, Feb 2012
ZIO Java API Tutorial 1.2, Feb 2012 This work is licensed under the Creative Commons Attribution-Share Alike 2.5 India License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.5/in/
More informationNanotec Electronic GmbH Gewerbestrasse Landsham near Munich Tel: 089/ Fax: 089/
Manual SMCI-46 Positioning Control (Including Output Module) -1- Contents Page 1 General -3-2 Inputs/outputs and functions -4-2.1 Inputs -6-2.2 Outputs -7-2.3 Pushbuttons -7-2.4 Switches -8-2.5 Serial
More informationSD17098IX Specifications Networked Stepper Driver & Indexer Revision 0.0
The SD17098IX is a 170V 9.8amp stepper driver and indexer combination that communicates on a Network. The available networks, along with the corresponding AMCI part numbers, are shown in the following
More informationHOBO State Data Logger (UX90-001x) Manual
HOBO State Data Logger (UX90-001x) Manual The HOBO State/Pulse/Event/Runtime data logger records state changes, electronic pulses and mechanical or electrical contact closures from external sensing devices.
More informationFARES PCB. General Description. FIPSD2 features
FARES PCB FARES Industrial Products Bipolar Stepper Driver General Description Driving stepper motor is common necessity in most robotic projects. A stepper motor is a brushless, synchronous electric motor
More informationSerial Peripheral Interface Bus SPI
Serial Peripheral Interface Bus SPI SPI Bus Developed by Motorola in the mid 1980 s Full-duplex, master-slave serial bus suited to data streaming applications for embedded systems Existing peripheral busses
More informationPoE Digital Code Blue & Elapsed Timer Operation Guide
PoE Digital Code Blue & Elapsed Timer Operation Guide OneVue PoE Managed Time OneVue is a trademark of Primex. OneVue is an intelligent environmental monitoring and managed time solution. All other trademarks
More informationJetMove 2xx. Version update from V to V We automate your success.
Version update from V. 2.15 to V. 2.16 We automate your success. Introduction Revision 1.01 August 2017 / Printed in Germany This document has been compiled by Jetter AG with due diligence, and based on
More informationParallax LSM9DS1 9-axis IMU Module (#28065)
Web Site: www.parallax.com Forums: forums.parallax.com Sales: sales@parallax.com Technical:support@parallax.com Office: (916) 624-8333 Fax: (916) 624-8003 Sales: (888) 512-1024 Tech Support: (888) 997-8267
More informationD115 The Fast Optimal Servo Amplifier For Brush, Brushless, Voice Coil Servo Motors
D115 The Fast Optimal Servo Amplifier For Brush, Brushless, Voice Coil Servo Motors Ron Boe 5/15/2014 This user guide details the servo drives capabilities and physical interfaces. Users will be able to
More informationHOBO State Data Logger (UX90-001x) Manual
HOBO State Data Logger (UX90-001x) Manual The HOBO State/Pulse/Event/Runtime data logger records state changes, electronic pulses and mechanical or electrical contact closures from external sensing devices.
More informationMotorised Linear Stages
ov-motorised-linear-stages-divider - Updated - 18-09-2017 177 Positioning & Rotary Overview L3500 Medium duty motorised stage L3504 Heavy-duty motorised stage L3505 Motorised linear stage L3506 Miniature
More informationINSTALLATION INSTRUCTIONS 5" SINGLE CHANNEL ULTIMATE TACH
Instr. No. 2650-887C INSTALLATION INSTRUCTIONS 5" SINGLE CHANNEL ULTIMATE TACH MODEL 6871, 6872, 6873, 6874, 6875, 6877 IMPORTANT WEAR SAFETY GLASSES 5 4 6 COPYRIGHT PATENT PENDING 3 7 8 PLAYBACK 9 2 0
More informationCamJam EduKit Sensors Worksheet Five. Equipment Required. The Parts. The Passive Infrared Sensor
CamJam EduKit Sensors Worksheet Five Project Description Passive Infrared Sensor In this project, you will learn how to wire and program a passive infrared sensor that detects movement near it. Equipment
More informationACS Stepper Controller. Econo Stepper Controller
ACS Stepper Controller & Econo Stepper Controller User's Manual June 22, 2005 6 2 3 3 E. S a w g ra s s R d S a ra s o ta, F L. 3 4 2 4 0 (9 4 1 )3 7 7-5 7 7 5 F A X(9 4 1 )3 7 8-4 2 2 6 www.acscontrol.com
More informationCheap Control Systems. Cheap Twelve Channel (C12C) Servo Controller Version 1.0 OVERVIEW
Cheap Control Systems Cheap Twelve Channel (C12C) Servo Controller Version 1.0 The Cheap Twelve Channel (C12C) Servo Controller is a low cost embedded controller that allows a Sony Playstation 2 (PS2)
More informationHybrid AC Driver [GCNC-1110]
Page 1 Installation Manual and Datasheet Page 2 Key Features Smooth and quiet operation at all speeds and extremely low motor heating Industrial grade performance for an alternating current servo motor
More informationIMU6420 V0.98 Data Logger Release Notes January 12, 2013
IMU6420 V0.98 Data Logger Release Notes January 12, 2013 Features The IMU6420 is a high performance 10 DOF datalogger with the following features: - Atmega1284P processor (11.0592MHz) with real time clock
More information#include "quaternionfilters.h" #include "MPU9250.h" data read #define SerialDebug true // Set to true to get Serial output for debugging
/*Hardware setup: MPU9250 Breakout --------- Arduino VDD ---------------------- 3.3V VDDI --------------------- 3.3V SDA ----------------------- A4 SCL ----------------------- A5 GND ----------------------
More information8254 is a programmable interval timer. Which is widely used in clock driven digital circuits. with out timer there will not be proper synchronization
8254 is a programmable interval timer. Which is widely used in clock driven digital circuits. with out timer there will not be proper synchronization between two devices. So it is very useful chip. The
More informationBeaglebone green User Manual
Beaglebone green User Manual Release date: 2015/9/22 Version: 1.0 Wiki: http://www.seeedstudio.com/wiki/beaglebone_green Bazaar: http://www.seeedstudio.com/depot/beaglebone-green-p- 2504.html?cPath=122_113
More informationRyan Everaert Application Note Team - I Application Note for Toshiba Bipolar Stepper, Part Number TB6560AHQ
Ryan Everaert Application Note Team - I Application Note for Toshiba Bipolar Stepper, Part Number TB6560AHQ Executive Summary of Operation and Application The Toshiba bipolar stepper driver integrated
More informationDEV-1 HamStack Development Board
Sierra Radio Systems DEV-1 HamStack Development Board Reference Manual Version 1.0 Contents Introduction Hardware Compiler overview Program structure Code examples Sample projects For more information,
More informationTI-Innovator Rover Commands
TI-Innovator Rover s This guidebook applies to TI-Innovator Rover which requires TI-Innovator Sketch software version 1.2 or later. To obtain the latest version of the documentation, go to education.ti.com/go/download.
More informationData Sheet MEM 16. Absolute Encoder Multiturn
Absolute Encoder Multiturn Features Resolution: Singleturn: up to 8,192 (13 Bit) steps per revolution Multiturn: up to 4,294,967,296 (32 Bit) revolutions Interface: SSI (synchron serial interface) or BiSS
More informationOperating Instructions ND 287
Operating Instructions ND 287 English (en) 8/2008 ND 287 Screen 1 2 3 4 5 ND 287 Front Panel 7 6 Controls and Displays 1 Status bar Current operating mode: Actual Value, Distance-To-Go. Current display
More informationC-Series C142 Machine Controller Eurocard DIN Packaged Systems
C-Series C142 Machine Controller Eurocard DIN Packaged Systems FEATURES: Available as 2- or 3-axes CNC Controller Remote START/STOP/RESET Bidirectional serial communication at up to 192 baud 32K of on-board
More informationBlocks Programming Reference Manual By Bruce Schafer January 6, 2018
Blocks Programming Reference Manual By Bruce Schafer January 6, 2018 Table of Contents Introduction 4 Values and objects have types 4 Reviewing the Robot Controller log 4 Format of this manual 4 LinearOpMode
More informationDE2.3 Electronics 2. Lab Experiment 3: IMU and OLED Display
Objectives Dyson School of Design Engineering DE2.3 Electronics 2 Lab Experiment 3: IMU and OLED Display (webpage: http://www.ee.ic.ac.uk/pcheung/teaching/de2_ee/) By the end of this experiment, you should
More information629/P32 (X10/P32) PIC CHIP. On - Off Operating Instructions (Revision 2)
629/P32 (X10/P32) PIC CHIP On - Off Operating Instructions (Revision 2) This manual is a living document, therefore it will change when needed to clarify and explain the operation of the 629/P32 (X10/P32)
More informationPyZabbixObj Documentation
PyZabbixObj Documentation Release 0.1 Fabio Toscano Aug 26, 2017 Contents Python Module Index 3 i ii PyZabbixObj Documentation, Release 0.1 PyZabbixObj is a Python module for working with Zabbix API,
More informationCENG-336 Introduction to Embedded Systems Development. Timers
CENG-336 Introduction to Embedded Systems Development Timers Definitions A counter counts (possibly asynchronous) input pulses from an external signal A timer counts pulses of a fixed, known frequency
More informationFACULTY OF ENGINEERING LAB SHEET
FACULTY OF ENGINEERING LAB SHEET EMBEDDED SYSTEM DESIGN ECE3196 TRIMESTER 2 (2015/2016) : Development of a simple embedded system scheduler *Note: On-the-spot evaluation may be carried out during or at
More informationUser's Manual. For ST-6560V3. Version All Rights Reserved
User's Manual For ST-6560V3 Version 2.0 2016.08.25 All Rights Reserved 1. Key Features Toshiba TB6560AHQ chip - High power, maximum current 3.5A Resolution 1, 1/2, 1/8, 1/16 micro stepping output Working
More informationManual. LC-16 system. LC-16 Inkjet Printer 1
Manual LC-16 system LC-16 Inkjet Printer 1 Index ENVIRONMENT. 3 OPERATOR S SAFETY 3 OPERATION SAFETY 3 PART 1 INSTALLATION AND PARAMETER SETTING 4 1) Preparing 4 2) Installation 4 3) Priming 4 4) Parameter
More informationLDC x120A Single Channel Forward/Reverse Brushed DC Motor Controller
LDC1450 1x120A Single Channel Forward/Reverse Brushed DC Motor Controller Roboteq s LDC1450 controller is designed to convert commands received from an RC radio, Analog Joystick, wireless modem, PC (via
More informationpyfirmata Documentation
pyfirmata Documentation Release 1.0.0 Tino de Bruijn Sep 23, 2017 Contents 1 pyfirmata 3 2 Installation 5 3 Usage 7 4 Board layout 9 5 Indices and tables 11 Python Module Index 13 i ii pyfirmata Documentation,
More information