Posts Tagged ‘openwrt’
Android wifi机器人视频传输接收端的实现
星期三, 五月 8th, 2013 1,416 views本篇的开发基于已将S605摄像头挂载在Openwrt系统上,并且已通过网页测试访问 http://192.168.1.1:8080/?action=snapshot 摄像头视频数据流成功的基础上。
上述过程的实现,大家可以自行在论坛里查找相关资料。本篇重点讲述如何通过Android手机端实现网页端相同的视频接收功能。
首先我们需要了解到这是一个MJPEG图片视频流,是以发送逐帧的JPEG图片数据连贯起来的动画视频。Android端通过访问目标Openwrt系统上的指定服务器端口,获取这个图片流数据,并逐帧播放出来。了解此原理之后,我们的工作即可简化为在Android端创建一个socket长连接,并对目标服务器端口发送请求,并接受请求。因为数据的传输都是以字节流的形式的,所以基本传输原理与常用的socket传输方式无基本差别,主要在用字节流的解析过程,将其还原成JPEG格式的信号。
在Android的中对于视频的显示处理通常使用surfaceView这个类,继承该类实现一个自定义的surfaceView组件即可。
surfaceView有两种创建方式,一种是在Activity中正常New出来,另一种是在UI设计界面下拖拽出一个surfaceView控件,并在xml中强制转换为自定义的surfaceView类型。
下面说下这两种方式的实现区别与用途,第一种通常用于整个界面的跳转,并且new出来的surfaceView是不受UI设计界面控制的,因此无法控制其图层的顺序,并且与其他Layout控件并存等等。实现方式是直接new即可,在我们自定义的VideoSurfaceView类里,使用第一个构造函数:
1 2 3 4 |
Arduino机器人开发指南(六)wifi通信篇
星期六, 三月 30th, 2013 3,608 views这里的wifi模块即之前已经采购的TP-LINK wr703n无线路由器。
在使用之前,我们需要对路由器进行改装,主要硬件工作如图
引出TTL的RX线及TX线,这里将其连接到了miniUSB口上了。自制一根miniUSB排线,另外加天线及扩展内存、闪存(这个属于非必须工作,扩展后性能会有一个提升)
软件方面的工作是刷路由系统为openwrt,安装ser2net(串口命令转发,tcp向ttl转发,感兴趣的朋友可以去看看源码 )及摄像头支持组件(mjpg-streamer 如果不用到摄像头也可以不装)
这些在论坛上有详细的资料和方法(需要注意,刷机风险很大,容易变砖),或者可以直接购买改装路由,改装路由是已经刷好系统并安装好组件的。
详细过程不在本篇的介绍范围,有机会的话,后续会开篇。
测试前,首先在Arduino上烧入一个串口监听程序,由于有了LCD模块,所以一并用上
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include "Wire.h" #include "LiquidCrystal.h" String incomingStr; LiquidCrystal lcd(0); void setup() { Serial.begin(9600); lcd.begin(16, 2); lcd.setBacklight(HIGH); } void loop() { if (Serial.available() > 0) { lcd.setCursor(0, 0); lcd.clear(); while(Serial.available() > 0){ incomingStr += char(Serial.read()); } lcd.print(incomingStr); Serial.print("I received: "); Serial.println(incomingStr); incomingStr = ""; } } |
此程序用于在LCD及监视端回显串口信息,大家可以根据自己的情况更改。
(更多…)
wr703n路由器刷openwrt系统后的联网解决方案
星期五, 三月 22nd, 2013 750 views今天刚入手 TP-lINK 的 WR703N 无线路由,甚是小巧。准备装在Arduino机器人上做视频传输模块,当然一方面还可以解决下宿舍的无线网络问题。避免麻烦直接买了改装好TTL引线并扩展到64MB内存外加SAM天线的WR703N ,openwrt系统也已刷好。
试用了下视频传输模块一切正常。接下来进入正题,如何让这个改装后的无线路由器发挥它的原本的上网功能。
折腾了一下午得出以下两种方案:
方案一:添加WAN口
WR703N有一个LAN/WAN口是可以插水晶头的,Openwrt刷好后默认是没有Wan口的,从192.168.1.1进入系统,可以看到虽然我们已经插好了网线但WAN口仍旧处于未连接状态。