3

首先 GPIO 这个东西做过单片机或者 Arduino 开发的会很熟悉很熟悉,且这个也不是什么难的概念,说简单点就是输入模式可以读取某一时刻那个端口是高电平还是低电平,输出模式可以设置某一时刻那个端口是高电平还是低电平。在数字电路的世界里都是靠这样的 0 1 按照一定规则的时序来通信的。

在树莓派里面毕竟不能单片机或者 Arduino 那样的裸机开发,而是有了操作系统的,所以应该是系统提供可以操作 GPIO 的系统调用,然后有人封装出了好用的库来让各种编程语言来方便的通过 API 来访问 GPIO。

思路

  • 简单了解树莓派的 GPIO 硬件资源和软件资源

  • GPIO 世界的 Hello World -> “点灯”

  • 怎么和 Flask 之类的 Web 服务器联动

树莓派的 GPIO

GPIO: Raspberry Pi Models A and B - Raspberry Pi Documentation

  • GPIO * 17

  • GND * 5

  • 5v * 2

  • 3.3v * 2

这里有一个网站专门介绍这些 GPIO:5v Power at Raspberry Pi GPIO Pinout,调试的时候可以用作参考。

Hello GPIO

用到了 GPIO 的 Python Quick Reaction Game,已经过了玩这个游戏的年纪了(弄过好多次了吧,哈哈)。所以直接去点一个灯吧!

那个 RPi.GPIO 系统本来就有,只是不要把 i 的大小写弄错了。

下面的代码成功点亮了:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

led = 4
GPIO.setup(led, GPIO.OUT)

GPIO.output(led, 1)
time.sleep(0.5)
GPIO.output(led, 0)
time.sleep(0.5)
GPIO.output(led, 1)
time.sleep(0.5)
GPIO.output(led, 0)
time.sleep(0.5)
GPIO.output(led, 1)
time.sleep(0.5)
GPIO.output(led, 0)
time.sleep(0.5)

GPIO.cleanup()

准备基础工具

rsync and tmux

大概用一个这样的命令来同步代码:

$ rsync -avz --rsh="ssh" --progress --exclude .git /Users/clip/ved/pi/ pi@172.16.0.7:/home/pi/dev/

用 tmux 来保证那边运行的程序不会因为 SSH 的断开而停止。

GPIO & Flask

这是我的搜索关键字:raspberry pi gpio flask,应该能够找到资源的吧。

找到几个简单的资源,足够用来写 Hello World 了:

参考

有关 GPIO:


常伟佳
310 声望16 粉丝

引用和评论

0 条评论