在Day 22:女生宿舍的GPIO迷宮中,你是一個大學生。而你的大學室友們打算拉你一起偷偷潛入女生宿舍送宵夜。你跟眼鏡仔一起破解女生宿舍的門禁系統,但眼鏡仔出包了,還觸發了門禁系統的保護機制──女生宿舍的GPIO迷宮。
而眼鏡仔也想出辦法:找到這個房間隱藏的電路板,之後再用它來欺騙門禁系統,讓門禁系統以為你們是合法的使用者,這樣你們就可以逃出去了。」
眼鏡仔用電腦打開終端機(Terminal),跟你解釋了那張便條紙上的《Linux常用指令》上的內容。他先輸入sudo su
指令,然後說:「我們要先安裝Python
和一些相關模組。可以用apt
指令來安裝,但是要先切換成root
身分,因為這需要特殊權限。所以我們要用sudo
指令來執行apt
指令。像這樣……」
sudo apt update
sudo apt install python3 python3-pip python3-gpiozero
「我想先問一個問題……GPIO是什麼?」剛才你聽得一頭霧水,現在終於有勇氣問出心中積壓已久的問題。
「GPIO就是General Purpose Input/Output的縮寫,就是通用輸入輸出接腳的意思。」毛帽哥拿出剛才在書架上找到的那本書《偉大的隱藏者:GPIO和電路板》,指著其中一頁說,「Raspberry Pi上有40個GPIO接腳,可以用來連接很多外部裝置,像是LED燈、按鈕、感測器之類的。」
「所以這些連接的外部裝置……就是逃出女生宿舍的GPIO迷宮的關鍵?」
「應該是喔。」
「那我們剛剛看到的那四個裝置,應該都是這個女生用GPIO接腳連接的?」你回想起剛才眼鏡仔用電腦看這裡有沒有連接任何GPIO裝置時,找到的GPIO接腳的狀態。
- GPIO 2:連接到DHT22溫溼度感測器
- GPIO 3:連接到WebCam攝影機
- GPIO 4:連接到一個繼電器
- GPIO 17:連接到一個LED燈
「但是……她用GPIO接腳把這些連接起來要幹嘛?」
「說不定這些裝置之間有什麼關聯,或者是什麼提示?」
「那現在我們要幹嘛?玩密室逃脫……?」
「只能按照她的規則,用Python控制GPIO裝置,再按照提示找到隱藏的電路板來逃出去了。」
在你一言,我一語的討論下,你們三個人終於有了共識。
你們開始分開找線索,結果你在化妝包裡找到一個長的很奇怪的口紅。你覺得這個口紅可能是什麼線索,就把口紅拿起來看,結果還真的被你發現口紅的底部有一個小按鈕。按下去之後,口紅彈了出來,露出一個USB接頭。
「這個口紅是一個USB隨身碟欸。」你大叫其他兩個人過來看。
「真的嗎,那看能不能把他插到電腦上,看裡面有什麼資料!」
「裡面會不會有什麼病毒?」
「應該不會吧?試了才知道。」於是眼鏡男把口紅USB插到電腦上,然後在Terminal輸入lsblk
指令,看系統的裝置,他發現有一個叫做sda
的裝置。裡面有三個檔案。