开始认真的学习树莓派了,开始做一些自己喜欢的事了。
0.前言
【简单介绍】??该
库更确切的名称为raspberry-gpio-python,树莓派官方资料中推荐且容易上手。python
GPIO是一个小型的python库,可以帮助用户完成raspberry相关IO口操作。但是python
GPIO库还没有支持SPI、I2C或者1-wire等总线接口。除了python
GPIO之外,还有众多的python扩展库(例如webiopi),毫无疑问的说python非常适合树莓派,树莓派也非常适合python。
【简单介绍】??wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。wiringPi的API函数和arduino非常相似,这也使得它广受欢迎。作者给出了大量的说明和示例代码,这些示例代码也包括UART设备,I2C设备和SPI设备等,毫无疑问地说wiringPi功能非常强大。
【简单介绍】BCM2835 C
Library可以理解为使用C语言实现的相关底层驱动,它给我的感觉更像STM32的库函数,BCM2835 C
Library的驱动库包括GPIO、SPI和UART等,可以通过学习BCM2835 C
Library熟悉BCM2835相关的寄存器操作。如果有机会开发树莓派上的linux驱动,或自主开发python或PHP扩展驱动,可以从
BCM2835 C Library找到不少的“灵感”。
1.硬件准备
2.注意事项
【编号方式】
可以在windows中编写代码,如果是Python脚本可通过FTP软件传输到树莓派中,然后使用SSH客户端登录到树莓派中执行Python脚本。如
果是C语言文件,除了使用FTP传输之外还需要在树莓派上编译才可以生成可执行文件(相当于windows上的exe文件)。相关软件操作请参考【树莓派学习笔记??常用软件汇总】
2 Python GPIO实现
$ wget http://raspberry-gpio-python.googlecode.com/files/RPi.GPIO-0.5.3a.tar.gz
$ tar xvzf RPi.GPIO-0.5.3a.tar.gz
# 进入解压之后的目录
$ cd RPi.GPIO-0.5.3a
# 启动安装
$ sudo python setup.py install
- # -*- coding: utf-8 -*-
- import RPi.GPIO as GPIO
- import time
- # BOARD编号方式,基于插座引脚编号
- GPIO.setmode(GPIO.BOARD)
- # 输出模式
- GPIO.setup(11, GPIO.OUT)
- while True:
- GPIO.output(11, GPIO.HIGH)
- time.sleep(1)
- GPIO.output(11, GPIO.LOW)
- time.sleep(1)
【1】GPIO.setmode(GPIO.BOARD),采用插座引脚编号方式。
4 WiringPi实现
- #include <wiringPi.h>
- int main(void)
- {
- wiringPiSetup() ;
- pinMode (0, OUTPUT) ;
- for(;;)
- {
- digitalWrite(0, HIGH) ; delay (500) ;
- digitalWrite(0, LOW) ; delay (500) ;
- }
- }
5 BCM2835 C Library
$ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.35.tar.gz
# 解压缩
$ tar xvzf bcm2835-1.35.tar.gz
# 进入压缩之后的目录
$ cd bcm2835-1.35
# 配置
./configure
# 从源代码生成安装包
make
# 执行检查
sudo make check
# 安装 bcm2835库
sudo make install
- #include <bcm2835.h>
- // P1插座第11脚
- #define PIN RPI_GPIO_P1_11
- int main(int argc, char **argv)
- {
- if (!bcm2835_init())
- return 1;
- // 输出方式
- bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);
- while (1)
- {
- bcm2835_gpio_write(PIN, HIGH);
- bcm2835_delay(100);
- bcm2835_gpio_write(PIN, LOW);
- bcm2835_delay(100);
- }
- bcm2835_close();
- return 0;
- }
6 未来做些什么
实践GPIO输入功能,实践SPI功能,实践I2C功能等。最后综合以上若干内容结合web做些好玩的应用。