基于安卓平臺示波器APP設計_第1頁
基于安卓平臺示波器APP設計_第2頁
基于安卓平臺示波器APP設計_第3頁
基于安卓平臺示波器APP設計_第4頁
基于安卓平臺示波器APP設計_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1Android 手機編程大作業示波器示波器 院院 系:系:* 專專 業業:電子信息工程:電子信息工程 班班 級:級:1*1*電信電信* 學學 號:號:* 姓姓 名名:* 授課教師:授課教師:* 20142014 年年 月月 日日 上海第二工業大學Android 手機編程大作業 1示波器示波器摘摘 要要隨著 Android 平臺在市場占有率上的穩步上升,采用 Java 語言開發的 Android應用會越來越多。不過需要指出的是,運行 Android 平臺的硬件只是手機、平臺電腦等便攜式設備,這些設備的計算能力、數據存儲能力都是有限的,不太可能在Android 平臺上部署大型企業級應用,因此 A

2、ndroid 應用可能以純粹客戶端應用的角色出現,然后通過網絡與傳統大型應用交互,充當大型企業應用的客戶端,比如已經出現的淘寶 Android 客戶端、趕集網 Android 客戶端,它們都是這種發展趨勢下的產物。通過虛擬仿真來模擬這些基礎信號,并控制它們的波形特征,有助于我們將理論與實際聯系起來,充分發揮手機的能力實現在現實中無法滿足的實驗條件。通過后期不斷地補充算法來增加軟件的功能,使其更具有現實意義。關鍵詞:信號,波形,Android 手機編程,示波器,java,eclipse。上海第二工業大學Android 手機編程大作業 2OSCILLOSCOPEABSTRACTAs the And

3、roid platform in market share steadily rising rate on Android application, using Java language development will be more and more. But the need to point out is, running the Android platform hardware only portable equipment, mobile phone platform computer, computing power, data storage capacity of the

4、se devices is limited, not too possible deployment of large-scale enterprise application on the Android platform, so the Android application may appear in a pure client application role, and then through the network and the traditional large application interaction, as a large-scale enterprise appli

5、cation client, for example, has emerged Taobao Ganji Android client, Android client, they are products of the development trend of the.Through the virtual simulation to simulate these basic signal, and control the waveform characteristics of them, will help us to link theory with practice, give full

6、 play to the mobile phone the ability to achieve experimental conditions cannot be met in reality. Through the late constantly add algorithm to increase the function of the software, to make it more realistic significance.Keywords: Signal,Signal, waveform,waveform, AndroidAndroid mobilemobile phonep

7、hone programming,programming, oscilloscope,oscilloscope, javajava programprogram language,language, eclipseeclipse上海第二工業大學Android 手機編程大作業 3上海第二工業大學Android 手機編程大作業 第 1 頁目目 錄錄摘 要.1ABSTRACT.2第一章 緒論.11.1 概述.11.2 課題研究的目的與意義.4第二章 研究現狀.5第三章 可行性分析.53.1 需求分析.53.2 運行環境(包括模擬服務器).53.3 開發工具.53.5 本章小結.6第四章 系統設計.6

8、第五章 系統實現.65.1 界面設計.65.2 特色模塊功能.6第六章 使用說明.14第七章 體會.14第八章 總結.14參 考 文 獻.15致 謝.15上海第二工業大學Android 手機編程大作業 第 2 頁第一章第一章 緒論緒論1.1 概述信號與系統主要講授信號與線性系統分析的基本原理和方法,為學生深層次理解電路原理,提供多種解決方法。從而培養了學生解決問題的能力,因此信號與系統在電子專業中不可或缺,是某些學科的基石,是某些工作的重點。隨著信息技術革命的深入和計算機技術的飛速發展, “信號與系統”的課程出現在范圍廣泛的各種專業中,并對各專業的發展起著重要的作用。信號與系統在電子專業中的作

