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

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

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

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

如何使用Arduino Nano構(gòu)建一個(gè)手勢(shì)控制的電梯原型

科技觀察員 ? 來(lái)源:circuitdigest ? 作者:Ashish Choudhary ? 2022-08-08 16:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在新冠病毒大流行的這段時(shí)間,電梯已成為每個(gè)人都觸摸相同按鈕的高風(fēng)險(xiǎn)場(chǎng)所。在許多地方,人們發(fā)現(xiàn)了防止接觸電梯按鈕的技巧,例如使用抽紙、牙簽或衛(wèi)生紙來(lái)按下電梯按鈕。

因此,為了延續(xù)我們之前的 Corona 安全項(xiàng)目,如 自動(dòng)消毒機(jī)、非接觸式溫度監(jiān)測(cè)和社交距離檢測(cè)器,我們將在這里使用Arduino Nano構(gòu)建一個(gè)手勢(shì)控制的電梯原型。

這款非接觸式電梯使用 Arduino Nano、APDS9960 手勢(shì)傳感器OLED 顯示模塊。使用這個(gè)基于手勢(shì)的控制面板,您可以通過(guò)手勢(shì)輕松控制您的 Lift。APDS9960 傳感器用于讀取手勢(shì)。UP和DOWN手勢(shì)用于設(shè)置樓層號(hào),左側(cè)手勢(shì)關(guān)閉電梯門(mén)并根據(jù)樓層號(hào)移動(dòng)電梯,右側(cè)手勢(shì)用于開(kāi)門(mén)。

所需組件

Arduino納米

OLED顯示模塊

APDS9960 RGB & 手勢(shì)傳感器

面包板

跳線

APDS9960 RGB & 手勢(shì)傳感器

APDS9960 RGB 和手勢(shì)檢測(cè)模塊是一款小型分線板,配有內(nèi)置 APDS-9960 傳感器、UV 和 IR 阻擋濾光片、四個(gè)對(duì)不同方向敏感的獨(dú)立二極管以及 I2C 兼容接口。該傳感器可用于環(huán)境光和顏色測(cè)量、接近檢測(cè)和非接觸式手勢(shì)感應(yīng)。它的手勢(shì)檢測(cè)范圍為 10 到 20 厘米,可用于控制微控制器、機(jī)器人和許多其他項(xiàng)目。

pYYBAGLwziCAYdftAAOvngC9cOE434.png

特征:

工作電壓:2.4V 至 3.6V

操作范圍:4-8 英寸(10-20 厘米)。

I2C 接口(I2C 地址:0x39)。

環(huán)境光和 RGB 顏色感應(yīng)、接近

光學(xué)模塊中的傳感和手勢(shì)檢測(cè)

I2C 總線快速模式兼容接口,數(shù)據(jù)速率高達(dá) 400 kHz。

電路原理

下面給出了使用 APDS9960 的非接觸式電梯的電路圖。

poYBAGLwzheAKhmrAAGvC5XUUSE248.png

我們正在將 Arduino Nano 與 APDS9960 傳感器和 OLED 顯示器連接起來(lái)。APDS9960 Sensor 和 OLED Display 的 VCC 和 GND 引腳連接到 Arduino 的 3.3V 和 GND。而 APDS9960 Sensor 和 OLED Display 的 SCL 和 SDA 引腳分別連接到 Arduino 的 A5 和 A4 引腳。

poYBAGLwzhKAXmaXAAANrDDMOK4176.png

這是使用 Arduino 的手勢(shì)控制電梯的完整設(shè)置的外觀:

poYBAGLwzg6AQj29AAUGBpH2HO8348.png

代碼說(shuō)明

使用 APDS9960 的非接觸式電梯的完整代碼在頁(yè)面末尾給出。在這里,我們將解釋代碼的一些重要部分。在這個(gè)程序中,我們將使用 APDS9960 和Adafruit_SH1106 庫(kù)。可以從 Arduino IDE 下載 APDS9960 庫(kù)。要下載庫(kù),請(qǐng)轉(zhuǎn)到Sketch > Library Manager > Search,然后輸入Arduino APDS9960。而Adafruit_SH1106 庫(kù)可以從這里下載。

