91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣使OLED和加速度計(jì)交互

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-19 10:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:介紹加速度計(jì)ADXL335

在本教程中,我們將展示如何使用庫(kù)顯示球并使用加速度計(jì)使其在屏幕上移動(dòng)。我們將使用的加速度計(jì)是ADXL335。

傳感器可以測(cè)量x,y和z軸上的加速度,就像重力引起的加速度一樣。因此,如果傳感器在靜止?fàn)顟B(tài)下與地面平行,則只有一根軸會(huì)感覺(jué)到重力加速度。傾斜設(shè)備時(shí),其他軸也會(huì)開(kāi)始感覺(jué)到重力加速度。這樣,就有可能分析設(shè)備的移動(dòng)方式。

步驟2:將加速度計(jì)添加到OLED設(shè)置

現(xiàn)在我們知道了OLED和加速度計(jì)的工作原理,現(xiàn)在該創(chuàng)建設(shè)置了。

首先,我們需要按照上圖所示的以下方式將傳感器添加到OLED設(shè)置中。

傳感器的針腳如下所示連接到Arduino

VCC – 5V

GND – GND

X – A3

Y – A2

Z和ST保持未連接狀態(tài)

步驟3:代碼

設(shè)置好連線(xiàn)后,我們可以使用以下代碼創(chuàng)建游戲:

#include

#include

#include

#include

using namespace JUGL;

SSD1306_128x64 driver;

const int xpin = A3; //Assign pin A3 to x

const int ypin = A2; //Assign pin A2 to y

int x, y, x1, y1, r, varx, vary, width, height; //Define variables

int xy [2]; //Array to hold (x,y) coordinate

//Declaration of functions

void Circle(IScreen& scr);

void move_right(IScreen& scr);

void stop_right(IScreen& scr);

void move_left(IScreen& scr);

void stop_left(IScreen& scr);

void move_up(IScreen& scr);

void stop_up(IScreen& scr);

void move_down(IScreen& scr);

void stop_down(IScreen& scr);

void setup(){

IScreen& screen = driver; //Make reference to driver

screen.Begin(); //Initialize screen

width = screen.GetWidth(); //Get width of screen (128)

height = screen.GetHeight(); //Get height of screen (64)

Circle(screen); //Draw circle

}

