色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在Android平臺下開發傳感器應用實現水平儀的功能及界面的設計

電子設計 ? 來源:電腦編程技巧與維護 ? 作者:蘇亞光,吳亞峰, ? 2020-03-26 07:57 ? 次閱讀

1、 Android 平臺簡介

互聯網巨頭Google 公司于2007 年11 月5 日推出了全新的嵌入式軟件平臺---Android, 該平臺由操作系統、中間件、用戶界面以及應用軟件組成, 是一個真正開放的移動應用開發平臺。

2007 年11 月初, Google 與其他33 家手機廠商、軟硬件供應商、手機芯片供應商、移動運營商聯合組成了開放手機聯盟(Open Handset Alliance), 發布了名為Android 的手機軟件平臺, 并宣布該平臺完全開放。同時Google 希望Android 平臺成為一套標準化、開放式的移動嵌入式軟件平臺。

由于Android 系統具有開發性、平等性、無界性以及方便性等優點, 所以很快被業界所接受。從2008 年初開始, 越來越多的開發人員投身到Android 應用的開發當中。

而Android 系統的一大亮點之一就是傳感器的使用, 利用傳感器可以開發出很多新奇有趣的應用程序。例如計步器、水平儀, 甚至在很多游戲中都可以使用傳感器來操作游戲。傳感器的種類有很多種, 其中包括加速度傳感器、姿態傳感器、磁場傳感器、溫度傳感器以及光傳感器等, 介紹的水平儀應用就是使用姿態傳感器的。

2、 案例功能

將結合水平儀案例的開發詳細介紹如何在Android 平臺下開發傳感器應用, 下面首先對水平儀的功能及界面進行簡單的介紹。

2.1 程序界面

程序運行后的效果如圖1 所示, 用戶可以通過調整手機的姿態來控制界面中各個氣泡的位置。與真正的水平儀一樣, 在使用手機水平儀時, 需要將手機平放到某個平面上才可以。

如何在Android平臺下開發傳感器應用實現水平儀的功能及界面的設計

圖1 水平儀應用程序界面

2.2 軟件功能

運行該程序, 當改變手機的姿態時, 界面中的氣泡便會根據手機的姿態向高處進行相應的移動。

當手機所處的平面水平時, 各個氣泡都應該位于中間的指定區域。

3 、開發環境搭建

正式進入代碼開發之前, 首先需要對開發環境進行搭建,其搭建步驟如下所列。

(1) 安裝Java 開發環境JDK.

(2) 從網上下載Android 開發環境SDK 的壓縮包, 并將其解壓到磁盤上的某個位置。

(3) 將SDK 解壓目錄中的tools 目錄添加到系統的PATH環境變量中。

(4) 下載并安裝Eclipse 集成開發環境。

(5) 為Eclipse 安裝Android 開發插件ADT, 并在Eclipse的Preferences 中配置Android 插件的SDK Location.

(6) 在Eclipse 的AVD Manager 中創建Android 虛擬設備(AVD), 并啟動模擬器。

(7) 下載并安裝用來調試Android 傳感器應用的Sensorsimulator傳感器模擬器軟件。

(8) 在模擬器中安裝Sensorsimulator 所對應的apk 文件并對其進行調試使Sensorsimulator 應用程序能夠與Android 模擬器進行通信

4、 開發前的準備

前面完成了開發環境的搭建, 但在正式進行代碼開發之前, 還需要再做一些開發前的準備工作, 其步驟如下:

(1) 首先啟動之前安裝好Eclipse.

(2) 然后依次點擊File|New|Other|Android|Android Project進入項目的創建界面。

(3) 在項目創建界面中, 輸入項目的名稱、所使用的目標平臺、所在的包名等信息, 如圖2 所示。

如何在Android平臺下開發傳感器應用實現水平儀的功能及界面的設計

圖2 在Eclipse 中創建Android 項目

(4) 點擊“Finish” 完成項目的創建。

(5) 在程序中將會用到的圖片資源存放到項目文件夾的res/drawable-mdpi 目錄下, 如圖3 所示。

如何在Android平臺下開發傳感器應用實現水平儀的功能及界面的設計

圖3 圖片資源

(6) 為應用程序引入調試時使用的Sensorsimulator 支持jar 包, 該jar 包位于Sensorsimulator 安裝目錄中的bin 目錄下:

5、自定義View 的開發

本案例需要自定義一個View 來繪制水平儀的用戶界面,首先需要在項目文件夾的src/wyf/ytl 目錄下創建一個名為Main-View 的java 類, 并使其繼承自View 類, 其代碼框架如下:

package wyf.ytl; //聲明所在包

import android.content.Context;//引入Context 類

import android.graphics.Bitmap; //引入Bitmap 類

import android.graphics.BitmapFactory; //引入相關類

import android.graphics.Canvas; //引入Canvas 類

import android.graphics.Color; //引入Color 類

import android.graphics.Paint; //引入Paint 類

import android.graphics.RectF; //引入RectF 類

import android.graphics.Paint.Style; //引入Style 類

import android.util.AttributeSet; //引入AttributeSet 類

import android.view.View; //引入View 類

public class MainView extends View{

Paint paint = new Paint(); //畫筆

//圖片資源的聲明

Bitmap shangBitmap1; //上面的大矩形圖

Bitmap shangBitmap2; //上面的氣泡

Bitmap zuoBitmap1; //左面的大矩形圖

Bitmap zuoBitmap2; //左面圖的氣泡

Bitmap zhongBitmap1; //中間的大圓圖

Bitmap zhongBitmap2; //中間的小氣泡

Bitmap xiaBitmap1; //右下的矩形圖

Bitmap xiaBitmap2; //右下的氣泡

//背景矩形的位置聲明

int shang1_X = 60; //上面的大矩形圖

int shang1_Y = 12;

int zuo1_X = 12; //左面的大矩形圖

int zuo1_Y = 60;

int zhong1_X = 65; //中間的大圓圖

int zhong1_Y = 65;

int xia1_X = 145; //右下的矩形圖

int xia1_Y = 145;//水泡的位置聲明

int shang2_X; //上面的氣泡XY 坐標

int shang2_Y;

int zuo2_X; //左面圖的氣泡XY 坐標

int zuo2_Y;

int zhong2_X; //中間的小氣泡XY 坐標

int zhong2_Y;

int xia2_X; //右下的氣泡XY 坐標

int xia2_Y;

public MainView(Context context, AttributeSet attrs){

super(context, attrs);

initBitmap(); //初始化圖片資源

initLocation(); //初始化氣泡的位置

}

private void initBitmap(){ //初始化圖片的方法

…//該處省略了部分代碼,將在后面進行介紹

}

private void initLocation(){ //初始化氣泡位置的方法

…//該處省略了部分代碼,將在后面進行介紹

}

@Override

protected void onDraw(Canvas canvas){//重寫的繪制方法

super.onDraw(canvas);

…//該處省略了部分代碼,將在后面進行介紹

}

}

上述代碼中的initBitmap 以及initLocation 方法是對界面進行初始化方法, 而onDraw 方法會根據需要繪制整個界面。

MainView 類構造器中調用了兩個單獨的方法對整個界面進行了初始化, 這是一種非常好的編程習慣。因為把不同功能的代碼各自編寫成獨立的方法可以使主邏輯清晰, 且各個方法中的代碼都不是很長, 會大大提高代碼的可讀性以及可維護性。

完成了代碼框架的開發后就可以對其中各個方法進行開發了, 首先開發的是圖片資源的初始化方法, 其代碼如下:

private void initBitmap(){ //初始化圖片資源的方法

shangBitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.shang1);

shangBitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.shang2);

zuoBitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.zuo1);

zuoBitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.zuo2);

zhongBitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.zhong1);

zhongBitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.zhong2);

xiaBitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.xia1);

xiaBitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.xia2);

}

上述代碼為initBitmap 方法的全部代碼, 其作用是對程序中所有的圖片資源進行初始化, 在開發該方法之前, 應該確保所有的圖片資源已經存放到了指定的目錄下。

完成了圖片資源初始化方法的開發后, 便可對氣泡位置初始化方法initLocation 進行開發了, 其代碼如下:

private void initLocation(){ //初始化氣泡位置的方法

shang2_X = shang1_X + shangBitmap1.getWidth()/2- shangBitmap2.getWidth()/2;

shang2_Y = shang1_Y + shangBitmap1.getHeight()/2- shangBitmap2.getHeight()/2;

zuo2_X = zuo1_X + zuoBitmap1.getWidth()/2- zuoBitmap2.getWidth()/2;

zuo2_Y = zuo1_Y + zuoBitmap1.getHeight()/2- zuoBitmap2.getHeight()/2;

zhong2_X = zhong1_X + zhongBitmap1.getWidth()/2- zhongBitmap2.getWidth()/2;

zhong2_Y = zhong1_Y + zhongBitmap1.getHeight()/2- zhongBitmap2.getHeight()/2;

xia2_X = xia1_X + xiaBitmap1.getWidth()/2- xiaBitmap2.getWidth()/2;

xia2_Y = xia1_Y + xiaBitmap1.getHeight()/2- xiaBitmap2.getHeight()/2;

}

在該方法中通過相應圖片的寬度和高度動態計算氣泡的初始坐標, 采用此方法動態計算氣泡坐標的好處是當日后更改圖片資源后, 不需要重寫修改源代碼即可正常運行, 大大提高了程序的可維護性。

在完成了各個初始化方法的開發后就可以對繪制方法onDraw 進行開發, 該方法主要負責界面的繪制工作, 其代碼如下:

@Override

protected void onDraw(Canvas canvas){//界面繪制方法super.onDraw(canvas);

canvas.drawColor(Color.WHITE); //設置背景色為白色

paint.setColor(Color.BLUE); //設置畫筆顏色

paint.setStyle(Style.STROKE); //設置畫筆為不填充

canvas.drawRect(5, 5, 315, 315, paint);//繪制外邊框矩形

//畫背景矩形

canvas.drawBitmap(shangBitmap1, shang1_X,shang1_Y, paint); //上

canvas.drawBitmap(zuoBitmap1, zuo1_X,zuo1_Y, paint); //左

canvas.drawBitmap(zhongBitmap1, zhong1_X,zhong1_Y, paint); //中

canvas.drawBitmap(xiaBitmap1, xia1_X,xia1_Y, paint); //下

//開始繪制氣泡

canvas.drawBitmap(shangBitmap2, shang2_X,shang2_Y, paint); //上

canvas.drawBitmap(zuoBitmap2, zuo2_X,zuo2_Y, paint); //左

canvas.drawBitmap(zhongBitmap2, zhong2_X,zhong2_Y, paint); //中

canvas.drawBitmap(xiaBitmap2, xia2_X, xia2_Y, paint);//下

paint.setColor(Color.GRAY);//設置畫筆顏色用來繪制刻度

//繪制上面方框中的刻度

canvas.drawLine (shang1_X+shangBitmap1.getWidth()/2-7,shang1_Y, shang1_X+shangBitmap1.getWidth()/2-7,shang1_Y+shangBitmap1.getHeight()-2, paint);

canvas.drawLine (shang1_X+shangBitmap1.getWidth()/2+7,shang1_Y, shang1_X+shangBitmap1.getWidth()/2+7,shang1_Y+shangBitmap1.getHeight()-2, paint);

//繪制左面方框中的刻度

canvas.drawLine(zuo1_X,zuo1_Y+zuoBitmap1.getHeight()/2-7,zuo1_X+zuoBitmap1.getWidth()-2,zuo1_Y+zuoBitmap1.getHeight()/2-7, paint);canvas.drawLine(zuo1_X,zuo1_Y+zuoBitmap1.getHeight()/2+7,zuo1_X+zuoBitmap1.getWidth()-2,zuo1_Y+zuoBitmap1.getHeight()/2+7, paint);

//繪制下面方框中的刻度

canvas.drawLine(xia1_X+xiaBitmap1.getWidth()/2-10,xia1_Y+xiaBitmap1.getHeight()/2-20,xia1_X+xiaBitmap1.getWidth()/2+20,xia1_Y+xiaBitmap1.getHeight()/2+10, paint);

canvas.drawLine(xia1_X+xiaBitmap1.getWidth()/2-20,xia1_Y+xiaBitmap1.getHeight()/2-10,xia1_X+xiaBitmap1.getWidth()/2+10,xia1_Y+xiaBitmap1.getHeight()/2+20, paint);

//中間圓圈中的刻度(小圓)

RectF oval = new RectF(zhong1_X+zhongBitmap1.getWidth()/2-10,zhong1_Y+zhongBitmap1.getHeight()/2-10,zhong1_X+zhongBitmap1.getWidth()/2+10,zhong1_Y+zhongBitmap1.getHeight()/2+10);

canvas.drawOval(oval, paint);//繪制基準線(圓)

}