因此,像往常一樣通過(guò)包含所有必需的庫(kù)來(lái)啟動(dòng)代碼。Adafruit_SH1106.h是原始 Adafruit 庫(kù)的修改版本。

#include 
#include 
#include 
#include 

在接下來(lái)的幾行中,定義變量以存儲(chǔ)用戶(hù)想要去的當(dāng)前樓層和樓層號(hào)。

整數(shù)樓層數(shù)=0;
詮釋當(dāng)前地板=0;

之后,輸入向上箭頭、向下箭頭、開(kāi)門(mén)和關(guān)門(mén)圖片的位圖。可以使用Image2cpp 之類(lèi)的轉(zhuǎn)換器生成圖像的 HEX 代碼。要了解有關(guān)如何使用Image2cpp 的更多信息,請(qǐng)遵循此Arduino 二維碼生成器教程。

const unsigned char up [] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,…………………………………………………… …………………………………………..
};
const unsigned char down [] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,…………………………………………………… …………………………………………..
};
const unsigned char dooropen [] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xe0, ,……………………………………………… ………………………………………………..
};

在setup()函數(shù)中,以 9600 的波特率初始化串行監(jiān)視器以進(jìn)行調(diào)試。然后在接下來(lái)的幾行中,使用begin()方法初始化 OLED 顯示器和 APDS9960 傳感器,如下所示:

序列號(hào).開(kāi)始(9600);
  如果(!APDS.begin()){
    Serial.println("初始化 APDS9960 傳感器時(shí)出錯(cuò)!");
  }
Serial.println("檢測(cè)手勢(shì)...");
  display.begin(SH1106_SWITCHCAPVCC, 0x3C);

初始化顯示器和傳感器后,使用clearDisplay()方法清除顯示緩沖區(qū),并使用display.setTextSize()和display.setTextColor()方法設(shè)置字體大小和顏色。

  display.setTextSize(2);
  display.setTextColor(白色);
  display.clearDisplay();
  顯示.顯示();

在void loop()內(nèi)部,不斷檢查是否做出任何手勢(shì)。如果是,則讀取手勢(shì)值并檢查它是哪個(gè)手勢(shì)(上、下、右、左)并在串行監(jiān)視器上打印相應(yīng)的讀數(shù)。UP 和 DOWN 手勢(shì)用于設(shè)置用戶(hù)想去的樓層。左手勢(shì)是關(guān)閉電梯門(mén)并根據(jù)樓層號(hào)移動(dòng)電梯,而右手勢(shì)用于開(kāi)門(mén)。

