• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 在友善之臂Linux系统中使用python 复制链接 | 浏览器收藏 | 打印
级别: 总版主
UID: 45585
精华: 3
发帖: 628
金钱: 3375 两
威望: 675 点
贡献值: 3 点
综合积分: 1316 分
注册时间: 2011-05-06
最后登录: 2018-10-18
楼主  发表于: 2013-03-22 14:36

 在友善之臂Linux系统中使用python

管理提醒: 本帖被 xoom 执行置顶操作(2013-12-18)

python的优点


功能强大,无需编译,集成了系统级的API,访问硬件也是没有压力的,例如ioctl,下面的代码演示操作蜂鸣器,直接在开发板上编写代码运行即可,无需编译,对调试驱动等应该很有帮助,配合python webserver,实现远程硬件控制相信也是可行的:

#!/usr/bin/python
import fcntl
fd = open('/dev/pwm', 'r')
fcntl.ioctl(fd, 1, 100)

上面的代码相当于打开/dev/pwm设备,然后执行ioctl。

在开发板上安装python


适用于 6410/210 开发板,python版本为 2.7.2。
先从以下地址下载:http://dl.vmall.com/c0eoeolewg

下载完成后,将python-friendlyarm.tgz文件拷到SD卡上,再将SD卡插入开发板,在minicom或超级终端上输入以下命令行进行解压:

cd /usr/
tar xvzf /sdcard/python-friendlyarm.tgz

解压完成,输入python,出现python提示符就表示安装成功啦:

python

注意事项:
1) 必须在 /usr/ 目录下解压,放到其他目录会工作不正常
2) python软件包大小共有50M,如果你是256M Nand Flash的用户可能会无法存放,请选择性的删除一些组件来释放空间,比如不需要使用Qtopia4可以删除/opt/Qtopia4.4.3目录,不需要Qt4可以删除/usr/local/Trolltect目录。

使用python


用python控制蜂鸣器

用vi将下面的内容保存成文件,命名为 pwm.py:

#!/usr/bin/python
import fcntl
fd = open('/dev/pwm', 'r')
fcntl.ioctl(fd, 1, 100)

在命令行上输入 ./pwm.py,应该能听到蜂鸣器响了。

用python中调用c/c++

将python-friendlyarm.tgz在PC上也解压一份:

cd /opt/
mkdir python-arm
cd python-arm
tar xvzf ~/python-friendlyarm.tgz

写一个c++文件api.cpp:

#include <Python.h>
class MyClass {
public:
int add(int x,int y) { return x+y; }
};
extern "C" int add(int x,int y)
{
MyClass obj;
return obj.add(x,y);
}

将c++编译成动态库:

arm-linux-g++ -fPIC api.cpp -o api.so -shared -I/opt/python-arm/include/python2.7 -I/opt/python-arm/lib/python2.7/config

将编译生成的api.so拷到SD卡上,在你的python脚本中就可以调用它了:

#!/usr/bin/python
import ctypes
plib = ctypes.CDLL('/sdcard/api.so')
print "result: %d" %(plib.add(1,2))
[ 此帖被xoom在2013-03-22 14:44重新编辑 ]
级别: 骑士
UID: 32651
精华: 0
发帖: 152
金钱: 760 两
威望: 152 点
贡献值: 0 点
综合积分: 304 分
注册时间: 2010-11-18
最后登录: 2015-11-29
1楼  发表于: 2013-04-13 23:22
不错的       
级别: 侠客
UID: 78244
精华: 0
发帖: 79
金钱: 395 两
威望: 79 点
贡献值: 0 点
综合积分: 158 分
注册时间: 2012-09-17
最后登录: 2018-02-08
2楼  发表于: 2013-05-20 12:09
能不能在2440上用?不过不能是不是因为2440flash太小了还是内存的问题,还是其他原因,请老大解释一下
级别: 新手上路
UID: 96053
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
贡献值: 0 点
综合积分: 8 分
注册时间: 2013-09-03
最后登录: 2014-05-13
3楼  发表于: 2013-09-07 14:45
版主,下载链接打不开怎么办???????       
级别: 新手上路
UID: 118110
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
贡献值: 0 点
综合积分: 10 分
注册时间: 2015-08-11
最后登录: 2015-08-20
4楼  发表于: 2015-08-18 22:22
重点记录。。。。
级别: 新手上路
UID: 119785
精华: 0
发帖: 14
金钱: 75 两
威望: 15 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2015-10-16
最后登录: 2015-10-19
5楼  发表于: 2015-10-16 16:12
下载不了啊
级别: 新手上路
UID: 119829
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 14 分
注册时间: 2015-10-18
最后登录: 2015-12-17
6楼  发表于: 2015-10-18 21:13
1111111111111111111111111111111111111
级别: 新手上路
UID: 115300
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2015-05-11
最后登录: 2015-12-15
7楼  发表于: 2015-10-19 11:04
好东西,请问:怎么在PC机的LInux上安装Python交叉编译环境
级别: 新手上路
UID: 122027
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
贡献值: 0 点
综合积分: 12 分
注册时间: 2016-01-06
最后登录: 2016-12-13
8楼  发表于: 2016-08-13 19:36
我在S3C2451里面安装了python-friendlyarm,按照要求装在了/usr/目录下了,给的样例控制蜂鸣器的可以正常。现在我在PC机上正常运行python程序,下载到板子里,并且给了权限,也把需要的库加入到/usr/lib/python2.7中,总出现这样的提示,是怎么回事,有什么解决方法
please build and install the PorAudio Python bindings first
[ 此帖被地狱男爵在2016-08-24 18:31重新编辑 ]
级别: 新手上路
UID: 122027
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
贡献值: 0 点
综合积分: 12 分
注册时间: 2016-01-06
最后登录: 2016-12-13
9楼  发表于: 2016-08-13 19:37

 回 3楼(cazes) 的帖子

光盘里面有的
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go