国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

DIY:自制紅外避障小黃人“別摸我”

發布時間:2014-2-6 11:59    發布者:lichen
關鍵詞: DIY

請自行腦補小黃人那賤賤的笑聲~(實物是有聲音的)

這個玩具還有個NB名字:BMW(別摸我)

制作背景

本玩具誕生于芯世界、創客空間、英特爾等機構組織的極創48小時HACKATHON的比賽。并有幸獲得了本次比賽的第一名,感謝之前所有支持過我們的果殼er們!

在我們一群開發人猿的努力下,這個純手工制作的小黃人誕生了。

制作難度:3星

制作時間:比賽時我們3-4人工作了約8小時

制作材料電路控制部分
  • Arduino Mega2560*1
  • 紅外傳感器*3
  • 舵機*2
  • 揚聲器*1
  • LM386*1
  • 導線、面包板、洞洞板*N
骨架與裝飾材料
  • 可樂瓶*1
  • 木板*N
  • A4紙*N
  • 工具部分:
  • 彩筆*N
  • 鋸條、螺絲刀、螺絲釘等常見工具
實現原理

我們在小黃人的眼睛和雙手的位置分別裝了三個紅外傳感器(眼睛里的那個是不是毫無違和感呢,哈哈)。當人手靠近傳感器時,傳感器的信號會發生變化。Arduino控制器接收到這種變化后,會控制對應的舵機轉動到相應的角度,保持一段時間后恢復原位。我們總共有兩個舵機,分別控制小黃人的向后倒和左右閃躲。同時,Arduino控制器通過LM386芯片驅動揚聲器,播放小黃人笑聲的wav音頻。

電路控制部分連接紅外傳感器到Arduino控制器

紅外反射式傳感器可以發射紅外線,并檢測紅外線是否被反彈回來。這個傳感器因為內部已經集成了放大、濾波等電路,使用起來非常方便。傳感器有3個引腳,分別是電源、地和信號。經過測量,當傳感器前方有遮擋物時,信號線電壓變低。

直接將信號線接到Arduino的數字端口上,判斷這個數字端口的值是否為0,即可判斷傳感器前方是否有手靠近了。

如果紅外傳感器的質量不太好的話(產生的信號電壓不穩或者不夠低),則可以將信號線連接到Arduino的模擬信號引腳上,使用Arduino的AnalogRead函數(封裝好的函數用起來就是簡單)就可以讀出這個信號線上的電壓。設置一個電壓閾值,就可以判斷傳感器前方是否有手靠近了。

連接舵機到Arduino控制器

關于舵機的使用,DIY站的前輩寫了一篇很好的文章:DIYer修煉:舵機知識掃盲

這里簡單描述一下:

舵機收到一個用PWM波模擬的電壓值,就會讓驅動軸帶動舵盤旋轉到一個固定的角度。而在Arduino中,完全可以利用封裝好了舵機的控制函數,命令舵機轉到對應的角度即可。

下圖中展示了一個舵機和一系列的舵盤。

這里使用兩個舵機分別控制小黃人前后旋轉和左右旋轉。

結合第一步中的紅外傳感器,此時便已經可以實現如下功能:

當紅外傳感器檢測到小黃人前方有手時,就命令前后舵機向后轉動90度;當左方有手時,就命令左右舵機向右旋轉90度;當右方有手時,就命令左右舵機向左旋轉90度。

當然,控制邏輯還可以有更多花樣。比如,當我使出“雙峰貫耳”時,小黃人會前撲進行反擊~

PS:舵機在工作時會對電源電壓產生一定的干擾,因此需要接電容濾波或者是單獨供電。否則會影響紅外傳感器的正常工作。

連接揚聲器到Arduino控制器

由于器材限制,我們采用了比較簡單的音頻播放方法。使用單片機的PWM波來近似播放PCM編碼的單聲道音頻。為了操作簡單(不用外接flash或者ram),我們將音頻直接固化在程序中了。

這一段里我將介紹如何產生WAV音頻文件、如何將音頻文件固化在程序中、如何修改Arduino的PWM波產生函數的基本參數。

之前說了兩次Arduino封裝函數的方便,這里要來吐槽一下啦:有一些操作,在普通的單片機,包括Arduino套件所采用的AVR中實現比較簡單,但是在函數高度封裝后的Arduino上,處理起來略有麻煩。

產生WAV音頻文件
  • 截取:這步比較簡單,我是用KMPlayer從電影中抓取了1.5s的小黃人的笑聲音頻。
  • 轉碼:之后用GoldWave將其轉碼成WAV格式,參數選擇是PCM unsigh 8-bit mono,并將其采樣率降低到8KHz(語音信號的采樣率的最低要求是6.8KHz,這里就先不多解釋了)。8bit單聲道的PCM的編碼,就是用一個8bit的值表示當時的聲音強弱,一秒鐘8000個點,我的音頻總共12000個點。因此,只要Arduino能夠如實的將這12000個點的值變成電壓值,去驅動喇叭,就可以發聲了。
  • 取值:我用ultraedit打開wav文件,在16進制的模式下能看到值,但是無法復制。最后被迫用了matlab去讀取wav文件,將12000個值取了出來。如果誰會更簡單的方法告訴我一下吧~
音頻文件固化在程序中

12000個8bit的數的大小約是12KB。Arduino的RAM大小只有8KB,而其程序Flash的大小有128KB。因此最簡單的方法就是將它直接寫到程序里。

在Arduino中,直接定義數組的方法是:

const byte sound[]={………………………………};

這樣的話,數組中的內容作為變量會被要求加載到RAM,于是RAM就爆了。

固化到程序里的方法是:

