1.RPi.GPIO//RPi.GPIO-0.5.5.tar.gz

开发者:python官网:https://www.python.org/

官网:https://pypi.python.org/pypi/RPi.GPIO

RPi.GPIO安装

    a.安装python-dev
  1. sudo aptitude install python-dev
    b.安装RPi.GPIO
  1. # 下载
  2. $ wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.5.tar.gz
  3. # 解压缩
  4. $ tar xvzf RPi.GPIO-0.5.3a.tar.gz
  5. # 进入解压之后的目录
  6. $ cd RPi.GPIO-0.5.3a
  7. # 启动安装
  8. $ sudo python setup.py install

python官网简介:Python     Docs           PyPI

python      文档            Python Package Index=python软件包目录

点开PyPI,然后再搜索框内搜索RPi.GPIO-0.5.5.tar.gz

2.BCM2835 c library

官网:http://www.airspayce.com/mikem/bcm2835/    //看看最新i2c实例

安装:

  1. # 下载
  2. $ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.36.tar.gz
  3. # 解压缩
  4. $ tar xvzf bcm2835-1.35.tar.gz
  5. # 进入解压之后的目录
  6. $ cd bcm2835-1.35
  7. # 配置
  8. ./configure
  9. # 从源代码生成安装包
  10. make
  11. # 执行检查
  12. sudo make check
  13. # 安装 bcm2835库
  14. sudo make install

3.WiringPi

官网:http://wiringpi.com/

开发者:

安装:见另一篇博文

以下原文:http://blog.csdn.net/xukai871105/article/details/12684617

0.前言

    树莓派现在越来越火,网上树莓派的资料也越来越多。
    更多树莓派学习笔记请参考——【树莓派学习笔记——索引博文
    树莓派来自国外,国外嵌入式开源领域具有良好的分享精神,树莓派各种集成库也层出不穷,下面推荐几个。
    【python GPIO】(该库更确切的名称应为raspberry-gpio-python)
 
    简单介绍:树莓派官方资料中推荐且容易上手。python GPIO是一个小型的python库,可以帮助用户完成raspberry相关IO口操作。但是python GPIO库还没有支持SPI、I2C或者1-wire等总线接口。除了python GPIO之外,还有众多的python扩展库(例如webiopi),毫无疑问的说python非常适合树莓派,树莓派也非常适合python。
    【wiringPi
    简单介绍:编程的方法兼容arduino,作者给出了大量的说明和示例代码,功能强大。这些示例代码也包括UART设备,I2C设备和SPI设备等。
    【BCM2835 C Library
    简单介绍:C Library可以理解为使用C语言实现的底层驱动,包括GPIO、SPI和UART等,使用简单方便同样容易上手。
    

1.硬件准备

    从淘宝上淘了一下,发现深圳有家店做的很不错,虽然东西有点贵但是品质上乘。光有树莓派其实用途有限,还需要合适的扩展板,下面是扩展板的图片:

2.程序实现

2.1 Python

    RPi.GPIO安装
    a.安装python-dev
  1. sudo aptitude install python-dev
    b.安装RPi.GPIO
  1. # 下载
  2. $ wget http://raspberry-gpio-python.googlecode.com/files/RPi.GPIO-0.5.3a.tar.gz
  3. # 解压缩
  4. $ tar xvzf RPi.GPIO-0.5.3a.tar.gz
  5. # 进入解压之后的目录
  6. $ cd RPi.GPIO-0.5.3a
  7. # 启动安装
  8. $ sudo python setup.py install
    新建名为led.py的程序,程序的具体内容如下:
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import RPi.GPIO as GPIO
  4. import time
  5. GPIO.setmode(GPIO.BOARD)
  6. # need to set up every channel which are using as an input or an output
  7. GPIO.setup(11, GPIO.OUT)
  8. while True:
  9. GPIO.output(11, GPIO.HIGH)
  10. time.sleep(1)
  11. GPIO.output(11, GPIO.LOW)
  12. time.sleep(1)
    使用cd命令进入文件所在目录,然后输入指令
   sudo python led.py
    使用这种方法实现LED闪烁的最容易的方法,网上的教程也非常多,是入门树莓派的好方法。