在該方法中, 根據相應圖片的X、Y 坐標將圖片繪制到屏幕中, 在圖片的繪制過程中, 同樣動態根據相應圖片的寬和高計算需要繪制到的位置坐標, 以提高程序的可維護性與靈活性。

6、 相關XML 文件的編寫

完成了用于顯示水平儀界面的自定義View 的Java 代碼開發之后, 就應該對布局XML 資源文件進行編寫, 以將之前開發的自定義View 添加到用戶界面中。打開項目中res/layout 目錄下的main.xml, 在其中編寫如下的xml 代碼:

android:orientation=“vertical”

android:layout_width=“fill_parent”

android:layout_height=“fill_parent”》

android:id=“@+id/mainView”

android:layout_width=“fill_parent”

android:layout_height = “fill_parent”/》《 ! -- 自定義

View--》

編寫完布局文件main.xml 后, 還需要開發字符串資源文件strings.xml.打開res/values 下的strings.xml 文件, 編寫如下的代碼:

如何在Android平臺下開發傳感器應用實現水平儀的功能及界面的設計

在該文件中只是對字符串app_name 進行了定義, 在開發Android 應用程序時, 將字符串資源統一定義到一個xml 文件中是一個很好的編程習慣。

編寫完上述的xml 資源文件后, 為了調試還需要為此應用程序添加網絡權限, 打開項目根目錄下的AndroidManifest.xml文件, 在“” 標簽之前加入下列代碼:

上述代碼的功能為此應用程序添加了訪問網絡的權限。

7 、Activity 類的開發

完成了自定義View 以及XML 文件的開發后, 就可以對用戶界面對應的Activity 類進行開發, 首先開發該類的代碼框架,其代碼如下:

package wyf.ytl; //聲明所在包

import android.app.Activity; //引入相關類

import android.hardware.SensorListener;

import android.hardware.SensorManager;

import android.os.Bundle;

public class SPYActivity extends Activity { //繼承Activity MainView mv; //主View

int k = 45; //靈敏度

//SensorManager mySensorManager;

//真機

SensorManagerSimulator mySensorManager; //測試時@Override

public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.main);//設置當前用戶界面

mv = (MainView) findViewById(R.id.mainView);

mySensorManager =SensorManagerSimulator.getSystemService(this,SENSOR_SERVICE); //測試時

mySensorManager.connectSimulator();//測試時

//mySensorManager = (SensorManager)

// getSystemService(SENSOR_SERVICE);//真機

}

private final SensorListener mSensorLisener =new SensorListener(){ //傳感器監聽

//器類

…//該處省略了部分代碼,將在后面進行介紹

};

@Override

protected void onResume(){ //添加監聽

mySensorManager.registerListener(mSensorLisener,SensorManager.SENSOR_ORIENTATION);

super.onResume();

}

@Override

protected void onPause() { //取消監聽

mySensorManager.unregisterListener (mSensorLisener);

super.onPause();

}

}

上述代碼中除了重寫了onCreate 方法外, 還重寫了onRe-sume 以及onPause 方法為mySensorManager 添加或刪除監聽,并且定義了傳感器監聽器類mSensorLisener.

在完成了Activity 類代碼框架的開發后就可以對其中傳感器的監聽類進行開發, 首先給出監聽器類的代碼框架:

private final SensorListener mSensorLisener =

new SensorListener(){//傳感器監聽器類

public void onSensorChanged(int sensor, float[] values){…//該處省略了部分代碼,將在后面進行介紹

}

@Override

public void onAccuracyChanged(int sensor, int accuracy){}

public boolean isContain(int x, int y){//判斷點是否在圓內

int tempx =(int) (x + mv.zhongBitmap2.getWidth()/2.0);

int tempy =(int) (y + mv.zhongBitmap2.getWidth()/2.0);

int ox = (int) (mv.zhong1_X+ mv.zhongBitmap1.getWidth()/2.0);

int oy = (int) (mv.zhong1_X+ mv.zhongBitmap1.getWidth()/2.0);

if(Math.sqrt((tempx-ox)*(tempx-ox)+(tempy-oy)*(tempy-oy))》(mv.zhongBitmap1.getWidth()/2.0-mv.zhongBitmap2.getWidth()/2.0)){//不在圓內return false;

}else{ //在圓內時

return true;

}

}

};

