樹莓派簡單 GPIO 操做

首先 GPIO 這個東西作過單片機或者 Arduino 開發的會很熟悉很熟悉,且這個也不是什麼難的概念,說簡單點就是輸入模式能夠讀取某一時刻那個端口是高電平仍是低電平,輸出模式能夠設置某一時刻那個端口是高電平仍是低電平。在數字電路的世界裏都是靠這樣的 0 1 按照必定規則的時序來通訊的。php

在樹莓派裏面畢竟不能單片機或者 Arduino 那樣的裸機開發,而是有了操做系統的,因此應該是系統提供能夠操做 GPIO 的系統調用,而後有人封裝出了好用的庫來讓各類編程語言來方便的經過 API 來訪問 GPIO。python

思路

  • 簡單瞭解樹莓派的 GPIO 硬件資源和軟件資源react

  • GPIO 世界的 Hello World -> 「點燈」linux

  • 怎麼和 Flask 之類的 Web 服務器聯動git

樹莓派的 GPIO

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

  • GPIO * 17編程

  • GND * 5flask

  • 5v * 2api

  • 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:

相關文章
相關標籤/搜索