void loop(){

x1 = analogRead(xpin); //Read x analog data

y1 = analogRead(ypin); //Read y analog data

IScreen& screen = driver; //Make reference to driver

if(x1《500){ //Check if sensor is tilted to the right

move_right(screen); //Move ball right

if(varx》=width-1-r ){ //Check if ball reached end of screen

stop_right(screen); //Stop moving

}

}

if(x1》520){ //Check if sensor is tilted to the left

move_left(screen); //Move ball left

if(varx=height-1-r){ //Check if ball reached end of screen

stop_up(screen); //Stop moving

}

}

if(y1》510){ //Check if sensor is tilted down

move_down(screen); //Move ball down

if(varyr){ //Check if ball is within boundaries

scr.Flush(); //Display on screen

}

}

void stop_left(IScreen& scr){

scr.Clear(); //Clear screen

varx = r; //Update varx

xy[0] = varx; //Store new varx value

scr.FillCircle(Point(5,xy[1]),r); //Draw circle

scr.Flush(); //Display on screen

}

void move_up(IScreen& scr){

scr.Clear(); //Clear screen

vary += 10; //Move ball 10 pixels up, assign value to vary

xy[1] = vary; //Store new vary value

scr.FillCircle(Point(xy[0],vary),r); //Draw circle

if(varyr){ //Check if ball is within boundaries

scr.Flush(); //Display on screen

}

}

void stop_down(IScreen& scr){

scr.Clear(); //Clear screen

vary = r; //Update vary

xy[1] = vary; //Store new vary value

scr.FillCircle(Point(xy[0],5),r); //Draw circle

scr.Flush(); //Display on screen

}

第4步:代碼說(shuō)明

所以這是代碼中正在發(fā)生的事情。首先,我們包含了運(yùn)行該程序所需的所有庫(kù)。 JUGL庫(kù)包含繪制圓所需的功能,而JUGL_SSD1306_128x64庫(kù)用于初始化屏幕。最后一個(gè)庫(kù)還包含“ DrawPoint”和“ Flush”功能,以繪制圓的每個(gè)像素并將其顯示在屏幕上。 SPI和Wire庫(kù)用于通過(guò)SPI或I2C與設(shè)備通信。在這種情況下,我們正在使用I2C通信。由于該庫(kù)支持許多驅(qū)動(dòng)程序,因此需要指定我們正在使用的驅(qū)動(dòng)程序。第6行通過(guò)指定在128x64屏幕上使用驅(qū)動(dòng)程序SSD1306來(lái)解決此問(wèn)題。以下是該庫(kù)支持的其他驅(qū)動(dòng)程序:

EPD 2.0

EPD 1.44

EPD 2.7

PCF8833

KS0107

在代碼的下一部分,我們將Arduino的模擬輸入A3和A2分別分配給傳感器的x和y引腳。我們還定義了將要使用的變量,并創(chuàng)建一個(gè)數(shù)組來(lái)保存x和y坐標(biāo)(球的原點(diǎn))。然后,對(duì)將在此程序中使用的功能進(jìn)行前向聲明。

接下來(lái),我們轉(zhuǎn)到代碼的設(shè)置部分。在這里,我們引用了正在使用的驅(qū)動(dòng)程序?;趨⒖迹覀兂跏蓟聊?,并獲取其寬度和高度。最后,我們將函數(shù)稱(chēng)為“圓形”。該函數(shù)清除屏幕并設(shè)置球的半徑和原點(diǎn)。我們使用庫(kù)中的“ FillCircle”和“ Flush”功能繪制球并顯示。這將在屏幕的左下角生成一個(gè)球,該球的半徑為5個(gè)像素,原點(diǎn)為(5,5)。

步驟5:動(dòng)作中的傳感器

現(xiàn)在我們有了球,我們可以使用傳感器使其移動(dòng)。

在程序的循環(huán)部分中,我們引用了我們?cè)俅问褂玫尿?qū)動(dòng)程序。然后,我們從引腳x和y讀取數(shù)據(jù),并將值分別分配給變量x1和y1。上表顯示了每個(gè)引腳的值,具體取決于設(shè)備的傾斜度。

通過(guò)將這些值與“靜止”值進(jìn)行比較,我們可以確定設(shè)備是否向右,向左傾斜,等。讓我們以程序中的第一種情況為例。

我們知道,如果設(shè)備向右傾斜,則“靜止”值將減小。發(fā)生這種情況時(shí),程序?qū)⒄{(diào)用函數(shù)“ move_right”。該函數(shù)清除屏幕,然后將值10添加到變量“ varx”(在這種情況下為零)。這表示我們要在x軸上移動(dòng)球原點(diǎn)的像素?cái)?shù)。然后,我們將新值“ varx”存儲(chǔ)在數(shù)組的第一個(gè)位置。最后,我們調(diào)用“ FillCircle”和“ Flush”函數(shù)在屏幕上顯示一個(gè)新的圓,該新圓與x軸上的上一個(gè)圓相距10個(gè)像素。只要引腳X的值小于510,該過(guò)程就會(huì)不斷重復(fù),從而擦除上一個(gè)圓,并在每次迭代時(shí)將新的像素畫(huà)出10個(gè)像素。這給人一種錯(cuò)覺(jué),那就是球在向右移動(dòng)。

但是,如果球到達(dá)屏幕末端,則會(huì)調(diào)用“ stop_right”功能。此函數(shù)清除屏幕,將varx設(shè)置為126,并將此值存儲(chǔ)在數(shù)組的第一個(gè)位置。然后調(diào)用函數(shù)“ FillCircle”和“ Flush”繪制并顯示一個(gè)球,球的原點(diǎn)為(126,xy [1])。換句話(huà)說(shuō),該程序?qū)⑼V箤⑶蛳蛴乙苿?dòng)10個(gè)像素,而是將在屏幕y所在的任何位置繼續(xù)在屏幕右側(cè)的邊緣繪制相同的圓。

