嵌入式Android小項(xiàng)目之萬(wàn)能手機(jī)遙控器詳解

姓名:袁永輝? ? ? 學(xué)號(hào):17101223423

轉(zhuǎn)載自:http://mp.weixin.qq.com/s/-qeGnGGUu0f6gvM_E7sa1Q

【嵌牛導(dǎo)讀】:隨著藍(lán)牙功能在手機(jī)上的普及疼约,紅外功能逐漸被取代堰氓,但對(duì)于我們學(xué)習(xí)還是很有好處的。

【嵌牛鼻子】:紅外功能? 音頻轉(zhuǎn)紅外 硬件設(shè)計(jì) 數(shù)據(jù)編碼

【嵌牛提問(wèn)】:是通過(guò)怎樣具體的線程控制的?

【嵌牛正文】:

? ? ? ? 在很久很久以前,手機(jī)是有紅外功能的,后來(lái)隨著藍(lán)牙技術(shù)的成熟文虏,紅外逐漸被藍(lán)牙取代,不再是標(biāo)配了殖演。

紅外本身還是有些優(yōu)點(diǎn)氧秘,比如操作簡(jiǎn)便,成本低趴久。要想在手機(jī)上添加紅外功能丸相,就要外接一個(gè)轉(zhuǎn)換模塊。

圖片發(fā)自簡(jiǎn)書(shū)App

現(xiàn)在市面上通過(guò)Headphone音頻口外接MCU實(shí)現(xiàn)音頻轉(zhuǎn)紅外的方案很多彼棍。

我們的目標(biāo)是做一個(gè)具有學(xué)習(xí)功能的Android手機(jī)遙控器灭忠,通過(guò)音頻轉(zhuǎn)紅外膳算,控制大多家電設(shè)備。

1. 硬件設(shè)計(jì)

圖片發(fā)自簡(jiǎn)書(shū)App

· 右聲道輸出穩(wěn)頻正弦波弛作,為單片機(jī)提供電源

· 左聲道作為tx數(shù)據(jù)線涕蜂,phone到mcu

· mic線作為rx數(shù)據(jù)線,mcu到phone

· command線映琳,接地

右聲道電源供電存在問(wèn)題机隙,Android手機(jī)千差萬(wàn)別,手機(jī)里的音頻codec模塊也不盡相同萨西,

D/A轉(zhuǎn)換的放大倍數(shù)(增益)也不同有鹿,表現(xiàn)在有些人的手機(jī)上鈴聲大,有些鈴聲小原杂。

這個(gè)值是在Android系統(tǒng)底層驅(qū)動(dòng)里設(shè)置印颤,一般無(wú)法用上層軟件改變。

用galaxy nexus穿肄,nexus 4都由于放大倍數(shù)不夠而導(dǎo)致供電不足年局,而三星Galaxy S3就能提供足夠的電壓,一些山寨機(jī)的音量也足夠大咸产。

所以考慮更改硬件設(shè)計(jì)矢否,加入鈕扣電池,由硬件直接供電脑溢,這樣比較穩(wěn)妥僵朗。

2. 數(shù)據(jù)編碼

自定義波形組織形式,這里提供兩種頻率屑彻,一種表示下一個(gè)bit不變验庙,另一種表示下一個(gè)bit變化。

圖片發(fā)自簡(jiǎn)書(shū)App

自定義一幀數(shù)據(jù)的組包形式社牲,一般有包頭粪薛,包尾,校驗(yàn)位和數(shù)據(jù)搏恤。

圖片發(fā)自簡(jiǎn)書(shū)App

3. 核心代碼

兩個(gè)線程用來(lái)收發(fā)數(shù)據(jù)包

[java] view plain copy

