著作權歸作者所有。 商業轉載請聯繫作者獲得授權,非商業轉載請注明出處。 作者:科長 連結:http://zhuanlan.zhihu.com/makeblock/20369569 來源:知乎 近日,到手了幾個平面推力軸承,於是想著做一個連杆機構來測試性能。經過一番設計和嘗試,做了一個自動遞送傳單的小機器人。 機構視頻 http://v.youku.com/v_show/id_XMTM5NjI3NTAwNA==.html 搭建流程 第一步,先搭建一個底座。 材料清單:
第二步,製作連杆。 此處使用齒輪帶動連杆,實現了一個類似翻斗的作用。平面四連杆在機器人中應用非常廣泛,通過調節連杆長度、固定不同位置的連杆,可以實現各種運動功能。 材料清單:
第三步,將連杆安裝到支架上。 材料清單:
第四步,安裝吸盤和氣泵支架。 材料清單:
第五步,製作傳單托架。 材料清單:
第六步,安裝馬達、氣泵、電路。 材料清單:
其中,超音波感應器用於檢測傳單是否被取走。在圖中所示的某根軸上和單孔梁上分別焊接上一根導線和一個金屬片,當連杆到達極限位置時,軸和金屬片接觸,用為限位的作用。 控制代碼也比較簡單,使用超音波感應器檢測傳單,並控制四連杆重複運動即可。 #include <MeOrion.h>
#define PAPER_DIS 8 MeDCMotor pump(M1); MeDCMotor arm(M2); MeUltrasonicSensor dis(PORT_3); MeLimitSwitch limit(PORT_4, SLOT1); unsigned long startTime = 0; unsigned long currentTime = 0; void setup() { Serial.begin(9600); arm.run(180); startTime = millis(); do { currentTime = millis(); } while(!((limit.touched()) || (currentTime - startTime > 3000))); arm.stop(); } void loop() { while (!paperDetected()) { arm.run(-250); while (!paperDetected()) { delay(100); } pump.run(255); delay(1200); arm.stop(); delay(500); // 開始抬起 arm.run(180); delay(1500); } startTime = millis(); do { currentTime = millis(); } while(!((limit.touched()) || (currentTime - startTime > 3000))); arm.stop(); pump.run(200); } int paperDetected() { float distance = 0; do { distance = dis.distanceCm(); } while (distance < 2); if (distance < PAPER_DIS) { return 1; } else { return 0; } }
0 評論
發表回覆。 |