2.2 wiringPi

    新建一个名为blink.c的程序,程序内容如下:【更多wiringPi介绍和安装指南】【blink代码的详细分析
  1. #include <wiringPi.h>
  2. main ()
  3. {
  4. wiringPiSetup () ;
  5. pinMode (0, OUTPUT) ;
  6. for (;;)
  7. {
  8. digitalWrite (0, HIGH) ; delay (500) ;
  9. digitalWrite (0,  LOW) ; delay (500) ;
  10. }
  11. }
    使用cd命令进入所在文件目录,然后输入以下命令生成可执行文件blink
    gcc -Wall -o blink blink.c -lwiringPi
    最后输入以下命令执行程序
    sudo ./blink
    之后程序便会运行,使用ctrl+c可以结束程序。这里会有一点小问题,由于程序停止的时间未知,所有LED可能为点亮状态也可能会熄灭状态。和python的程序相比,GPIO的端口编号似乎发生了变化,但是实际为同一个IO,只是IO的编辑顺序略有不同。

2.3 BCM2835 C Library

BCM2835 C Library 安装

  1. # 下载
  2. $ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.35.tar.gz
  3. # 解压缩
  4. $ tar xvzf bcm2835-1.35.tar.gz
  5. # 进入解压之后的目录
  6. $ cd bcm2835-1.35
  7. # 配置
  8. ./configure
  9. # 从源代码生成安装包
  10. make
  11. # 执行检查
  12. sudo make check
  13. # 安装 bcm2835库
  14. sudo make install
    新建一个名为blink.c的程序,程序的具体内容如下
  1. #include <bcm2835.h>
  2. // Blinks on RPi Plug P1 pin 11 (which is GPIO pin 17)
  3. #define PIN RPI_GPIO_P1_11
  4. int main(int argc, char **argv)
  5. {
  6. if (!bcm2835_init())
  7. return 1;
  8. // Set the pin to be an output
  9. bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);
  10. // Blink
  11. while (1)
  12. {
  13. bcm2835_gpio_write(PIN, HIGH);
  14. bcm2835_delay(100);
  15. bcm2835_gpio_write(PIN, LOW);
  16. bcm2835_delay(100);
  17. }
  18. bcm2835_close();
  19. return 0;
  20. }
    使用cd指令进入文件所在目录,然后输入以下命令生成可执行文件
    gcc -o blink blink.c -lbcm2835
    最后执行该程序,输入以下指令
    sudo ./blink
    之后程序便会运行,运行的效果和前面两个效果相似,只是LED闪烁的时间略有不同。如果深入以上各种函数库,本质上依然是操作bcm2835的相关寄存器。

3.未来想法

    实践GPIO输入功能,实践SPI功能,实践I2C功能等。最后综合以上若干内容和以太网功能做一个好玩的应用。

4.树莓派博文链接