如果(APDS.gestureAvailable()){
    int 手勢(shì) = APDS.readGesture();
    切換(手勢(shì)){
      案例 GESTURE_UP:
        Serial.println("檢測(cè)到向上手勢(shì)");
        display.clearDisplay();
        樓數(shù)++;
        首頁(yè)1();
        休息;
      案例 GESTURE_DOWN:
        Serial.println("檢測(cè)到向下手勢(shì)");
        display.clearDisplay();
        地板號(hào)碼——;
        首頁(yè)1();
        休息;
      案例 GESTURE_LEFT:
         Serial.println("檢測(cè)到左手勢(shì)");
         display.clearDisplay();
         開(kāi)始();
         休息;
     案例 GESTURE_RIGHT:
        Serial.println("檢測(cè)到正確的手勢(shì)");
        display.clearDisplay();
        首頁(yè)1();
        休息;
        默認(rèn):
        休息;
    }

home1()函數(shù)用于繪制電梯的主頁(yè)顯示。這包括向上箭頭、向下箭頭、開(kāi)門(mén)、關(guān)門(mén)標(biāo)志和當(dāng)前樓層號(hào)。drawBitmap()函數(shù)用于在 OLED 顯示器上繪制圖像。drawBitmap()函數(shù)的語(yǔ)法如下:

drawBitmap(int16_t x, int16_t y, 位圖, int16_t w, int16_t h, colour);

在哪里:

int16_t x, int16_t y是OLED顯示屏的X和Y坐標(biāo)

位圖是位圖的名稱(chēng)

int16_t w, int16_t h是圖像的高度和重量。

無(wú)效的 home1()
{
  display.setCursor(101,23);
  display.println(floornum);
  display.drawBitmap(23, 0, uparrow, 40, 18, WHITE);
  display.drawBitmap(26, 46, downarrow, 40, 18, WHITE);
  display.drawBitmap(0, 15, dooropen, 29, 30, WHITE);
  display.drawBitmap(60, 15, closedoor, 29, 30, WHITE);
  顯示.顯示();
}

start()函數(shù)用于向上或向下移動(dòng)電梯。為此,將當(dāng)前樓層號(hào)與用戶(hù)想去的樓層號(hào)進(jìn)行比較。如果樓層號(hào)大于當(dāng)前樓層號(hào)。如果樓層號(hào)小于當(dāng)前樓層號(hào),則電梯將向上移動(dòng)。然后電梯將向下移動(dòng)。當(dāng)兩個(gè)當(dāng)前樓層都沒(méi)有時(shí),電梯將停止。和樓層號(hào)。是相同的。

無(wú)效的開(kāi)始()
{
      而(地板編號(hào)>當(dāng)前地板){
      Serial.println("向上");
      當(dāng)前樓層++;
      display.drawBitmap(0, 0, up, 100, 64, WHITE);
      display.setCursor(101,23);
      display.println(currentfloor);
      顯示.顯示();
      display.clearDisplay();
      延遲(2000);
       }
   而(地板編號(hào)<當(dāng)前地板){
      Serial.println("往下走");
      當(dāng)前樓層——;
      display.drawBitmap(0, 0, down, 100, 64, WHITE);
      display.setCursor(101,23);
      display.println(currentfloor);
      顯示.顯示();
      display.clearDisplay();
      延遲(2000);
       }
   如果(地板編號(hào)== 當(dāng)前地板){
        Serial.println("到達(dá)");
        display.clearDisplay();
        首頁(yè)1();
        Serial.print(當(dāng)前樓層);
      }
  }

測(cè)試手勢(shì)控制的非接觸式升降機(jī)

硬件和代碼準(zhǔn)備就緒后,將 Arduino Nano 連接到筆記本電腦并上傳下面給出的完整代碼。如您所見(jiàn),默認(rèn)情況下 OLED 將顯示電梯用戶(hù)界面。

pYYBAGLwzgSADGv8AAF3bxpwxOQ749.png

現(xiàn)在向上或向下?lián)]動(dòng)你的手,如下面的視頻所示,設(shè)置你想去的地板。然后做出確認(rèn)電梯到該樓層的向左手勢(shì)。如果您想停止電梯,請(qǐng)用手做出正確的手勢(shì)。

#include

#include

#include

#include

#define OLED_RESET -1

Adafruit_SH1106 顯示器(OLED_RESET);

整數(shù)樓層數(shù)=0;

詮釋當(dāng)前地板=0;

//在這里粘貼你的位圖