9、用更是極其的重要,它是電子專業最關鍵、最基礎的課程,是我們將要蓋起的電子大廈的地基。夯實地基是我們現在要做好的事。信號與系統這門課主要研究電信號。為了解并控制信號必須要研究它的波形。波的圖象叫做波形,不同的音色有不同的波形顯示。頻率不同時,波形表現出彈簧式的伸縮;振幅不同時,波形表現出山峰式的起伏。樂音的波形美麗而圓滑;噪音的波形混亂而繁雜。波形的種類很多,不同的波形有不同的定義和測量方法。正弦波形是在時域中定義的,但其波形失真參數卻用正弦波形通過傅里葉變換后在頻域中各諧波分量相對于基波幅度的大小來表示(見失真度測量) ;鋸齒波的非線性是指實際波形偏離理想直線的程度,速率較低的鋸齒波的非線性可

10、用等間隔精密采樣的方法進行測量;脈沖波形測量的內容較多。研究波形需要用到示波器,示波器是一種用途十分廣泛的電子測量儀器。它能把肉眼看不見的電信號變換成看得見的圖像,便于人們研究各種電現象的變化過程。示波器利用狹窄的、由高速電子組成的電子束,打在涂有熒光物質的屏面上,就可產生細小的光點(這是傳統的模擬示波器的工作原理) 。在被測信號的作用下,電子束就好像一支筆的筆尖,可以在屏面上描繪出被測信號的瞬時值的變化曲線。利用示波器能觀察各種不同信號幅度隨時間變化的波形曲線,還可以用它測試各種不同上海第二工業大學Android 手機編程大作業 第 3 頁的電量,如電壓、電流、頻率、相位差、調幅度等等。An

11、droid 是一種基于 Linux 的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由 Google 公司和開放手機聯盟領導及開發。本次研究的主要內容是將示波器顯示原理移植到 Android 設備上,雖然無法真正直接測量某一實際電信號,但可以通過編程來模擬許多信號,如:正弦波、余弦波、方波三角波、抽樣信號。Android 系統就是一個開發式的手機和平板電腦的操作系統,發展勢頭十分迅猛。雖然 Android 面世的時間不長,但 Android 已經對傳統的手機平臺(如 Symbian)構成了強大沖擊,Nokia 宣布與 Microsoft 結盟,可能會逐步采用Window

12、s Phone 來代替自己的 Symbian 系統,不過業界大多并不看好這次結盟,因為 Windows 的手機操作系統本身并不太受市場歡迎。業界部分人士預測,Android將會成為應用最為廣泛的手機操作系統。對于 Java 語言而言,Android 系統給了Java 一個新的機會。在過去的歲月中,Java 語言作為服務器端編程語言,已經取得了極大的成功,Java EE 平臺發展得非常成熟,而且一直是電信、移動、銀行、證券、電子商務應用的首選平臺、不爭的王者。但在客戶端應用開發方面,Java 語言一直表現不佳,雖然 Java 既有 AWT/Swing 界面開發庫,也有 SWT/JFace 界面開

13、發庫,但對于客戶端應用開發人員而言,大多不愿意選擇 Java 語言。Android 系統的出現改變了這種局面。Android 是一個非常優秀的手機、平板電腦操作系統,它將會逐漸蠶食傳統的桌面操作系統,而 Android 平臺應用的開發語言就是 Java,這意味著Java 語言將可以在客戶端應用開發上大展拳腳。隨著 Android 平臺在市場占有率上的穩步上升,采用 Java 語言開發的 Android應用會越來越多。不過需要指出的是,運行 Android 平臺的硬件只是手機、平臺電腦等便攜式設備,這些設備的計算能力、數據存儲能力都是有限的,不太可能在Android 平臺上部署大型企業級應用,因

