王麗 梁永輝 黃曉圳
摘 要
本文設計了一款基于Arduino硬件平臺的紅外避障玩具---“別摸我”小黃人,制作靈感來自于電影《神偷奶爸》中可愛的小黃人。在本設計中“別摸我”小黃人擁有4個紅外傳感器、5個舵機,能在4個軸向上進行6種動作。采用紅外避障設計思想制作的小黃人動作起來十分的憨態(tài)可掬,趣味性、互動性極強,同時本設計可方便的移植到其他火爆的動漫形象上,可移植性好,具有廣泛的應用前景。
【關鍵詞】Arduino 紅外避障 紅外傳感器 舵機
1 系統(tǒng)構成及功能介紹
本文設計了一款Arduino硬件平臺的紅外避障玩具。該系統(tǒng)主要由三部分組成,即紅外傳感器信號采集部分、舵機驅(qū)動控制部分以及Arduino信號處理部分。
1.1 Arduino硬件平臺介紹
Arduino是一款便捷靈活、方便上手的開源電子原型平臺,包括各種型號的Arduino板硬件和Arduino IDE軟件。其硬件包含一個以Atmel AVR單片機為核心的開發(fā)板和其他各種I/O板,適用于愛好者、藝術家、設計師和對“互動”有興趣的朋友們。本設計中使用的具體型號是Arduino UNO R3。
目前,UNO已經(jīng)發(fā)布到第三版,與前兩版相比有以下新的特點:在AREF處增加了兩個管腳SDA和SCL,支持I2C接口;增加IOREF和一個預留管腳,將來擴展板將能兼容5V和3.3V核心板。改進了復位電路設計USB接口芯片由ATmega16U2替代了ATmega8U2處理器。 Flash Memory 32 KB,其中0.5 KB用于bootloader,SRAM 2 KB EEPROM 1 KB,工作時鐘16 MHz。
1.2 紅外傳感器
本設計采用博光E18-D80NK紅外光電接近開關,它是一種集發(fā)射與接收于一體的光電傳感器,檢測距離可以根據(jù)要求進行調(diào)節(jié)。
光電開關E18的技術參數(shù)如下:
(1)輸出電流DC/SCR/繼電器Control output:100mA/5V供電。
(2)消耗電流DC<25mA。
(3)響應時間<2ms。
(4)指向角:≤15°,有效距離3~80CM可調(diào)。
(5)檢測物體:不透明體。
(6)工作環(huán)境溫度:-25℃~+55℃。
(7)標準檢測物體:太陽光10000LX以下 白熾燈3000LX以下。
(8)外殼材料:塑料。
這是NPN型光電開關,當檢測到目標時輸出低電平,未檢測到目標時(正常狀態(tài))輸出高電平。該紅外傳感器有三根線,分別是電源線(紅色)、地線(藍色)、信號線(黑色),使用時可將信號線接上拉電阻后直接連接Arduino板的數(shù)字信號輸入腳。編程時通過判斷這個數(shù)字端口的值是否為0,就可判斷傳感器前方是否有手靠近了。
1.3 舵機
本設計采用輝盛大扭力金屬齒輪舵機MG996R。該舵機的技術參數(shù)如下:
(1)產(chǎn)品拉力:12kg/cm(6V)。
(2)反應速度:0.17sec/60度(4.8v無負載)0.14sec/60度(6v無負載)。
(3)工作電壓:4.8~72V。
(4)工作溫度:0℃~55℃。
(5)齒輪形式:金屬齒輪。
(6)工作死區(qū):5us。
該舵機有三根線,分別是信號線(黃色),電源正極(紅色)和電源負極(褐色)。
舵機主要包括直流電機、減速齒輪組、傳感器和控制電路幾部分,是一個自動控制裝置,具有一個閉環(huán)反饋控制回路不斷校正輸出的偏差,使系統(tǒng)的輸出保持恒定。對于舵機而言,位置檢測器是其的輸入傳感器,舵機轉動的位置一變,位置檢測器的電阻值就隨著發(fā)生變化,通過控制電路讀取該電阻值的大小,就能適當調(diào)整電機的速度和方向,使電機向指定角度旋轉。
2 系統(tǒng)硬件實現(xiàn)過程
考慮到舵機扭力、系統(tǒng)重量等因素,決定使用木頭制作紅外避障玩具的骨架。圖1為調(diào)試過程的產(chǎn)品,使用壓縮木加塑料支架組成,配有2舵機,可以通過1個Arduino板控制舵機在兩個方向上進行運動。
接著加入紅外傳感器,通過用一個紅外傳感器來控制一盞發(fā)光二極管亮的小實驗測試紅外傳感器的使用方法,然后將紅外傳感器加入到兩個舵機的實驗中,用紅外傳感器的輸出信號來控制舵機的動作。
經(jīng)過上述兩個小實驗已經(jīng)掌握了舵機和紅外傳感器的使用方法,此時可以規(guī)劃最終的系統(tǒng)功能并設想的硬件結構。經(jīng)過設計,小黃人擁有4個紅外傳感器、5個舵機,能在4個軸向上進行6種動作。當前面(小黃人的鼻子上)的傳感器檢測到有人或物接近時小黃人會向后躲避;當左側(小黃人的左耳)傳感器檢測到接近信號時會向右躲避;當右側(小黃人的右耳)傳感器檢測到接近信號時小黃人會向左躲避;當左右兩側傳感器同時有信號時小黃人會向前躲避;當上方(小黃人的頭頂)有信號時也就是人們做出撫摸小黃人頭部的動作時,小黃人會左右搖擺同時擺手敬禮。采用此設計思想制作的小黃人動作起來十分的憨態(tài)可掬、呆萌可愛。
將挖好孔的飲料瓶套在制作好的骨架上,小黃人的外形就有了雛形了,然后披上小黃人的衣服,紅外避障玩具—“別摸我”小黃人就制作完成了。圖2為小黃人的骨架雛形,圖3為制作好的小黃人的總體外觀。接下來就需要編程來賦予它靈魂了。
3 系統(tǒng)軟件設計
本系統(tǒng)需要對舵機、紅外傳感器進行編程,最終達到所要的控制效果。
3.1 首先是舵機的控制編程
控制信號是一種脈寬調(diào)制(PWM)信號,凡是微控制器都能輕松的產(chǎn)生這種信號。在此本設計中直接使用Arduino開發(fā)環(huán)境下的微控制器。脈沖的高電平持續(xù)1~2ms,也就是1000~2000?s。在1000?s時,舵機左滿舵;在2000?s時,右滿舵,可以通過調(diào)整脈寬來實現(xiàn)更大或者更小范圍內(nèi)的運動。控制脈沖的低電平持續(xù)20ms。每經(jīng)過20ms(50次/s),就要再次跳變?yōu)楦唠娖剑駝t舵機就可能罷工,難以保持穩(wěn)定。
3.2 對紅外傳感器進行編程
經(jīng)過測試發(fā)現(xiàn)紅外傳感器當檢測到有人或物靠近時輸出為低電平,否則為高電平。接下來通過一個簡單程序了解紅外傳感器的編程使用方法。程序功能為有人接近時LED燈亮,沒人接近時LED燈滅。
3.3 將紅外傳感器與舵機聯(lián)合調(diào)試
用紅外傳感器控制舵機轉動,程序功能為若有人接近舵機轉動90°,否則舵機保持原位。
4 結論
綜上所述,本文介紹了一種新穎的互相玩具的設計制作方法,詳細描述了紅外避障玩具——“別摸我”小黃人的設計思路、制作過程及原理?!皠e摸我小黃人”擁有4個紅外傳感器,5個舵機,能在4個軸向上進行6種動作。當前面的傳感器檢測到有人或物接近時小黃人會向后躲避,當左側傳感器檢測到接近信號時會向右躲避,當右側傳感器檢測到接近信號時會向左躲避,當左右傳感器同時有信號時小黃人會向前躲避,當上方頭頂有信號時小黃人會左右搖擺同時擺手敬禮。如此呆萌、互動性良好的玩具還可以方便的移植到其他動漫形象上去,滿足不同喜好的人群,可移植性好,具有較高的推廣價值和應用前景。
參考文獻
[1]程晨.Arduino開發(fā)實戰(zhàn)指南:AVR篇[M].北京:機械工業(yè)出版社,2012:18-247.
[2]Masimo Banzi著,于欣龍,郭浩赟譯.愛上Arduino[M].北京:人民郵電出版社,2011:4-102.
[3]譚浩強.C程序設計(第4版)[M].北京:清華大學出版社,2010:1-218.
作者簡介
王麗(1986-),女,山東省臨沂市人。研究生學歷。現(xiàn)為深圳第二高級技工學校中級講師,從事單片機控制教學工作。
作者單位
深圳第二高級技工學校 廣東省深圳市 518049