當(dāng)設(shè)備向左,向上或向下傾斜時(shí),使用相同的想法。

步驟6:傳感器在起作用-繼續(xù)

每次我們?cè)谄聊簧弦苿?dòng)球時(shí),都需要跟蹤x和y軸的變化。如前所述,這是通過(guò)在每次球的原點(diǎn)發(fā)生變化時(shí)將新的x和y值存儲(chǔ)在數(shù)組中來(lái)完成的。例如,如果我們將球向右移動(dòng)并停止,以使繪制的最后一個(gè)球的原點(diǎn)為(30,5),則要從那里向上移動(dòng)球,則必須考慮到球的變化。 x軸,以便在繪制新球時(shí),其原點(diǎn)位于(30,15)。換句話(huà)說(shuō),數(shù)組中保存的值用作下一個(gè)要繪制的球的參考位置。

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • OLED
    +關(guān)注

    關(guān)注

    121

    文章

    6360

    瀏覽量

    233862
  • 加速度計(jì)
    +關(guān)注

    關(guān)注

    6

    文章

    813

    瀏覽量

    48234
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    探索NXP FXLS8964AF 3軸低g加速度計(jì):特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    探索NXP FXLS8964AF 3軸低g加速度計(jì):特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在汽車(chē)電子領(lǐng)域,對(duì)于高性能、低功耗的傳感器需求日益增長(zhǎng)。NXP的FXLS8964AF 3軸低g加速度計(jì),憑借其出色的特性和豐
    的頭像 發(fā)表于 12-25 10:20 ?443次閱讀

    深入解析FXLS8971CF:3軸低g加速度計(jì)的卓越性能與應(yīng)用

    深入解析FXLS8971CF:3軸低g加速度計(jì)的卓越性能與應(yīng)用 在當(dāng)今工業(yè)和醫(yī)療物聯(lián)網(wǎng)(IoT)領(lǐng)域,對(duì)于高性能、低功耗的傳感器需求日益增長(zhǎng)。NXP Semiconductors
    的頭像 發(fā)表于 12-24 14:00 ?534次閱讀

    深入解析FXLS8961AF:汽車(chē)應(yīng)用中的3軸低g加速度計(jì)

    深入解析FXLS8961AF:汽車(chē)應(yīng)用中的3軸低g加速度計(jì) 在汽車(chē)電子領(lǐng)域,傳感器技術(shù)的發(fā)展日新月異。其中,3軸加速度計(jì)在汽車(chē)安全和便利性應(yīng)用中扮演著至關(guān)重要的角色。今天,我們就來(lái)詳細(xì)探討NXP
    的頭像 發(fā)表于 12-24 13:55 ?410次閱讀

    探索Series 660低成本可嵌入式加速度計(jì):應(yīng)用與技術(shù)解析

    探索Series 660低成本可嵌入式加速度計(jì):應(yīng)用與技術(shù)解析 在電子工程領(lǐng)域,加速度計(jì)是用于測(cè)量加速度的設(shè)備,在眾多應(yīng)用場(chǎng)景中發(fā)揮著關(guān)鍵作用。今天,我們將深入探討PCB Piezotronics
    的頭像 發(fā)表于 12-12 15:45 ?405次閱讀
    探索Series 660低成本可嵌入式<b class='flag-5'>加速度計(jì)</b>:應(yīng)用與技術(shù)解析

    IMI微功耗ICP?嵌入式加速度計(jì):無(wú)線(xiàn)物聯(lián)網(wǎng)設(shè)備的理想之選

    IMI微功耗ICP?嵌入式加速度計(jì):無(wú)線(xiàn)物聯(lián)網(wǎng)設(shè)備的理想之選 在電子工程師的日常工作中,為無(wú)線(xiàn)、電池供電的物聯(lián)網(wǎng)設(shè)備選擇合適的加速度計(jì)是一項(xiàng)關(guān)鍵任務(wù)。今天,我們就來(lái)深入了解一下IMI的微功耗ICP
    的頭像 發(fā)表于 12-10 16:00 ?484次閱讀
    IMI微功耗ICP?嵌入式<b class='flag-5'>加速度計(jì)</b>:無(wú)線(xiàn)物聯(lián)網(wǎng)設(shè)備的理想之選

    加速度計(jì)都有哪些分類(lèi)?

    加速度計(jì)的分類(lèi)主要依據(jù)其工作原理和測(cè)量維度(軸數(shù)),以下是詳細(xì)的分類(lèi):按工作原理分類(lèi)(這是最核心的分類(lèi)方式)這是根據(jù)加速度計(jì)內(nèi)部如何感知和轉(zhuǎn)換加速度信號(hào)來(lái)劃分的。
    的頭像 發(fā)表于 12-04 15:55 ?583次閱讀
    <b class='flag-5'>加速度計(jì)</b>都有哪些分類(lèi)?

    加速度計(jì)伺服電路模塊原理與應(yīng)用

    在慣性導(dǎo)航與姿態(tài)控制這一尖端技術(shù)領(lǐng)域,系統(tǒng)感知運(yùn)動(dòng)狀態(tài)的能力直接決定了其精度與可靠性。而將物理世界的加速度精確轉(zhuǎn)換為可用電信號(hào)的關(guān)鍵,在于一個(gè)核心部件——加速度計(jì)伺服電路模塊。該模塊專(zhuān)為光電加速度計(jì)
    的頭像 發(fā)表于 11-28 15:43 ?440次閱讀

    如何為你的項(xiàng)目選擇合適的加速度計(jì)?

    在智能科技飛速發(fā)展的今天,從翱翔天空的飛行器到我們手中的智能設(shè)備,對(duì)運(yùn)動(dòng)的精準(zhǔn)感知已成為關(guān)鍵。加速度計(jì),作為測(cè)量加速度和振動(dòng)的核心傳感器,其選型直接決定了項(xiàng)目的成敗。面對(duì)不同的技術(shù)類(lèi)型,如何才能做出最明智的選擇?本文將帶您了解主要的加速
    的頭像 發(fā)表于 11-06 15:32 ?329次閱讀
    如何為你的項(xiàng)目選擇合適的<b class='flag-5'>加速度計(jì)</b>?

    LIS2DUXS12:集成AI與Qvar感知的超低功耗加速度計(jì)

    STMicroelectronics LIS2DUXS12超低功耗加速度計(jì)是一款智能、數(shù)字、3軸線(xiàn)性加速度計(jì)。 MEMS和ASIC旨在讓常開(kāi)抗混疊濾波和有限狀態(tài)機(jī) (FSM) 等功能有盡可能低
    的頭像 發(fā)表于 10-29 14:41 ?756次閱讀
    LIS2DUXS12:集成AI與Qvar感知的超低功耗<b class='flag-5'>加速度計(jì)</b>

    石油鉆井為何離不開(kāi)抗高溫抗沖擊的石英加速度計(jì)?

    在地下數(shù)千米的復(fù)雜鉆井環(huán)境中,鉆頭需要穿越堅(jiān)硬的巖層、承受劇烈振動(dòng)和超過(guò)150℃的高溫。此時(shí),石英加速度計(jì)就如同鉆井系統(tǒng)的"感知神經(jīng)",通過(guò)與陀螺儀協(xié)同工作,精確測(cè)量角速度和加速度
    的頭像 發(fā)表于 09-30 15:16 ?680次閱讀
    石油鉆井為何離不開(kāi)抗高溫抗沖擊的石英<b class='flag-5'>加速度計(jì)</b>?

    MEMS加速度計(jì)與石英加速度計(jì)的發(fā)展現(xiàn)狀與水平對(duì)比

    在工程測(cè)量與慣性導(dǎo)航領(lǐng)域,加速度計(jì)是感知運(yùn)動(dòng)與振動(dòng)的核心傳感器。其中,微機(jī)電系統(tǒng)(MEMS)加速度計(jì)和石英加速度計(jì)是兩種技術(shù)路線(xiàn)迥異但應(yīng)用廣泛的重要類(lèi)型。它們各自的發(fā)展現(xiàn)狀和技術(shù)水平呈現(xiàn)出一種既競(jìng)爭(zhēng)又互補(bǔ)的格局。
    的頭像 發(fā)表于 09-19 14:55 ?1269次閱讀
    MEMS<b class='flag-5'>加速度計(jì)</b>與石英<b class='flag-5'>加速度計(jì)</b>的發(fā)展現(xiàn)狀與水平對(duì)比

    洞察萬(wàn)物運(yùn)動(dòng):詳解加速度計(jì)的分類(lèi)與廣泛應(yīng)用

    在我們?nèi)粘I钪?,從智能手機(jī)屏幕的自動(dòng)旋轉(zhuǎn)到汽車(chē)的緊急安全氣囊觸發(fā),一種看不見(jiàn)的技術(shù)始終在默默工作,感知著物體的運(yùn)動(dòng)和振動(dòng)。這種技術(shù)的核心元件就是加速度計(jì)。它是一種能夠測(cè)量加速度(包括靜態(tài)重力加速度
    的頭像 發(fā)表于 09-18 16:06 ?1028次閱讀
    洞察萬(wàn)物運(yùn)動(dòng):詳解<b class='flag-5'>加速度計(jì)</b>的分類(lèi)與廣泛應(yīng)用

    為什么在振動(dòng)分析中加速度計(jì)最常用?

    盡管振動(dòng)可以通過(guò)位移、速度加速度三個(gè)參數(shù)來(lái)完整描述,但在現(xiàn)代預(yù)測(cè)性維護(hù)和狀態(tài)監(jiān)測(cè)領(lǐng)域,加速度傳感器(加速度計(jì))占據(jù)了絕對(duì)主導(dǎo)地位,原因如下:寬廣的頻率范圍:機(jī)械設(shè)備的早期故障(如軸承
    的頭像 發(fā)表于 09-12 12:02 ?939次閱讀
    為什么在振動(dòng)分析中<b class='flag-5'>加速度計(jì)</b>最常用?

    超高精度MEMS加速度計(jì)能否撼動(dòng)石英加速度計(jì)的市場(chǎng)地位?

    在慣性傳感技術(shù)飛速發(fā)展的今天,ER-MA-6 MEMS加速度計(jì)以其突破性的技術(shù)指標(biāo),正在挑戰(zhàn)傳統(tǒng)石英加速度計(jì)的市場(chǎng)地位。這款采用先進(jìn)微機(jī)電系統(tǒng)技術(shù)打造的高精度傳感器,不僅繼承了MEMS器件固有
    的頭像 發(fā)表于 08-28 15:21 ?732次閱讀
    超高精度MEMS<b class='flag-5'>加速度計(jì)</b>能否撼動(dòng)石英<b class='flag-5'>加速度計(jì)</b>的市場(chǎng)地位?

    航空航天對(duì)石英加速度計(jì)的要求?

    在航空航天這一對(duì)精度與可靠性要求近乎極致的領(lǐng)域,石英加速度計(jì)不僅是測(cè)量的工具,更是飛行安全、導(dǎo)航精度和任務(wù)成功的核心保障。它如同飛行器的“精密感官”,必須在地面、高空乃至太空的極端環(huán)境下,瞬間捕捉
    的頭像 發(fā)表于 08-21 15:56 ?974次閱讀
    航空航天對(duì)石英<b class='flag-5'>加速度計(jì)</b>的要求?