在傳感器監聽類中, onSensorChanged 方法用于監聽傳感器采樣值的變化, 例如手機姿態的改變等。上述代碼中的is-Contain 方法用于判斷界面中間的氣泡是否出界, 若出界則返回false.

完成了代碼框架的開發后, 便可以對傳感器的監聽方法onSensorChanged 進行開發了, 其詳細代碼如下:

public void onSensorChanged(int sensor, float[] values){

if(sensor == SensorManager.SENSOR_ORIENTATION){

double pitch = values[SensorManager.DATA_Y];

double roll = values[SensorManager.DATA_Z];

int x=0; int y=0;//臨時變量,算中間水泡坐標時用

int tempX=0; int tempY=0;//下面氣泡的臨時變量

//開始調整x 的值

if(Math.abs(roll)《=k){

mv.shang2_X = mv.shang1_X //上面的

+ (int)(((mv.shangBitmap1.getWidth()

-mv.shangBitmap2.getWidth())/2.0)

-(((mv.shangBitmap1.getWidth()

-mv.shangBitmap2.getWidth())/2.0)*roll)/k);

x = mv.zhong1_X //中間的

+ (int)(((mv.zhongBitmap1.getWidth()

-mv.zhongBitmap2.getWidth())/2.0)

-(((mv.zhongBitmap1.getWidth()

-mv.zhongBitmap2.getWidth())/2.0)*roll)/k);

}else if(roll》k){

mv.shang2_X=mv.shang1_X; x = mv.zhong1_X;

}else{

mv.shang2_X=mv.shang1_X+

mv.shangBitmap1.getWidth()

- mv.shangBitmap2.getWidth();

x = mv.zhong1_X+ mv.zhongBitmap1.getWidth()

- mv.zhongBitmap2.getWidth();

}

//開始調整y 的值

if(Math.abs(pitch)《=k){

mv.zuo2_Y=mv.zuo1_Y //左面的

+ (int)(((mv.zuoBitmap1.getHeight()

-mv.zuoBitmap2.getHeight())/2.0)

+(((mv.zuoBitmap1.getHeight()

-mv.zuoBitmap2.getHeight())/2.0)*pitch)/k);

y =mv.zhong1_Y+ //中間的

(int)(((mv.zhongBitmap1.getHeight()

-mv.zhongBitmap2.getHeight())/2.0)

+(((mv.zhongBitmap1.getHeight()

-mv.zhongBitmap2.getHeight())/2.0)*pitch)/k);

}else if(pitch》k){

mv.zuo2_Y=mv.zuo1_Y

+mv.zuoBitmap1.getHeight()

-mv.zuoBitmap2.getHeight();

y=mv.zhong1_Y+mv.zhongBitmap1.getHeight()

-mv.zhongBitmap2.getHeight();

}else{

mv.zuo2_Y = mv.zuo1_Y; y = mv.zhong1_Y;

}

//下面的

tempX = -(int) (((mv.xiaBitmap1.getWidth()/2-28)*roll

+(mv.xiaBitmap1.getWidth()/2-28)*pitch)/k);

tempY = -(int) ((-(mv.xiaBitmap1.getWidth()/2-28)*roll

-(mv.xiaBitmap1.getWidth()/2-28)*pitch)/k);

//限制下面的氣泡范圍

if(tempY》mv.xiaBitmap1.getHeight()/2-28){

tempY = mv.xiaBitmap1.getHeight()/2-28;

}

if(tempY 《 -mv.xiaBitmap1.getHeight()/2+28){

tempY = -mv.xiaBitmap1.getHeight()/2+28;

}

if(tempX 》 mv.xiaBitmap1.getWidth()/2-28){

tempX = mv.xiaBitmap1.getWidth()/2-28;

}

if(tempX 《 -mv.xiaBitmap1.getWidth()/2+28){

tempX = -mv.xiaBitmap1.getWidth()/2+28;

}

mv.xia2_X = tempX + mv.xia1_X

+ mv.xiaBitmap1.getWidth()/2

-mv.xiaBitmap2.getWidth()/2;

mv.xia2_Y = tempY + mv.xia1_Y

+ mv.xiaBitmap1.getHeight()/2

- mv.xiaBitmap2.getWidth()/2;

if(isContain(x, y)){//中間的水泡在圓內才改變坐標

mv.zhong2_X = x; mv.zhong2_Y = y;

}

mv.postInvalidate();//重繪MainView

}

}

