資料介紹
描述
在這個項目中,我們將在 Raspberry Pi 2 組件上使用適用于 Windows 10 IoT Core 的 Adafruit Starter Pack來制作說話光傳感器。這將展示如何使用 MCP3008 模數轉換器 (ADC) 芯片將 Pi2 連接到三個模擬組件。兩個可變電阻器(電位器)和一個 CdS 光電管。
硬件設置
按照下面的 Fritzing 圖將 Raspberry Pi2 連接到面包板和其他組件。 ?
注意:設置電路時,請確保 MCP3008 芯片的方向正確。該芯片有一個半月形標記,一側有一個點。其方向應如下圖所示。
選修的
如果您有一對帶 1/8" 插孔的耳機或一組帶 1/8" 插孔的有源揚聲器,您可以將它們連接到 Pi2 音頻輸出插孔以聽到語音系統的提示。
代碼
主頁.cs
您可以從https://github.com/ms-iot/adafruitsample下載代碼啟動項目??,我們將引導您完成添加與 Web 服務對話并在地圖上獲取您的 pin 所需的代碼。什么地圖?
打開“Lesson_204\StartSolution\Lesson_204.sln ”?并打開 mainpage.xaml.cs 文件。?
我們已經填寫了一些方法作為您在此解決方案中的起點。如果你想跳到前面,你可以在以下位置找到所有代碼已完成的解決方案:“Lesson_204\FullSolution\Lesson_204.sln”
?
在 MainPage 類的頂部添加以下行。
ReferenceVoltage = ; LowPotentiometerADCChannel = ; HighPotentiometerADCChannel = ; CDSADCChannel = ; JustRightLightString = ; LowLightString = ; HighLightString = ; eState { unknown, JustRight, TooBright, TooDark}; eState CurrentState = eState.unknown; MCP3008 mcp3008 = MCP3008(ReferenceVoltage); SpeechSynthesizer 合成器; 定時器定時器;
?
現在將這些行添加到 MainPage 構造函數以設置 Windows 語音合成器和 ADC 芯片。
// 創建一個的SpeechSynthesizer供以后使用。 合成器=語音合成器(); // 初始化ADC芯片以供使用 mcp3008.初始化();
?
現在將這些行添加到 OnNavigatedTo 方法。這將設置一個計時器回調,它將在不同的線程上每秒調用一次我們的代碼。
如果您不想在地圖上添加圖釘,請刪除MakePinWebAPICall();
??
override void OnNavigatedTo(NavigationEventArgs navArgs) { Debug.WriteLine( ); MakePinWebAPICall(); // 我們將每秒 timer = Timer(timerCallback, this, 0, 1000); }
?
現在我們調用了計時器回調,讓我們填寫它。
異步 timerCallback(對象狀態) { 調試。 ( ); (mcp3008 == ) { 調試。 ( ); ; } eState newState = eState.JustRight; lowPotReadVal = mcp3008.ReadADC(LowPotentiometerADCChannel); highPotReadVal = mcp3008.ReadADC(HighPotentiometerADCChannel); cdsReadVal = mcp3008.ReadADC(CDSADCChannel); lowPotVoltage = mcp3008.ADCToVoltage(lowPotReadVal); highPotVoltage = mcp3008.ADCToVoltage(highPotReadVal); cdsVoltage = mcp3008.ADCToVoltage(cdsReadVal); 調試。 (String.Format( , lowPotReadVal, highPotReadVal, cdsReadVal)); 調試。 (String.Format( , lowPotVoltage, highPotVoltage, cdsVoltage)); (cdsVoltage < lowPotVoltage) { newState = eState.TooDark; } (cdsVoltage > highPotVoltage) { newState = eState.TooBright; } 等待 CheckForStateChange(newState); }
?
我們已經為您填寫了大部分 CheckForStateChange 代碼,但您想要添加對 TextToSpeech 幫助程序方法的調用。
等待;
?
現在是語音 API 的有趣部分,讓它說話!修改 TextToSpeech 方法并添加這些行。
異步 { SpeechSynthesisStream 合成流; synthesisStream = 等待合成器。 ; media.AutoPlay = ; 媒體。 ; 媒體。 ; }
?
MCP3008.cs
這是將包裝 ADC 功能的類。
首先,我們將在構建新對象時存儲參考電壓值。
公共 { 調試。 ; 參考電壓 = 參考電壓; }
?
然后我們將填寫 Initialize 方法以設置與 SPI 總線控制器的通信。
{ settings = SpiConnectionSettings(SPI_CHIP_SELECT_LINE); 設置下的額定速度。ClockFrequency = ; settings.Mode = SpiMode.Mode0; aqs = SpiDevice.GetDeviceSelector(); dis = DeviceInformation.FindAllAsync(aqs); mcp3008 = SpiDevice.FromIdAsync(dis[ ].Id, settings); (mcp3008 == ) { 調試.WriteLine( , dis[ ].Id); ; } } (例外 e) { Debug.WriteLine( + e.Message + + e.StackTrace); ; }
?
現在我們將填寫 ReadADC 方法以實際從 MCP3008 芯片讀取一個值。
ReadADC(byte whichChannel) { 字節命令 = whichChannel; 命令 |= MCP3008_SingleEnded; 命令 <<= ; byte[] commandBuf = new byte[] { , 命令, }; byte[] readBuf = new byte[] { , , }; mcp3008.TransferFullDuplex(commandBuf, readBuf); sample = readBuf[ ] + ((readBuf[ ] & ) << ); s2 = 樣本 & ; 調試斷言(示例== s2); 樣品; }
?
最后添加一個輔助方法,用于將返回的 ADC 值(以單位為單位)轉換為電壓。
{
( )adc * ReferenceVoltage / ( )Max;
}
?
校準
運行代碼并將面包板放在正常照明的區域。?
查看輸出窗口,了解 ADC 芯片從兩個電位器和光電池讀取的電壓。
第一個數字是從低調整罐讀取的值,第二個是高調整罐,第三個是當前在光電池上讀取的值。
:: 值。_ _ , 。 , 。
?
轉動低邊界電位器,觀察第一個數字的值變化。調整電位器直到電壓略低于第三個數字的值(至少 0.2 伏)。
現在轉動高邊界鍋,看第二個數字的值。您希望它比第三個數字的值高一點(同樣至少 0.2 伏)。
現在已經配置了一個邊界區域,其中的值“恰到好處”。
手術
以這種方式設置盆,如果你用手遮住光電管,輸出應該說“我需要一盞燈”,如果你連接了可選的耳機/揚聲器,你應該聽到 Pi2 語音。
取下你的陰影會使它變成“啊,剛剛好”(和語音)。
將一盞燈照在傳感器上會變成“我需要戴墨鏡”(再次講話)。
::timerCallback 值、、 。 , . , 。 ::TextToSpeech 啊,剛剛好 ::timerCallback 值、、 。 , . , 。 ::TextToSpeech 我需要一盞燈 ::timerCallback 值、、 。 , . , 。 ::TextToSpeech 我需要戴墨鏡
?
- ADS7869電機控制前端,內置三個模數轉換器(ADC)數據表
- MCP3008上的高靈敏度水傳感器
- 使用MCP3008在Raspberry Pi上進行模擬輸入
- 三角積分ADC轉換器的詳細資料和電路圖 17次下載
- AT89S51單片機與ADC0809模數轉換器的三種連接 18次下載
- 基于MCP3004/8帶有帶有SPI串行接口的2.7V,4通道/8通道轉換器
- 基于MCP3426/7/8帶有16 位多通道模數轉換器
- 基于MCP3919下的3V 三通道模擬前端
- 如何將TLV1544模數轉換器連接到TMS320C50處理器的詳細資料概述 4次下載
- 如何將ADS8361模數轉換器連接到TMS470處理器端口的方法詳細概述 20次下載
- 如何將MSOP8EVM與模數轉換器的EVM接口連接到MSP430系列處理器的方法 1次下載
- 如何將TLC4541模數轉換器連接到TMS320C6711 DSP的方法詳細概述 9次下載
- TMS320F28x DSP模數轉換器(ADC)參考指南 3次下載
- 最小的24位模數轉換器的使用 23次下載
- 數模和模數轉換器
- 模數轉換器的技術參數詳解 912次閱讀
- 模數轉換器的工作原理、分類及應用 817次閱讀
- RA6T2的16位模數轉換器操作 [2] A/D轉換器概述 (2) 224次閱讀
- RA6T2的16位模數轉換器操作 [1] 簡介,A/D轉換器概述 185次閱讀
- 模數轉換器電路圖分享 4483次閱讀
- ADC模數轉換器的延時原理 766次閱讀
- 模數轉換器損壞該如何處理? 459次閱讀
- 模數轉換器按鍵讀取的設置方法及使用 1939次閱讀
- 模數轉換器分類_模數轉換器選型 5572次閱讀
- 如何降低模數轉換器的性能 3991次閱讀
- 關于高速ADC模數轉換器精度問題 9446次閱讀
- 模數轉換器的工作原理與分類特點詳解 4452次閱讀
- 小白必看:模數轉換器應用典型電路設計詳細解析 2.2w次閱讀
- 模數轉換器工作原理、類型及主要技術指標 2w次閱讀
- 模數轉換器的基本原理及不同類型ADC特點 3.3w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多