1. Runnable _outputGenerator = new Runnable() {? ? ? ?

2.? ? public void run() {?

3.? ? ? ? Thread.currentThread().setPriority(Thread.NORM_PRIORITY);?

4.? ? ? ? ?

5.? ? ? ? while (!_stop) {?

6.? ? ? ? ? ? updateOutputBuffer();?

7.? ? ? ? ? ? _audioTrack.write(_stereoBuffer, 0, _stereoBuffer.length);? ?

8.? ? ? ? }?

9.? ? }?

10. };?

11.?

12. Runnable _inputProcessor = new Runnable() {?

13.? ? public void run() {?

14.? ? ? ? Thread.currentThread().setPriority(Thread.MIN_PRIORITY);?

15.? ? ? ? ?

16.? ? ? ? while (!_stop) {?

17.? ? ? ? ? ? int shortsRead = _audioRecord.read(_recBuffer, 0, _recBuffer.length);?

18.? ? ? ? ? ? processInputBuffer(shortsRead);?

19.? ? ? ? }?

20.? ? }?

21. };?

提供正弦波輸出

[java] view plain copy

1. double powerMutiplier = Math.PI * (double)_powerFrequency / (double)_sampleFrequency * 2;?

[java] view plain copy

1. _stereoBuffer[i*2+1] =? (short) boundToShort(?

2.? ? ? ? Math.sin(powerMutiplier * _powerFrequencyPos++) * 32760);? ?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末违寿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子熟空,更是在濱河造成了極大的恐慌藤巢,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件息罗,死亡現(xiàn)場(chǎng)離奇詭異掂咒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)绍刮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)糜工,“玉大人,你說(shuō)我怎么就攤上這事录淡。” “怎么了油坝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵嫉戚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我澈圈,道長(zhǎng)彬檀,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任瞬女,我火速辦了婚禮窍帝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘诽偷。我一直安慰自己坤学,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布报慕。 她就那樣靜靜地躺著深浮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪眠冈。 梳的紋絲不亂的頭發(fā)上飞苇,一...
    開(kāi)封第一講書(shū)人閱讀 49,816評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音蜗顽,去河邊找鬼布卡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛雇盖,可吹牛的內(nèi)容都是我干的忿等。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼刊懈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼这弧!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起虚汛,我...
    開(kāi)封第一講書(shū)人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤匾浪,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后卷哩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蛋辈,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冷溶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渐白。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖逞频,靈堂內(nèi)的尸體忽然破棺而出纯衍,到底是詐尸還是另有隱情,我是刑警寧澤苗胀,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布襟诸,位于F島的核電站,受9級(jí)特大地震影響基协,放射性物質(zhì)發(fā)生泄漏歌亲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一澜驮、第九天 我趴在偏房一處隱蔽的房頂上張望陷揪。 院中可真熱鬧,春花似錦杂穷、人聲如沸悍缠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)扮休。三九已至,卻和暖如春拴鸵,著一層夾襖步出監(jiān)牢的瞬間玷坠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工劲藐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留八堡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓聘芜,卻偏偏與公主長(zhǎng)得像兄渺,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子汰现,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 姓名:于川皓 學(xué)號(hào):16140210089 轉(zhuǎn)載自:http://blog.csdn.net/xubin34171...
    道無(wú)涯_cc76閱讀 8,100評(píng)論 0 11
  • Guide to BluetoothSecurity原文 本出版物可免費(fèi)從以下網(wǎng)址獲得:https://doi.o...
    公子小水閱讀 7,926評(píng)論 0 6
  • 1挂谍、嵌入式系統(tǒng)的定義 (1)定義:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ)瞎饲,軟硬件可裁剪口叙,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性嗅战、成本...
    榮卓然閱讀 1,804評(píng)論 0 5
  • 前言 據(jù)說(shuō)妄田,電子消費(fèi)品界有三大積灰神器俺亮,第一是單反,第二是Kindle疟呐,第三忘了是啥脚曾。單反的灰又厚又重嘹悼,我是撣不動(dòng)...
    findingsea閱讀 18,774評(píng)論 166 992