資料介紹
描述
在這個(gè)項(xiàng)目中,我們將在 Raspberry Pi 2 組件上使用適用于 Windows 10 IoT Core 的 Adafruit Starter Pack來(lái)制作說(shuō)話光傳感器。這將展示如何使用 MCP3008 模數(shù)轉(zhuǎn)換器 (ADC) 芯片將 Pi2 連接到三個(gè)模擬組件。兩個(gè)可變電阻器(電位器)和一個(gè) CdS 光電管。
硬件設(shè)置
按照下面的 Fritzing 圖將 Raspberry Pi2 連接到面包板和其他組件。 ?
注意:設(shè)置電路時(shí),請(qǐng)確保 MCP3008 芯片的方向正確。該芯片有一個(gè)半月形標(biāo)記,一側(cè)有一個(gè)點(diǎn)。其方向應(yīng)如下圖所示。
選修的
如果您有一對(duì)帶 1/8" 插孔的耳機(jī)或一組帶 1/8" 插孔的有源揚(yáng)聲器,您可以將它們連接到 Pi2 音頻輸出插孔以聽(tīng)到語(yǔ)音系統(tǒng)的提示。
代碼
主頁(yè).cs
您可以從https://github.com/ms-iot/adafruitsample下載代碼啟動(dòng)項(xiàng)目??,我們將引導(dǎo)您完成添加與 Web 服務(wù)對(duì)話并在地圖上獲取您的 pin 所需的代碼。什么地圖?
打開(kāi)“Lesson_204\StartSolution\Lesson_204.sln ”?并打開(kāi) mainpage.xaml.cs 文件。?
我們已經(jīng)填寫(xiě)了一些方法作為您在此解決方案中的起點(diǎn)。如果你想跳到前面,你可以在以下位置找到所有代碼已完成的解決方案:“Lesson_204\FullSolution\Lesson_204.sln”
?
在 MainPage 類(lèi)的頂部添加以下行。
ReferenceVoltage = ; LowPotentiometerADCChannel = ; HighPotentiometerADCChannel = ; CDSADCChannel = ; JustRightLightString = ; LowLightString = ; HighLightString = ; eState { unknown, JustRight, TooBright, TooDark}; eState CurrentState = eState.unknown; MCP3008 mcp3008 = MCP3008(ReferenceVoltage); SpeechSynthesizer 合成器; 定時(shí)器定時(shí)器;
?
現(xiàn)在將這些行添加到 MainPage 構(gòu)造函數(shù)以設(shè)置 Windows 語(yǔ)音合成器和 ADC 芯片。
// 創(chuàng)建一個(gè)的SpeechSynthesizer供以后使用。 合成器=語(yǔ)音合成器(); // 初始化ADC芯片以供使用 mcp3008.初始化();
?
現(xiàn)在將這些行添加到 OnNavigatedTo 方法。這將設(shè)置一個(gè)計(jì)時(shí)器回調(diào),它將在不同的線程上每秒調(diào)用一次我們的代碼。
如果您不想在地圖上添加圖釘,請(qǐng)刪除MakePinWebAPICall();
??
override void OnNavigatedTo(NavigationEventArgs navArgs) { Debug.WriteLine( ); MakePinWebAPICall(); // 我們將每秒 timer = Timer(timerCallback, this, 0, 1000); }
?
現(xiàn)在我們調(diào)用了計(jì)時(shí)器回調(diào),讓我們填寫(xiě)它。
異步 timerCallback(對(duì)象狀態(tài)) { 調(diào)試。 ( ); (mcp3008 == ) { 調(diào)試。 ( ); ; } 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); 調(diào)試。 (String.Format( , lowPotReadVal, highPotReadVal, cdsReadVal)); 調(diào)試。 (String.Format( , lowPotVoltage, highPotVoltage, cdsVoltage)); (cdsVoltage < lowPotVoltage) { newState = eState.TooDark; } (cdsVoltage > highPotVoltage) { newState = eState.TooBright; } 等待 CheckForStateChange(newState); }
?
我們已經(jīng)為您填寫(xiě)了大部分 CheckForStateChange 代碼,但您想要添加對(duì) TextToSpeech 幫助程序方法的調(diào)用。
等待;
?
現(xiàn)在是語(yǔ)音 API 的有趣部分,讓它說(shuō)話!修改 TextToSpeech 方法并添加這些行。
異步 { SpeechSynthesisStream 合成流; synthesisStream = 等待合成器。 ; media.AutoPlay = ; 媒體。 ; 媒體。 ; }
?
MCP3008.cs
這是將包裝 ADC 功能的類(lèi)。
首先,我們將在構(gòu)建新對(duì)象時(shí)存儲(chǔ)參考電壓值。
公共 { 調(diào)試。 ; 參考電壓 = 參考電壓; }
?
然后我們將填寫(xiě) Initialize 方法以設(shè)置與 SPI 總線控制器的通信。
{ settings = SpiConnectionSettings(SPI_CHIP_SELECT_LINE); 設(shè)置下的額定速度。ClockFrequency = ; settings.Mode = SpiMode.Mode0; aqs = SpiDevice.GetDeviceSelector(); dis = DeviceInformation.FindAllAsync(aqs); mcp3008 = SpiDevice.FromIdAsync(dis[ ].Id, settings); (mcp3008 == ) { 調(diào)試.WriteLine( , dis[ ].Id); ; } } (例外 e) { Debug.WriteLine( + e.Message + + e.StackTrace); ; }
?
現(xiàn)在我們將填寫(xiě) ReadADC 方法以實(shí)際從 MCP3008 芯片讀取一個(gè)值。
ReadADC(byte whichChannel) { 字節(jié)命令 = whichChannel; 命令 |= MCP3008_SingleEnded; 命令 <<= ; byte[] commandBuf = new byte[] { , 命令, }; byte[] readBuf = new byte[] { , , }; mcp3008.TransferFullDuplex(commandBuf, readBuf); sample = readBuf[ ] + ((readBuf[ ] & ) << ); s2 = 樣本 & ; 調(diào)試斷言(示例== s2); 樣品; }
?
最后添加一個(gè)輔助方法,用于將返回的 ADC 值(以單位為單位)轉(zhuǎn)換為電壓。
{
( )adc * ReferenceVoltage / ( )Max;
}
?
校準(zhǔn)
運(yùn)行代碼并將面包板放在正常照明的區(qū)域。?
查看輸出窗口,了解 ADC 芯片從兩個(gè)電位器和光電池讀取的電壓。
第一個(gè)數(shù)字是從低調(diào)整罐讀取的值,第二個(gè)是高調(diào)整罐,第三個(gè)是當(dāng)前在光電池上讀取的值。
:: 值。_ _ , 。 , 。
?
轉(zhuǎn)動(dòng)低邊界電位器,觀察第一個(gè)數(shù)字的值變化。調(diào)整電位器直到電壓略低于第三個(gè)數(shù)字的值(至少 0.2 伏)。
現(xiàn)在轉(zhuǎn)動(dòng)高邊界鍋,看第二個(gè)數(shù)字的值。您希望它比第三個(gè)數(shù)字的值高一點(diǎn)(同樣至少 0.2 伏)。
現(xiàn)在已經(jīng)配置了一個(gè)邊界區(qū)域,其中的值“恰到好處”。
手術(shù)
以這種方式設(shè)置盆,如果你用手遮住光電管,輸出應(yīng)該說(shuō)“我需要一盞燈”,如果你連接了可選的耳機(jī)/揚(yáng)聲器,你應(yīng)該聽(tīng)到 Pi2 語(yǔ)音。
取下你的陰影會(huì)使它變成“啊,剛剛好”(和語(yǔ)音)。
將一盞燈照在傳感器上會(huì)變成“我需要戴墨鏡”(再次講話)。
::timerCallback 值、、 。 , . , 。 ::TextToSpeech 啊,剛剛好 ::timerCallback 值、、 。 , . , 。 ::TextToSpeech 我需要一盞燈 ::timerCallback 值、、 。 , . , 。 ::TextToSpeech 我需要戴墨鏡
?
- ADS7869電機(jī)控制前端,內(nèi)置三個(gè)模數(shù)轉(zhuǎn)換器(ADC)數(shù)據(jù)表
- MCP3008上的高靈敏度水傳感器
- 使用MCP3008在Raspberry Pi上進(jìn)行模擬輸入
- 三角積分ADC轉(zhuǎn)換器的詳細(xì)資料和電路圖 17次下載
- AT89S51單片機(jī)與ADC0809模數(shù)轉(zhuǎn)換器的三種連接 18次下載
- 基于MCP3004/8帶有帶有SPI串行接口的2.7V,4通道/8通道轉(zhuǎn)換器
- 基于MCP3426/7/8帶有16 位多通道模數(shù)轉(zhuǎn)換器
- 基于MCP3919下的3V 三通道模擬前端
- 如何將TLV1544模數(shù)轉(zhuǎn)換器連接到TMS320C50處理器的詳細(xì)資料概述 4次下載
- 如何將ADS8361模數(shù)轉(zhuǎn)換器連接到TMS470處理器端口的方法詳細(xì)概述 20次下載
- 如何將MSOP8EVM與模數(shù)轉(zhuǎn)換器的EVM接口連接到MSP430系列處理器的方法 1次下載
- 如何將TLC4541模數(shù)轉(zhuǎn)換器連接到TMS320C6711 DSP的方法詳細(xì)概述 9次下載
- TMS320F28x DSP模數(shù)轉(zhuǎn)換器(ADC)參考指南 3次下載
- 最小的24位模數(shù)轉(zhuǎn)換器的使用 23次下載
- 數(shù)模和模數(shù)轉(zhuǎn)換器
- 模數(shù)轉(zhuǎn)換器的技術(shù)參數(shù)詳解 912次閱讀
- 模數(shù)轉(zhuǎn)換器的工作原理、分類(lèi)及應(yīng)用 817次閱讀
- RA6T2的16位模數(shù)轉(zhuǎn)換器操作 [2] A/D轉(zhuǎn)換器概述 (2) 224次閱讀
- RA6T2的16位模數(shù)轉(zhuǎn)換器操作 [1] 簡(jiǎn)介,A/D轉(zhuǎn)換器概述 185次閱讀
- 模數(shù)轉(zhuǎn)換器電路圖分享 4483次閱讀
- ADC模數(shù)轉(zhuǎn)換器的延時(shí)原理 766次閱讀
- 模數(shù)轉(zhuǎn)換器損壞該如何處理? 459次閱讀
- 模數(shù)轉(zhuǎn)換器按鍵讀取的設(shè)置方法及使用 1939次閱讀
- 模數(shù)轉(zhuǎn)換器分類(lèi)_模數(shù)轉(zhuǎn)換器選型 5572次閱讀
- 如何降低模數(shù)轉(zhuǎn)換器的性能 3991次閱讀
- 關(guān)于高速ADC模數(shù)轉(zhuǎn)換器精度問(wèn)題 9446次閱讀
- 模數(shù)轉(zhuǎn)換器的工作原理與分類(lèi)特點(diǎn)詳解 4452次閱讀
- 小白必看:模數(shù)轉(zhuǎn)換器應(yīng)用典型電路設(shè)計(jì)詳細(xì)解析 2.2w次閱讀
- 模數(shù)轉(zhuǎn)換器工作原理、類(lèi)型及主要技術(shù)指標(biāo) 2w次閱讀
- 模數(shù)轉(zhuǎn)換器的基本原理及不同類(lèi)型ADC特點(diǎn) 3.3w次閱讀
下載排行
本周
- 1GBT1094.11-2022電力變壓器第11部分:干式變壓器
- 14.12 MB | 3次下載 | 免費(fèi)
- 2PT500齒輪傳動(dòng)動(dòng)力學(xué)綜合測(cè)試實(shí)驗(yàn)臺(tái)
- 0.16 MB | 3次下載 | 免費(fèi)
- 3FT-7800R對(duì)講機(jī)維修手冊(cè)附原理圖
- 3.35 MB | 2次下載 | 免費(fèi)
- 4串口工具UartAssist5.0.exe
- 0.60 MB | 2次下載 | 免費(fèi)
- 5爬電距離和電氣間隙計(jì)算
- 0.75 MB | 2次下載 | 1 積分
- 6UC3584DW次級(jí)側(cè)后置穩(wěn)壓器EVM板原理圖
- 38.97KB | 2次下載 | 免費(fèi)
- 7UCC38C42 25瓦自諧振復(fù)位正激變換器
- 320.6KB | 1次下載 | 免費(fèi)
- 8使用15個(gè)時(shí)鐘周期的ADS7841和ADS7844
- 188.55KB | 1次下載 | 免費(fèi)
本月
- 1ACDC變換器的原理圖免費(fèi)下載
- 0.26 MB | 65次下載 | 免費(fèi)
- 2無(wú)刷電機(jī)控制方案設(shè)計(jì)合作
- 1.05 MB | 22次下載 | 免費(fèi)
- 3美的超薄電磁爐TM-S1-09B主板原理圖
- 0.08 MB | 20次下載 | 免費(fèi)
- 4純電動(dòng)汽?的主要部件及?作原理
- 5.76 MB | 12次下載 | 5 積分
- 5GP328和GP88S對(duì)講機(jī)的維修實(shí)列資料合集免費(fèi)下載
- 0.03 MB | 10次下載 | 10 積分
- 6舒爾SLX4無(wú)線話筒接收機(jī)原理圖:二次變頻超外差部分
- 0.27 MB | 8次下載 | 免費(fèi)
- 7i.MX Linux開(kāi)發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開(kāi)發(fā)板
- 17.86 MB | 7次下載 | 免費(fèi)
- 8Type-C VL160數(shù)據(jù)手冊(cè)
- 0.92 MB | 7次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935115次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191363次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183329次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73805次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評(píng)論
查看更多