机器人算法怎么入门控制该怎么入门

分享给朋友:20机器人入门之一:如何控制直流电机的正反转下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效20机器人入门之一:如何控制直流电机的正反转扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本
药品服务许可证(京)-经营- 请使用者仔细阅读优酷、、、Copyright(C)2017 优酷
版权所有不良信息举报电话:热门搜索:
当前位置:
机器人入门资料:机器人关键技术解析
基于单一传感器的环境感知方法都有其难以克服的弱点。将多种传感器的信息有机地融合起来,通过处理来自不同传感器的信息冗余、互补,就可以构成一个覆盖几乎所有空间和时间的检测系统,可以提高感知系统的能力。
  三、  在地面上移动的按移动方式不同,大概可以分成两类,一类是轮式或履带式机器人,另一类是行走机器人,二者各有特点。  1、轮式或履带式机器人&&纵向控制与横向控制  轮式机器人稳定性高,可以较快的速度移动,无人车、外星探测器等都是典型的代表。大部分轮式或履带式机器人的运动控制可分成纵向控制和横向控制两部分,纵向控制调节移动速度;横向控制调节移动轨迹,一般采用预瞄-跟随的控制方式。对无人车来说,在高速行驶时稳定性会下降。因此,根据速度的不同需要采取不同的控制策略。在高速行驶时通过增加滤波器、状态反馈等措施来提高稳定性。  履带机器人  2、行走机器人&&控制和液压控制  行走机器人稳定性差,移动速度慢,但可以跨越比较复杂的地形,比如台阶、山地等。与轮式机器人不同的是,行走机器人本身是个不稳定的系统,因此运动控制首先要解决稳定性的问题,然后才能考虑使其按既定的轨迹移动的问题。目前,主流的行走机器人控制方式有两种:电机控制和液压控制,二者各有利弊。电机控制机构相对简单,但负载能力有限;液压控制可以获得较大的负载能力,但机构复杂。  利用电机和轴承模拟人的关节,从而控制机器人稳定行走,是机器人控制通常的方式。运动控制一般是将末端轨迹规划与稳定控制相结合:首先规划脚掌的轨迹,再通过机器人运动学求解各个关节电机的旋转角。理论情况下,按上述计算得到的关节角能够保证脚掌轨迹跟踪,但实际环境中存在很多扰动,需要对关节角进行反馈校正,保证稳定性。稳定控制方法很多,其中一种简单而常用的方法被称为零力矩点(zero moment point,ZMP)法。其特征是:通过检测实际ZMP的位置与期望值的偏差,闭环调整关节角,使ZMP始终位于稳定区域以内,从而保证机器人不会摔倒。  闭环控制要求各个关节快速响应外界的扰动,这对负载能力有限的电机来说是比较困难的。而液压系统的负载能力较高,因此具有更优秀的抗扰性能。例如Boston Dynamics公司研制的Atlas机器人,在单脚独立的情况下,被外力从侧面击打,仍然能保持不倒。这其中虽然不乏先进的控制方法,但其液压系统的负载能力无疑是成功的有力保障。  Atlas机器人