const unsigned char up [] PROGMEM = {

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x03, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf0,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xfc, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x03, 0xff, 0xc7, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x07, 0xff, 0x81, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x00,

0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x3f, 0xf8, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x07, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x07, 0xff, 0x80, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00,

0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x7f,

0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00,

0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,

0x03, 0xff, 0xc0, 0x00, 0x38, 0x00, 0x03, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00,

0x00, 0x7c, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x00, 0x01, 0xff, 0x00,

0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x03, 0xff, 0x80, 0x00, 0x3f, 0xfc,

0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00,

0x03, 0xff, 0xc0, 0x00, 0x1f, 0xff, 0xf0, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x07, 0xff, 0x80,

0x00, 0x7f, 0xff, 0xfc, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0xff, 0xff,

0xfe, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x03, 0xff, 0xc7, 0xff, 0x80, 0x00,

0x3f, 0xf8, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x07, 0xff, 0x81, 0xff, 0xc0, 0x00, 0x1f, 0xfe, 0x00,

0x01, 0xff, 0xe0, 0x00, 0x1f, 0xfe, 0x00, 0xff, 0xf0, 0x00, 0x07, 0xff, 0x00, 0x07, 0xff, 0x80,

0x00, 0x3f, 0xfc, 0x00, 0x3f, 0xf8, 0x00, 0x03, 0xff, 0xc0, 0x0f, 0xfe, 0x00, 0x00, 0xff, 0xf0,

0x00, 0x1f, 0xfe, 0x00, 0x00, 0xff, 0xe0, 0x3f, 0xfc, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x07, 0xff,

0x00, 0x00, 0x7f, 0xf0, 0x1f, 0xf0, 0x00, 0x07, 0xff, 0x80, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x1f,

0xf0, 0x0f, 0xe0, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x0f, 0xe0, 0x03, 0xc0,

0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x03, 0x80, 0x01, 0x00, 0x00, 0x7f, 0xf8,

0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00,

0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,

0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00,

0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8,

0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x00,

0x00, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,

0xff, 0x80, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x00,

0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x3f, 0xfc,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf8, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x07, 0xff, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff,

0xc0, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x3f, 0xfc,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x1f, 0xf0, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x0f, 0xe0, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

};

const unsigned char down [] PROGMEM = {

// '向下, 105x64px

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xe0,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x03, 0xf8, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x07, 0xf0, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x1f, 0xf0, 0x03, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x01,

0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x7f, 0xf0, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x1f, 0xfe, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00,

0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x00, 0xff,

0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x3f, 0xf8, 0x00, 0x00,

0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,

0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00,

0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00,

0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8,

0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00,

0x0f, 0xff, 0x00, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x00,

0x01, 0xe0, 0x03, 0xf8, 0x00, 0x03, 0xff, 0x80, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x03, 0xf0, 0x0f,

0xfc, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x07, 0xf0, 0x0f, 0xff, 0x00, 0x00,

0x7f, 0xf0, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x1f, 0xf0, 0x03, 0xff, 0x80, 0x00, 0x3f, 0xfc, 0x00,

0x07, 0xff, 0x80, 0x00, 0x3f, 0xf0, 0x01, 0xff, 0xe0, 0x00, 0x0f, 0xfe, 0x00, 0x1f, 0xfe, 0x00,

0x00, 0xff, 0xf0, 0x00, 0x7f, 0xf0, 0x00, 0x07, 0xff, 0x80, 0x3f, 0xfc, 0x00, 0x03, 0xff, 0xc0,

0x00, 0x3f, 0xfc, 0x00, 0x01, 0xff, 0xc0, 0xff, 0xf0, 0x00, 0x07, 0xff, 0x80, 0x00, 0x0f, 0xfe,

0x00, 0x00, 0xff, 0xf1, 0xff, 0xe0, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x3f,

0xff, 0xff, 0x80, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x1f, 0xff, 0xff, 0x00,

0x00, 0xff, 0xf0, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x07, 0xff, 0xfc, 0x00, 0x01, 0xff, 0xe0,

0x00, 0x00, 0x00, 0x3f, 0xf8, 0x00, 0x03, 0xff, 0xf8, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x00,

0x1f, 0xfe, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x00,

0x00, 0x7f, 0xc0, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x1f, 0x00,

0x00, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x0e, 0x00, 0x01, 0xff, 0xe0,

0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00,

0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,

0xff, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80, 0x00,

0x00, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0xff, 0xf0,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x0f, 0xfe, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff,

0x80, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xc0, 0xff, 0xf0,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf1, 0xff, 0xe0, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x07, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xf8,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

};

const unsigned char uparrow [] PROGMEM = {

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x00, 0x00, 0x00,

0xff, 0xc0, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, 0x00, 0x03, 0xff, 0xf8, 0x00, 0x00, 0x07, 0xff,

0xfc, 0x00, 0x00, 0x1f, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0x80, 0x00, 0xff, 0xff, 0xff,

0xc0, 0x01, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xf8, 0x03, 0xff, 0xff, 0xff, 0xf8,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

};

