機器人搶紅包大作戰
高清無碼火腿腸搶紅包機器人:盯——紅包!—— 搶!
是的,機械臂前端是一根火腿腸。是不是也想擁有一臺搶紅包機器人?和果殼實驗室的小伙伴一起制作吧!
需要準備的材料:
Arduino Mega2560
面包板 ×1
杜邦線 若干
按鍵開關 ×1
10K 電阻 X1
10K 滑動變阻 X3
舵機 ×3
2mm亞克力板 約40cm×40cm
橡皮筋 ×2
火腿腸 ×1
需要準備的設備:
激光切割機
一臺裝有python+opencv+numpy環境的電腦
外置的攝像頭
攝像頭支架
搶紅包機器人的原理是啥?
開始制作搶紅包機器人時,我們試圖找一個更加簡單的方案:將四塊TSC200顏色傳感器貼在手機屏幕上紅包將出現的位置的四個角,當這四個顏色傳感器同時檢測到微信紅包的橘黃色時,可以判斷為有新的紅包發出來,這個時候Arduino就開始進行搶紅包操作。
然而當我們拿到TSC200顏色傳感器模塊的時候卻十分奔潰,雖然TSC200芯片非常小,但做成模塊后電路板就足足占了大半個屏幕,臉都遮沒了……
所以我們轉而尋求另外一條途徑——計算機圖像識別。
用一個攝像頭拍攝手機畫面,通過開源的計算機視覺庫openCV分析畫面信號,判斷出是否有新的紅包出現,當紅包出現時即向Arduino發送指令,Arduino控制搭載火腿腸的機械臂在屏幕上進行三次點擊,完成搶紅包操作。
我該怎么制作它?
搶紅包機械臂機械部分主要由亞克力制成的機械臂結構、執行動作的舵機和負責觸屏任務的火腿腸組成,機械臂通過Arduino進行調試。
為了將盡可能簡化程序,我們設置了三個滑動變阻器和一個按鈕來手動設置機械臂的路徑,初次使用時,使用變阻器控制機械臂的每個動作,并將每個動作對應的角坐標記錄下來填寫到程序中,再重新燒寫程序。
連接滑動變阻器到Arduino控制器
我們使用三個10k滑動變阻器作為電位器用于手動控制機械臂。分別將三個電位器的1號引腳接入GND端,3號引腳接入VCC端,三個電位器的2號引腳分別接入Arduino的A0、A1、A2端。當電位器轉動時,2號引腳輸出不同的電壓型號, Arduino讀取各個電位器的2號引腳的型號,控制舵機轉動到對應的角度。

滑動變阻器
連接按鍵開關到Arduino控制器
為了方便查看手動操作時舵機轉動的角度,我們用了一個設置一個輸出角度信息的按鈕。當我們轉動舵機到我們需要的角度時,按一下按鈕,Arduino便會通過串口返回一個舵機轉過的角度。我們將這些角度數值記錄下來燒寫進Arduino中,下次操作時,只需要給Arduino發送一個串口指令,機械臂就會按設定的角度開始執行。

輕觸開關

輕觸開關接線圖
連接舵機到Arduino控制器
舵機的選擇不像普通的電機那么古板,它可以根據你的指令旋轉至0至180度之間的任意角度然后精準地停下來,因此讓舵機來驅動機械臂執行動作是簡單經濟的方案。我們使用Arduino的11、12、13端口輸出PWM信號來控制舵機。
將三臺舵機的紅線接入VCC端、棕色線接入GND端,三臺舵機的黃線分別接入Arduino的11、12、13號端口。
制作機械臂結構
我們在紙上會繪制機械臂大致的外形,然后在AutoCAD繪制各個部位的零件圖,輸出激光切割軟件可以讀取的PDF文檔,然后用激光切割機在一塊2mm厚的亞克力板上切割出零件,將零件拼裝在一起,并用膠水或螺絲固定住。
機械臂概念草圖:

機械臂零件圖:

組裝成的機械臂各個部件:

組裝完成的機械圖:

夾上火腿腸就可以出現觸摸屏幕了: 圖像(紅包)識別
我們在python上調用openCV視覺庫對進行圖像處理。計算機獲取到視頻信號后,首先進行顏色過濾處理,將橙黃色之外的顏色過濾掉,然后獲取黃色色塊的輪廓、面積、質心位置。程序通過面積和質心判斷是否有新的紅包出現,當有紅包出現時,python腳本即通過串口向Arduino發送指令。

計算機圖像界面
好了,坐等紅包趕緊發過來!
搶紅包機器人大聯歡
獨樂樂不如眾樂樂嘛,我們這么有意思的東西當然要和大家一起分享啦。現在我們將開源我們的全部內容,召集感興趣的小伙伴一起共同制作各種搶紅包機器人,來看看誰的設計更蠢萌,“手”更快!
你是不是也想參與并制作一個屬于自己的搶紅包機器人?是不是也想在除夕夜炫耀一把?現在就可以勾搭實驗君的AI!
|