iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
AI & Data

AIoT的藍藥丸與紅藥丸,你選哪個?系列 第 44

Day 24:口紅.樹莓.女生宿舍的GPIO驚魂夜

  • 分享至 

  • xImage
  •  

前情提要

https://ithelp.ithome.com.tw/upload/images/20231009/20162501BpeDS5htFv.jpg
  在Day 24:口紅裡的樹莓派密碼中,你是一個大學生。而你的大學室友們打算拉你一起偷偷潛入女生宿舍送宵夜。你跟眼鏡仔一起破解女生宿舍的門禁系統,但眼鏡仔出包了,還觸發了門禁系統的保護機制──女生宿舍的GPIO迷宮
  你、眼鏡仔、毛帽哥三人開始分開找線索,想要找到這個房間隱藏的電路板,之後再用它來欺騙門禁系統。結果你在化妝包裡找到一個口紅USB。你們把它插到電腦上,發現裡面有三個檔案。

rw-r--r-- 1 pi pi 1024 Oct 9 22:40 welcome.txt
-rw-r--r-- 1 pi pi 2048 Oct 9 22:41 myraspberry.jpg
-rwxr-xr-x 1 pi pi 512 Oct 9 22:42 script.py

你們首先打開myraspberry.jpg,發現是大漂亮的外拍照。照片裡面還有一雙奇怪的手拿著一串樹莓。看來,『樹莓』是一個提示,你們要找到那個神奇樹莓。

welcome.txt

  你們接著打開welcome.txt,發現一段文字。

嘿,看來你們已經發現這是我做的GPIO的迷宮了。你們一定很好奇我把電路板藏在哪裡吧?給你們一個提示,試著用GPIO來控制這個的房間裡的裝置,就可以找到那個藏有電路板的裝置。如果你們順利找到,就可以用這張電路板來解開門禁系統,我會在出口等你們。如果你們找不到,就看不到我,而且還有警衛會來找你們哦~

script.py

https://ithelp.ithome.com.tw/upload/images/20231009/20162501o4DZNmTVVx.png
  你們接著打開script.py,發現是一段Python程式碼。程式碼如下:

import RPi.GPIO as GPIO # 導入Raspberry Pi GPIO模組
import time # 導入time模組
GPIO.setmode(GPIO.BCM) # 設定GPIO模組模式為BCM
GPIO.setup(17, GPIO.OUT) # 設定GPIO17接腳為輸出模式
for i in range(10): # 重複10次
    GPIO.output(17, GPIO.HIGH) # 讓GPIO17接腳輸出高電位,點亮LED燈
    time.sleep(1) # 暫停1秒
    GPIO.output(17, GPIO.LOW) # 讓GPIO17接腳輸出低電位,熄滅LED燈
    time.sleep(1) # 暫停1秒
GPIO.cleanup() # 清除GPIO接腳的設定

  「這段程式碼是用來幹嘛的?」你跟毛帽哥問眼鏡仔。
  「這是用來操控GPIO接腳的。GPIO接腳就像是樹莓派的手和腳,可以讓它跟其他的東西連接起來,像是燈泡、開關、感應器等等。它還可以發出或接收高低電壓訊號,就像是樹莓派和其他東西之間溝通的語言。」眼鏡仔解釋,「這就是為了要讓樹莓派學會這種語言,才能和外部零件(LED燈、按鈕、感測器……等)溝通。」
  「那設定GPIO模組模式為BCM要幹嘛?」
  「用這種方法,就可以讓樹莓派可以用晶片上的編號來控制GPIO接腳(直接使用BCM GPIO編號來指定接腳)。這樣比較方便,不用記住每個接腳的位置。」
  「接下來呢?」
  「接下來要開始設定接腳模式,這可以讓樹莓派控制外部零件。這些接腳都已經被連接到某個裝置,所以就把他設定為輸出模式。這就像是樹莓派對外部零件溝通,叫它們做事。」
  「那我們現在要執行嗎?應該不會有什麼奇怪的東西跑出來吧?」
  你們終於下定決心執行程式,然後發現房間裡面有一個小小的紅色LED燈在閃。那個LED燈就在盆栽裡面,看起來像是一棵樹莓。


上一篇
Day 24:口紅裡的樹莓派密碼
下一篇
Day 25:DHT22的兩難.解密感測器(DHT22 Dilemma: Sensor Secrets)
系列文
AIoT的藍藥丸與紅藥丸,你選哪個?62
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言