<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 傳感器及點陣LED顯示功能板

          傳感器及點陣LED顯示功能板

          作者:時間:2023-11-28來源:小腳丫STEP開源社區收藏

          本文引用地址:http://www.ex-cimer.com/article/202311/453374.htm


          傳感器及點陣顯示功能模塊實物圖

          板卡簡介

          是STEP團隊推出的可配合小腳丫多種底板使用的擴展板卡,板載資源十分豐富,其中包括多種傳感器、168led點陣、flash存儲等多種功能,你可以用這個子卡來實現你各種各樣的新奇想法,像數字水平儀,溫度計,亮度檢測儀,你都可以用這個板卡去完成!
          板載資源:
          * 環境光傳感器BH1750FVI-TR * 溫度傳感器DS18B20Z * Flash閃存W25Q64FVSFIG * 陀螺儀MPU-6050 * 紅外對管,比較器LM393DR * 168 陣列

          傳感器及點陣顯示功能模塊板載資源


          硬件資源介紹

          結構框圖


          器件選型


          型號廠商封裝
          環境光傳感器BH1750FVI-TRRHOM SemiconductorWSOF6I
          溫度傳感器DS18B20ZDallas SemiconductorSOP8
          Flash閃存W25Q64FVSFIGWinbond Electronics CorporationSOP8
          陀螺儀MPU-6050InvenSenseQFN24
          比較器LM393DRTexas InstrumentsSOP8

          接口

          該模塊與FPGA使用PCIE接口連接,這里只使用PCIE的物理接口與協議無關。

          溫度傳感器

          溫度傳感器選用了Dallas半導體的DS18B20Z,是一個單總線、12位進度的數字式溫度傳感器,輸入電壓為3.0V~5.5V,比較靈活,工作溫度可在-55攝氏度~125攝氏度之間,可滿足我們日常使用的需求,DS18B20有直插和SOIC貼片兩個封裝,這里選用8pin SOIC。

          環境光傳感器

          環境光傳感器選用了RHOM的BH1750FVI,是一個I2C接口的16位高精度數字式環境光傳感器,無需外部接ADC進行采集,另外其功耗很低,被廣泛的應用在諸如數碼相機,手機等數碼產品上。

          姿態傳感器

          姿態傳感器選用了Invensense的MPU6050,是一個I2C接口的9軸運動處理傳感器,集成了3軸陀螺儀和3軸加速度計,以及一個可擴展的數字運動處理器,廣泛應用在機器人,無人機,平衡車等產品中。

          紅外傳感器

          紅外傳感器采用了臺灣億光電子的ITR9909,是集成了紅外發射管與接收管為一體的紅外傳感器,并且我們使用了TI的LM393電壓比較器進行結果輸出,保證了距離判定的穩定性。

          LED點陣

          LED點陣由于小腳丫STEP FPGA的管腳充足,可直接連接在管腳上,便于進行驅動。板上集成16*8共128個LED,組成的LED陣列。

          FLASH

          板上集成了一個串行Flash W25Q64,容量64Mbit,SPI接口。

          管腳對應表


          使用示例

          功能需求描述

          • 利用陀螺儀MPU6050實現數字水平儀:在LED點陣上顯示一個“小球”,當板卡為水平時,“小球”在板卡中心不動,當板卡傾斜時,小球向對應方向進行移動;
          • 利用溫度傳感器DS18B20Z采集環境溫度顯示在數碼管或者LED點陣上,并實現低溫/高溫報警;
          • 利用環境光傳感器BH1750HVI制作一個環境光強檢測儀,并實現手機中自動調節屏幕亮度的功能;
          • 利用FLASH存儲芯片W25Q64實現存儲圖片,并將圖片在點陣上進行顯示;
          • 利用紅外對管完成距離檢測,亦可實現“手勢開關”等功能。 相關知識 * [[溫度傳感器模塊|FPGA驅動溫度傳感器DS18B20舉例]] * {{:單總線溫度傳感器驅動.pdf|DS18B20驅動說明}} * {{:thermometer_step_max10.rar|溫度采集和顯示demo}} * {{:環境光傳感器驅動.pdf|環境光傳感器驅動說明}} * {{:ambient_light_step_max10.rar|環境光采集和顯示demo}} * [[智能接近系統設計|FPGA驅動I2C總線設備舉例]] * [[簡易電壓表設計|FPGA驅動SPI總線設備舉例]]  FPGA邏輯實現 對于STEP Sensor板卡,其結構為模塊式,故調試也是分模塊進行:
            模塊1:bh1750fvi代碼設計
          • 第一步(collect data):與BH1750FVI環境光傳感器建立通訊,根據BH1750的手冊可知,該傳感器采用的是I2C通訊協議,在成功與其建立通訊之后,BH1750會周期性地向我們的小腳丫開發板發送16位二進制數據,當我們拿到這個數據之后,就可以對其進行數據處理。
          • 第二步(process data):將采集回來的16位數據進行處理,并將其劃分為64個亮度等級;
          • 第三步(display data):將處理后的數據以三種形式顯示出來。

          三色燈:利用pwm脈沖調制的原理,根據第二步獲取的亮度參數來調整自身的亮度。

          led點陣:將亮度的變化體現在LED點陣上箭頭流動的快慢當中。

          數碼管:小腳丫核心板卡上兩位數碼管可顯示當前的亮度等級。

          模塊2:ds18b20代碼設計

          • 第一步(collect data):與DS18B20Z溫度傳感器建立通訊,根據DS18B20Z的手冊可知,該傳感器采用的是單總線的通信方式,在成功與其建立通訊之后,DS18B20Z會周期性地向我們的小腳丫開發板發送16位二進制數據,當我們拿到這個數據之后,就可以對其進行數據處理。
          • 第二步(process data):取二進制數據前5位數據判斷正負號;并取后面的11位數據,進行二進制轉十進制bcd碼的轉換。
          • 第三步(display data):將處理后的數據以兩種形式顯示出來。分別將當前的溫度顯示到小腳丫核心板卡上兩位數碼管上和LED點陣上。

          演示程序

          我們提供了兩個演示程序,功能包括BH1750亮度采集,DS18B20溫度采集和LED的掃描顯示。
          程序分Lattice MXO2和Intel MAX10兩個版本,請根據使用的FPGA型號選擇。
          Lattice MXO2版本:sensorcard-step_mxo2.rar
          Intel MAX10版本:sensorcard-step_max10.rar

          溫度采集模塊

          通過與DS18B20Z建立通訊,并利用LED點陣進行顯示,驗證了DS18B20Z與點陣模塊的電路是可以正常工作的。

          實現溫度采集

          環境光模塊

          通過與BH1750FVI進行通訊,將環境光的數據采集回來,并按照亮度等級,對RGB_LED燈光亮度進行控制,說明環境光傳感器可正常工作。

          亮度等級為00,環境光暗

          亮度等級為63,環境光亮

          紅外傳感器模塊

          紅外對管的驅動比較簡單,調試結果為可通過距離控制將紅外對管作為開關使用。 姿態傳感器:可與MPU6050建立通訊并讀取其發送回的數據。

          相關文檔




          關鍵詞: LED STEP Sensor Card

          評論


          相關推薦

          技術專區

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();