文 湖北省宜昌市夷陵中學(xué) 付偉韜
智能垃圾桶
文 湖北省宜昌市夷陵中學(xué) 付偉韜
垃圾桶是日常生活中的常用物品。傳統(tǒng)的垃圾桶開蓋時(shí)均需采用手動(dòng)或腳踩方式實(shí)現(xiàn),既不衛(wèi)生又不方便。同時(shí),隨著垃圾桶中垃圾的增多,細(xì)菌在其中滋生,如果不及時(shí)清理,會(huì)散發(fā)臭氣和有害物質(zhì),影響人體的健康。
我設(shè)計(jì)了一種智能垃圾桶,它無(wú)需手或腳接觸垃圾桶,只需讓手靠近垃圾桶頂部,垃圾桶的蓋子就會(huì)自動(dòng)打開,投入垃圾后桶蓋自動(dòng)關(guān)閉。當(dāng)垃圾桶快裝滿時(shí),會(huì)發(fā)出聲音和燈光提醒。
人體感應(yīng)模塊可安裝在垃圾桶頂部,便于用戶接近時(shí)受到感應(yīng)。觸發(fā)距離建議設(shè)在15cm左右,既能保證及時(shí)打開蓋子,又能防止誤觸發(fā)。開蓋動(dòng)作可采用伺服電機(jī)驅(qū)動(dòng),便于根據(jù)桶蓋的開合角度設(shè)定電機(jī)的定位角度值。
當(dāng)垃圾將要裝滿時(shí),超聲波信號(hào)被遮擋,傳感器測(cè)得的距離減小,系統(tǒng)計(jì)算的距離小于設(shè)定的閥值時(shí),系統(tǒng)將進(jìn)行警示,提醒及時(shí)處理垃圾。測(cè)距模塊可安裝在垃圾桶內(nèi)側(cè)頂部,并根據(jù)垃圾桶的口徑設(shè)定閥值。可通過同時(shí)點(diǎn)亮LED燈和使蜂鳴器發(fā)聲進(jìn)行警示。
智能垃圾桶的系統(tǒng)結(jié)構(gòu)如下圖。
系統(tǒng)總體結(jié)構(gòu)圖
所需的元器件有ArduinoUNOR3開發(fā)板、紅外避障模塊、伺服電機(jī)SG90、測(cè)距模塊HC-SR04、LED燈(紅、綠)、蜂鳴器、9V電池、面包板、10K電阻、連接線。
把以上各組件分別和垃圾桶組裝在一起,通過導(dǎo)線連接各組件,輸入代碼程序測(cè)試各部位動(dòng)作和信號(hào)。最終測(cè)試成功,同時(shí)發(fā)出聲、光提示信號(hào)。
智能垃圾桶成品圖
void openDoor()//檢測(cè)開門信號(hào)
{int SensorState
=digitalRead(SensorPin);
//讀取2引腳的電平
if(SensorState==
1){
digitalWrite(greenledPin,LOW);
myservo.write(180);//關(guān)門
openCheck=0;
}
else{if(openCheck==1){
digitalWrite(greenledPin,HIGH);
myservo.write(90);//開門}
else openCheck=1;//保存第一次檢測(cè)結(jié)果
}delay(2000);//防止開蓋誤判延時(shí)2秒
}
void fullCheck()//檢測(cè)桶滿信號(hào)
{digitalWrite(TrigPin,HIGH);//向TRIG接口發(fā)送高電平
delayMicroseconds(15);//延時(shí)15微秒
digitalWrite(TrigPin,LOW);//向TRIG接口發(fā)送低電平
int pulseTime=pulseIn(EchoPin,HIGH);//讀出脈沖時(shí)間,單位為微秒
distance=pulseTime*0.17;//將脈沖時(shí)間轉(zhuǎn)化為距離,單位為毫米,聲速為340m/s
if(distance<limit)//如果距離小于閥值警示燈亮起,蜂鳴器發(fā)出do,re,mi聲調(diào)提示音
{digitalWrite(redledPin,HIGH);
tone(tonePin,523);delay(200);
tone(tonePin,578);delay(200);
tone(tonePin,659);delay(200);
noTone(tonePin);}
else//如果距離大于閥值警示燈熄滅,蜂鳴器不發(fā)聲
{digitalWrite(redledPin,LOW);
noTone(tonePin);}
智能垃圾桶功能基本實(shí)現(xiàn),但在測(cè)試過程中還存在如下問題。
1.當(dāng)有人或物體偶然從垃圾桶前經(jīng)過,可能會(huì)導(dǎo)致桶蓋誤開??稍谙到y(tǒng)第一次檢測(cè)到開門信號(hào)時(shí),不立即開桶蓋,而是延遲2秒鐘后再次檢測(cè),如果又接收到開門信號(hào),才觸發(fā)伺服電機(jī)動(dòng)作,打開桶蓋。這也要求手在感應(yīng)器前至少停留2秒鐘才有效。
2.消除伺服電機(jī)的抖動(dòng)。在測(cè)試過程中,需使用USB線連接電腦、上傳代碼,發(fā)現(xiàn)伺服電機(jī)在固定角位有微小的顫動(dòng)。這是由于伺服電機(jī)較敏感,在驅(qū)動(dòng)伺服電機(jī)轉(zhuǎn)向時(shí)接入負(fù)載的變化會(huì)引起電壓的微小變化,導(dǎo)致伺服電機(jī)抖動(dòng)。所以,可改用獨(dú)立的電源為伺服電機(jī)供電。
總之,Arduino電子互動(dòng)平臺(tái)擁有使用簡(jiǎn)單、功能多樣、價(jià)格低廉等優(yōu)點(diǎn),每個(gè)愛上它的人都可以插上想象的翅膀,創(chuàng)造出一個(gè)個(gè)屬于自己的智能創(chuàng)意作品。