标签归档:Python

MMA7455L + Python + Cubieboard

MMA7455L (PDF) 三轴加速度传感器,可以使用 I2C 或者 SPI 总线连接。两者 Cubieboard 均有提供,虽然不懂有多大区别但是 SPI 要四根线好麻烦所以就用 I2C 了..(

与 Cubieboard 的连接参照 WikiPB18 (TWI1-SCK)PB19 (TWI1-SDA) 两根接在模块的 SCLSDI 口上,接好电源(3.3V)和地线,模块的 CS 也接在电源上(以使能 I2C)。官网 ubuntu 镜像默认启用 I2C-1,若未启用则需修改 Fex 文件:twi1_used = 1

可以使用 i2c-tools 确认连接正确。装好后输入i2cdetect -y 1,如果出现1d(MMA7455L 的地址),说明连接无误可以通讯。

在 Cubieboard 上使用 Python 读取加速度数值,代码在这:MMA7455L.py,目前实现功能有:

  • 读取 8 或 10 位的 X, Y, Z 轴加速度数值(-127 ~ 128 / -511 ~ 512);
  • 切换 ±2g, ±4g 和 ±8g(set_range());
  • 自动校准(set_offset()clear_offset())。

继续阅读

OpenWrt 上使用 Python 操作 TAP/TUN

这两天折腾 tun,之前完全没接触驱动这么底层的东西,全靠 GlacJAY 大大的这篇文章入门了。

一句话,参照此 gist,同时将TUNSETIFF = 0x400454ca改为TUNSETIFF = -2147199798 即可。

那篇文章的代码在 Windows 和 Ubuntu 下都正常运行,但今天在路由器上运行时却报错了:

Traceback (most recent call last):
  ……
  File "/root/movpn/tun.py", line 218, in _open_tun
    fcntl.ioctl(tun, TUNSETIFF, ifr)
IOError: [Errno 81] File descriptor in bad state

因为 vtun 运行正常,所以 tun 本身应该是没问题的。又测试了一下,这个错误在 ioctl 的request不正确时出现。遂铺天盖地地寻找此值,发现不少相同遭遇,如这里还有这,但没找到解决方案。

先去解了 ioctl,得知第二个参数是由好几个部分组成的,从 if_tun.h 找到了 ioctl.h,最后卡在一点C语言也不会,琢磨半天也没弄明白 TUNSETIFF 取值多少..

无奈,只好试着自己写段代码把 TUNSETIFF 打出来了..
之前只听说过 交叉编译 这个词,现在就要动手了好鸡冻,好在 OpenWrt 的相关资料很丰富:参照 wiki 以及 这篇帖子 外加一晚上时间终于完成了。

找了一个 C Hello Word 改了一下: 继续阅读

为 Shadowsocks 客户端加入 HTTP 代理支持

shadowsocks你懂的 软件,SSH -D替代品。

SOCKS5 代理自己用着是没问题的,但普及以及携带使用的时候,HTTP 代理会更方便些(无 DNS 污染问题)…

代码在这,基于 0.9.2。
先放 pastebin 上了.. git 用不清楚就先不 fork 了..  – –
(虽然改得比较丑,但使用起来没问题啦

ASS 字幕在线转换为 SRT

>> ass to srt 在线字幕转换:
http://lab.sorz.org/tools/asstosrt/

这就是之前写的那个asstosrt2.py脚本的GAE移植版
具体说明、源码请见:《[Python] ass字幕批量转srt – asstosrt2.py》

这个GAE移植版…可以说…相当简陋(丑陋)…

 暂不支持批量转换…所以只能供手头没工具时临时使用吧…
需要批量转换可以直接下载 asstosrt2.py 脚本…

#UPDATE111218:
支持上传ZIP压缩包批量转换了!如需离线使用仍可下载 asstosrt2.py 脚本。

#UPDATE120303:
已由GAE迁至VPS的Django上,更灵活些..

[Python] ASS 字幕批量转 SRT – asstosrt2.py

#UPDATE120423:查看新版。本文所述版本已不再更新。
#UPDATA111218:
不想看以下大堆文字说明,请直接猛戳此处使用在线版本直接批量转换

电视、手机 都不支持 ASS 字幕 ,之前用 SrtEdit 转。
但后来遇到个字幕组,把 OP&ED 的字幕放在最前面,字幕顺序颠倒了,手机就不认了…
于是写了这个 Python 脚本

为了使用方便,只需要将ass文件全部选中,拖到 asstosrt2.py 上就好了
#UPDATE110903: 如果无法拖拽,可直接运行,将自动转换同目录下所有.ass文件。
再没有其他操作了…
如果没有错误,转换完窗口会直接关闭,在ass文件同目录下会生成srt文件

当然你需要先安装 Python 2.x 才行

下载 asstosrt2.py:
最新: GitHub | 历史:  SkyDrive | Google Docs

下载 Python 2.7:
Python.org

继续阅读