Package: haas-python-servo
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, seeHaaS Python official website,Creative Case,Hardware Building Blocks安装方法在HaaS Python官网下载开发板对应的固件，并完成固件烧录Download the firmware corresponding to the development board atHaaS Python websiteand 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 ongithub, Our engineers will answer in timeimport 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)参数说明参数类型必选参数？说明pwmObjPWM是调用此函数前需确保pwmObj对象已经处于open状态返回值SERVO对象成功，返回SERVO对象；SERVO对象创建失败，抛出Exception示例代码importservofromdriverimportPWMprint("Testing SERVO ...")pwmObj=PWM()pwmObj.open("servo")servoObj=servo.SERVO(pwmObj)输出TestingSERVO...setOptionSero(data) - 设置舵机的转动函数功能：设置舵机的转动函数原型：SERVO.setOptionSero(data)参数说明：参数类型必选参数？说明datanumber是范围从-90度到+90度，0为设置初始原始位置返回值：无示例：importservofromdriverimportPWMimportutimeprint("Testing SERVO ...")pwmObj=PWM()pwmObj.open("servo")servoObj=servo.SERVO(pwmObj)servoObj.setOptionSero(0)print("0")utime.sleep(10)servoObj.setOptionSero(90)print("90")输出TestingSERVO...090四、接口案例此使用实例在board.json中定义了名为SERVO的PWM类型的对象。在Python脚本中执行正90度到负90度转动的动作并打印在日志中。案例代码{"name":"board-name","version":"1.0.0","io":{"servo":{"type":"PWM","port":27}}}importservofromdriverimportPWMimportutimeprint("Testing SERVO ...")pwmObj=PWM()pwmObj.open("servo")print("buzzer inited!")servoObj=servo.SERVO(pwmObj)servoObj.setOptionSero(0)print("0")utime.sleep(10)whileTrue:# 无限循环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)输出TestingSERVO...0900-90090五、工作原理舵机的转动角度跟输入脉冲表角度脉冲周期脉冲高电平时间对应占空比020ms0.5ms2.5%4520ms1ms5.0%9020ms1.5ms7.5%13520ms2ms10.0%18020ms2.5ms12.5%从上表可以看出角度是由来自控制线的持续脉冲所产生。这种控制方法叫做脉冲调制。脉冲的长短决定舵机转动多大角度。例如：1.5毫秒脉冲会到转动到中间位置（对于180°舵机来说，就是90°位置）。当控制系统发出指令，让舵机移动到某一位置，并让他保持这个角度，这时外力的影响不会让他角度产生变化，但是这个是由上限的，上限就是他的最大扭力。除非控制系统不停的发出脉冲稳定舵机的角度，舵机的角度不会一直不变。当舵机接收到一个小于1.5ms的脉冲，输出轴会以中间位置为标准，逆时针旋转一定角度。接收到的脉冲大于1.5ms情况相反。不同品牌，甚至同一品牌的不同舵机，都会有不同的最大值和最小值。一般而言，最小脉冲为1ms，最大脉冲为2ms。总结：舵机角度的转动就是通过高、低脉冲的变化实现的。参考文献及购买链接[1]购买链接