在onSensorChanged 方法中首先得到pitch 軸以及roll 軸的數值, 然后根據該數值的大小調整水泡在屏幕中的位置, 同時需要對水泡的坐標進行判斷, 使其保持在自身所在外框的范圍內。

此時運行該程序, 并保證測試工具Sensorsimulator 與Android模擬器的連通, 便會觀察到如圖1 所示的效果, 通過Sensorsimulator 工具模擬手機的姿態的改變, 屏幕中的水泡便隨之向高處運動。

8、 程序發布

完成了所有代碼的開發后, 就可以將應用程序打包發布了。本案例中只需將Eclipse 工具自動生成的apk 文件拷出即可, 按如下步驟操作。

(1) 進行正式發布之前首先需要將代碼中注釋為“測試時使用” 的兩處代碼刪掉, 并將注釋為“真機使用” 代碼的注釋去掉。

(2) 完成代碼的修改后重新構建項目。

(3) 打開項目文件夾下的bin 目錄, 其中名為SPY 的apk文件便為本應用程序的安裝包。

(4) 將SPY.apk 文件拷貝到支持傳感器的Android 手機中運行即可完成本應用程序的安裝。

9 、結語

通過開發基于Android 平臺的傳感器應用---水平儀程序, 讀者應該對Android 程序的開發有了一定的了解, 同時讀者也應該了解到在Android 平臺下使用傳感器來豐富自己軟件的功能是十分方便的。

另外, 本案例雖然只對姿態傳感器進行了應用, 但相信通過對本案例的學習, 讀者已經有能力對其他傳感器進行應用,開發出更具新意的吸引人的其他應用程序。

責任編輯:gt


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2552

    文章

    51217

    瀏覽量

    754611
  • 嵌入式
    +關注

    關注

    5086

    文章

    19143

    瀏覽量

    306095
  • Android
    +關注

    關注

    12

    文章

    3938

    瀏覽量

    127545