#include //開頭要引用這個文件const byte sound[] PROGMEM={………………};//定義時候要加上關鍵字…………a=pgm_read_byte(&sound);//程序中的數組的使用方法用PWM波模擬聲音

PWM波使用不同占空比的方波,來模擬不同的直流電壓,就可以模擬一個模擬信號。(中文有點怪,英文是emulate an analog signal)

Arduino可以很方便的產生一個指定模擬電壓的PWM,使用函數AnalogWrite即可。因此我們讓Arduino依次將12000個聲音點的值,用PWM波模擬出來,理論上就只要再通過濾波和放大就大功告成了。

這里需要的一個前提是,PWM波的頻率要遠高于聲音的采樣頻率(8kHz)。否則會很難濾波甚至發生錯誤。

不幸的是,AnalogWrite中無法指定PWM的頻率。查閱資料后發現,PWM波的默認頻率只有幾百赫茲,因此剛開始實驗時喇叭里全是噪聲。參考了Arduino的官方網站的使用教程 [url=http://playground.arduino.cc/Main/TimerPWMCheatsheethttp://playground.arduino.cc/Main/TimerPWMCheatsheet]Adjusting PWM Frequencies[/url] 中的資料,將PWM波的頻率改成312500Hz。終于能夠實現聲音的播放了。

此時直接將揚聲器接到PWM的輸出端口上,已經可以聽到聲音了(揚聲器本身的結構具有低通濾波器的特性,可以濾去高頻分量)

后續的濾波器以及功放電路就不描述了,時間倉促,設計的也不好。

至此,電路部分已經設計完成。此時用手擋住任何一個紅外傳感器,均會有一個舵機開始旋轉,并且有賤賤的笑聲。

機械部分

由于我們沒有人是學機械或者設計的,不會畫CAD圖,無法使用高級的切割設備,只能采用手工加工木板。首先引用一段對舵機用法的介紹,出自于前面提到的 DIYer修煉:舵機知識掃盲

舵機的支架和連接裝置

  • 想在你的項目中用上舵機,就要滿足兩個條件:一是需要個能把舵機固定到基座上的支架,二是得有個能將驅動軸和物體連在一起的連接裝置。支架一般舵機上就有,而且帶有擰螺絲用的安裝孔。如果你僅僅是測試的話,用點兒熱熔膠或者雙面泡沫膠帶就能輕松的固定住舵機。
  • 怎樣連接驅動軸呢,你會發現舵機都附帶了一些有孔的小東西,這就是舵盤,它可以套在驅動軸,臂上打上了些小孔。你只要用連接棒或者線把物體連到孔上,就可以將舵機的旋轉運動變成物體的直線運動了,當然了,選用不同的舵盤或固定孔就能產生不同的運動啦。
  • 圖示的是幾種不同的舵盤。前面4個白色的是舵機附帶的舵盤,右邊四個是用激光切割機切割塑料得到的DIY舵盤。最右邊的2個是舵盤和支架的組合,如果你想實現兩個舵機的組合運動,把這個舵盤的支架固定到另一個舵機的支架上就OK了。

接下來的機械設計介紹,這可能會是你在果殼中看到的最坑爹的表達方式,大家對著實物圖和我畫的“偽三視圖”努力辨認一下吧…

我們用了兩個舵機實現了兩個自由度。整個設備從下往上依次是:

  • 大木板A
  • 一個大木板A上豎直的固定了一個小木板B,固定方式用的是一個直角的金屬,名字未知……
  • 在小木板B上挖了一個槽,將一個舵機卡到了里面,并用螺絲固定。
  • 在舵機的驅動轉盤上固定一個小木板C,這個木板會隨著這個舵機的驅動轉盤實現前后旋轉。
  • 小木板C上用螺絲固定了第二個舵機。
  • 第二個舵機的驅動轉盤上固定木條D,這個木條D可以在驅動轉盤的帶動下,實現左右旋轉。
  • 在木條D上固定大可樂瓶,在可樂瓶的適當位置開洞,固定3個紅外傳感器。
  • 最后,在可樂瓶外側,用白紙畫上小黃人的外觀,就大功告成啦!

PS. 小黃人還在繼續成長中~我們將會在這個簡單的小黃人的基礎上,開發出一款真正的玩具。嗯?那款玩具會是什么樣的?現在還不能告訴你,肯定會更可愛,更聰明(或者更笨),變得會學習、會有情緒,也許還可以和很多人一起玩。敬請期待吧!


本文地址:http://m.qingdxww.cn/thread-126155-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天堂在线视频观看 | 四虎影院永久 | 国产99在线观看 | 玖玖色在线 | 无限视频免费观看网 | 亚洲欧美一级视频 | 91热播| 免费国产不卡午夜福在线观看 | 成人免费国产欧美日韩你懂的 | 亚洲天堂精品视频 | 隔壁的放荡邻居在线看 | 老师让我她我爽了好久老 | 日日摸夜夜爽 | 国产高清精品一区 | 日本精品久久久久中文字幕8 | 国产精品公开免费视频 | 97免费在线观看视频 | 久久综合给会久久狠狠狠 | 曰本女人一级毛片看一级毛 | 手机毛片在线观看 | 国产麻豆果冻传媒 | 久久久久久久91精品免费观看 | kktt99| 日本天天操 | 向日葵视频免费下载 | 久久国产精品无码网站 | 农村寡妇一级毛片免费看视频 | 日本精品在线观看视频 | 91大神娇喘女神疯狂在线 | 成人国产第一区在线观看 | 国产porn在线| 四虎影永久在线观看精品 | 色婷婷免费视频 | 黄色免费网页 | 999小视频| 全免费a级毛片免费看视频免 | 久久精品影院永久网址 | 亚洲精品国产精品国自产 | 在线青青视频 | 免费二级c片在线观看a | 日韩在线网 |