This is servo driver for HaaS Python. HaaS Python is forked from micropython.
Project description
HaaS Python介绍
HaaS Python是阿里云IoT团队最新研发的一套低代码编程框架,兼容MicroPython编程规范,依托HaaS平台软硬件积木提供AI、支付、蓝牙配网、云连接、UI等物联网场景常用的能力,从而解决了物联网应用开发难的问题。有了Python轻应用框架,物联网编程不再局限于专业软件开发人员,一般的技术员也可以快速实现复杂的物联网需求。 更多HaaS Python介绍和开发资料见HaaS Python官网,创意案例, 硬件积木
HaaS Python is a set of low-code programming frameworks newly developed by Alibaba Cloud IoT team. It is compatible with MicroPython programming specifications. It relies on the hardware and software building blocks of the HaaS platform to provide capabilities commonly used in IoT scenarios such as AI, payment, Bluetooth network configuration, cloud connection, and UI. Solve the difficult problem of IoT application development. With the Python light application framework, IoT programming is no longer limited to professional software developers, and general technicians can quickly implement complex IoT requirements. For more HaaS Python introduction and development materials, see HaaS Python official website, Creative Case, Hardware Building Blocks
安装方法
- 在HaaS Python官网下载开发板对应的固件,并完成固件烧录
Download the firmware corresponding to the development board at HaaS Python website and complete the firmware burning
- 在开发板上运行以下命令完成安装和使用,如果您在使用过程中遇到问题,欢迎在github上向我们提交issue,我们的工程师会及时解答
Run the following commands on the development board to complete the installation and use. If you encounter problems during use, please submit an issue to us on github, Our engineers will answer in time
import upip
upip.install("haas-python-servo")
import haas-python-servo
舵机(Servo)控制器
一、产品简介
舵机(英文叫Servo)是一种通过发送信号,指定输出旋转角度。舵机一般与普通直流电机的区别主要在于直流电机是一圈圈转动的,舵机只能在一定角度内转动,不能一圈圈转(舵机一般而言都有最大旋转角度,比如180度),可以反馈转动的角度信息。所以舵机主要用于控制某物体转动一定角度用的(比如机器人的关节、开关门),本驱动传感器型号是MG995.
引脚定义
- 棕色:地
- 黄色:输入信号
- 红色:3.3V
二、技术参数
- 使用电压:3-7.2V
- 反应转速:63-62r/m
- 工作电流:100mA
- 工作扭矩:13Kg/cm
- 工作温度:30°C-55°C
- 结构:金属锯齿、空心杯电机、双滚珠轴承
- 线长:25cm
三、软件接口
舵机(Servo)控制器HaaS Python驱动:下载地址
SERVO(pwmObj) - 创建舵机驱动对象
- 函数原型
servoObj = SERVO(pwmObj)
- 参数说明
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
pwmObj | PWM | 是 | 调用此函数前需确保pwmObj对象已经处于open状态 |
- 返回值
SERVO对象成功,返回SERVO对象;SERVO对象创建失败,抛出Exception
- 示例代码
import servo
from driver import PWM
print("Testing SERVO ...")
pwmObj = PWM()
pwmObj.open("servo")
servoObj = servo.SERVO(pwmObj)
- 输出
Testing SERVO ...
setOptionSero(data) - 设置舵机的转动
- 函数功能:
设置舵机的转动
- 函数原型:
SERVO.setOptionSero(data)
- 参数说明:
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
data | number | 是 | 范围从-90度到+90度,0为设置初始原始位置 |
- 返回值:
无
- 示例:
import servo
from driver import PWM
import utime
print("Testing SERVO ...")
pwmObj = PWM()
pwmObj.open("servo")
servoObj = servo.SERVO(pwmObj)
servoObj.setOptionSero(0)
print("0")
utime.sleep(10)
servoObj.setOptionSero(90)
print("90")
- 输出
Testing SERVO ...
0
90
四、接口案例
此使用实例在board.json中定义了名为SERVO的PWM类型的对象。在Python脚本中执行正90度到负90度转动的动作并打印在日志中。
- 案例代码
{
"name": "board-name",
"version": "1.0.0",
"io": {
"servo": {
"type": "PWM",
"port": 27
}
}
}
import servo
from driver import PWM
import utime
print("Testing SERVO ...")
pwmObj = PWM()
pwmObj.open("servo")
print("buzzer inited!")
servoObj = servo.SERVO(pwmObj)
servoObj.setOptionSero(0)
print("0")
utime.sleep(10)
while True: # 无限循环
servoObj.setOptionSero(90)
print("90")
utime.sleep(1)
servoObj.setOptionSero(0)
print("0")
utime.sleep(1)
servoObj.setOptionSero(-90)
print("-90")
utime.sleep(1)
servoObj.setOptionSero(0)
print("0")
utime.sleep(1)
- 输出
Testing SERVO ...
0
90
0
-90
0
90
五、工作原理
舵机的转动角度跟输入脉冲表
角度 | 脉冲周期 | 脉冲高电平时间 | 对应占空比 |
---|---|---|---|
0 | 20ms | 0.5ms | 2.5% |
45 | 20ms | 1ms | 5.0% |
90 | 20ms | 1.5ms | 7.5% |
135 | 20ms | 2ms | 10.0% |
180 | 20ms | 2.5ms | 12.5% |
从上表可以看出角度是由来自控制线的持续脉冲所产生。这种控制方法叫做脉冲调制。脉冲的长短决定舵机转动多大角度。例如:1.5毫秒脉冲会到转动到中间位置(对于180°舵机来说,就是90°位置)。当控制系统发出指令,让舵机移动到某一位置,并让他保持这个角度,这时外力的影响不会让他角度产生变化,但是这个是由上限的,上限就是他的最大扭力。除非控制系统不停的发出脉冲稳定舵机的角度,舵机的角度不会一直不变。
当舵机接收到一个小于1.5ms的脉冲,输出轴会以中间位置为标准,逆时针旋转一定角度。接收到的脉冲大于1.5ms情况相反。不同品牌,甚至同一品牌的不同舵机,都会有不同的最大值和最小值。一般而言,最小脉冲为1ms,最大脉冲为2ms。
总结:舵机角度的转动就是通过高、低脉冲的变化实现的。
参考文献及购买链接
[1] 购买链接
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file haas-python-servo-0.0.2.tar.gz
.
File metadata
- Download URL: haas-python-servo-0.0.2.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7b91dd05e7b38d23273914f06a3d66d0eba85e1debb7d064f9a650d9e2a7376 |
|
MD5 | 75da700dc3ebc57b9c0f1bc24499f8e0 |
|
BLAKE2b-256 | 8bf879eac0ad5559eb485fcce4570b2a8ac53a16d4db2ad7489db54620b28685 |