Atomic HDriver Base
支持以下产品:
UiFlow2 应用示例:
电机速度控制
在 UiFlow2 上打开 atoms3r_hdriver_base_example.m5f2 项目。
案例演示电机转速从低到高、高到低,并进行反向控制,从低到高、高到低。
UiFlow2 代码块:
示例输出:
无
MicroPython 应用示例:
电机速度控制
案例演示电机转速从低到高、高到低,并进行反向控制,从低到高、高到低。
MicroPython 代码块:
1# SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from base import AtomicHDriverBase 9import time 10 11 12title0 = None 13label0 = None 14label1 = None 15label_vol = None 16label_speed = None 17base_hdriver = None 18i = None 19speed = None 20 21 22def setup(): 23 global title0, label0, label1, label_vol, label_speed, base_hdriver, speed, i 24 M5.begin() 25 title0 = Widgets.Title("Speed Ctrl", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18) 26 label0 = Widgets.Label("speed:", 5, 65, 1.0, 0xFFFFFF, 0x000000, Widgets.FONTS.DejaVu18) 27 label1 = Widgets.Label("vol:", 5, 35, 1.0, 0xFFFFFF, 0x000000, Widgets.FONTS.DejaVu18) 28 label_vol = Widgets.Label("12.0V", 45, 35, 1.0, 0xFFFFFF, 0x000000, Widgets.FONTS.DejaVu18) 29 label_speed = Widgets.Label("0", 70, 65, 1.0, 0xFFFFFF, 0x000000, Widgets.FONTS.DejaVu18) 30 base_hdriver = AtomicHDriverBase(6, 7, 5, 8, 1000) 31 label_vol.setText(str((str((base_hdriver.get_voltage())) + str("V")))) 32 speed = 0 33 34 35def loop(): 36 global title0, label0, label1, label_vol, label_speed, base_hdriver, speed, i 37 M5.update() 38 for i in range(50): 39 speed = i 40 base_hdriver.set_speed(speed) 41 label_speed.setText(str(speed)) 42 time.sleep_ms(40) 43 for i in range(50): 44 speed = 50 - i 45 base_hdriver.set_speed(speed) 46 label_speed.setText(str(speed)) 47 time.sleep_ms(40) 48 for i in range(50): 49 speed = 1 - i 50 base_hdriver.set_speed(speed) 51 label_speed.setText(str(speed)) 52 time.sleep_ms(40) 53 for i in range(50): 54 speed = i - 50 55 base_hdriver.set_speed(speed) 56 label_speed.setText(str(speed)) 57 time.sleep_ms(40) 58 59 60if __name__ == "__main__": 61 try: 62 setup() 63 while True: 64 loop() 65 except (Exception, KeyboardInterrupt) as e: 66 try: 67 from utility import print_error_msg 68 69 print_error_msg(e) 70 except ImportError: 71 print("please update to latest firmware")
示例输出:
无
API应用
AtomicHDriverBase
- class base.hdriver.AtomicHDriverBase(in1=6, in2=7, fault=5, vin=8, freq=1000)
基类:
object创建一个 AtomicHDriverBase 对象。
- 参数:
UiFlow2 代码块:

MicroPython 代码块:
from base import AtomicHDriverBase base_hdriver = AtomicHDriverBase(in1 = 6, in2 = 7, fault = 5, vin = 8, freq = 1000)
- set_freq(freq=1000)
设置 PWM 频率。
- 参数:
freq (int) – PWM 频率,默认为1000。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
base_hdriver.set_freq()
- set_speed(speed=0)
设置电机速度。
- 参数:
speed (float) – 电机速度,范围:-100~100,默认为0。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
base_hdriver.set_speed()
- get_status()
获取驱动状态。
- 返回:
驱动状态。驱动正常工作返回 True,异常返回 False。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
base_hdriver.get_status()



