前言

树莓派现在越来越火,网上树莓派的资料也越来越多。树莓派的学习可以分为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功能等。最后综合以上若干内容和以太网功能做一个好玩的应用。

树莓派python gpio图形_树莓派GPIO功能学习相关推荐

  1. 树莓派python编程小车_树莓派小车教程(三)——软件代码

    原标题:树莓派小车教程(三)--软件代码 树莓派小车教程(三)--软件代码 2017-07-07 琳小豆 HelloWorld少儿编程 树莓派小车教程 (三) 在上一次教程中,我们已经完成了硬件连接. ...

  2. 树莓派python开发教程_树莓派教程(基于python编程)--入门篇

    原标题:树莓派教程(基于python编程)--入门篇 一:格式化SD卡 SD卡插入读卡器连接电脑,使用SDFormatter对SD卡进行格式化 (重装烧录也要进行着SD卡格式化操作) 二:下载官方镜像 ...

  3. 树莓派python编程优点_树莓派为什么会使用python编程?为什么有时python运行效率不高?...

    在许多编程语言中,Python的语法也有很大不同.Python使用空格或缩进来分隔不同的代码块.C语言和其他语言使用花括号来区分不同的代码块,例如if语句,Python使用冒号和缩进来定义代码块.这也 ...

  4. 树莓派python开发教程_树莓派Raspberry开发从基础到进阶视频+设计资料超详细教程下载...

    课程内容 [初级篇]重点推荐:树莓派开发实战视频教程+文档教程(含源码) 课程目录 教学视频与源代码 1.[进阶篇]Raspberry详细视频教程 树莓派基础 安装树莓派的操作系统 远程登录和使用树莓 ...

  5. 树莓派python机器人程序_树莓派打造对话机器人 Python(转)

    工具列表 1. **树莓派**(型号不要求,本人使用的是3B) 2. **usb麦克风**(某宝有卖,我就不打广告了) 用来录音 3. **音响或者喇叭**(某宝也有卖) 用来播放 以上就是需要的工具 ...

  6. python树莓派经典书籍推荐_树莓派教程书籍推荐:带你玩转Raspberry Pi

    随着<星球大战><复仇者联盟><NASA>等科幻电影的热映,人工制作装置也更加受到人们关注,与这些电影有关的一切设备都显得非常有科技感,格调很高.本期树莓派教程书籍 ...

  7. python舵机控制程序_树莓派PWM控制舵机的两种方式

    PWM控制舵机简介 通常情况下,伺服电机(舵机)是由一个标准的直流系统和一个内部反馈控制装置(一个减速齿轮和电位计)来组成的.伺服电机(舵机)的主要作用是将齿轮轴旋转到一个预定义的方向上.伺服电机(舵 ...

  8. python连接传感器_树莓派4B之光敏传感器模块(python3)

    背景 本人最因工作原因接触到各种电路板,传感器,而自己又是一个小白,随意在其他朋友的推荐下决定从树莓派开始玩传感器:本例子为树莓派控制红外避障传感器 材料 1.树莓派4b 2.火焰传感器模块 3.导线 ...

  9. 树莓派python物体识别_基于树莓派和Tensowflow的物体识别

    近来这篇文章很火:How to build a robot that "sees" with $100 and TensorFlow (作者是Lukas,CrowdFlower创始 ...

最新文章

  1. Python第三周 学习笔记(2)
  2. 只是pip安装输错字母,你就可能中了挖矿病毒
  3. Memcache工作原理总结
  4. 硬盘物理序列号修改工具_精品软件:MHDD磁盘坏道扫描工具使用方法图解教程...
  5. A Complete Example
  6. weui-react项目实战新心得
  7. html表格中绑定显示xml文档内容的简单实例,JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)...
  8. [css] 说说你对table-layout的理解,它有什么运用场景?
  9. Redis启动的三种方式
  10. php设置session 生命周期,php会话(session)生命周期概念介绍及设置更改和回收
  11. Python 之父 Guido van Rossum 宣布
  12. 安卓图片处理全解:获取视频的缩略图
  13. php mysql追踪器_zf框架的数据库追踪器使用示例
  14. Python的程序结构[2] - 类/Class[1] - 基类与继承
  15. arcgis伪节点检查_ArcGis拓扑错误检查及修改
  16. obs摄像头模糊_OBS录制视频画面很糊,不清晰,怎么调整设置?
  17. C# winform 选择文件保存路径
  18. python画螺旋状图形教程_如何快速绘制一个“螺旋状”图形?
  19. 在‘句子迷’爬取网友总结的方文山歌词并作词频统计
  20. Vue之如何调用高德地图步骤详解

热门文章

  1. QQ启动initialization failure:0x0000000C错误解决方案
  2. c语言中assert函数是什么
  3. 2021-11-12尤破金11.13黄金下周预测;黄金还会涨吗?白银td走势分析操作建议
  4. 从鳄鱼哥尼流绘本思考,数据分析师是怎样炼成的?(二)
  5. mysql字符串转数组,合并结果集,转成数组
  6. A Self-Attentive model for Knowledge Tracing
  7. java中的asList_java中Arrays.asList的使用
  8. 案例操作步骤演示ppt2013取色器在哪以及如何使用
  9. JAVA从入门到精通------基础篇------线程
  10. c# 汉字换英文,英文转汉字