基于Arduino和MPU 6050構(gòu)建一個(gè)簡(jiǎn)單的兩軸云臺(tái)
萬向架使用Arduino和MPU 6050 | Arduino項(xiàng)目
Arduino + MPU6050萬向臺(tái):一個(gè)DIY的兩軸穩(wěn)定平臺(tái)
對(duì)于攝像師、機(jī)器人愛好者或想要根據(jù)運(yùn)動(dòng)穩(wěn)定方向的制造商來說,該項(xiàng)目使用Arduino UNO、MPU 6050陀螺加速度計(jì)模塊和兩個(gè)伺服電機(jī)構(gòu)建了一個(gè)簡(jiǎn)單的兩軸云臺(tái)。雖然不像專業(yè)的BLDC萬向節(jié)那樣流暢,但對(duì)于展覽和學(xué)習(xí)來說是完美的。
它的作用
MPU - 6050在X和Y軸上感應(yīng)傾斜。這些讀數(shù)實(shí)時(shí)映射到兩個(gè)伺服電機(jī),使平臺(tái)模仿你的運(yùn)動(dòng)在滾動(dòng)和俯仰-穩(wěn)定,即使你傾斜它側(cè)向或向前/向后。
您需要的組件
?Arduino UNO
?MPU - 6050陀螺儀+加速度計(jì)傳感器
?兩個(gè)伺服電機(jī)(如標(biāo)準(zhǔn)模擬伺服電機(jī))
?跳線,面包板
?編程用USB線
電路布線
?電源:MPU6050 VCC→Arduino 5?V, GND→GND
?I2C線:SDA (MPU6050)→A4, SCL→A5
?中斷腳INT→數(shù)字腳2
?伺服信號(hào)線:Servo1→D6、Servo2→D5;與ArduinoServo信號(hào)線共享5?V和GND: Servo1→D6, Servo2→D5;都與Arduino共享5?V和GND
Arduino Sketch概述
安裝Wire.h、MPU6050.h(通過I2Cdevlib)和Servo.h庫(kù)。提供的代碼初始化MPU,讀取原始加速度計(jì)數(shù)據(jù),并將這些值映射到伺服角度-因此當(dāng)您傾斜時(shí),伺服器相應(yīng)地重新定位。
在loop()中,加速度計(jì)軸被捕獲:
這意味著:
?Ax→servo1(水平傾斜)
?Ay→servo2(垂直傾斜
提示和增強(qiáng)
?校準(zhǔn):原始MPU讀數(shù)不同。校準(zhǔn)每個(gè)軸的傳感器以消除漂移或隨機(jī)偏移。
?平滑/濾波:使用互補(bǔ)濾波器或卡爾曼濾波器結(jié)合陀螺儀和加速度計(jì)的數(shù)據(jù)更穩(wěn)定的運(yùn)動(dòng)
?構(gòu)建質(zhì)量:使用3D打印或紙板部件牢固地安裝伺服器并防止抖動(dòng)
你會(huì)得到什么?
?一個(gè)功能Arduino控制的兩軸框架,實(shí)時(shí)反映運(yùn)動(dòng)。
?偉大的動(dòng)手學(xué)習(xí)IMU融合,伺服控制和Arduino接口。
?一個(gè)模塊化的基礎(chǔ),你可以擴(kuò)展-添加一個(gè)攝像頭,第三伺服偏航,或更精確的電機(jī)
限制與未來升級(jí)
?運(yùn)動(dòng)不流暢:標(biāo)準(zhǔn)伺服速度慢,導(dǎo)致明顯的步進(jìn)。
?無偏航控制:只有橫搖和俯仰穩(wěn)定。
?沒有高級(jí)調(diào)諧:如果不添加數(shù)字濾波器,就無法微調(diào)PID平滑。
需要考慮的升級(jí):
?使用無刷直流電機(jī)和真正的萬向控制器使運(yùn)動(dòng)更平滑。
?添加偏航運(yùn)動(dòng)為全3軸穩(wěn)定。
?集成PID控制算法,減少超調(diào)和振蕩。
想要構(gòu)建它嗎?
下面是一個(gè)基本的代碼片段:
該項(xiàng)目提供了一個(gè)強(qiáng)大的,教育Arduino + MPI6050萬向臺(tái)。非常適合演示,實(shí)驗(yàn)運(yùn)動(dòng)控制,或進(jìn)一步的實(shí)驗(yàn)。讓我知道如果你想幫助調(diào)整映射,添加過濾,或者把它變成一個(gè)相機(jī)有效載荷!
本文編譯自hackster.io





