通过quick2wire使用raspi的i2c和ks103通信

原文: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

时间: 2024-12-10 22:29:43

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

raspi集成库及安装

原文:http://blog.csdn.net/xukai871105/article/details/12684617 树莓派来自国外,国外嵌入式开源领域具有良好的分享精神,树莓派各种集成库也层出不穷,下面推荐几个. [python GPIO](该库更确切的名称应为raspberry-gpio-python) 简单介绍:树莓派官方资料中推荐且容易上手.python GPIO是一个小型的python库,可以帮助用户完成raspberry相关IO口操作.但是python GPIO库还没有支持SPI

【转载】GPIO模拟i2c通信

I2C总线的通信过程(见图4-8)主要包含三个主要阶段:起始阶段.数据传输阶段和终止阶段. 1. 起始阶段 在I2C总线不工作的情况下,SDA(数据线)和SCL(时钟线)上的信号均为高电平.如果此时主机需要发起新的通信请求,那么需要首先通过SDA和SCL发出起始标志.当SCL为高电平时,SDA电平从高变低,这一变化表示完成了通信的起始条件. 在起始条件和数据通信之间,通常会有延时要求,具体的指标会在设备厂商的规格说明书中给出. 2. 数据传输阶段 I2C总线的数据通信是以字节(8位)作为基本单位

linux驱动之I2C

include/linux/i2c.h struct i2c_msg;struct i2c_algorithm;struct i2c_adapter;struct i2c_client;struct i2c_driver;union i2c_smbus_data; I2C驱动主要包含三部分:I2C核心.I2C总线驱动.I2C设备驱动,它们主要的数据结构在目录:/include/linux/i2c.h struct i2c_driver 1 /* 2 * A driver is capable o

I2C通信详解

什么是I2C通信 物理接口:SCL + SDA (1)SCL(serial clock):时钟线,传输CLK信号,一般是I2C主设备向从设备提供时钟的通道 (2)SDA(serial data):数据线,I2C通信的通信数据都通过SDA线来传输 通信特征:串行.同步.非差分.低速率 (1)I2C属于串行通信,所有的数据以位为单位在SDA上串行传输 (2)同步通信就是通信双方工作在同一个时钟下面,一般是通信的A方通过一根CLK线传输A自己的时钟给B,B工作在A传输的时钟下.所以通信的显著特征就是:

《Linux4.0设备驱动开发详解》笔记--第十五章:Linux I2C核心、总线与设备驱动

15.1 Linux I2C体系结构 I2C核心 I2C核心提供了I2C总线驱动和设备驱动的注册.注销的方法,I2C通信(Algorithm)方法上层的与具体适配器无关代码以及探测设备.检测设备地址的上层代码等 I2C总线驱动 是对I2C体系结构中适配器端的实现,适配器可由CPU控制,甚至可以直接集成在CPU内部 总线驱动包含I2C适配器数据结构i2c_adapter.I2C适配器的Algorithm数据结构i2c_algorithm和控制I2C适配器产生通信信号的函数 I2C设备驱动 它是对I

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

Linux I2C 总线浅析 ㈠ Overview Linux的I2C体系结构分为3个组成部分: ·I2C核心: I2C核心提供了I2C总线驱动和设备驱动的注册.注销方法,I2C通信方法(即“algorithm”)上层的.与具体适配器无关的代码以及探测设备.检测设备地址的上层代码等.这部分是与平台无关的. ·I2C总线驱动: I2C总线驱动是对I2C硬件体系结构中适配器端的实现.I2C总线驱动主要包含了I2C适配器数据结构i2c_adapter.I2C适配器的algorithm数据结构i2c_a

(一)I2C学习

一.介绍     I2C总线是由Philips公司发明的一种两线式串行总线,用于连接微控制器及其外围设备.I2C最主要的优点是简单.有效.由于不需要额外独立的接口,所以i2c总线占用的空间非常少,减少了电路板的空间和芯片引脚的数量.i2c总线最初是为音频和视频设备开放,现在已应用于各种设备. 二.I2C概述     I2C总线是由数据线SDA和时钟线SCL构成的串行总线,可发送和接受数据,每个设备都有唯一的地址识别.I2C运用主/从双向通信,器件发送数据到总线上则定义为发送器,器件接受数据则是接

Linux的i2c驱动详解

目录(?)[-] 简介 架构 设备注册 I2C关键数据结构和详细注册流程 关键数据结构 详细注册流程 使用I2C子系统资源函数操作I2C设备 Gpio模拟i2c总线的通用传输算法 总结 理清i2c中的个结构体关系 i2c驱动的编写建议 1 简介 I2C 总线仅仅使用 SCL . SDA 两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和 PCB 板布线空间的占用.因此, I2C 总线被非常广泛地应用在 EEPROM .实时钟.小型 LCD 等设备与 CPU 的接口中. Linux I2

linux i2c 标准接口(二)

驱动程序操作法:i2c设备的驱动也可以通过普通的设备驱动实现,像往常的驱动一样实现,然后在应用层就可以像读取普通文件一样操作,无需再考虑读写时序.其实普通的设备驱动也可以用两种方法实现, 1)构建字符设备驱动,在open,read,write等函数中直接操作i2c总线的相关寄存器来读写i2c设备,但是这种方法因平台不同,设备不同都要重新写驱动 2)在设备驱动中调用i2c-core.c提供的i2c_transfer函数来实现和i2c设备的通信,这样只要对不同的设备写不同的驱动就行了. 第一种构建字