找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6834|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

用Arduino在“視覺輔助”中的運(yùn)用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:75263 發(fā)表于 2015-4-19 23:08 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
       超聲波距離傳感器的功耗小、成本低,并且在距離檢測(cè)上擁有不俗的性能,而與此同時(shí)有許多人萌生嘗試用超聲波傳感器為有視覺障礙的人設(shè)計(jì)開發(fā)輔助視覺設(shè)備的念頭。

       近年來(lái),隨著開源硬件大熱,市場(chǎng)上出現(xiàn)了越來(lái)越多性能強(qiáng)大并且成本低廉的開發(fā)板。而有許多設(shè)計(jì)就選擇了用Ariduino來(lái)開發(fā)“導(dǎo)盲”裝置。下面這個(gè)實(shí)用的裝置,由電子制作收集整理:
      “導(dǎo)盲”帽子",這頂帽子出自station420之手,采用了Arduino Uno、超聲波傳感器以及蜂鳴器等元件。其中通過(guò)傳感器可檢測(cè)到前方是否有障礙物,并通過(guò)蜂鳴器發(fā)出不同頻率的聲音來(lái)反饋與障礙物之間的距離,提醒佩戴者前方是否有危險(xiǎn)。

        整個(gè)裝置的結(jié)構(gòu)非常簡(jiǎn)單,將超聲波傳感器嵌于鴨嘴帽的帽檐,裝有Arduino、蜂鳴器和電池等主體電子設(shè)備的“黑盒”掛于帽子的后面。而使用時(shí),佩戴者只需要“戴上”帽子,并不需要任何其它的繁瑣步驟。當(dāng)然,在帽子上加裝這些裝置仍然有許多不盡人意的地方。
  

Arduino主板

       為這個(gè)運(yùn)用,我在網(wǎng)上找到了一個(gè) Arduino超聲波測(cè)距程序,大家可以去實(shí)踐。程序如下:

arduio 超聲波測(cè)距模塊
------------------------------------------
5v ----- Vcc
GND ----- GND
pin 7 ----- Echo
pin 8 ----- Trig

程序如下:


const int PIN_ECHO = 7;
const int PIN_TRIG = 8;
const int PIN_LED = 13;

void setup()
{
Serial.begin(9600);
pinMode(PIN_LED, OUTPUT);

pinMode(PIN_ECHO, INPUT);
pinMode(PIN_TRIG, OUTPUT);
}


// led blink
void blink(const int interval = 300)
{
digitalWrite(PIN_LED, HIGH);
delay(interval);
digitalWrite(PIN_LED, LOW);
delay(interval);
}

// distance detect
int distanceDetect()
{
digitalWrite(PIN_TRIG, LOW); // 保持超聲波控制接口低電平2us
delayMicroseconds(2);

digitalWrite(PIN_TRIG, HIGH); // 保持超聲波控制接口高電平10us
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);    // 超聲波控制接口轉(zhuǎn)低電平以觸發(fā)測(cè)距過(guò)程

// 距離測(cè)試公式為 脈沖長(zhǎng)度 * 音速 / 2;
const int SONIC_SPEED = 340; // 音速在大氣中傳播速度為340米/秒
int duration = pulseIn(PIN_ECHO, HIGH); // 讀出脈沖時(shí)間
return duration * SONIC_SPEED / 2;
}

// loop control
void loop()
{
int val = Serial.read();
if (val == 'r')
{
// notify msg
blink();
Serial.println("cmd rcv, begin detect.");
// detect
int distance = distanceDetect();
if (0 >= distance)
{
Serial.println("detect fail.");
}
else
{
Serial.print("distance: ");
Serial.println(distance);
}
}

delay(500);
}









分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表