日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

步驟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è)置好連線后,我們可以使用以下代碼創(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步:代碼說明

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

EPD 2.0

EPD 1.44

EPD 2.7

PCF8833

KS0107

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

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

步驟5:動作中的傳感器

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

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

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

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

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

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

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

每次我們在屏幕上移動球時,都需要跟蹤x和y軸的變化。如前所述,這是通過在每次球的原點(diǎn)發(fā)生變化時將新的x和y值存儲在數(shù)組中來完成的。例如,如果我們將球向右移動并停止,以使繪制的最后一個球的原點(diǎn)為(30,5),則要從那里向上移動球,則必須考慮到球的變化。 x軸,以便在繪制新球時,其原點(diǎn)位于(30,15)。換句話說,數(shù)組中保存的值用作下一個要繪制的球的參考位置。

責(zé)任編輯:wv

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

    關(guān)注

    121

    文章

    6384

    瀏覽量

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

    關(guān)注

    6

    文章

    825

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    石英加速度計(jì)讓空間受限的平臺擁有“高精度感知”

    在慣性測量領(lǐng)域,傳統(tǒng)加速度計(jì)往往面臨兩難:要么體積龐大,擠占寶貴的系統(tǒng)空間;要么溫漂嚴(yán)重,一遇溫度變化數(shù)據(jù)就“飄忽不定”。普通石英加速度計(jì)雖有一定精度,但零偏穩(wěn)定性差、溫度系數(shù)高,在長時間連續(xù)工作中
    的頭像 發(fā)表于 04-14 15:01 ?265次閱讀
    石英<b class='flag-5'>加速度計(jì)</b>讓空間受限的平臺擁有“高精度感知”

    高精度石英加速度計(jì)助力航空航天精準(zhǔn)測量

    在航空航天慣性測量領(lǐng)域,每一次微小的加速度變化都可能關(guān)乎飛行器的姿態(tài)與軌跡。從運(yùn)載火箭的主動段飛行,到衛(wèi)星的在軌姿態(tài)控制,一個能夠精準(zhǔn)捕捉微弱信號、同時耐受嚴(yán)苛環(huán)境的加速度計(jì),是慣性導(dǎo)航系統(tǒng)不可或缺
    的頭像 發(fā)表于 03-26 15:47 ?750次閱讀
    高精度石英<b class='flag-5'>加速度計(jì)</b>助力航空航天精準(zhǔn)測量

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    在慣性傳感技術(shù)飛速發(fā)展的今天,ER-MA-6 MEMS加速度計(jì)以其突破性的技術(shù)指標(biāo),正在挑戰(zhàn)傳統(tǒng)石英加速度計(jì)的市場地位。這款采用先進(jìn)微機(jī)電系統(tǒng)技術(shù)打造的高精度傳感器,不僅繼承了MEMS器件固有
    的頭像 發(fā)表于 08-28 15:21 ?896次閱讀
    超高精度MEMS<b class='flag-5'>加速度計(jì)</b>能否撼動石英<b class='flag-5'>加速度計(jì)</b>的市場地位?
    鞍山市| 平乐县| 台山市| 蒲城县| 宜兴市| 武威市| 资阳市| 京山县| 讷河市| 容城县| 卫辉市| 泊头市| 清流县| 连江县| 若尔盖县| 昭平县| 台北县| 江陵县| 开远市| 桂东县| 清丰县| 姜堰市| 阜宁县| 丰原市| 临沭县| 池州市| 南丰县| 林周县| 天镇县| 始兴县| 巴马| 新龙县| 子长县| 邯郸县| 壤塘县| 岗巴县| 达州市| 柘荣县| 通榆县| 青龙| 陇南市|