04 特殊輸入裝置

(2021/7/7)

【原來學Arduino這麼簡單(四)

上次介紹完顯示器的使用,今天來介紹輸入裝置的使用,而且是很酷的輸入裝置(如RFID及KeyPad),這些輸入元件馬上聯想到智慧門鎖的應用,就是利用磁扣或密碼來開門!但一開始在使用PictoBlox的這些積木時,我花了很多時間測試,不大會用他們的積木,還好最後有測試成功,才有這篇文章。

一、特殊輸入裝置的種類及積木的擴充

    • 一共提供有5種輸入元件積木

      • RFID Sensor

      • Keypad Sensor

      • Fingerprint Sensor R307 ( 我手上沒有這種感應器,已經在淘寶找到了,下次再來測試)

      • IMU Sensor MPU6050

      • Other Sensors

二、測試RFID Sensor積木的使用

  • RFID感應器(RFID-RC522)的接線圖,如下:

  • RFID積木的使用

    • PictoBlox提供的RFID積木比較奇怪,跟一般的比較不一樣,試了好久,才有一點點了解

    • 先設定一組 master RFID tag ,且是固定不能改變

    • 如果要取得其他磁扣的UID值,就要使用get current tag ID

    • 而且此積木也只能用在【上傳模式】

  • 實作一:在1602LCD顯示器上顯示磁扣的UID及是否為master

    • SS接到D10

    • RST接到D9

    • 2022.01.01更新如下,可一直量測不同磁扣的ID,程式下載

  • 下面為以前的作法,不要再用了

  • 實作:在特定的磁扣下會做特定反應,如點燈、開門、....

    • 將上面基本程式進行延伸即可

    • 目前在D2接了一顆LED燈

    • 放上master的磁扣會開燈,移開就會關燈

    • 放上UID為E052814D的磁扣會開燈,移開就會關燈

    • 如此一來就可以做外部裝置的控制了

  • 這樣就可以用RFID做很多控制了,是不是很簡單啊!小朋友,接下來就看你如何應用了!

、測試Keypad Sensor積木的使用

  • keypad接線圖,如下:(下圖有關薄膜按鍵模組有詳細圖解,下圖取自 https://swf.com.tw/?p=917)

    • 列1~列4、行1~行4的腳位如下:D2、D3、D4、D5、D6、D7、D8、D9(改用A0)

  • 實作一:在LCD上顯示按下鍵的內容

    • 這積木也是試了好久才成功

    • 這積木也只能用在上傳模式

    • 由於D9被RFID使用,所以腳位用了D2~D8及A0

  • 實作二:設定4位的密碼

    • 在程式一開始先設定我們的密碼

    • 如果發現輸入的變數沒有出現在變數區域時,先切換回舞台模式,再切換回上傳模式即可

  • 實作三:請輸入4碼的密碼,如果輸入正確的密碼才能點燈或開門.....

    • 這次LED燈接在A1腳位

  • 這樣就完成了密碼的設定與輸入了,也可以再簡化直接將密碼寫在程式中,這樣程式就會再減一半了!

  • 另外,有一個積木,檢查有沒有按下哪一個鍵的積木,我試了那積木一直有問題!還好也沒用到!

、測試MPU6050積木的使用

  • MPU6050介紹 (資料取自https://www.itread01.com/content/1545324504.html)

    • 1、介紹:MPU6050 是 InvenSense 公司推出的全球首款整合性 6 軸運動處理元件,相較於多元件方案,免除了組合陀螺儀與加速器時之軸間差的問題,減少了安裝空間。

      • (1)繞X軸旋轉角度為roll,繞Y軸旋轉角度為pitch,繞Z軸旋轉角度為yaw。

      • (2)加速度感測器,本質是力感測器。用來檢查上下左右前後哪幾個面都受了多少力(包括重力),然後計算角度。

      • (3)陀螺儀,本質是角速度檢測儀。比如,一塊板,以X軸為軸心,在一秒鐘的時間轉到了90度,那麼它在X軸上的角速度就是 90度/秒 (DPS, 角速度單位,Degree Per Second的縮寫°/S ,體現了轉動的快慢)

      • (4)MPU解析度:3軸加速度 和3軸陀螺儀分別用了3個16位的ADC, 也就是說,加速度有3個16位ADC,其中每個軸使用了一個。也是說,每個軸輸出的資料,是2^16 也就是 -32768 ---- +32768。陀螺儀也是一樣。

    • 2、擴充套件性:MPU6050 內部整合了 3 軸陀螺儀和 3 軸加速度感測器,並且含有一個第二 IIC 介面,可用於連線外部磁力感測器即AUX_CL 和 AUX_DA,並利用自帶的數字運動處理器(DMP: DigitalMotion Processor)硬體加速引擎,通過主 IIC 介面,嚮應用端輸出完整的 9 軸融合演算資料。SCL 和 SDA 是連線 MCU 的 IIC 介面,MCU 通過這個 IIC 介面來控制 MPU6050,另外還有一個 IIC 介面:AUX_CL 和 AUX_DA,這個介面可用來連線外部從裝置,比如磁感測器,這樣就可以組成一個九軸感測器。

    • 3、姿態解算:我們可以使用 InvenSense 公司提供的DMP非常方便的實現姿態解算,降低了運動處理運算對作業系統的負荷。

  • 積木內容:這部份不再測試,有興趣者或需要者,請自行測試

  • 利用序列埠監控視窗是觀看數據

    • 添加【Communication積木】

    • 這些積木只能用在【上傳模式】

  • 接線圖:只用一組I2C的腳位即可

  • 測試X軸的轉動角度

  • 這部份不再測試,有興趣者或需要者,請自行測試

、測試R307指紋辨識積木的使用

  • R307介紹

    • R307指紋模組由光學指紋感測器、高速DSP處理器、高性能指紋比對演算法、大容量FLASH晶片等軟硬體構成,性能穩定,結構簡單,具有指紋錄入、影像處理、指紋比對、搜索和範本儲存等功能

    • 接線:

  • 作品功能說明

    • 按按鍵1,可切換摸式(Mode1~4)

      • mode1:調整可變電阻器來設定ID(1~127)

      • mode2:放上手指,儲存指紋資料,重複mode1改變ID,再來記錄該ID下的指紋

      • mode3:按按鍵2,清除指紋資料庫的所有資料

      • mode4:放上手指判斷是否已有內建的指紋了,如果是點亮藍燈,如果不是點亮紅燈

  • 參考資料:https://thestempedia.com/project-tag/fingerprint/,分兩部份

      • Enrolling Fingerprints(登記指紋)

      • Fingerprint Matching(指紋比對)

      • SoftwareSerial mySerial(10, 11);//YELLOW/WHITT

  • 設備及接線說明

    • R307

    • 4位7段顯示器

  • 測試程式,尚未精簡

  • 檔案下載

  • 上面這積木測試了好久才會用,接下來可以做更多的應用,而且可以做成打卡機,並把打卡資料上傳到雲端