请问快­ 3德勤财务机器人哪里买怎么买

制作会呼吸的WIFI机器人 | 科学人 | 果壳网 科技有意思
制作会呼吸的WIFI机器人
自制遥控机器人
Wifi机器人
本文作者:sfwer
★★★★☆
★★★★☆
首先需要解释一下什么是“Shy ”:
“Shy ”是一个采用LINUX开源系统-Openwrt制作的WIFI机器人,它支持PC端,android端,web端的无线控制和无线视频传输,apple端的视频传输,甚至还可以当作你的电脑高清免驱动摄像头使用。
技术上来说,它大致分为三个部分,首先是加载Openwrt系统的Liunx平台,它连接摄像头,并通过WIFI接收控制命令。然后此平台通过串口连接单片机,再由单片机控制各种感应,驱动电路。你可以在手机上指挥它到处跑,然后拍下想要的照片。
值得注意的是,openwrt系统是开源的,我们可以在PC机上编译自己的openwrt系统和自己的软件,另外单片机的扩展应用成千上万,因此这架机器人具有相当高的可玩性与非常广泛的应用。
shy的原型来自于《star wars》中的R2D2。
机器人的主题是“呼吸”,缓慢变化的蓝光使它们成为你卧室中最酷的装置。
首先要选择能够加载Openwrt平台的硬件设备,其实能加载LINUX系统的设备非常常见,比如我们家庭用的路由器。
这里要注意的是路由器的选择,首先,路由器要能够加载openwrt系统,其次,要具有USB口以及TTL接口。
一般来讲,我们选择的型号是DB120或者RG100A-AA,我选择的型号是RG100A-AA。
得到路由器后,首先要做的事是给路由器换个系统,即通俗所说的“刷机”,关于网络上RG100A-AA刷机的教程很多,这里不再赘述,不过需要补充的是,对于拥有单片机的爱好者,大可不必专门购买USB-TTL线,我们手中的单片机的开发板就可以为路由器与个人PC进行连接,下面给出开发板与路由器TTL线的连线图,,路由器从左到右依次是:VCC ,GND ,TX ,RX,这里注意一定不要接VCC线。
我的系统是Openwrt backfire 10.03.1 RC6
测试单片机的开发板是否连接正确,可以通过PUTYY的串口连接方式进行连接,注意这里的波特率是:115200
COM口的选择要查看个人PC中的设备管理器,以连接的为准。
刷完系统后,设置个人PC的网络IP:192.168.1.X,以及子网掩码255.255.255.0。这里的X是除1之外的任意,当然不能大于255
然后连接个人PC与路由的LAN3口,用PUTYY进行SHH连接,输入用户名ROOT ,以及密码ADMIN ,设置以及连接正确后进入。
设置IP的目的是为了上传摄像头的驱动文件,我采用的摄像头是OV519芯片的SONY摄像头,因此驱动文件为:
kmod-video-gspca-ov519_2.6.32.27-1_brcm63xx.ipk
运行winscp,将IPK包上传到根目录下,注意,这里要选择SCP方式。
成功连接后。
winscp非常方便,拖拽文件即可,跟FTP方式完全一样。
我的摄像头。
上传完毕后,运行PUTTY,进行安装,安装口令:opkg install xxx.ipk
安装完毕后可以用dmesg命令进行查看是否安装完成,或者直接在浏览器中输入192.168.1.1以图形化的方式进行查看。
安装完驱动后,安装MJPG-STREAMER,这是一个用于查看视频IPK程序,可以直接在浏览器中查看摄像头捕捉到的图像,注意安装完毕后要开启服务,或者也可以设置为自自动,这里不再赘述。
这里我采用了网络上研究智能机器人的前人Liuviking的程序来捕捉MJPG-STREAMER的图像,运行此程序要先安装,DOTNET3.5,运行后成功便如图所示:
至此,摄像头的安装结束。
首先解释一下什么是ser2net.ipk软件包。
这是一个可以通过个人PC向路由的指定端口发送数据,然后路由原封不动的将数据发送到路由的TTL接口的程序。
当安装完这个程序后,我们就可以通过编制的程序向路由的TTL口发送串行数据,意义在于:单片机就可以接受路由发送的串行数据进行各种控制。
下面简略的讲解如何在openwrt下进行软件包ser2net.ipk的安装
有两种方法:
方法一是在路由已经联结上互联网的情况下,可以由网络进行安装。非常的方便,但我并未采用。
方法二是利用winscp连接上路由,上传ser2net.ipk,然后运行putty,登陆路由执行
opkg update
opkg install 软件包地址
同昨日安装ov519驱动。
安装完毕ser2net后,需要进行一定的设置,在命令行界面下输入
进入路由根目录,再输入
进入ect 目录后执行
vi ser2net.conf (当安装成功后才会出现此设置文件)
2001:raw:600:/dev/ttyS0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
#2002:raw:600:/dev/ttyS1:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
注意,这里"#"代表的是屏蔽,我们修改的是非屏蔽语句,可以看到,上位机发送的端口是2001,这就是我们需要发送的端口号,波特率是9600,其它的略。
设置完毕后记得保存退出,然后这里要执行一次ser2net,以开启服务。
一切设置妥当后,我们再次借用liuviking的程序进行串口通讯的测试,运行liuviking的程序,然后再运行“串口调试助手”,在程序中点击发送串口数据,可以看到在“串口调试助手”,有正确的数据输出,至此,Shy的串口连接部分设置完毕。
添加自启动项的目的是为了在SHY启动的时候能够自动启动更多的服务,配合UCI命令。
在/etc/init.d里添加需要启动的shell脚本,假设名字为my-plugin。接下来模仿该目录下其他启动脚本的格式,添加你的代码。
[cpp] view plaincopyprint?
#!/bin/sh /etc/rc.common
# /init.d/my-plugin
#启动项执行的代码
killall my-plugin
之后还需要在rc.d目录下做一个链接,启动时系统会按顺序启动rc.d目录下的脚本链接,对应执行init.d目录下的启动脚本。
链接命令如下:ln -s ../init.d/my-plugin /etc/rc.d/S50my-plugin
参考地址:
/etc/rc.d/init.d和/etc/init.d 联系区别
我们选用STC11F02E单片机作为SHY的控制芯片电路部分,关于STC11F02E的参数如下:
STC11F02E单片机为增强型的8051内核,具有2KB的片内Flash程序存储器、2KB的EEPROM存储器和256KB的片内SRAM数据存储器。
这款单片机的UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)模块的最大特点就是通过配置特殊功能寄存器AUXR1中的第7位UART_P1的状态可以使UART模块的两个引脚(RXD、TXD)接到P3端口的P3.0、P3.1引脚,或者接到P1端口的P1.6、P1.7引脚,从而可以充当两个串口使用。
因为制作SHY需要的引脚并不是很多,所以我们只需要20引脚的单片机即可。这片STC11F02E
符合20引脚,小巧,作为增强型STC芯片,功耗小。
有两个串口通讯接口,可一个用于下载,一个用于openwrt路由通讯。
从DATASHEET中得到STC11F02E 的芯片管脚图
在这里,我们需要用到:
P1.7 作为串口的TX(transmit) 传送 接口
P1.6 作为串口的RX(Recive) 接收 接口
P1.5 - P1.0 用于控制L298N驱动电路
P3.7 用于PWM控制LED灯
P3.6/RST 用于复位电路
XTAL1 用于11.0592MHZ晶振
TXD 用于在线下载线路
复位电路图
RST保持两个机器周期以上的高电平时自动复位
晶振,复位电路,VCC,GND,连接好后
至此,STC11F02E最小系统完成。
接收串口数据的目的是为了与openwrt路由完成通讯,STC11F02E要准确无误的辨识出openwrt路由发过来的指令,编制测试程序如下:
#define uchar unsigned char
#define uint unsigned int
unsigned char Receive(void)
while(RI==0);
//只要接收中断标志位RI没有被置“1” 当接收完毕时,中断标志RI被置1
//等待,直至接收完毕(RI=1)
//为了接收下一帧数据,需将RI清0
//将接收缓冲器中的数据存于dat
void main (void)
SCON = 0x50;
//REN=1允许串行接受状态,串口工作模式2
TMOD|= 0x20;
//定时器1工作方式2
TH1 = 0xFD;
波特率9600、数据位8、停止位1。效验位无 (11.0592M)
TL1 = 0xFD;
REN=1; while(1)
if(Receive() == 'W') P1=~P1;
以上程序有一个缺点是,并没有使用串口中断,其实在在这个程序上,用不用中断处理程序对于单片机都是一样的,因为使用的是一样的开销。但是,我们在前面提到过,完成Shy的一个目的是学习,所以我们要使用串口中断完成这个程序的编制 完成串口中断的编写,如下:
#define uchar unsigned char
#define uint unsigned int
void InitUART
SCON = 0x50;
TMOD|= 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
//允许串行口中断
//单片机中断允许
unsigned char Receive(void)
while(RI==0);
void main (void)
InitUART();
while(1){}
void serial (void) interrupt 4 using 3
if(Receive() == 'W') P1=~P1;
可以看到,程序被精简,并且模块化,主函数中几乎没有代码。经过测试,能够正常使用。
interrupt 0
指明是外部中断0;
interrupt 1
指明是定时器中断0;
interrupt 2
指明是外部中断1;
interrupt 3
指明是定时器中断1;
interrupt 4
指明是串行口中断;
using 0 是第0组寄存器;
using 1 是第1组寄存器;
using 2 是第2组寄存器;
using 3 是第3组寄存器;
51单片机的中断编号如下:
51单片机的中断功能号如下:
几个比较重要的概念如下:
EA、EX0、ET0、EX1、ET1、ES、ET2
中断名称、中断号、入口地址
中断允许控制寄存器(interrupt enable)
中断优先级控制寄存器(interrupt priority)
SHY的中断方式接收串口数据部分完毕。
正规的解释如下:
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。
随着电子技术的发展,出现了多种PWM技术,其中包括:相电压控制PWM、脉宽PWM法、随机PWM、SPWM法、线电压控制PWM等,而在镍氢电池智能充电器中采用的脉宽PWM法,它是把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的周期、PWM的占空比而达到控制充电电流的目的。
以上参考地址:
可以看到,以上的解释非常抽象。
在我的单片机开发板中,有PWM的示例程序,但不是以函数的形式,改写为函数的形式如下:
unsigned int CYCLE=600,PWM_LOW=0;//PWM-定义周期并赋值
void PWM_LED (void)
Delay(60000);
//特意加延时,可以看到熄灭的过程
for(PWM_LOW=1;PWM_LOW0;PWM_LOW--){ //与逐渐变亮相反的过程
Delay(PWM_LOW);
Delay(CYCLE-PWM_LOW);
示例程序的流程图
图片来源:《LY-51S开发板说明书v1.1.pdf》
烧制入单片机后演示
此刻,在官方的解释中“是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术”此句,是否以不再抽象?
基本上来说,在这个LED应用中,是采用时分法,用时差来进行电压连续变化量的模拟。因为在单片机中,管脚的输出不是1就是0
如何输出一定电压范围的模拟量,PWM就是解决这个问题的一种方式。
此刻,相信我们已经可以猜测到了,Shy呼吸灯的变幻方式。
L298N的管脚图。
L298N芯片是常用于驱动直流电机和步进电机的一种芯片,我们用于驱动Shy的两个直流减速电机,在单片机的控制下完成前进,转向,后退的操作。
从网络上下载到L298N的线路连接图。
但是这张图是有光耦的线路连接图,对于Shy目前来说并不需要用光耦进行电气上的隔离,我们需要的是一个简单,高效的L298N电路连接。
图中分析L298N可以看到,其实L298的电路非常简单,只需要两个滤波电路进行电源滤波和八个IN4007防止电源回流,因此我们这里选择自己绘制电路图
打开DXP 2004,从元件库中选择出适当的元件,关于L298N在DXP 2004中已经带有,因此只要搜索出即可,另外找出八个IN4007,两个100uF的有极性电容,两个104电容,如图:
参照有光耦的L298N电路图或者L298N的DATASHEET进行线路连接,如图,虽然线路比较简单,但是尽量也不要出错
连接完毕后参照此SCHDOC在元件箱中找出对应的元件,这里我们用小面包板代替PCB板,一是小面包板比较容易连接,二是这种类型的小面包板可以几个一起组合,在以后添加模块的时候比较方便,不过面包板的缺点是可能连线不牢固,在这里我用了许多IN4007剪下的管脚进行了连接
连接好了如图所示,连接的时候先进行电源的连接,再进行管脚的连接,总之分成几部分进行连接,这样若发生错误的时候能够很快排错
经过测试,此L298N能够正常工作。
以下内容是关于部分电子元件说明,均来自互联网
文中用到的
百闻不如一见,接下来的功能演示就上图来解决吧,还附带精美视频哦~
编辑提醒:请勿用于偷窥,法律责任自负!
果壳DIY站QQ群:, 2群:,3群:(加入时请报上你在果壳的个人主页地址,以防广告ID)
果壳DIY站微博:
你可能感兴趣
明明是屏幕截图,却有点移轴的感觉,太神奇了。
ALIENWARE官方账号
提问,“想念”和这个WIFI机器人有什么关系吗?他们认识吗?一个是会呼吸的痛,一个是会呼吸的机器人!
微电子专业硕士研究生,DIY爱好者
前排……好长……
让我想到了人与自然里面那些会跟踪拍摄的摄像机……
这个好高端……
不明觉厉。。。。
这个公仔是用路由器的板子搭建的么?
毁灭世界的技术宅啊。。。
技术宅毁灭世界啊。。。
感觉不对啊,这个路由器那么大,明显的无法放到机器人里面
啥时候我也可以这么牛。
这么 穆赫兰道 的开头啊!
没有工具&材料,没办法弄
DIY爱好者,万有青年养成计划入围选手
其实看完了还是不明白发生了什么....想找到一个android设备能控制的WIFI传输信号的摄像小车诶...
碉堡了…一般技术宅搞不定啊…来自
楼主,能透露下你上大学时学的神马吗?
这个学电子没有学好的我情何以堪!
对于我们这种做软件开发的人来说,太没人道了。
那个视频4分钟几乎都是模糊的摇晃镜头……我现在都没搞懂这个机器人到底是干嘛用的……净化空气么?!
擦,单片机完成这样!!
没学过电子。。完全不懂
= =太。。。。。好玩了
显示所有评论
(C)果壳网&&&&京ICP证100430号&&&&京网文[-239号&&&&新出发京零字东150005号&&&&
违法和不良信息举报邮箱:&&&&举报电话:&&&&&&&&微博:训练靶场机器人_ MY主T:OWPS夏季联赛冠军OWPS年度总决赛冠军.. 水友群 ...投稿:63粉丝:6948分享--dynmicweibozoneqqbaidu将视频贴到博客或论坛视频地址复制嵌入代码复制微信扫一扫分享收藏0硬币--稍后看马克一下~用手机看转移阵地~用或其他应用扫描二维码手机下视频请使用扫码若未安装客户端,可直接扫此码下载应用未经作者授权 禁止转载
看过该视频的还喜欢正在加载...miniOFF锐雯技巧与细节三:The shy天赋符文详解【小鱼解说】-游戏视频-搜狐视频
锐雯技巧与细节三:The shy天赋符文详解【小鱼解说】
推荐出品人什么样的结婚礼物才有创意? - 知乎<strong class="NumberBoard-itemValue" title="被浏览<strong class="NumberBoard-itemValue" title=",051,996分享邀请回答37055 条评论分享收藏感谢收起45942 条评论分享收藏感谢收起【视频】【训练靶场机器人】LGDshy:能带我赢一把吗、我4天没赢过了!_百度贴吧
【训练靶场机器人】LGDshy:能带我赢一把吗、我4天没赢过了!
视频来自:
贴吧热议榜
使用签名档&&
保存至快速回贴}

我要回帖

更多关于 后悔买饭来机器人 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信