Atomic HDriver Base

支持以下产品:

Atomic HDriver Base

UiFlow2 应用示例:

电机速度控制

在 UiFlow2 上打开 atoms3r_hdriver_base_example.m5f2 项目。

案例演示电机转速从低到高、高到低,并进行反向控制,从低到高、高到低。

UiFlow2 代码块:

atoms3r_hdriver_base_example.png

示例输出:

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 对象。

参数:
  • in1 (int) – PWM 控制引脚1

  • in2 (int) – PWM 控制引脚2

  • fault (int) – 驱动状态。

  • vin (int) – 驱动输入电压检测。

  • freq (int) – PWM 频率。

UiFlow2 代码块:

init.png

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 代码块:

set_freq.png

MicroPython 代码块:

base_hdriver.set_freq()
get_freq()

获取 PWM 频率。

返回:

PWM 频率。

返回类型:

int

UiFlow2 代码块:

get_freq.png

MicroPython 代码块:

base_hdriver.get_freq()
set_speed(speed=0)

设置电机速度。

参数:

speed (float) – 电机速度,范围:-100~100,默认为0。

返回类型:

None

UiFlow2 代码块:

set_speed.png

MicroPython 代码块:

base_hdriver.set_speed()
get_status()

获取驱动状态。

返回:

驱动状态。驱动正常工作返回 True,异常返回 False。

返回类型:

bool

UiFlow2 代码块:

get_status.png

MicroPython 代码块:

base_hdriver.get_status()
get_voltage()

获取电压。

返回:

驱动输入电压,单位:V。

返回类型:

float

UiFlow2 代码块:

get_voltage.png

MicroPython 代码块:

base_hdriver.get_voltage()