Upgrade to Pro — share decks privately, control downloads, hide ads and more …

(學習護照)樹莓派基礎教學

 (學習護照)樹莓派基礎教學

Yi-Zhen, Chen

July 14, 2021
Tweet

More Decks by Yi-Zhen, Chen

Other Decks in Programming

Transcript

  1. 紅/黃/綠 LED燈 大按鍵開關 1K/2K 電阻 自激/他激 蜂鳴器 10K可變電阻 光敏電阻 傾斜滾珠開關

    超音波距離感測器 類比轉換 紅外線感測器 雙軸XY搖桿組 20pin 公對母排線 20pin 公對公排線 20pin 母對母排線 麵包板
  2. • ls • cd <目錄> • cd .. • cd

    ~ • pwd • sudo reboot • sudo poweroff # 查看目前工作目錄 # 重開機 # 關機 # 顯示該目錄下所有檔案與文件夾 # 前往指定目錄,若後頭空白則回到主目錄 # 回上一層 # 回家目錄
  3. • mkdir <目錄名> • touch <檔案名> • nano <檔案名> •

    vim <檔案名> • cp <原檔案或目錄> <新檔案或目錄> • mv <原檔案或目錄> <目標檔案或目錄> • rm <檔案或目錄> # 新建目錄(文件夾) # 新增空白檔案或 更新已存在文件時間戳記 # 在終端機編輯文字檔案 # 在終端機編輯文字檔案 # 複製檔案 # 移動檔案 # 刪除檔案
  4. sudo apt-get update sudo apt-get install -y python-dev python-pip libsdl1.2-dev

    x11vnc # 請輸入指令 (複製完後在putty按右鍵貼上) 下載此PPT跟範例程式碼(.py):https://reurl.cc/31eeeX
  5. • GPIO (General Purpose Input Output) • GPIO 是一種可用軟體控制的數位訊號 •

    決定是輸入還是輸出 1) 輸出:寫值到某根腳位 2) 輸入:從某根腳位讀值
  6. • 引腳 1,2,4 1. 恆定輸出電壓 (3.3 / 5 V) •

    引腳 6,9,14 …等黑色圖標 1. GND代表Ground接地 2. 電壓為0V • 引腳 7,11,12,13,15 …等綠色圖標 1. 可輸入可輸出 2. 電壓負荷在3.3 ~ 0V 3. 使用程序來控制
  7. • range() 創建一個整數序列,可定義成 ( 起始值, 終止值, 遞增/減值 ) • range(10):產生0~9的整數序列

    • range(1, 11):產生1~10的整數序列 • range(0, 10, 2):產生從0, 2, 4, 6, 8的整數序列 未指定遞增值的情況下, 其遞增值預設為1 ※ range(10,0,-3) 會產生多少範圍內的序列?
  8. 寫一個for迴圈吧! 請實作看看在for迴圈中range(10,0,-3)的結果 nano存檔方式: 1. 按下 Ctrl + X 離開 2.

    詢問是否儲存修改?按下 Y 3. 詢問要儲存的檔名 > 按下 ENTER ※ 注意縮排! 執行python檔案,指令列輸入: sudo python test_forloop.py
  9. 1. LED短腳接地 (與黑排線同水平排) 2. LED長腳接電 (與電阻一腳同水平排) 3. 通電處中間接電阻 (電阻另一腳的水平排上接線) 4.

    公母排線與樹莓派引腳連接 黑線:接GND (黑標 位置14) 紅線:接通用引腳 (綠標 位置12) 直接接GND即可
  10. #!/usr/bin/python import RPi.GPIO as GPIO import time LED_PIN = 12

    GPIO.setmode(GPIO.BOARD) GPIO.setup(LED_PIN, GPIO.OUT) try: while True: print "LED is on" GPIO.output(LED_PIN, GPIO.HIGH) time.sleep(1) print "LED is off" GPIO.output(LED_PIN, GPIO.LOW) time.sleep(1) except KeyboardInterrupt: print "Exception: KeyboardInterrupt" finally: GPIO.cleanup() 完整程式碼 請查看led_blink.py GPIO的Hello World—亮燈 1. 打開空白記事本 2. 將led_blink.py拉過去 3. 就可以看到程式碼! 4. 複製led_blink.py的程式碼 5. 在putty的文字編輯器視窗內 按下右鍵,即可貼上程式碼
  11. import RPi.GPIO as GPIO import time 載入模組 LED_PIN = 12

    GPIO.setmode(GPIO.BOARD) GPIO.setup(LED_PIN, GPIO.OUT) 設定編號規則與channel 填上燈泡接電的引腳編號
  12. #!/usr/bin/python import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) RED_PIN =

    11 # GPIO17 YEL_PIN = 12 # GPIO18 GRN_PIN = 13 # GPIO27 GPIO.setup(RED_PIN, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(YEL_PIN, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(GRN_PIN, GPIO.OUT, initial=GPIO.LOW) try: while True: GPIO.output(RED_PIN, GPIO.HIGH) time.sleep(4) GPIO.output(RED_PIN, GPIO.LOW) GPIO.output(YEL_PIN, GPIO.HIGH) time.sleep(2) GPIO.output(YEL_PIN, GPIO.LOW) GPIO.output(GRN_PIN, GPIO.HIGH) time.sleep(4) GPIO.output(GRN_PIN, GPIO.LOW) except KeyboardInterrupt: print "Exception: KeyboardInterrupt" finally: GPIO.cleanup() 完整程式碼 請查看 traffic_light_nonstructure.py 紅綠燈亮燈 這邊一樣要改引腳編號!