查看“舵机驱动”的源代码
←
舵机驱动
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== 目的 == 最近几年国内机器人开始起步发展,很多高校、中小学都开始进行机器人技术教学。小型的机器人、模块化的机器人、组件式的机器人是教学机器人的首选。在这些机器人产品中,舵机是最关键,使用最多的部件。 根据控制方式,舵机应该称为微型伺服马达。早期在模型上使用最多,主要用于控制模型的舵面,所以俗称舵机。舵机接受一个简单的控制指令就可以自动转动到一个比较精确的角度,所以非常适合在关节型机器人产品使用。仿人型机器人就是舵机运用的最高境界。 本讲将大家用[[ Microduino-CoreSTM32]]驱动一个舵机。 == 设备 == *[[ Microduino-CoreSTM32]] Microduino-CoreSTM32是采用 STM32F103CBT6芯片的ARM开发板,采用独特的Upin7接口,大小与一枚一元硬币差不多大,完全兼容Microduino其他扩展模块。 *其他硬件设备 *面包板跳线 一盒 *面包板 一块 *3线电位器 一个 *舵机 一个 *USB数据连接线 一根 [[File:advance5_1.jpg|600px|center|thumb]] == 原理 == '''电位器''' 电位器是具有三个引出端、阻值可按某种变化规律调节的电阻元件。电位器通常由电阻体和可移动的电刷组成。当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系的电阻值或电压。电位器的作用是调节电压(含直流电压与信号电压)和电流的大小,本课通过电位器调节电压的大小来控制舵机转动的角度。 [[File:advance5_2.jpg|600px|center|thumb]] '''舵机''' 这讲采用的舵机为辉盛 SG90舵机,其外形图如下所示。图中红线为为正,棕色为负,橙色为信号线。 [[File:advance5_3.jpg|600px|center|thumb]] 机的控制信号为周期20ms的脉宽调制信号(PWM),其中脉冲宽度从0.5ms-2.5ms,相对应舵盘的位置为0-180度,呈线性变化。也就是说, 给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎么变化,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。 舵机内部有一个基准电路,产生周期20ms、宽度1.5ms的基准信号,有一个比较器将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。 [[File:advance5_4.jpg|600px|center|thumb]] ''' 原理图 ''' [[File:advance5_5.jpg|600px|center|thumb]] == 程序 == <source lang="cpp"> int servoPin=13; //servo control pin int inputPin=14; //read the voltage value of the potentiometer int voltage; // Define a pulse function // period:20ms pulsewidth 0.5-2.5ms = 0-180 angle void servoPulse(int pin,int angle) { int pulseWidth=map(angle,0,180,500,2500); digitalWrite(pin,HIGH);//set servo port HIGH delayMicroseconds(pulseWidth); digitalWrite(pin,LOW);//set servo port LOW delayMicroseconds(20000-pulseWidth); } void setup() { pinMode(servoPin,OUTPUT); pinMode(inputPin,INPUT_ANALOG); } void loop() { voltage=analogRead(inputPin); int angle=map(voltage,0,4096,0,180); SerialUSB.println(angle); servoPulse(servoPin,angle); delay(10); } </source> 程序说明: *servoPulse(int pin,int angle) 产生不同脉宽的PWM波形。把0-180角度映射到0.5ms-2.5ms的脉宽上,脉宽不同多盘的位置不同。 == 调试 == 步骤一:按着原理图,连接电路图。 [[File:advance5_6_1.jpg|600px|center|thumb]] [[File:advance5_6_2.jpg|600px|center|thumb]] 步骤二:复制程序代码到Maple IDE中编译。 步骤三:下载程序,打开串口监视界面,并观察结果。 == 结果 == == 视频 ==
返回至
舵机驱动
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息