Adafruit的樹莓派教程第十二課:感知運動
2016-02-14 19:46
330 查看
http://www.geekfan.net/11376/
本文由 極客范 - Boyd
Wang 翻譯自 Adafruit.com。歡迎加入極客翻譯小組,同我們一道翻譯與分享。轉載請參見文章末尾處的要求。
在這節課裡,你將學習到如何使用PIR人體熱式傳感器連接GPIO來激活門禁。
![](http://www.geekfan.net/wp-content/uploads/e203f7b1f1c4ccf95864fd86116d8769.jpg)
這節課,我們將把注意力放到感知運動和激活門禁開關上。我們會在第十三課構建這個安全感知系統,使用小派作為數字輸出來在偵測到運動時控制電力設備。
要完成這節課講述的內容,你需要下面的東西。
PIR人體熱式傳感器(Adafruit
189號產品)
![](http://www.geekfan.net/wp-content/uploads/347157ea308ddcb60ee2685042574b96.jpg)
電磁門禁傳感器(Adafruit
375號產品)
![](http://www.geekfan.net/wp-content/uploads/f5a10e37fecc28d3bb81d605fa1675ea.jpg)
樹莓派擴展板
![](http://www.geekfan.net/wp-content/uploads/7a721b9c7ef9ce89aa4c39b5578593ac.jpg)
小型面包板
![](http://www.geekfan.net/wp-content/uploads/fbb14e041fcb05df9f98894cc3c83811.jpg)
一把跳線
![](http://www.geekfan.net/wp-content/uploads/ad5c6c6b5e2a9e85815ed6b97d2d3a1a.jpg)
最後,當然是小派啦
![](http://www.geekfan.net/wp-content/uploads/26ea130d8c1c2a7d525d84876bb1939e.jpg)
我們將會把兩個傳感器都連接到樹莓派上。兩個傳感器都不需要額外的部件。
![](http://www.geekfan.net/wp-content/uploads/8443f55d5dfbf662048ffd20bacafb7c.png)
PIR人體熱式傳感器是帶插座的引腳。一定要確保引腳插得是正確的,紅色的應該插在5V上,黑色接地,黃色的插在擴展板的18引腳上。
![](http://www.geekfan.net/wp-content/uploads/40c694a9007636f2a4a59ef38b160387.jpg)
盡管PIR傳感器需要5V的電源供電,但它的輸出卻是對小派友好的3.3V,所以它可以直接連接到GPIO的上作為輸入。
門禁開關使用了一個叫做磁簧開關(reed switch)的東西。在一個玻璃管裡裝著兩個簧片相互連接,然後外面包裹著塑料。當一個磁性物體(另一個白色方塊)靠近這個磁簧開關的時候,兩個簧片接觸,然後開關關閉。因為這是個開關,所以正著接反著接都行。
我們會利用小派自身來在磁簧開關針腳上創建一個內部的上拉電阻,所以我們就不需要額外的上拉電阻了。
這個程序只是一個循環,在偵測到運動的時候打印一個消息,或者磁力從門上移除。
程序使用了Rpi.GPIO類庫。見第四課。
程序裡把pir_pin置為一個普通的輸入針(a plain old input)。這是因為PIR傳感器有一個3.3V或0V的數字輸出。與之相比,door_pin是一個開關,不會產生電壓作為數字輸入。所以,這個輸入針使用了一個額外的參數(pull_up_down=io.PUD_UP)。這將激活一個內部的電阻使得輸入變高(上拉)除非有更強的電流(比如開關接地)來把它拉低。然後循環輪流讀取輸入然後打印一條響應的消息。記住門禁開關報警只會在磁力從傳感器附近移除時才會被激活。
..然後把代碼粘貼進去,按Ctrl+X保存。
![](http://www.geekfan.net/wp-content/uploads/7e24201b71545ef2a2c3b435cf1ef8b7.png)
在開始運行程序之前,把磁鐵靠近開關並且在PIR傳感器上蓋上一些東西。
然後使用下面的命令運行程序:
..然後你可以看到終端有輸出了,當你移走磁鐵,或者把蓋在PIR傳感器上的東西拿開。
一個好的方式或許是把你的孩子放在PIR傳感器前面,看他們能堅持多久!(譯者:這主意簡直棒(sang)極(xin)了(bing)啊(kuang))
原文鏈接: Adafruit.com 翻譯: 極客范 - Boyd
Wang
譯文鏈接: http://www.geekfan.net/11376/
[ 轉載請保留原文出處、譯者和譯文鏈接。]
本文由 極客范 - Boyd
Wang 翻譯自 Adafruit.com。歡迎加入極客翻譯小組,同我們一道翻譯與分享。轉載請參見文章末尾處的要求。
概覽
在這節課裡,你將學習到如何使用PIR人體熱式傳感器連接GPIO來激活門禁。![](http://www.geekfan.net/wp-content/uploads/e203f7b1f1c4ccf95864fd86116d8769.jpg)
這節課,我們將把注意力放到感知運動和激活門禁開關上。我們會在第十三課構建這個安全感知系統,使用小派作為數字輸出來在偵測到運動時控制電力設備。
你需要的
要完成這節課講述的內容,你需要下面的東西。PIR人體熱式傳感器(Adafruit
189號產品)
![](http://www.geekfan.net/wp-content/uploads/347157ea308ddcb60ee2685042574b96.jpg)
電磁門禁傳感器(Adafruit
375號產品)
![](http://www.geekfan.net/wp-content/uploads/f5a10e37fecc28d3bb81d605fa1675ea.jpg)
樹莓派擴展板
![](http://www.geekfan.net/wp-content/uploads/7a721b9c7ef9ce89aa4c39b5578593ac.jpg)
小型面包板
![](http://www.geekfan.net/wp-content/uploads/fbb14e041fcb05df9f98894cc3c83811.jpg)
一把跳線
![](http://www.geekfan.net/wp-content/uploads/ad5c6c6b5e2a9e85815ed6b97d2d3a1a.jpg)
最後,當然是小派啦
![](http://www.geekfan.net/wp-content/uploads/26ea130d8c1c2a7d525d84876bb1939e.jpg)
硬件部分
我們將會把兩個傳感器都連接到樹莓派上。兩個傳感器都不需要額外的部件。![](http://www.geekfan.net/wp-content/uploads/8443f55d5dfbf662048ffd20bacafb7c.png)
PIR人體熱式傳感器是帶插座的引腳。一定要確保引腳插得是正確的,紅色的應該插在5V上,黑色接地,黃色的插在擴展板的18引腳上。
![](http://www.geekfan.net/wp-content/uploads/40c694a9007636f2a4a59ef38b160387.jpg)
盡管PIR傳感器需要5V的電源供電,但它的輸出卻是對小派友好的3.3V,所以它可以直接連接到GPIO的上作為輸入。
門禁開關使用了一個叫做磁簧開關(reed switch)的東西。在一個玻璃管裡裝著兩個簧片相互連接,然後外面包裹著塑料。當一個磁性物體(另一個白色方塊)靠近這個磁簧開關的時候,兩個簧片接觸,然後開關關閉。因為這是個開關,所以正著接反著接都行。
我們會利用小派自身來在磁簧開關針腳上創建一個內部的上拉電阻,所以我們就不需要額外的上拉電阻了。
軟件部分
這個程序只是一個循環,在偵測到運動的時候打印一個消息,或者磁力從門上移除。程序使用了Rpi.GPIO類庫。見第四課。
12345678910111213141516 | import timeimport RPi.GPIO as ioio.setmode(io.BCM) pir_pin = 18door_pin = 23 io.setup(pir_pin, io.IN) # activate inputio.setup(door_pin, io.IN, pull_up_down=io.PUD_UP) # activate input with PullUp while True: if io.input(pir_pin): print("PIR ALARM!") if io.input(door_pin): print("DOOR ALARM!") time.sleep(0.5) |
配置與測試
有許多方式可以連接到你的樹莓派上。也許最簡單的方式是使用SSH(見第六課)並使用下面的命令打開一個編輯器:1 | nano switches.py |
![](http://www.geekfan.net/wp-content/uploads/7e24201b71545ef2a2c3b435cf1ef8b7.png)
在開始運行程序之前,把磁鐵靠近開關並且在PIR傳感器上蓋上一些東西。
然後使用下面的命令運行程序:
1 | sudo python switches.py |
一個好的方式或許是把你的孩子放在PIR傳感器前面,看他們能堅持多久!(譯者:這主意簡直棒(sang)極(xin)了(bing)啊(kuang))
原文鏈接: Adafruit.com 翻譯: 極客范 - Boyd
Wang
譯文鏈接: http://www.geekfan.net/11376/
[ 轉載請保留原文出處、譯者和譯文鏈接。]
相关文章推荐
- 如何查看Ubuntu 蓝牙bluez 软件版本
- 300. Longest Increasing Subsequence LeetCode
- LeetCode -- Range Sum Query 2D - Immutable
- 62. Unique Paths LeetCode
- Digital Signal Processing 《ARM System developer’s Guide》Chapter-8
- UI界面下视频模式切换(多进程)
- Adafruit的樹莓派教程第十一課:DS18B20溫度傳感器
- Adafruit的樹莓派教程第九課:控制一個直流電機
- UIButton的selected状态
- xcodebuild打包ipa
- 8VC Venture Cup 2016 - Elimination Round A. Robot Sequence
- HDOJ 1005 Number Sequence
- QuickText | 热字串自动替换
- Codeforces 626A Robot Sequence 【水题】
- poj 2926 Requirements 【5维点集最远曼哈顿距离】
- Could not build module 'UIKit'问题
- PHP中include()与require()的区别说明
- hdu1530 Maximum Clique
- Arduino代码机制-Arduino.h
- Android开发中无处不在的设计模式——Builder模式