&&&&&&&&&&&&
本文由入驻OFweek公众平台的作者撰写,除OFweek官方账号外,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
邮箱/用户名:
忘记密码?
用其他账号登录: QQ
请输入评论
机械自动化单片机
广东省/深圳市
四川省/成都市
广东省/深圳市
广东省/深圳市
广东省/深圳市
广东省/深圳市
北京市/海淀区
广东省/深圳市
广东省/深圳市
广东省/惠州市
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:玩转Arduino控制器——入门篇
玩转Arduino控制器——入门篇
上期为大家介绍了基于Arduino的互动电子入门套件,很多朋友一定对它产生了浓厚的兴趣,Arduino非常易于上手,其稳定通用的硬件模块、简洁实用的IDE(集成开发环境)、通俗易懂的程序代码、免费开源的网络素材......都成为吸引广大电子爱好者的亮点。
那么,请大家跟随我的步伐一起完成两个Arduino入门学习的小制作:干簧管控制电机旋转、智能温控电风扇。相信通过我的介绍大家一定会对Arduino的入门学习豁然开朗。
制作一:干簧管控制电机旋转
干簧管是什么呢?干簧管(图1)是一种磁敏的特殊开关,也称干簧继电器。它通常由两个或三个软磁性材料做成的簧片触点,被封装在充有惰性气体(如氮、氦等)或真空的玻璃管里,玻璃管内平行封装的簧片端部重叠,并留有一定间隙或相互接触以构成开关的常开或常闭触点。当永久磁铁靠近干簧管或者有绕在干簧管上的线圈通电形成的磁场使簧片磁化;那么,簧片部分就会被磁力吸引。当吸引力大于弹簧的弹力时,触点就会吸合;当磁力减小到一定程度时,触点被弹簧的弹力打开。随着时代发展,现在又新生出一种塑封干簧管,避免了传统玻璃干簧管易碎的缺点。干簧管比一般机械开关结构简单、体积小、速度高、工作寿命长;而与电子开关相比,它又有抗负载冲击能力强等特点,工作可靠性很高。当我们想启动采用干簧管的电路时,只需拿一小块磁钢(图2)靠近干簧管就可以了。
干簧管又是怎么控制电机旋转的呢?其实原理很简单,使用Arduino控制器对干簧管触点的开合状态进行判断,如果干簧管闭合则控制电机旋转,干簧管断开则控制电机停转。当然,为了便于观测电机的旋转动作,我们再给电机配一顶帽子——扇叶。
原理弄懂啦,听上去还不错吧!是不是想试着做一个这样的装置呀,接下来让我动手开始做吧…
准备好以下必备材料(图3):
1N4007二极管一个、10K电阻一个、干簧管一个、IRF520场效应管一个、LM35温度传感器一个、磁钢一块、塑料风扇一个、电机一个、Arduino控制器一个、USB连接线一条、面包板一块、面包板线若干。若无实验器材的朋友可以在电子制作淘宝店购买。
电路连接图(图4):
接下来我们按照图4的连接图开始装配:
第一步:将风扇与电机组装好(图5),电机两端要接上引线。
第二步:在面包板上按连接图所示的位置插好各个元器件。这里要说明一下:驱动电机旋转需要几十毫安至上百毫安的电流,而Arduino控制器的接口最大仅仅能够提供20mA左右的电流,这样小的电流是无法驱动电机旋转的。所以我们要用间接驱动的方式,通过一片IRF520场效应管来扩大驱动电流,这样才能让电机正常工作。
此外,电机两端反接了一个1N4007二极管,其目的是为了保护IRF520,因为电机停转的过程中会产生比较高的反向电动势,为了避免这个电动势击穿IRF520,故在电机两端反接一个二极管作为保护。
第三步:按照上图所示的连接图插接面包板,用红色的面包板线连接所有的5V电路,用黑色的面包板线连接所有的GND电路。信号线则可用橙色或黄色的线连接(图6)。这样的好处是检查电路非常方便,一目了然不易出错,希望大家能够培养这样的电路连接习惯,对于提高以后的电子制作效率和成功率有非常大的帮助。
图6&干簧管电路实物连接图(注:橙色为信号线)
大功告成,硬件安装完毕,是不是很简单呀?不过要想让它工作起来,我们还需要给硬件加上灵魂——程序。
搭建集成开发环境:
我们要在计算机上安装一个软件,名字叫做Arduino IDE。Arduino
IDE可以在Arduino官网http://arduino.cc/en/
下载,该软件集编写、下载、串口监视器于一体的集成开发环境,完全开源免费,它还是个绿色软件,解压后可以直接运行,没有任何复杂的安装步骤,大家甚至可以把它拷进U盘,随时随地玩转Arduino!
麻雀虽小,五脏俱全,从简易的流水灯到复杂的机器人,都有Arduino
IDE的身影,全平台兼容是它的另一优点,无论你是用微软操作系统还是苹果操作系统,都没问题!&
& & 大家刚刚下载到的Arduino
IDE可能是英文界面的,Arduino IDE支持多种语言,因此我们可以切换到中文界面(图7),方法是:打开Arduino
IDE→“File”菜单→“Perferences”→“Editor language”下拉菜单中选择“简体中文Chinese
Simplified”→重启Arduino IDE。
驱动安装与配置软件:
软件装好后,我们用USB线连接Arduino控制器到计算机。第一次连接Arduino控制器操作系统会提示找不到硬件,打开计算机的“设备管理器”,能够看到带叹号的未知设备,单击右键选择“更新驱动程序软件(P)”,选择“浏览计算机以查找驱动程序软件(R)”(图8),点击“浏览(R)”选择“计算机”→“D:”盘→“arduino-1.0.1”文件夹→选中“drivers”文件夹(图9),按“确定”键,点击“下一步”,如果弹出windows安全警告,则点击“始终安装此驱动程序软件”(图10),稍等片刻,安装成功。在“设备管理器”中打开“端口(COM和LPT)”项目,此时应能够看到“Arduino
R3(COM3)”(图11),注意,这里不一定是COM3,也有可能是COM2、COM4、COM5等等,先把它记下来。
& & 打开Arduino
IDE,选择“工具”菜单→“串口”子菜单,选中刚才记下来的“COM3”(图12)。最后还须配置目标电路板型号,“工具”菜单→“板卡”子菜单→选中“Arduino
Uno”(图13)。
图8图9图10
图11图12图13
软件编译:
& & 我们把下面的程序代码复制到Arduino
IDE中,我们先校验一下,点击软件界面上的校验按钮,稍后如果显示编译完毕则表示程序没有问题。现在点击下载按钮,稍等片刻,IDE视窗下面的窗口显示下载完毕,说明程序已经下载到控制器中。
程序部分:
#define FAN_pin 9 & //电机接口
#define Magnetic_pin 5 &//干簧管接口
void setup() { &//此函数上电只运行一次
& pinMode(Magnetic_pin,INPUT);
&//设定干簧管接口为输入状态
void loop() { &//此函数循环运行
& if(digitalRead(Magnetic_pin)
&== LOW) { &//当有磁铁靠近干簧管
digitalWrite(FAN_pin,HIGH); &//电机旋转
& else { &//否则
digitalWrite(FAN_pin,LOW); &//电机停转
这段程序代码很简单,前两行代码使用宏定义(#define)定义了硬件连接的接口,setup()函数在板子上电的时候只执行一次,我们在这里将干簧管接入的引脚定义为输入状态pinMode(Magnetic_pin,INPUT)。而loop()函数在setup()函数执行完后便一直循环运行,在这里我们只让Arduino做一件事:如果(if)干簧管所连接的接口digitalRead(Magnetic_pin)读回来的电平是低电平(==
LOW),则控制连接风扇的接口digitalWrite
(FAN_pin,HIGH)电平为高,电机旋转;否则(Else),控制连接电机的接口digitalWrite(FAN_pin,LOW)电平为低,电机你就老老实实的歇着吧!
制作到这里,我们的干簧管控制电机旋转就全部完工啦
看看我们最终的实验效果吧:
哎?电机怎么不转呢(图14)!拿块小磁钢试试,哈哈!电机转啦(图15),还伴随着丝丝凉风呢!
大家觉得太easy了?那我们再趁热打铁、开大马力加加油吧!
制作二:智能温控风扇
我们来设想制作一个这样的风扇:当温度高时电机旋转,温度低时电机停转的智能温控风扇。看到这里大家是不是若有所思呢?这个小制作和刚完成的干簧管控制电机有着一曲同工之妙呀,都是要控制电机,但似乎缺少些什么?要实现对温度的感知这个功能,首先要找一个能够测量温度的元器件。LM35温度传感器就很不错,它具有很高的工作精度和较宽的线性工作范围,该器件输出电压与摄氏温度成线性比例,每升高1℃,输出电压增加10mV。LM35
无需外部校准或微调,便可提供±1/4℃的常用室温精度,用在这个智能温控风扇上足矣。所以只要在原来的电路基础上添枝加叶我们就可以轻松地得到这个智能的温控风扇啦!
开始动手吧!
电路连接图(图16):
利用刚才连接好的干簧管控制电机旋转电路,对照图16的连接图我们只需要再在面包板上插一个LM35和一条黄色信号线就搞定了(图17)!黄色面包板线一端连接LM35中间脚,一端连接Arduino控制器的ANALOG
IN模拟端口A5(图18)。
把下面的程序代码复制到Arduino IDE中,重复实验一的步骤完成编译下载。
#define FAN_pin 9 //风扇接口9
#define Magnetic_pin 5 &//干簧管接口5
#define LM35_pin 1 //LM35温度传感器接口 1
#define LED_pin 13 //LED指示灯,温度高于阈值时点亮
#define High_level 28 //设定高温阈值
int LM35_buffer = 0; //温度值缓存
void setup() {
& pinMode(Magnetic_pin,INPUT);
//设定干簧管接口为输入状态
& pinMode(LED_pin, OUTPUT);
//设定LED指示灯接口为输出状态
void loop() {
& LM35_buffer = ( 5.0 * analogRead(LM35_pin)
* 100.0) / 1024.0; //读取LM35温度
& if(LM35_buffer & High_level)
{ & //如果温度高于阈值
& & digitalWrite(LED_pin,
HIGH); & //点亮LED灯
digitalWrite(LED_pin,LOW); &//熄灭LED灯
& if((digitalRead(Magnetic_pin) == LOW)
&& (LM35_buffer &
High_level)){
//如果有磁铁靠近干簧管且温度高于高温阈值
digitalWrite(FAN_pin,HIGH); &//电机旋转
& else { &
digitalWrite(FAN_pin,LOW); &//电机停转
我们在刚才写好的程序基础上添加LM35接口和LED指示灯接口的宏定义语句,还对高温阈值做了宏定义(#define High_level
28)。跟之前的程序流程类似,在setup()函数中添加一句初始化LED指示灯的语句,令连接LED指示灯的引脚为输出状态。在loop()函数中首先用analogRead(LM35_pin)函数读取LM35中间引脚的电压值,读出的数据缓存在LM35_buffer变量中。如果温度高于阈值,则点亮LED指示灯,否则熄灭LED指示灯。接下来如果有磁铁靠近干簧管并且温度高于阈值,则驱动电机旋转,否则控制电机停转。
完成效果图:
Arduino控制器上板载的LED指示灯用来指示温度状态,LED灯亮起表示当前室温大于高温阈值。
当磁钢靠近干簧管,且温度达到高温阈值时LED亮,风扇转动(图19);温度低于高温阈值时LED不亮,风扇不转(图20)。
当磁钢远离干簧管,无论温度是否超过限定值,风扇都不转(图21和图22)。
这两个制作的实际应用是什么呢?
比如可以用在类似的恒温箱控制系统中,把干簧管装在门上,当拉开门时停止风扇的动作来保障人身安全。在这里只是抛砖引玉的一种说法,更多的创意灵感还要看各位读者朋友发掘了。
通过这次实验,大家是不是更加熟悉Arduino了呢?是不是还想再做点什么?别急,慢慢来,我将在下一期玩转Arduino控制器-中级篇中带领大家制作更多酷炫好玩的作品!——转自《电子制作》2013年第1期
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
按住视频可进行拖动
&正在加载...
收藏成功,可进入
查看所有收藏列表
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
用爱奇艺APP或微信扫一扫,在手机上继续观看
当前播放时间:
一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
正在检测客户端...
您尚未安装客户端,正在为您下载...安装完成后点击按钮即可下载
, 可在设置中重新打开噢!
30秒后自动关闭
115期:机器人程序设计之如何正确入门ROS | 硬创公开课">115期:机器人程序设计之如何正确入门ROS | 硬创公开课
请选择打赏金额:
播放量数据:快去看看谁在和你一起看视频吧~
更多数据:
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
安装爱奇艺视频客户端,
马上开始为您下载本片
5秒后自动消失
&li data-elem="tabtitle" data-seq="{{seq}}"& &a href="javascript:void(0);"& &span>{{start}}-{{end}}&/span& &/a& &/li&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"& &a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
本奖品由提供
红包雨下完了,下次早点来噢~

我要回帖

更多关于 工业机器人编程入门 的文章

 

随机推荐