const unsigned char downarrow [] PROGMEM = {

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0x1f,

0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff,

0xff, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x1f, 0xff,

0xc0, 0x00, 0x00, 0x0f, 0xff, 0x80, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x01, 0xfc, 0x00,

0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

};

const unsigned char dooropen [] PROGMEM = {

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xe0,

0x3f, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xf0, 0x38, 0x00, 0x00, 0xf0, 0x38, 0x00, 0x00, 0xf0,

0x38, 0x00, 0x00, 0xf0, 0x38, 0x04, 0x80, 0xf0, 0x38, 0x1c, 0xc0, 0xf0, 0x38, 0x3c, 0xf0, 0xf0,

0x38, 0x7c, 0xf8, 0xf0, 0x39, 0xfc, 0xfc, 0xf0, 0x3b, 0xfc, 0xfe, 0xf0, 0x3b, 0xfc, 0xfe, 0xf0,

0x38, 0xfc, 0xfc, 0xf0, 0x38, 0x7c, 0xf8, 0xf0, 0x38, 0x3c, 0xf0, 0xf0, 0x38, 0x1c, 0xc0, 0xf0,

0x38, 0x04, 0x80, 0xf0, 0x38, 0x00, 0x00, 0xf0, 0x38, 0x00, 0x00, 0xf0, 0x38, 0x00, 0x00, 0xf0,

0x3c, 0x00, 0x00, 0xf0, 0x3f, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xc0,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

};

const unsigned char closedoor [] PROGMEM = {

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x0f, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 0xc0, 0x08, 0x00, 0x00, 0x40, 0x0a, 0x00, 0x03, 0x40,

0x0b, 0x80, 0x07, 0x40, 0x0b, 0xc0, 0x0f, 0x40, 0x0b, 0xe0, 0x1f, 0x40, 0x0b, 0xf0, 0x3f, 0x40,

0x0b, 0xf8, 0x7f, 0x40, 0x0b, 0xfc, 0xff, 0x40, 0x0b, 0xff, 0xff, 0x40, 0x0b, 0xff, 0xff, 0x40,

0x0b, 0xfe, 0xff, 0x40, 0x0b, 0xf8, 0x7f, 0x40, 0x0b, 0xf0, 0x3f, 0x40, 0x0b, 0xe0, 0x1f, 0x40,

0x0b, 0xc0, 0x0f, 0x40, 0x0b, 0x80, 0x07, 0x40, 0x0b, 0x00, 0x03, 0x40, 0x08, 0x00, 0x01, 0x40,

0x0f, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

};

無(wú)效設(shè)置(){

序列號(hào).開(kāi)始(9600);

如果(!APDS.begin()){

Serial.println("初始化 APDS9960 傳感器時(shí)出錯(cuò)!");

}

Serial.println("檢測(cè)手勢(shì)...");

display.begin(SH1106_SWITCHCAPVCC, 0x3C);

display.setTextSize(2);

display.setTextColor(白色);

display.clearDisplay();

顯示.顯示();

首頁(yè)1();

}

無(wú)效循環(huán)(){

display.clearDisplay();

如果(APDS.gestureAvailable()){

int 手勢(shì) = APDS.readGesture();

切換(手勢(shì)){

案例 GESTURE_UP:

Serial.println("檢測(cè)到向上手勢(shì)");

display.clearDisplay();

樓數(shù)++;

首頁(yè)1();

休息;

案例 GESTURE_DOWN:

Serial.println("檢測(cè)到向下手勢(shì)");

display.clearDisplay();

地板號(hào)碼——;

首頁(yè)1();

休息;

案例 GESTURE_LEFT:

Serial.println("檢測(cè)到左手勢(shì)");

display.clearDisplay();

開(kāi)始();

休息;

案例 GESTURE_RIGHT:

Serial.println("檢測(cè)到正確的手勢(shì)");

display.clearDisplay();

首頁(yè)1();

休息;

默認(rèn):

休息;

}

}

}