14、此 Android 應用可能以純粹客戶端應用的角色出現,然后通過網絡與傳統大型應用交互,充當大型企業應用的客戶端,比如上海第二工業大學Android 手機編程大作業 第 4 頁已經出現的淘寶 Android 客戶端、趕集網 Android 客戶端,它們都是這種發展趨勢下的產物。1.2 課題研究的目的與意義通過虛擬仿真來模擬這些基礎信號,并控制它們的波形特征,有助于我們將理論與實際聯系起來,充分發揮手機的能力實現在現實中無法滿足的實驗條件。通過后期不斷地補充算法來增加軟件的功能,使其更具有現實意義。1.3 本章小結2011 年 1 月,谷歌稱每日的 Android 設備新用戶數量達到了 30 萬

15、部,到 2011年 7 月,這個數字增長到 55 萬部,而 Android 系統設備的用戶總數達到了 1.35 億,Android 系統已經成為智能手機領域占有量最高的系統。Android 手機已占據全球智能機市場 48%的份額,并在亞太地區市場占據統治地位,終結了 Symbian(塞班系統)的霸主地位,躍居全球第一。谷歌 Android Market 已有 10 萬開發者推出超過 40 萬活躍的應用,大多數的應用程序為免費。本次課題充分利用了 Android 便于開發的優勢,將示波器顯示原理移植到 Android 設備上,為電子類專業的學生對于信號的理解提供很大幫助。第二章第二章 研究現狀研

16、究現狀multisim 主要偏重內部電子電路或者是數字的設計和仿真;而 protel 適合整體電路的仿真;pspice 適合理論的角度模擬,適合于寫論文;ADS 適合高頻; LabVIEW 使用的是圖形化編輯語言 G 編寫程序,產生的程序是框圖的形式;matlab將數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和仿真等諸多強大功能集成在一個易于使用的視窗環境中。上海第二工業大學Android 手機編程大作業 第 5 頁第三章第三章 可行性分析可行性分析3.1 需求分析熟悉信號與系統相關知識,java 編程,安卓開發。3.2 運行環境(包括模擬服務器)(1)安裝 jdk-6u22-w

17、indows-i586-p.exe,安裝完成后,添加 CLASSPATH 環境變量,該環境變量的值為;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar。如果為了可以編譯和運行 Java 程序,還應該在 PATH 環境變量中增加%JAVA_HOME%/bin。其中 JAVA_HOME 代表 JDK(不是 JRE)的安裝路徑。(2)安裝 Android4.2.2。創建 AVD 虛擬設備。安裝 Android SDK。(3)安裝 Eclipse-jee-helios 版(也就是 Eclipse 3.6 for Java EE Developers) 。

18、并安裝 ADT 插件,安裝插件后在 Eclipse 中設置 Android SDK 的路徑。3.3 開發工具Eclipse3.4 本章小結Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發環境。幸運的是,Eclipse 附帶了一個標準的插件集,包括 Java 開發工具(Java Development Kit,JDK) 。通過添加相關插件來支持安卓開發。除了掌握相關的編程語言,還需要理解信號與系統等電路知識。上海第二工業大學Android 手機編程大作業 第 6 頁第四章第四章 系統設計系統設計4.1 結構設計

