Kenate

API Reference

Motor API

Control motors and servos from your State classes using simple, intuitive methods. No arcane incantations required.

Motion Methods

These methods are available on any class that inherits from kenate.BaseState.

MethodDescription
set_motor_speed(motor_id, speed)Set speed from -100.0 to 100.0
set_servo_angle(servo_id, angle)Set angle from 0 to 180 degrees
stop_all_motors()Set all motors to 0 immediately

set_motor_speed(motor_id, speed)

Controls the speed of a DC motor. Negative values go backward. It's not rocket science.

Parameters

  • motor_idIndex from hardware.toml (0, 1, 2...)
  • speedFloat from -100.0 (full reverse) to 100.0 (full forward)

Example

def on_update(self):
    # Left wheel forward
    self.set_motor_speed(0, 75)
    
    # Right wheel backward
    self.set_motor_speed(1, -75)

set_servo_angle(servo_id, angle)

Moves a servo to a specific angle. Great for arms, grippers, and other pointy things.

Parameters

  • servo_idIndex from hardware.toml
  • angleFloat from 0 to 180 degrees

Example

def on_enter(self):
    # Point arm at center
    self.set_servo_angle(0, 90)

def on_exit(self):
    # Lower arm
    self.set_servo_angle(0, 0)

stop_all_motors()

Emergency stop. Immediately sets all registered motors to speed 0. For when things get interesting.

Example

class AlertState(kenate.BaseState):
    def on_enter(self):
        # Stop everything immediately
        self.stop_all_motors()
        self.log("EMERGENCY STOP")