原文:http://www.cnblogs.com/hangxin1940/archive/2013/04/04/2999015.html

之前介绍了如何启用i2c设备 http://www.cnblogs.com/hangxin1940/archive/2013/04/02/2997077.html与 搭建python i2c开发环境http://www.cnblogs.com/hangxin1940/archive/2013/04/03/2997094.html

quick2wire是树莓派上用于i2c通信的一个python库,它可以方便的使用非root用户进行gpio引脚的读写操作.

为什么要用它?

一些硬件设备对于linux来说,是具有高权限的,只有root才能操作,那么在开发这些应用时,要读写一些硬件设备,就必须得具有root身份,这就带来了不便之处, 要知道 root用户是一切罪恶的根源 ,万一在root身份下,一不留神 #:/ rm * , 那可真是追悔莫及.

准备工作

sudo apt-get install git
sudo apt-get install python3
sudo apt-get install python-pip
sudo apt-get install python-virtualenv

安装quick2wire-gpio-admin

quick2wire-gpio-admin 工具提供了一种简便的方法来启用/关闭一个gpio引脚,它不需要当前用户拥有root权限.

在合适的位置下载uick2wire-gpio-admin的源码:

wget https://github.com/quick2wire/quick2wire-gpio-admin/archive/master.zip

或者

git clone https://github.com/quick2wire/quick2wire-gpio-admin.git

解压下载好的zip文件,并进入解压好的目录

编译安装

make
sudo make install

此时,就安装好了, 它在系统中以gpio-admin命令存在.

接下来将当前pi用户添加至gpio

sudo adduser pi gpio

退出再登录一下系统,确保用户分组的更改立即生效. 关于此命令的详细情况,请移步https://github.com/quick2wire/quick2wire-gpio-admin

安装quick2wire-python-api

quick2wire-python-api依赖于quick2wire-gpio-admin,而上一步我们已经做好了.

这个库就方便开发人员使用Python快速连接到树莓派的引脚

在合适的位置下载quick2wire-python-api的源码:

wget https://github.com/quick2wire/quick2wire-python-api/archive/master.zip

或者

git clone https://github.com/quick2wire/quick2wire-python-api.git

解压下载好的zip文件,并进入解压好的目录

安装这个python库

python3 setup.py install

至此,已经全部安装结束

更加详细的示例,请检出 https://bitbucket.org/thinkbowl/i2clibraries

更多请参考:

使用quick2wire访问GPIO引脚 http://github.com/quick2wire/quick2wire-python-api/blob/master/doc/getting-started-with-gpio.md

使用quick2wire访问I2C引脚 http://github.com/quick2wire/quick2wire-python-api/blob/master/doc/getting-started-with-i2c.md

通过quick2wire使用raspi的i2c和ks103通信的更多相关文章

  1. ubuntu下使用quick2wire控制RespberryPi2的I2C

    首先,开启树莓派的I2C驱动: 查看I2C驱动是否已经被加载:ls /dev -l | grep i2c,如果有形如 i2c-x 的显示结果表明驱动已经加载,否则驱动没有加载,需要进行如下操作: 修改 ...

  2. 理解一下单片机的I2C和SPI通信

    应某位网友要求,今天说一下单片机的I2C SPI通信,可能说不清楚,因为这毕竟要做实验才可完全理解. I2C和SPI是两种不同的通信协议. 听到协议,似乎高不可攀,其实协议就是人们定义的一个标准而已, ...

  3. raspi集成库及安装

    原文:http://blog.csdn.net/xukai871105/article/details/12684617   树莓派来自国外,国外嵌入式开源领域具有良好的分享精神,树莓派各种集成库也层 ...

  4. I2C 基础原理详解

    今天来学习下I2C通信~ I2C(Inter-Intergrated Circuit)指的是 IC(Intergrated Circuit)之间的(Inter) 通信方式.如上图所以有很多的周边设备都 ...

  5. I2C总线和S5PV210的I2C总线控制器

    一.什么是I2C通信协议? 1.物理接口:SCL + SDA (1)SCL(serial clock):时钟线,传输CLK信号,一般是I2C主设备向从设备提供时钟的通道. (2)SDA(serial ...

  6. Linux+I2C总线分析(主要是probe的方式)

    Linux I2C 总线浅析 ㈠ Overview Linux的I2C体系结构分为3个组成部分: ·I2C核心: I2C核心提供了I2C总线驱动和设备驱动的注册.注销方法,I2C通信方法(即“algo ...

  7. Smart210学习记录-----Linux i2c驱动

    一:Linux i2c子系统简介: 1.Linux 的 I2C 体系结构分为 3 个组成部分: (1) I2C 核心. I2C 核心提供了 I2C 总线驱动和设备驱动的注册.注销方法,I2C 通信方法 ...

  8. linux驱动之I2C

    include/linux/i2c.h struct i2c_msg;struct i2c_algorithm;struct i2c_adapter;struct i2c_client;struct ...

  9. (1)I2c的简介和特性

    I2C我是想全面深入的从嵌入式软件工程师的角度做个理解,刚刚还申请了一个专栏,这个好好写.         学习技术从外文文档看起-- 要全面了解I2C,可以从<I2C-bus specific ...

随机推荐

  1. metasploit-shellcode生成

    0x00 安装metasploit $ curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/t ...

  2. numpy中tile函数

    tile函数位于python模块numpy.lib.shape_base中,他的功能是重复某个数组. 函数的形式是tile(A,reps) 函数参数说明中提到A和reps都是array_like的,什 ...

  3. vsftp配置日志及其启用本地时间

    vsftp配置日志及其启用本地时间 1. 启用vsftp日志 xferlog_enable=YES xferlog_std_format=YES xferlog_file=/var/log/xferl ...

  4. vue input 判断

    //输入框 判断 //全局异常提示信息 //b 1:失去焦点验证错误提示 2:得到焦点关闭错误提示 //i 来区分是验证那个input框 check:function (t,b) { var that ...

  5. sudo指令和/etc/sudoers文件说明

    sudo 命令 -l 显示当前用户的sudo权限-l username 显示username的sudo权限-u username 以username的权限执行-k 强迫用户下一次执行sudo时问密码( ...

  6. heartbeat+drdb+nfs实现高可用

    一.环境 nfsserver01:192.168.127.101 心跳:192.168.42.101 centos7.3 nfsserver02:192.168.127.102 心跳:192.168. ...

  7. linux下mysql常用的基本命令

    linux数据库环境搭建好之后,我们就可以创建数据库了.   一 查看版本 mysql --version 二 进入数据库 首先在根目录执行命令 mysql -u root -p   然后输入密码 进 ...

  8. Python3中super()的参数传递

    1. super([type[, object-or-type]]) super() 在使用时至少传递一个参数,且这个参数必须是一个类. 通过super()获取到的是一个代理对象,通过这个对象去查找父 ...

  9. volatile随笔见解

    1.volatile可以保证可见性,不能保证一致性,但是与cas操作结合在实现并发上性能很不错,java并发包下不少类都有这种实现方式. 2.相比synchronized执行成本更低,因为它不会引起线 ...

  10. 2,格式化输出and编码基础

    格式化输出: input格式化输出: name = input('请输入姓名:') name = input('请输入姓名:') Age = int(input('请输入年龄:')) job = in ...