首先 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 了:
Serving Raspberry Pi with Flask - Matt Richardson, Creative Technologist
Make an Internet Controlled Lamp with a Raspberry Pi and Flask
把 GPIO 做成了 RESTful API,可以参考,raspberrypi-gpio-api
参考
有关 GPIO:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。