通过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
通过quick2wire使用raspi的i2c和ks103通信的更多相关文章
- ubuntu下使用quick2wire控制RespberryPi2的I2C
首先,开启树莓派的I2C驱动: 查看I2C驱动是否已经被加载:ls /dev -l | grep i2c,如果有形如 i2c-x 的显示结果表明驱动已经加载,否则驱动没有加载,需要进行如下操作: 修改 ...
- 理解一下单片机的I2C和SPI通信
应某位网友要求,今天说一下单片机的I2C SPI通信,可能说不清楚,因为这毕竟要做实验才可完全理解. I2C和SPI是两种不同的通信协议. 听到协议,似乎高不可攀,其实协议就是人们定义的一个标准而已, ...
- raspi集成库及安装
原文:http://blog.csdn.net/xukai871105/article/details/12684617 树莓派来自国外,国外嵌入式开源领域具有良好的分享精神,树莓派各种集成库也层 ...
- I2C 基础原理详解
今天来学习下I2C通信~ I2C(Inter-Intergrated Circuit)指的是 IC(Intergrated Circuit)之间的(Inter) 通信方式.如上图所以有很多的周边设备都 ...
- I2C总线和S5PV210的I2C总线控制器
一.什么是I2C通信协议? 1.物理接口:SCL + SDA (1)SCL(serial clock):时钟线,传输CLK信号,一般是I2C主设备向从设备提供时钟的通道. (2)SDA(serial ...
- Linux+I2C总线分析(主要是probe的方式)
Linux I2C 总线浅析 ㈠ Overview Linux的I2C体系结构分为3个组成部分: ·I2C核心: I2C核心提供了I2C总线驱动和设备驱动的注册.注销方法,I2C通信方法(即“algo ...
- Smart210学习记录-----Linux i2c驱动
一:Linux i2c子系统简介: 1.Linux 的 I2C 体系结构分为 3 个组成部分: (1) I2C 核心. I2C 核心提供了 I2C 总线驱动和设备驱动的注册.注销方法,I2C 通信方法 ...
- linux驱动之I2C
include/linux/i2c.h struct i2c_msg;struct i2c_algorithm;struct i2c_adapter;struct i2c_client;struct ...
- (1)I2c的简介和特性
I2C我是想全面深入的从嵌入式软件工程师的角度做个理解,刚刚还申请了一个专栏,这个好好写. 学习技术从外文文档看起-- 要全面了解I2C,可以从<I2C-bus specific ...
随机推荐
- Paxos算法与Zookeeper分析,zab (zk)raft协议(etcd) 8. 与Galera及MySQL Group replication的比较
mit 分布式论文集 https://github.com/feixiao/Distributed-Systems wiki上描述的几种都明白了就出师了 raft 和 zab 是类似的,都是1.先选举 ...
- iOS 高效 Mac 配置
https://testerhome.com/topics/3045 https://support.apple.com/zh-cn/HT201236
- 使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
使用Auto Layout中的VFL(Visual format language)--代码实现自动布局 2014-12-09 10:56 编辑: zhiwupei 分类:iOS开发 来源:机智的新手 ...
- 将Xcode的本地代码push到github仓库上
1.首先,你得有一个github账号,如果没有的话就去注册一个,通过下面图片的方式创建一个github仓库. 2.创建仓库后填写相关的信息,比如说仓库名等. 3.在xcode上进行设置,添加远程git ...
- 初涉期望dp/概率dp【在更】
大致可以分为两种:爆精度:小数取模.
- Makefile文件中的sed介绍
haoxin$ sed --helpUsage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... -n, --quie ...
- BNUOJ 4215 最长公共连续子序列
最长公共连续子序列 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java class ...
- [转]常见linux命令用法介绍
su switch user 用途:用于用户之间的切换 格式: su - USERNAME切换用户后,同时切换到新用户的工作环境中 su USERNAME切换用户后,不改变原用户的工作目录,及其他环境 ...
- ASP.NET(三):整体总结
导读:经过一段时间的学习,我的ASP.NET也算是结束了.在这个过程中,总结了它的六大对象,现在先做个总体的总结,然后还会总结一下真假分页的情况.只有总结才能收获.ASP.net严格说起来,其实在VB ...
- mysqli 封装
<?php //header header('content-type:text/html;charset=UTF-8'); class DB { //定义属性 private $host;// ...