利用智能小車與機械臂結合,在智能小車自身能夠實現(xiàn)的功能的基礎上,拓寬功能,使之得到最大化的利用,提高其利用價值。
智能小車可實現(xiàn)障礙物搜尋、掃除或者攻擊“敵人”,另外利用智能小車、機械臂的結合實現(xiàn)物體抓取與放置。
小車掃除障礙時,通過上中兩層分布的紅外傳感器感知障礙或“敵人”,加速進行掃除或發(fā)動攻擊;
小車抓取物體時,通過紅外傳感器實現(xiàn)避障到達目的地,然后進行物體抓取并放到指定位置,此動作可自動完成,也可通過藍牙通訊控制完成,使之更加靈活。
選題方向
基于智能小車,給其增加一機械臂,通過智能小車的移動,使機械臂實現(xiàn)“定點抓取”——>“移動抓取”,利用智能小車已實現(xiàn)的避障、攻擊等功能,在機械臂抓取物體,放置物體已實現(xiàn)的情況下,二者疊加,使之產生1+1>2的效果。當我們不便或不想行動時,這時它便可以幫助我們拿物體,就像一個簡易的“傭人”。
我們可以手動控制機器人手臂的每個伺服或軸的運動,同樣使用“Save”按鈕,可以記錄每個位置或步驟,然后機器人手臂可以自動運行并重復這些步驟,
這樣機械臂可幫助我們做一些簡單的重復工作,并且使用相同的按鈕,可以暫停自動操作以及重置或刪除所有步驟,以便我們可以記錄新的步驟。
競賽開發(fā)平臺
智能小車車體部分
硬件:
其主控是stm32控制板,配置有四個MG996舵機,兩個1203驅動器,四個電機,上中下三層各配置四個傳感器,依次是紅外傳感器,紅外測距傳感器,紅外光電傳感器,另配置有一傾角傳感器,小車配有鋰電池為驅動供電,另配有電源為主控及舵機供電。
軟件:
-
利用Keil 軟件平臺為智能小車配置代碼并進行調試;
-
利用Robot Servo Terminal軟件進行舵機、驅動編號并對舵機位置調試設定;
-
利用LuBy creater 軟件進行傳感器參數(shù)讀取及調試;
機械臂部分
硬件:
其主控是arduino UNO 開發(fā)板,其主體機械結構由3d打印,關節(jié)分別由SG90舵機和MG996R舵機構成,并且使用藍牙通訊模塊輔助實現(xiàn)其控制。
軟件:
-
利用Ardunio軟件平臺編寫調試 UNO 控制程序;
-
利用Solidworks 軟件設計機械臂物理結構;
-
利用app inventor軟件設計開發(fā)與機械臂相匹配的藍牙控制app。
機械臂部分硬件:
首先,使用Solidworks 建模軟件設計了機器人手臂,手臂有5個自由度,機械臂全部由3D打印完成。
對于前3軸,腰部,肩部和肘部,使用MG996R伺服系統(tǒng),而對于另外2軸,腕部滾動和腕部間距,以及夾持具使用了較小的SG90微型伺服系統(tǒng)。
硬件連接示意圖:
主函數(shù)代碼展示:
抓取物體:
使用應用程序中的滑塊,我們可以手動控制機器人手臂的每個伺服或軸的運動。同樣使用“Save”按鈕,我們可以記錄每個位置或步驟,然后機器人手臂可以自動運行并重復這些步驟。使用相同的按鈕,我們可以暫停自動操作以及重置或刪除所有步驟,以便我們可以記錄新的步驟。
代碼部分展示:
1.void loop() {
2.// Check for incoming data
3.if (Bluetooth.available() > 0) {
4.dataIn = Bluetooth.readString(); // Read the data as string
5.
6.// If "Waist" slider has changed value - Move Servo 1 to position
7.if (dataIn.startsWith("s1")) {
8.String dataInS = dataIn.substring(2, dataIn.length()); // Extract only the number. E.g. from "s1120" to "120"
9.servo1Pos = dataInS.toInt(); // Convert the string into integer
10.// We use for loops so we can control the speed of the servo
11.// If previous position is bigger then current position
12.if (servo1PPos > servo1Pos) {
13.for ( int j = servo1PPos; j >= servo1Pos; j--) { // Run servo down
14.servo01.write(j);
15.delay(20); // defines the speed at which the servo rotates
16.}
17.}
18.// If previous position is smaller then current position
19.if (servo1PPos < servo1Pos) {
20.for ( int j = servo1PPos; j <= servo1Pos; j++) { // Run servo up
21.servo01.write(j);
22.delay(20);
23.}
24.}
25.servo1PPos = servo1Pos; // set current position as previous position
26.}
27.
28.// Move Servo 2
29.if (dataIn.startsWith("s2")) {
30.String dataInS = dataIn.substring(2, dataIn.length());
31.servo2Pos = dataInS.toInt();
32.
33.if (servo2PPos > servo2Pos) {
34.for ( int j = servo2PPos; j >= servo2Pos; j--) {
35.servo02.write(j);
36.delay(50);
37.}
38.}
創(chuàng)新點描述
1、同時采用stm32和arduino控制板配合使用,充分利用二者特點,使之與項目要求達到很好的匹配;
2、利用MIT APP Inventor 設計開發(fā)機械臂控制APP,無論對于開發(fā)者還是使用者,操作都較簡單明了;
3、采用3層傳感器的分布結構,使車體對周圍環(huán)境判斷更加靈敏和準確,同時也考慮到實際環(huán)境的影響,避免采用灰度傳感器(受環(huán)境光)等外在客觀環(huán)境影響較大的傳感器;
4、智能小車可以自動搜尋障礙并采取相應措施向起發(fā)動進攻;
5、使用機械臂APP中的滑塊,可以手動控制機器人手臂的每個伺服或軸的運動。同樣使用“保存”按鈕,可以記錄每個位置或步驟,然后機器人手臂可以自動運行并重復這些步驟。使用相同的按鈕,可以暫停自動操作以及重置或刪除所有步驟,以便記錄新的步驟。
成果展示
審核編輯 :李倩
-
智能小車
+關注
關注
87文章
549瀏覽量
81723 -
機械臂
+關注
關注
12文章
513瀏覽量
24554
原文標題:華為嵌入式精英挑戰(zhàn)賽:智能小車 + 機械臂
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論