Monthly Archives: April 2011

Ubuntu 10.04 LTS 使用 HUAWEI EC1261 3G 上网卡

默认情况下,在Ubuntu 10.04 LTS 版本里,插入HUAWEI EC1261 ,系统识别不了。(20111020 更新, 在Ubuntu 11.10 中已不存在这个问题,可以正常识别 EC1261)在“网络连接”管理器里,尝试设置一个连接,会发现不成功。我们可以看看系统识别的具体显示情况。

$ lsusb
Bus 005 Device 013: ID 12d1:1446 Huawei Technologies Co., Ltd.
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 046d:c52f Logitech, Inc.
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

从网上搜索,原来需要要一条命令,安装一个软件包就可以解决这个问题

sudo apt-get install libusb-dev usb-modeswitch

先用 Wi-Fi 连网,并运行安装之,然后再把 EC1261 拔插一次,lsusb看看有什么变化:

$ lsusb
Bus 005 Device 012: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 046d:c52f Logitech, Inc.
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

与前面相比,设备被识别为 E620 USB Modem ,看样子是识别出来,打开网络管理器,“移动宽带”选项页面,添加,顺利识别出是中国电信 China Telecom 的,一路前进就可以启用了。

另外 ,几条命令备忘

  • 升级Firefox最新稳定版,Firefox 4 的同步功能很好用的!

sudo add-apt-repository ppa:mozillateam/firefox-stable

  • 使用SSH Tunnel

ssh -D 7070 -qfnN username@host

  • 安装 Fcitx 输入法

sudo add-apt-repository ppa:wengxt/fcitx-nightly
sudo apt-get update
sudo apt-get install fcitx

扩展阅读
Fedora 12 下配置Huawei EC1260 3G无线网卡
http://blogs.gaixie.org/tommy/?p=51
usb_modeswitch 中文README
http://hi.baidu.com/xiaoxin_ye/blog/item/8490c710aa21a108203f2e78.html
USB_ModeSwitch – Handling Mode-Switching USB Devices on Linux
http://www.draisberghof.de/usb_modeswitch/
3G卡片在开发板上的详细解决方法(适用于大多数3G卡片)
http://blog.csdn.net/ipromiseu/archive/2010/01/07/5154004.aspx
PPA (Personal Package Archives)
http://wiki.ubuntu.org.cn/PPA
Fcitx──小企鹅输入法:Free Chinese Input Toy for X
http://wiki.ubuntu.org.cn/Fcitx

PLC 边沿检测原理

还记得许久以前 LT 曾有篇日志对ABB的编程语言 RAPID 有无边沿检测功能作过讨论《RAPID 编程中对边沿检测》,当时 LT 对PLC 还不是很熟悉,所以未寻到答案。近期通过对PLC原理的学习,对此有些认识,笔记之。

所谓的边沿检测,就是检测某个信号从0变为1或从1变为0的这个过程,通常用于输入只需要一次的情况的,比如某个输入信号到来时只触发一次操作。

西门子PLC 的  S7  里,其提供了上升沿或下降沿的检测,STL语言里即 FP 或FN,可以在一个扫描周期内输出一个信号1。用法如下。

A        I0.1       // I0.1 输入信号
FP     M0.1     //检测 I0.1从0到1
=       Q4.0      // 输出

但是在 S5里面 ,并没提供这个指令,我们在S7里面也可以自行编写。原理是需要有一个存储位来存储信号前后的状态,比较即可输出。通常思路如下,以上升沿检测为例:

A       I0.1       //输入信号
AN    M0.0    //存储信号上一个状态
=       M0.1    // 输出

A       I0.1     //输入信号
=       M0.0   //存储当前信号状态

分析工作过程:当I0.1为0时,M0.1输出为0;当I0.1变为1时,M0.1输出为1,此时M0.0变为1;下一个扫描周期时,由于I0.1为1,M0.0为1,所以M0.1输出变为0;以下过程看官自行分析。

同理,下降沿检测如下:

AN   I0.1
A      M0.0
=      M0.1

A      I0.1
=      M0.0

请看官自行验证是否工作。

再回到高级语言如何检测信号跳变呢,有了上面的思路,也就有答案了,但由于考虑到ABB工业机器人对于RAPID程序的执行方式是逐条解释的,并不是象PLC那样快速循环扫描,所以下面语句保证不了实时性,即是否能捕捉到跳变的问题。仅仅说明原理。

b_output := 0;
b_tmp     :=  0;

WHILE TRUE DO
b_output :=  di  AND  NOT  b_tmp;
b_tmp     :=  di;
IF b_output THEN

ELSE

ENDIF
ENDWHILE

除非上述两条语句快速循环执行,否则 LT 觉得毫无意义,所以对于RAPID来说还是用中断 Interrupt (参考文章《初识 RAPID 中的 Interrupts》)并按照上面的思路来处理这些跳变好些。不过这个思路可以用于PLC的编程,如西门子的 SCL 语言。

扩展阅读:

 

Kinect 以及机器视觉

机器视觉一直是 LT 关心的领域,不论是在消费领域还是工业领域。近来,微软的 Kinect 比较热门,所以对此作个笔记。以前 LT 有篇笔记《人机接口》对此作过介绍,不过那时候名字叫 Natal。

我们来重温下Kinect的捕捉效果吧。

Youku 视频  http://v.youku.com/v_show/id_XMjUwMDY1MTg0.html