收藏 人收藏

    評論

    相關推薦

    Android傳感器開發水平儀

    詳細介紹了如何利用Android 系統的傳感器開發水平儀應用的全過程。
    發表于 04-28 09:45 ?8143次閱讀
    <b class='flag-5'>Android</b>的<b class='flag-5'>傳感器</b><b class='flag-5'>開發水平儀</b>

    原裝進口Digi-Pas/迪派士數顯電子水平儀

    產品資訊世界首創二維超精密數碼水平儀/傾角-DWL-8500XYDigi-Pas? DWL-8500XY是一款二維超精密數碼水平儀/傾角
    發表于 02-26 15:23

    【OK210申請】物聯網智能水平儀

    ,結合物聯網相關技術,擬設計并開發一款集水平測量,自動校正,傾角調整為一體的低功耗自平衡水準.本作品是基于傳感器、模擬信號處理、單片機技術的數字
    發表于 07-05 22:57

    基于Android移動設備的傳感器技術應用研究

    ,Google公司強大的互聯網功能和服務優勢,Android的移動技術應用的前景非常美好。  (二)基于Android平臺傳感器概述  
    發表于 11-06 15:49

    差動電容式傳感器在智能電子水平儀中的應用

    提出了差動式傾角電容傳感器在分辨力為0. 001 mm/ m 的智能電子水平儀的應用方案,采用ICL8038 集成芯片作為差動電容電橋的激勵電源,使用兩片LF398 同時對兩路電壓進行采樣及AD7706 對
    發表于 06-22 13:53 ?46次下載

    數字水平儀的設計與應用

    高精度低功耗數字水平儀的設計原理,敘述了其關鍵芯片ADXL202的結構和原理以及使用方法,給出了詳細的設計電路圖和程序流程。關鍵詞: 高精度 微功耗 ADXL202 數字水平儀
    發表于 08-25 14:59 ?50次下載

    基于數字電位的電子水平儀自動調零方法

    零點漂移是所有傳感儀表都必須考慮的一個問題,本文基于所設計的電子水平儀,提出了一種用單片機控制數字電位實現水平儀自動調零的方法,并給出了硬
    發表于 09-01 09:00 ?26次下載

    Android平臺下傳感器技術開發研究

    通過開發計步器應用程序,對Android平臺下開發傳感器應用的流程有了一定的了解。傳感器的特性和
    發表于 08-29 16:47 ?89次下載
    <b class='flag-5'>Android</b><b class='flag-5'>平臺下傳感器</b>技術<b class='flag-5'>開發</b>研究

    基于差動電容傳感器和89C51單片機的電子水平儀

    針對原有的氣泡式水平儀功能存在的不足進行了改進,改進后的儀器采用了變介質差動電容傳感器,設計了電容傳感器變換電路,將傳感器電容的變化轉換為信
    發表于 09-06 14:34 ?169次下載
    基于差動電容<b class='flag-5'>傳感器</b>和89C51單片機的電子<b class='flag-5'>水平儀</b>

    聲音水平儀電路

    聲音水平儀電路使用LM3915 VU表LED柵極驅動可以驅動十個LED燈。一個簡單的音頻放大驅動電路,為LM3915提供直流驅動
    發表于 12-22 16:26 ?2966次閱讀
    聲音<b class='flag-5'>水平儀</b>電路

    傾角傳感器的應用

    傾角傳感器的應用領域 傾角傳感器又稱作傾斜、測斜水平儀、傾角計,經常用于系統的水平角度變化
    發表于 03-18 17:12 ?2370次閱讀

    高精度傾角傳感器的應用-傳感器

    高精度傾角傳感器的應用 傾角傳感器的應用領域傾角傳感器又稱作傾斜、測斜水平儀、傾角計,經常
    發表于 04-26 14:55 ?1874次閱讀

    傾角傳感器的應用有哪些

    傾角傳感器又稱作傾斜、測斜水平儀、傾角計,經常用于系統的水平角度變化測量,水平儀從過去簡單
    發表于 07-17 17:55 ?4503次閱讀

    使用軸角度傳感器制作的水平儀程序和工程文件免費下載

    本文檔的主要內容詳細介紹的是使用軸角度傳感器制作的水平儀程序和工程文件免費下載,12864顯示,軟件提高穩定性。
    發表于 09-14 08:00 ?1次下載
    使用軸角度<b class='flag-5'>傳感器</b>制作的<b class='flag-5'>水平儀</b>程序和工程文件免費下載

    電子水平儀開源分享

    電子發燒友網站提供《電子水平儀開源分享.zip》資料免費下載
    發表于 10-28 09:53 ?3次下載
    電子<b class='flag-5'>水平儀</b>開源分享
    主站蜘蛛池模板: 久久99国产亚洲高清观着| YELLOW日本动漫高清免费| 尤物国产在线精品三区| beeg日本老师| 韩国无遮羞禁动漫在线观看| 女人张开腿让男人添| 亚洲精品在线免费| 美女内射视频WWW网站午夜 | 欧美精品v欧洲高清| 一级做a爰片久久免费| 国产偷窥盗摄一区二区| 欧美又粗又大AAAA片| 99精品欧美一区二区三区美图| 日本三级黄色大片| 99九九精品视频| 午夜影院和视费x看| 成年私人影院网站在线看| 亚洲精品日韩在线观看视频| 琪琪婷婷五月色综合久久| 91蜜桃视频| 老头xxx| 国产精品久久久久久AV免费不卡| 在线观看精品视频看看播放| 双手绑在床头调教乳尖| 本庄优花aⅴ全部在线影片| 亚洲一区成人| 婷婷射精AV这里只有精品| 国产毛片视频网站| caoporon超碰在线视频| 樱花草动漫www| 亚洲 日韩 国产 中文视频| 国产视频成人| 超碰在线 视频| 97午夜伦伦电影理论片| 李丽莎与土豪50分钟在线观看| 国产手机在线精品| 国产噜噜噜精品免费| 3D漫画H精品啪啪无码| 在公交车上被JB草坏了被轮J了| 亚洲中文字幕永久在线| 亚洲永久精品ww47|