树莓派python gpio图形_树莓派GPIO功能学习

前言

树莓派现在越来越火,网上树莓派的资料也越来越多。树莓派的学习可以分为linux系统学习和linux驱动学习,利用树莓派制作LED流水灯应该算是驱动学习吧。树莓派来自国外,国外嵌入式开源领域具备良好的分享精神,树莓派的各种集成库也层出不穷,下面推荐几个。

python GPIO

链接网址: https://code.google.com/p/raspberry-gpio-python/

简单介绍:树莓派官方资料中推荐,容易上手。但是需要学习python,需要简单阅读一些python的编程图书或者资料,幸好python也是非常容易学习的。

wiringPi

链接网址: http://wiringpi.com/

简单介绍:编程的方法兼容arduino,原作者给出了大量的说明和示例代码,功能强大。严格来说使用wiringPi编程使用Processing的语言,该语言由java演化而来。

BCM2835 C Library

链接网址:  http://www.airspayce.com/mikem/bcm2835/

简单介绍:C Library可以理解为使用C语言实现的底层驱动,包括GPIO、SPI和UART等,使用简单方便同样容易上手。

1.硬件准备

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

2.程序实现

2.1 Python

新建一个名为led.py的程序,程序的具体内容如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD)

# need to set up every channel which are using as an input or an output

GPIO.setup(11, GPIO.OUT)

while True:

GPIO.output(11, GPIO.HIGH)

time.sleep(1)

GPIO.output(11, GPIO.LOW)

time.sleep(1)

使用cd命令进入文件所在目录,然后输入指令

sudo python led.py

使用这种方法实现LED闪烁的最容易的方法,网上的教程也非常多,是入门树莓派的好方法。

2.2 wiringPi

新建一个名为blink.c的程序,程序内容如下

#include <wiringPi.h>

main ()

{

wiringPiSetup () ;

pinMode (0, OUTPUT) ;

for (;;)

{

digitalWrite (0, HIGH) ; delay (500) ;

digitalWrite (0, LOW) ; delay (500) ;

}

}

使用cd命令进入所在文件目录,然后输入以下命令生成可执行文件blink

gcc -Wall -o blink blink.c -lwiringPi

最后输入以下命令执行程序

sudo ./blink

之后程序便会运行,使用ctrl+c可以结束程序,这里会有一点小问题由于程序停止的时间未知,所有LED可能为点亮状态也可能会熄灭状态。和python的程序相比,GPIO的端口号似乎发生了变化,但是实际上为同一个IO,只是IO的编辑顺序略有不同。

2.3 BCM2835 C Library

新建一个名为blink.c的程序,程序的具体内容如下

#include <bcm2835.h>

// Blinks on RPi Plug P1 pin 11 (which is GPIO pin 17)

#define PIN RPI_GPIO_P1_11

int main(int argc, char **argv)

{

if (!bcm2835_init())

return 1;

// Set the pin to be an output

bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);

// Blink

while (1)

{

bcm2835_gpio_write(PIN, HIGH);

bcm2835_delay(100);

bcm2835_gpio_write(PIN, LOW);

bcm2835_delay(100);

}

bcm2835_close();

return 0;

}

使用cd指令进入文件所在目录,然后输入以下命令生成可执行文件

gcc -o blink blink.c -l bcm2835

最后执行该程序,输入以下指令

sudo ./blink

之后程序便会运行,运行的效果和前面两个效果相似,只是LED闪烁的时间略有不同。如果深入以上各种函数库,本质上依然是操作bcm2835的相关寄存器。

3.未来技术

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值