关于RPi.GPIO、BCM2835 c library、WiringPi、Gertboard的更多相关文章

  1. RPi.GPIO 和 HM

    后续笔记不再记录导入的模块和硬件的连接方法,请根据关键词自行搜索. RPi.GPIO模块 GPIO:General Purpose Input Output 即 通用输入/输出 RPi.GPIO是一个 ...

  2. 【玩转开源】BananaPi R2——移植RPi.GPIO 到 R2

    1. 首先给大家介绍一下什么是RPi.GPIO. 简单去讲,RPi.GPIO就是一个运行在树莓派开发板上可以通过Python去控制GPIO的一个中间件. 现在我这边做了一个基础功能的移植,接下来大家可 ...

  3. 树莓派 - RPi.GPIO

    RPi.GPIO是通过Python/C API实现的,C代码操作底层寄存器, python通过Python/C API调用这些C接口. 这是关于RPi.GPIO项目的介绍. 其中提到了有python ...

  4. nanopi NEO2 学习笔记 3:python 安装 RPi.GPIO

    如果我要用python控制NEO2的各种引脚,i2c 或 spi ,RPi.GPIO模块是个非常好的选择 这个第三方模块是来自树莓派的,好像友善之臂的工程师稍作修改移植到了NEO2上,就放在 /roo ...

  5. 树莓派RPi.GPIO+Flask构建WebApi实现远程控制

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- import RPi.GPIO as GPIO from flask import Flask, requ ...

  6. 友善RK3399/NanoPC-T4开发板wiringPi的C语言访问GPIO外设实例讲解 -【申嵌视频】

    1 wiringPi简介 wiringPi库最早是由Gordon Henderson所编写并维护的一个用C语言写成的类库,除了GPIO库,还包括了I2C库.SPI库.UART库和软件PWM库等,由于w ...

  7. 树莓派 -- bcm2835 library (1)

    bcm2835 library提供了user space 操作IO的代码. 本文不涉及代码分析,先直观的按照user guide完成操作. 1. 在Raspberry中安装bcm2835 librar ...

  8. RPi 2B GPIO 测试

    /************************************************************************************** * RPi 2B GPI ...

  9. 树莓派学习路程No.1 GPIO功能初识 wiringPi安装

    WiringPi是应用于树莓派平台的GPIO控制库函数,WiringPi遵守GUN Lv3.wiringPi使用C或者C++开发并且可以被其他语言包转,例如python.ruby或者PHP等.Wiri ...

随机推荐

  1. java集合测试类等

    package demo.mytest; import java.lang.ref.SoftReference;import java.lang.ref.WeakReference;import ja ...

  2. [POJ]1164 The Castle

    //markdown复制进来一堆问题 还是链接方便点 POJ 1164 The Castle 首先想到用9个方格来表示一个房间,如此一来复杂许多,MLE代码如下: //Writer:GhostCai ...

  3. 【Java_基础】cmd下使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析

    1.问题如下 当在命令行使用java命令执行字节码文件时提示“错误:找不到或无法加载主类” 2. 问题分析 这是由于在运行时类的全名应该是包名+类名,例如在包net.xsoftlab.baike下的类 ...

  4. PyQt5(2)、垃圾分类小程序(2)——初代窗口程序可执行文件

    又是一天时间(又没做大作业).今天的心路历程:(1)前端后端怎么连接?(2)后端数据库插数据(3)完全没用上之前的字典反查法(4)突然发现面向对象编程其实很好用,甚至越用越上瘾(5)QLineEdit ...

  5. UIBarButtonSystemItem 样式

    使用时需要注意创建方式的区别: 01 typedef enum { 02     UIBarButtonSystemItemDone, 03     UIBarButtonSystemItemCanc ...

  6. C语言文件操作 FILE结构体

    内存中的数据都是暂时的,当程序结束时,它们都将丢失.为了永久性的保存大量的数据,C语言提供了对文件的操作. 1.文件和流 C将每个文件简单地作为顺序字节流(如下图).每个文件用文件结束符结束,或者在特 ...

  7. 《C/C++专项练习》— (1)

    前言 每每到了一周之计的Monday啊,精神总是不佳,写篇博客提提神儿吧~ 继上次完成<C/C++工程师综合练习卷>后,有事儿没事儿就想刷几道题,赶脚不错,巩固了不少基础知识呢,要坚持哦~ ...

  8. failed to execute goal org.apache.maven.plugins:maven-archetype-plugin错误解决方法

    使用maven创建project时碰到如下错误: D:\codes\JSF>mvn archetype:create -DgroupId=com.tutorialspoint.test -Dar ...

  9. Django的中间件及WSGI

    什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和输出.每个中间件组件都负责做一些特定的 ...

  10. goland 快键键整理及注册

    https://my.oschina.net/lemos/blog/1358731 http://idea.lanyus.com/