19、 標題,顯示面板,控制要顯示的波形及參數的相關控件。4.2 系統功能設計功能模塊圖4.3 系統功能分析重要頁面設計及頁面功能說明上海第二工業大學Android 手機編程大作業 第 7 頁上海第二工業大學Android 手機編程大作業 第 8 頁第五章第五章 系統實現系統實現5.1 界面設計主界面分為四個區域,從上至下分別是標題區、參數設置區、顯示面板、控制區。5.2 特色功能模塊(1)更改連線效果主要程序:PathEffect effects = new PathEffect null, new CornerPathEffect(10),new DiscretePathEffect(3.0f,

20、 10.0f), new DashPathEffect(new float 20, 10, 5, 10 , phase += 1) ;final String effectstr = 默認, 弧線, 噪聲, 虛線 ;ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,effectstr);effect.setAdapter(adapter);/ 下拉單顯示內容effect.setOnItemSelectedListener(new Spinner.OnItemSel

21、ectedListener() Overridepublic void onItemSelected(AdapterView arg0, View arg1,int arg2, long arg3) / TODO Auto-generated method stubcureffect = arg2; / arg2代表選的第幾個arg0.setVisibility(View.VISIBLE);Overridepublic void onNothingSelected(AdapterView parent) / TODO Auto-generated method stub上海第二工業大學Andr

22、oid 手機編程大作業 第 9 頁);(2)參數設置Other.setOnClickListener(new Button.OnClickListener() Overridepublic void onClick(View v) / TODO Auto-generated method stubLinearLayout inputlayout = (LinearLayout) getLayoutInflater().inflate(R.layout.input, null);final EditText input = (EditText) inputlayout.findViewById(

23、R.id.inputN);final SeekBar amplitude = (SeekBar) inputlayout.findViewById(R.id.amplitude);final SeekBar period = (SeekBar) inputlayout.findViewById(R.id.period);/ findById默認找setContentView(R.layout.activity_main);activity_main中的ID不會找到其他layout的IDbuilder.setTitle(波形參數設定);builder.setView(inputlayout);a

24、mplitude.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() Overridepublic void onStopTrackingTouch(SeekBar seekBar) / TODO Auto-generated method stubOverridepublic void onStartTrackingTouch(SeekBar seekBar) / TODO Auto-generated method stub上海第二工業大學Android 手機編程大作業 第 10 頁Overridepublic

25、void onProgressChanged(SeekBar seekBar,int progress, boolean fromUser) / TODO Auto-generated method stubif (progress != 0)A = (float) (progress / 35.0f); / 疏密elseA = 1;);period.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() Overridepublic void onStopTrackingTouch(SeekBar seekBar) /

26、 TODO Auto-generated method stubOverridepublic void onStartTrackingTouch(SeekBar seekBar) / TODO Auto-generated method stubOverridepublic void onProgressChanged(SeekBar seekBar,int progress, boolean fromUser) / TODO Auto-generated method stubif (progress != 0)T = (float) (progress / 35.0f); / 疏密else

27、T = 1;);builder.setPositiveButton(確定,new DialogInterface.OnClickListener() 上海第二工業大學Android 手機編程大作業 第 11 頁Overridepublic void onClick(DialogInterface dialog,int which) / TODO Auto-generated method stubboolean flag = false;if (input.getText() = null| input.getText().toString().length() = 0);else N = I

28、nteger.parseInt(input.getText().toString();flag = true;if (A != preA)flag = true;if (T != preT)flag = true;if (flag) Toast toast = Toast.makeText(MainActivity.this, 參數設置成功n當前N=+ N + n當前A= + A+ n當前T= + T,Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();preA = A;preT = T; else T

29、oast toast = Toast.makeText(MainActivity.this, 參數沒有變化n當前N=+ N + n當前A= + A+ n當前T= + T,Toast.LENGTH_SHORT);上海第二工業大學Android 手機編程大作業 第 12 頁toast.setGravity(Gravity.CENTER, 0, 0);toast.show();preA = A;preT = T;);builder.create().show(););(3)采樣頻率Density.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChan

30、geListener() Overridepublic void onStopTrackingTouch(SeekBar seekBar) / TODO Auto-generated method stubOverridepublic void onStartTrackingTouch(SeekBar seekBar) / TODO Auto-generated method stubOverridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) / TODO Auto-generated method stubcurdensity = (int) (progress); / 疏密);上海第二工業大學Android 手機編程大作業 第 13 頁(4)面板顯示動畫final Path path = new Path();path.moveTo(0, centerY);path.lineTo(x, y); Canvas canvaspanel = holder.lockCanvas(newRect(prex, top, x + 10,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論