1.運動功能說明
舵機云臺下方的舵機可以提供一個左右擺動的動作,同時上方橫置的關節模組可以提供一個上下擺動的動作。在這兩部分的配合下,云臺的執行端端(即:關節模組的U型支架)可以靈活地走出一個近似半球的運動軌跡。
2.結構說明
該樣機由一個 舵機 加一個 舵機關節模組 構成。
3.運動功能實現
3.1 電子硬件
在這個示例中,采用了以下硬件,請大家參考:
Basra主控板(兼容Arduino Uno)、Bigfish2.1擴展板、7.4V鋰電池
將兩個舵機接在擴展板的D3以及D4舵機接口上。
3.2 編寫程序
編程環境:Arduino 1.8.19
舵機云臺的控制關鍵是驅動舵機和舵機關節模組。
云臺運動的代碼
/*------------------------------------------------------------------------------------ 版權說明:Copyright 2022 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved. Distributed under MIT license.See file LICENSE for detail or copy at https://opensource.org/licenses/MIT by 機器譜 2022-5-31 https://www.robotway.com/ ---------------------------------- 實驗功能: 實現云臺模組的兩個舵機同時運動. ----------------------------------------------- 實驗接線: 云臺 .-----. | | 控制云臺上下的舵機接:D3 .---------. | | 控制云臺左右轉動的舵機接:D4 | | ----------------- ------------------------------------------------------------------------------------*/ #include //調用舵機庫函數 Servo servo_pin_3; //聲明控制云臺上下轉動的舵機 Servo servo_pin_4; //聲明控制云臺左右轉動的舵機 //程序初始化部分:使能舵機引腳,并設置舵機初始角度 void setup() { servo_pin_3.attach(3); //使能3號舵機 servo_pin_4.attach(4); //使能4號舵機 servo_pin_3.write(0); //3號舵機初始轉到0度 servo_pin_4.write(0); //4號舵機初始轉到0度 } void loop() { Servo_Move( 0,95, 0,180); //D4舵機緩慢從0度轉到180度,同時D3舵機緩慢從0度轉到95度 Servo_Move( 95,0, 180,0); //D4舵機緩慢從180度轉到0度,同時D3舵機緩慢從95度轉到0度 } /*兩舵機同時轉動子函數.使用方法如下所示: servo_loop_count:表示舵機從A角度轉到B角度分成了多少份. delay(20);表示每一份需要的延時時間. Servo_Move( 30, 45, 23, 80 );表示的意識是:D4舵機緩慢從23度轉到80度,同時D3舵機緩慢從30度轉到45度 Servo_Move( 45, 30, 80, 23 );表示的意識是:D4舵機緩慢從80度轉到23度,同時D3舵機緩慢從45度轉到30度 */ void Servo_Move(float servo3_start_angle, float servo3_end_angle, float servo4_start_angle, float servo4_end_angle){ servo_pin_3.write( servo3_start_angle ); //設置3號舵機初始角度 servo_pin_4.write( servo4_start_angle ); //設置4號舵機初始角度 float xunhuan_count = 30.0; float delta_servo3 = 0; float delta_servo4 = 0; float servo3_calculate_angle = 0; float servo4_calculate_angle = 0; int servo3_really_angle = 0; int servo4_really_angle = 0; delta_servo3 = - ( ( servo3_start_angle - servo3_end_angle ) / xunhuan_count ); delta_servo4 = - ( ( servo4_start_angle - servo4_end_angle ) / xunhuan_count ); for( float i = 0; i< xunhuan_count; i++ ) { servo3_calculate_angle = servo3_calculate_angle + delta_servo3; servo4_calculate_angle = servo4_calculate_angle + delta_servo4; servo3_really_angle = int(servo3_calculate_angle); servo4_really_angle = int(servo4_calculate_angle); servo_pin_4.write(servo4_really_angle); servo_pin_3.write(servo3_really_angle); delay(20); } } |
4.擴展樣機
使用不同的舵機和支架,可以構建出不同形態的云臺,如圖所示:
5.資料內容
① 樣機3D文件
② 例程源代碼
更多機器人開源項目請關注機器譜網站
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
機器人
+關注
關注
211文章
28501瀏覽量
207472 -
舵機
+關注
關注
17文章
276瀏覽量
41086
發布評論請先 登錄
相關推薦
【盈鵬飛EVB-T335開發板試用體驗】NO.3 舵機云臺3D打印
最近入手了一臺3D打印機正好做的項目又和攝像頭相關于是就3D打印了舵機云臺3D文件我放在附件里了最后拼好了大概是這個樣子注明一下,上面的圖是別人的圖,我自己剛剛打印好的3D模型還米有拼
發表于 10-02 23:20
如何使用openmv控制云臺自動跟蹤Apriltag
使用openmv控制云臺自動跟蹤Apriltag,并且將openmv與Apriltag距離通過串口發送到單片機。如果有openmv的同學直接將main.py和pid.py復制到flash中就可以了
發表于 12-03 08:07
如何制作相機跟拍云臺?
如何制作相機跟拍云臺? 實現目標:當相機或拍攝對象向左或向右移動時,相機鏡頭也相應轉動,始終對著拍攝對象。 思路:在拍攝對象處設置一個激光接收器,在相機兩邊分別設置一個激光發射器,兩個發射端與接收端
發表于 12-05 09:05
如何做一個跟隨角度運動的兩軸云臺
中用到了一個兩軸舵機云臺支架。感覺挺有趣,結合mpu6050傳感器,做一個跟隨角度運動的兩軸云臺。實驗效果:在講原理之前,先將源碼送給大家,
發表于 02-10 06:08
51單片機智能小車(舵機云臺超聲波避障+循跡+藍牙+紅外跟隨)
**51單片機智能小車(舵機云臺超聲波避障+循跡+藍牙+紅外跟隨+遙控+TFT液晶顯示屏)本人由于使用的液晶顯示屏,程序大于8K,所以更換為STC12C5A60S2芯片,與51芯片兼容。功能比較
發表于 11-12 14:21
?49次下載
stm32 mpu6050 舵機云臺支架跟隨
中用到了一個兩軸舵機云臺支架。感覺挺有趣,結合mpu6050傳感器,做一個跟隨角度運動的兩軸云臺。實驗效果:在講原理之前,先將源碼送給大家,
發表于 12-06 12:36
?11次下載
評論