首先,开启树莓派的I2C驱动:

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

    修改配置文件:/etc/modprobe.d/raspi-blacklist.conf(如果存在的话)

    去掉 “#blacklist i2c-bcm2708” 前的注释符号#

    重启树莓派,可以使用命令(sudo reboot)

    加载驱动: sudo modprobe i2c-dev

    设置读写属性:sudo chmod o+rw /dev/i2c*

安装python2.7:

  quick2wire本身支持python3,但因为很多程序写在python2.7下,所以我添加了quick2wire对python2.7的支持

  sudo apt-get install python

获取quick2wire代码:

  创建一个本地目录,假设名字是q2w:

  进入该目录 cd q2w

  获取quick2wire-gpio-admin

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

    cd quick2wire-gpio-admin

    make && make install

  获取quick2wire-python-api

    原始版本(只支持python3):https://github.com/quick2wire/quick2wire-python-api.git

    支持python2.7的版本:https://github.com/freason/quick2wire-python-api.git

    这里使用支持python2.7的版本:

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

    cd quick2wire-python-api

git checkout support_python2

    python setup.py install --user

使用:

  请参见:

    https://github.com/quick2wire/quick2wire-python-api/blob/master/README.md

    https://github.com/quick2wire/quick2wire-python-api/blob/master/doc/getting-started-with-i2c.md

  首先用i2cdetect确定slave设备的地址:

    i2cdetect x(其中x为/dev/i2c-x中的x),这条命令会返回类似如下的数据:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1e --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

  1e为slave设备的地址,我使用的设备是HMC5883,三轴陀螺仪

  简单的python代码:

import quick2wire.i2c as i2c

addr = 0x1e
regConf = 0x02
regRd = 0x03 bus = i2c.I2CMaster()
bus.transaction(i2c.writing_bytes(addr, regConf, 0x00))
read_results = bus.transaction(i2c.writing_bytes(addr, regRd), i2c.reading(address, 6))
for i in r[0]:
print(ord(i))

  该代码会有如下输出:

254
168
255
109
255
73

  

ubuntu下使用quick2wire控制RespberryPi2的I2C的更多相关文章

  1. 烂泥:ubuntu下配置msmtp+mutt发送邮件

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 本文主要介绍如何在Linux下使用msmtp+mutt发送邮件,当然Linux下发送邮 ...

  2. ubuntu下minicom和USB转串口(转)

    ubuntu下minicom和USB转串口(转)   minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利 ...

  3. ubuntu下非本账户的.profile文件的修改

    今天不小心在账户了修改了自己的.profile文件,导致重启之后账户无法进入,点登陆账户后黑屏后就重新回到账户登陆界面.一番折腾之后终于成功修改了原账户中的.profile文件,成功从新进入了原账户. ...

  4. 【转载】Ubuntu下SVN安装和配置

    一.SVN安装 1.安装包 1.$ sudo apt-get install subversion 2.创建项目目录 $ sudo mkdir /home/xiaozhe/svn $ cd /home ...

  5. ubuntu 下wireshark 软件安装与使用

    在ubuntu下,使用wireshark也是很有必要的.虽然可以使用tcpdump等工具. ubuntu:11.10     1. sudo apt-get install wireshark     ...

  6. ubuntu下svn使用指南

    ubuntu下安装subversion客户端: sudo apt-get install subversion subversion-tools 详细请看 http://www.subversion. ...

  7. Ubuntu下sqlite3的安装及使用

    Sqlite是一款轻型的数据库,实现了多数SQL-92标准,包括事务(原子性,一致性,隔离性和持久性 ACID),触发器与多数复杂查询.对于一个移动手持设备的应用开发者,Sqlite是居家旅行必备数据 ...

  8. ubuntu下搭建cocos2dx编程环境-下

         前两篇介绍了cocos2d-x 下linux开发环境配置和android 环境配置问题.在这其中遇到很多问题,所以最后一篇分享一下在处理这些问题时,我是如何解决的,是怎么想的.同时总结一些解 ...

  9. Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL

    .简介: Tomcat在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱.虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态页面要比通过Tomcat处理在性能方面好很多 ...

随机推荐

  1. Spring talk简单配置

    XMl文件 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://w ...

  2. js基础第3天

    仿淘宝搜索框案例(有价值) 判断用户输入事件 正常浏览器:oninput(判断用户输入) ie678浏览器兼容:onpropertychange(因为兼容性问题, ie浏览器678是需要使用这个来判断 ...

  3. Unix System Overview

    一.Unix 体系结构 由上图可以看出,内核居于最里层,Shell,Libary routines,以及Application通过系统调用(system calls)访问内核提供的功能.注意系统调用与 ...

  4. Java学习笔记(1)

    封装基本原则之一: 将实例变量标记为private,将getters与setters标记为public,用setters来检查参数并判断是否可以执行: 局部变量与实例变量的区别: 你无需初始实例变量, ...

  5. 命令cd

    "." 当前目录".." 上一级目录"~" 用户家目录 cd + 回车 回到家目录“-” 上一个工作目录

  6. Android 网络权限配置

    Android开发应用程序时,如果应用程序需要访问网络权限,需要在 AndroidManifest.xml 中加入以下代码 <uses-permission android:name=”andr ...

  7. 【转载】IP首部、TCP首部、UDP首部

    [转载自]http://blog.csdn.net/hjffly/article/details/7959889 IP首部 版本:L3协议版本号,IPv4或IPv6 首部长度:单位为4字节 协议:L4 ...

  8. 深入prototype源码之--Class

    由于工作需要项目中要用prototype框架,所以这几天捣鼓了一下,研究了一下prototype 创建对象和类以及继承的一些源码,其实早在很久以前就接触prototype,然后直接看源码, 看着太蛋疼 ...

  9. Java语言速览:StackOverflow

    关于 java Java(请不要与 JavaScript 搞混)是一种设计为与 Java 虚拟机 (JVM) 一起使用的多用途编程语言.一般将安装了相关工具可以开发并运行 Java 程序的电脑系统称为 ...

  10. hdoj 2097 Sky数

    Sky数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...