pdf-icon

UIFlow Guide

UiFlow1 Blockly

Event

Unit

UiFlow1 Development Guide

Project Management

UiFlow2 Development Guide

UI Editor

Device Security & Sharing

Module 4Encoder Motor

Example

The four coded clicks set different pwm values, control different speeds and directions, and print out input voltage values

from m5stack import *
from m5stack_ui import *
from uiflow import *
import module

screen = M5Screen()
screen.clean_screen()
screen.set_screen_bg_color(0xFFFFFF)

encoder4_motor = module.get(module.ENCODER4MOTOR)

encoder4_motor.init_i2c_address(0x24)
encoder4_motor.set_all_motors_mode(0x00)
while True:
  encoder4_motor.set_motor_pwm_dutycycle(0x00, (-127))
  encoder4_motor.set_motor_pwm_dutycycle(0x01, 50)
  encoder4_motor.set_motor_pwm_dutycycle(0x02, 95)
  encoder4_motor.set_motor_pwm_dutycycle(0x03, 127)
  print((str('Vin value:') + str((encoder4_motor.get_vin_current_int_value()))))
  wait_ms(2)

API

encoder4_motor.get_device_spec(0xFE)
  • Retrieves the firmware version information of the device.
encoder4_motor.get_encoder_mode()
  • Retrieves the direction information of the encoder mode.
encoder4_motor.get_motor_encoder_value(0x00)
  • Retrieves the encoder value of the specified motor.
encoder4_motor.get_position_PID_value(0x00)
  • Retrieves the position control PID values of the specified motor.
encoder4_motor.get_speed_PID_value(0x00)
  • Retrieves the speed control PID values of the specified motor.
encoder4_motor.get_motor_speed_value(0x00)
  • Retrieves the current speed value of the specified motor.
encoder4_motor.get_vin_adc_raw12_value()
  • Retrieves the 12-bit ADC (Analog-to-Digital Conversion) raw value of the input voltage.
encoder4_motor.get_vin_adc_raw8_value()
  • Retrieves the 8-bit ADC (Analog-to-Digital Conversion) raw value of the input voltage.
encoder4_motor.get_vin_current_float_value()
  • Retrieves the input voltage current value in amperes.
encoder4_motor.get_vin_current_int_value()
  • Retrieves the input voltage current value in milliamps.
encoder4_motor.get_vin_voltage()
  • Retrieves the voltage value of the input voltage, returning an integer.
encoder4_motor.init_i2c_address(0x24)
  • Initializes the I2C address of the device, ranging from 0x01 to 0x7F.
encoder4_motor.set_encoder_mode(0x00)
  • Sets the direction of the encoder mode, with options for "AB" or "BA" mode.
encoder4_motor.set_i2c_address(0x24)
  • Sets the I2C address of the device.
encoder4_motor.set_motor_mode(0x00, 0x00)
  • Sets the running mode of motor 1. The drop-down menu provides three options:
    • NORMAL: Normal mode, where the motor operates according to default settings.
    • POSITION: Position control mode, controlling the motor movement by specifying a position.
    • SPEED: Speed control mode, controlling the motor rotation by specifying a speed.
encoder4_motor.set_all_motors_mode(0x00)
  • Sets the mode for all motors:
    • NORMAL: Normal mode, where motors operate according to default settings.
    • POSITION: Position control mode, controlling motor movement by specifying positions.
    • SPEED: Speed control mode, controlling motor rotation by specifying speeds.
encoder4_motor.set_motor_encoder_value(0x00, 1000)
  • Sets the encoder value for the motor, which typically represents the current position or cumulative rotation of the motor.
encoder4_motor.set_position_encoder_value(0x00, 1000)
  • Sets the position encoder value for the motor. This value is used to specify the target position or current position in position control mode.
encoder4_motor.set_position_max_speed_value(0x00, 100)
  • Sets the maximum speed value in position control mode, ranging from -127 to 127.
On This Page