無(wú)效的 home1()

{

display.setCursor(101,23);

display.println(floornum);

display.drawBitmap(23, 0, uparrow, 40, 18, WHITE);

display.drawBitmap(26, 46, downarrow, 40, 18, WHITE);

display.drawBitmap(0, 15, dooropen, 29, 30, WHITE);

display.drawBitmap(60, 15, closedoor, 29, 30, WHITE);

顯示.顯示();

}

無(wú)效的開(kāi)始()

{

而(地板編號(hào)>當(dāng)前地板){

Serial.println("向上");

當(dāng)前樓層++;

display.drawBitmap(0, 0, up, 100, 64, WHITE);

display.setCursor(101,23);

display.println(currentfloor);

顯示.顯示();

display.clearDisplay();

延遲(2000);

}

而(地板編號(hào)<當(dāng)前地板){

Serial.println("往下走");

當(dāng)前樓層——;

display.drawBitmap(0, 0, down, 100, 64, WHITE);

display.setCursor(101,23);

display.println(currentfloor);

顯示.顯示();

display.clearDisplay();

延遲(2000);

}

如果(地板編號(hào)== 當(dāng)前地板){

Serial.println("到達(dá)");

display.clearDisplay();

首頁(yè)1();

Serial.print(當(dāng)前樓層);

}

}