Kinect 系统通过一个红外激光投影镜头将一组红外激光点阵投射到玩家身上,另外两个CMOS摄像头对此进行XYZ的3D扫描,通过内置的算法,以次来分辨玩家、背景,以及玩家的动作意图,为了使摄像头更精准对准玩家,还给Kinect配备了马达和加速度传感器。

下面引用百度百科的介绍:

Light coding,顾名思义就是用光源照明给需要测量的空间编上码,说到底还是结构光技术。但与传统的结构光方法不同的是,他的光源打出去的并不是一副周期性变化的二维的图像编码,而是一个具有三维纵深的“体编码”。这种光源叫做激光散斑(laser speckle),是当激光照射到粗糙物体或穿透毛玻璃后形成的随机衍射斑点。
这些散斑具有高度的随机性,而且会随着距离的不同变换图案。也就是说空间中任意两处的散斑图案都是不同的。只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置了。当然,在这之前要把整个空间的散斑图案都记录下来,所以要先做一次光源的标定。在PrimeSense的专利上,标定的方法是这样的:每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来。假设Natal规定的用户活动空间是距离电视机1米到4米的范围,每隔10cm取一个参考平面,那么标定下来我们就已经保存了30幅散斑图像。需要进行测量的时候,拍摄一副待测场景的散斑图像,将这幅图像和我们保存下来的 30幅参考图像依次做互相关运算,这样我们会得到30幅相关度图像,而空间中有物体存在的位置,在相关度图像上就会显示出峰值。把这些峰值一层层叠在一起,再经过一些插值,就会得到整个场景的三维形状了。

相比于采用陀螺仪和加速度传感器(此类微机电系统被称为 MEMS)的输入装置,如任天堂的WII,Kinect 则是属于光学传感输入。也有人质疑微软这个光学传感输入方式是否精确,据资料介绍,Z轴的分辨率精细度达1厘米,XY在毫米数量级,我想这种分辨率对于游戏是很足够了。如果继续提高分辨率,其他方面的应用也不成问题。

还记得WII出来时,众多Fans为其开发其应用,比较出名的是Johnny.Lee 对WII所做得Hacks,在某期的TED上曾展示过。而对于Kinect来说,微软则公布了Kinect SDK for Windows 的细节,相信世界上无数热情的Fans会为其开发开源代码,到时会有很多有趣的应用。

扩展阅读:
微软Project Natal三维测量原理
http://www.opencv.org.cn/forum/viewtopic.php?f=10&t=10080
Kinect 百度百科
http://baike.baidu.com/view/3766855.html
Kinect 体感社区
http://www.cnkinect.com/
Kinect SDK for Windows
http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/

PrimeSensor 技术
http://www.primesense.tw/?p=739
【记者博客】图像距离传感器会以游戏机为起点普及吗?
http://china.nikkeibp.com.cn/news/news/50-elec/54035-20101111.html
Kinect for Windows SDK开发初体验 http://www.cnblogs.com/aawolf/archive/2011/06/17/2083249.html

 

Light coding,顾名思义就是用光源照明给需要测量的空间编上码,说到底还是结构光技术。但与传统的结构光方法不同的是,他的光源打出去的并不是一副周期性 变化的二维的图像编码,而是一个具有三维纵深的“体编码”。这种光源叫做激光散斑(laser speckle),是当激光照射到粗糙物体或穿透毛玻璃后形成的随机衍射斑点。   这些散斑具有高度的随机性,而且会随着距离的不同变换图案。也

Kinect

就 是说空间中任意两处的散斑图案都是不同的。只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图 案,就可以知道这个物体在什么位置了。当然,在这之前要把整个空间的散斑图案都记录下来,所以要先做一次光源的标定。在PrimeSense的专利上,标 定的方法是这样的:每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来。假设Natal规定的用户活动空间是距离电视机1米到4米的范围,每 隔10cm取一个参考平面,那么标定下来我们就已经保存了30幅散斑图像。需要进行测量的时候,拍摄一副待测场景的散斑图像,将这幅图像和我们保存下来的 30幅参考图像依次做互相关运算,这样我们会得到30幅相关度图像,而空间中有物体存在的位置,在相关度图像上就会显示出峰值。把这些峰值一层层叠在一 起,再经过一些插值,就会得到整个场景的三维形状了。

The Bat! v5 的新功能- QR Code

The Bat! 的 4月6号的 news letter, 介绍了新推出的 v5版本的一些特性,提到了  QR Code 功能,如果你不知道此功能在菜单什么地方,可以尝试在menu navigator里输入QR就可以定位于此功能。这个功能大大方便了用移动设备比如手机等传递记录信息。图像编码识别应用会越来越广。

“The Bat! is up to the pace of the other quickly developing innovation which is QR Code. The new version is able to generate and send those codes. The QR Code opens a wide range of facilities in terms of compact and quick data transmission to mobile devices. Data can be encoded into a small picture, which can be easily decoded by a mobile phone with camera and/or respective software. Thus, it is possible to transmit any text – links, email addresses, phone numbers, address book contacts, etc.”
–Ritlabs News  http://www.ritlabs.com/en/products/thebat/news_detail.php?ID=3370

图片是 LT 的 NOKIA E50 手机上的软件 QuickMark 对 The Bat! v5 生成的二维码的识别测试。

扩展阅读
The Bat! and QR code – how does it work? http://www.ritlabs.com/en/products/thebat/tips_and_tricks/index.php?ELEMENT_ID=3852
QR码http://zh.wikipedia.org/wiki/QR%E7%A0%81
The Bat! CN 中文论坛 http://www.thebat.com.cn/bbs/
发现原来QR码还能这么玩啊 http://jandan.net/2011/04/27/qr_overload.html