聲明:本文內(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)投訴
  • 非接觸式
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    14768
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6527

    瀏覽量

    197518
  • 手勢(shì)控制
    +關(guān)注

    關(guān)注

    4

    文章

    44

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    如何使用Arduino Nano構(gòu)建個(gè)金屬探測(cè)器

    在這個(gè)項(xiàng)目中,我們將使用個(gè)線圈和電容器來(lái)檢測(cè)金屬。在這里,我們使用Arduino Nano來(lái)構(gòu)建這個(gè)金屬探測(cè)器項(xiàng)目。對(duì)于所有電子愛(ài)好者來(lái)說(shuō)
    的頭像 發(fā)表于 11-22 17:15 ?5695次閱讀
    如何使用<b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b><b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>金屬探測(cè)器

    Arduino手勢(shì)控制手套源代碼共享,隔空操控電腦

    轉(zhuǎn)個(gè)很有趣的帖子和資料手勢(shì)控制手套的核心是Arduino。只要輕輕移動(dòng)手指,你就可以用熟悉的T9鍵盤(pán)隔空打字了。你可以將它作為研發(fā)基礎(chǔ),為
    發(fā)表于 09-23 15:12

    如何構(gòu)建Arduino官方開(kāi)發(fā)環(huán)境

    本系列教程將向大家講述,在自己的計(jì)算機(jī)上構(gòu)建完善的嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境的方法。本文將向大家講述構(gòu)建Arduino官方開(kāi)發(fā)環(huán)境的方法。Arduino簡(jiǎn)介:
    發(fā)表于 12-24 06:44

    基于Arduino設(shè)計(jì)的手勢(shì)控制機(jī)器人

    描述如何在家制作 DIY Arduino 手勢(shì)控制機(jī)器人接收器(坦克)所需的零件:1) 機(jī)器人坦克底盤(pán) 2) Arduino Nano V3
    發(fā)表于 06-20 09:21

    基于Arduino創(chuàng)建個(gè)手勢(shì)控制車(chē)

    描述如何制作手勢(shì)控制機(jī)器人|| #MadeWithArduino(發(fā)射器)嘿,歡迎回到個(gè)新項(xiàng)目。所以今天我們將學(xué)習(xí)使用Arduino創(chuàng)建
    發(fā)表于 06-22 06:55

    arduino手勢(shì)控制小車(chē)

    描述arduino手勢(shì)控制車(chē)
    發(fā)表于 08-09 06:51

    基于arduino設(shè)計(jì)的手勢(shì)控制小車(chē)

    基于arduino手勢(shì)控制小車(chē)
    發(fā)表于 09-25 06:06

    dfrobot Arduino Nano控制板介紹

    DFRduino Nano(兼容Arduino NANO)是款開(kāi)源的控制板,非常適合愛(ài)好電子制作的朋友制作互動(dòng)作品,但對(duì)于
    的頭像 發(fā)表于 12-26 09:50 ?7062次閱讀
    dfrobot <b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b><b class='flag-5'>控制</b>板介紹

    如何使用Arduino Leonardo和MPU6050制作個(gè)有線的手勢(shì)控制

    本文將向你展示如何使用Arduino Leonardo和MPU6050加速計(jì)/陀螺儀模塊來(lái)制作個(gè)類(lèi)似于任天堂Wii控制器的手勢(shì)
    的頭像 發(fā)表于 04-03 17:02 ?4703次閱讀
    如何使用<b class='flag-5'>Arduino</b> Leonardo和MPU6050制作<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>有線的<b class='flag-5'>手勢(shì)</b><b class='flag-5'>控制</b>器

    如何使用Arduino Nano控制紅綠燈

    本文將介紹如何基于個(gè)簡(jiǎn)單PCB洞洞板制作紅綠燈,并通過(guò)Arduino Nano R3對(duì)它進(jìn)行控制。
    的頭像 發(fā)表于 04-08 15:19 ?7255次閱讀
    如何使用<b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b><b class='flag-5'>控制</b>紅綠燈

    arduino手勢(shì)控制車(chē)

    電子發(fā)燒友網(wǎng)站提供《arduino手勢(shì)控制車(chē).zip》資料免費(fèi)下載
    發(fā)表于 07-26 10:29 ?2次下載
    <b class='flag-5'>arduino</b><b class='flag-5'>手勢(shì)</b><b class='flag-5'>控制</b>車(chē)

    使用Open cv python(手勢(shì))和arduino控制Led

    電子發(fā)燒友網(wǎng)站提供《使用Open cv python(手勢(shì))和arduino控制Led.zip》資料免費(fèi)下載
    發(fā)表于 10-28 10:19 ?6次下載
    使用Open cv python(<b class='flag-5'>手勢(shì)</b>)和<b class='flag-5'>arduino</b><b class='flag-5'>控制</b>Led

    Arduino Nano構(gòu)建個(gè)SN76489 USB MIDI合成器

    電子發(fā)燒友網(wǎng)站提供《用Arduino Nano構(gòu)建個(gè)SN76489 USB MIDI合成器.zip》資料免費(fèi)下載
    發(fā)表于 11-10 14:24 ?4次下載
    用<b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b><b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>SN76489 USB MIDI合成器

    Arduino手勢(shì)控制LED亮度

    電子發(fā)燒友網(wǎng)站提供《Arduino手勢(shì)控制LED亮度.zip》資料免費(fèi)下載
    發(fā)表于 01-31 14:47 ?2次下載
    <b class='flag-5'>Arduino</b><b class='flag-5'>手勢(shì)</b><b class='flag-5'>控制</b>LED亮度

    Arduino Nano控制的激光測(cè)量

    電子發(fā)燒友網(wǎng)站提供《Arduino Nano控制的激光測(cè)量.zip》資料免費(fèi)下載
    發(fā)表于 06-19 16:33 ?0次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b><b class='flag-5'>控制</b>的激光測(cè)量
    兴海县| 连城县| 大化| 敖汉旗| 惠州市| 南投市| 乌鲁木齐县| 蒙自县| 揭西县| 仁寿县| 磐石市| 巴彦淖尔市| 常德市| 咸阳市| 虹口区| 汝南县| 泾川县| 林西县| 浏阳市| 和政县| 伽师县| 平邑县| 廉江市| 宾川县| 澄城县| 开江县| 宝丰县| 丽水市| 玛纳斯县| 运城市| 白河县| 防城港市| 石首市| 平顺县| 汽车| 荆门市| 桃园市| 石城县| 呼玛县| 梨树县| 苏尼特右旗|