這篇文章是關于DIY自平衡機器人的,我將向您展示如何構建自己的自平衡機器人。
這篇文章是關于DIY自平衡機器人的,我將向您展示如何構建自己的自平衡機器人。我嘗試構建該項目,但未能獲得預期的結果。但是這款機器人的表現相當不錯且準確,盡管與我以前的機器人相比,這并不完美。
我使用定制的PCB,Arduino nano,MPU6050,A4988驅動程序,HC-05 bt模塊,MDF板和一些硬件來構建此自平衡機器人,詳細材料清單可在本文中找到。此項目中使用Balancingwii固件和EZ-GUIandroid應用程序通過藍牙連接控制機器人。
因此,讓我們從一些基本的自平衡機器人開始。
自平衡機器人的基礎
自平衡機器人是指機器人通過不斷校正其位置來平衡兩個輪子。
陀螺儀傳感器用于自平衡機器人中,該傳感器連續將機器人方向數據發送到控制器。
根據該數據控制器的命令,電動機向前或向后運行,以保持機器人的位置筆直。
這是自平衡機器人的理想位置,身體完美地向上注視著車輪。Y軸與機器人的身體之間的夾角為零。
當身體向前傾斜時,Y軸與身體之間會有一定角度。MPU6050陀螺儀傳感器檢測到該角度,然后將此數據發送到Arduino。Arduino現在執行PID計算,并命令步進電機正向運行,以將傾斜角最小化到零度。
如果機器人向后傾斜時,電機也會向后旋轉并將傾斜角校正為零,則會發生相同的情況。機器人繼續以每秒400次的速度向前和向后反轉電動機,因此我們看起來機器人在該位置穩定。
所需組件
Arduino Nano………………………..1個
MPU605陀螺儀傳感器……………….1個
Nema 17步進電機………….2個
100mm車輪…………………………..2個
HC-05藍牙模塊............ 1個
4mm MDF板
150mm M5螺紋桿——4個
一些螺母和螺栓
DIY自平衡機器人電氣圖紙
上圖是自平衡機器人的電路圖。
我已經準備好一塊PCB,您也可以下載Gerber文件訂購PCB,也可以在easyeda平臺中編輯PCB。
https://easyeda.com/sharmaz747/self-balancing
注意:-訂購PCB之前,請先對自己的產品進行交叉檢查。
您必須需要的基本連接和最小連接如下
I2C:
A4 – SDA
A5 – SCL
電機驅動器引腳:
D5 – STEP1(PORTD 5)
D6 – STEP2(PORTD 6)
D7 – DIR1(PORTD 7)
D8 – DIR2(PORTB 0)
D4 –啟用(均適用)
機器人構造
以下是自平衡機器人的基本構造圖
我
從4mm厚的MDF紙上切下了三張大小為130 x 65mm的圖片
在這里,我鉆了一些孔,以便步進電機,然后將M3桿插入所有三個MDF板上。
然后,我切成兩片20mm x 20mm鋁角,尺寸為42mm,用于安裝帶有平臺的步進電機。
現在,我使用一些硬件來組裝自平衡機器人的主體。
在這里,我將M5桿插入了基礎平臺,并借助20x20x42鋁角安裝了nema 17步進電機。
現在,我將中間和頂部平臺放在M5搖桿上,并用M5螺母固定。
并將PCB放在10 mm墊片上的中間平臺上。
將1500mah 11.7 V脂糊劑放在基礎平臺上,并用皮帶將其固定在適當的位置。
現在,終于將車輪固定在步進電機的軸上,并用M3機器人將其擰緊。
這樣,我們的機器人組裝就完成了。
現在我們可以進行自平衡機器人的編程了。
程式設計
下載balancewii//github.com/mahowik/BalancingWii
首先要開始對arduino進行編程,我們需要下載一個稱為balancewii的用于平衡機器人的固件。
該固件基于用于四旋翼和多旋翼飛行無人機的Multiwii固件。您可以在此處了解有關Multiwii的更多信息http://www.multiwii.com/wiki/index.php?title=Main_Page 。
特別感謝開發此固件的Mahowik:https://github.com/mahowik
下載固件均衡wii//github.com/mahowik/BalancingWii,現在單擊綠色按鈕克隆或下載。固件將以ZIP格式下載到您的PC中。
現在解壓縮下載的文件,打開新創建的文件夾,并刪除圖像中突出顯示的三個文件,這根本不需要。
另外,包含balancewii.ino文件的文件夾的名稱都必須相同,否則您將得到編譯錯誤。
現在,在arduino中打開balancedwii.ino文件并編譯代碼并上傳它,而無需進行任何更改。
在上傳代碼之前,請不要忘記關閉BT模塊。
如果您的MPU6050方向不同,那么我需要在config.h文件中更改此行。
您可以在此處將PITCH更改為ROLL
#define CURRENT_AXIS PITCH //可以選擇ROLL或PITCH軸作為當前軸。
默認情況下,大多數HC-05 BT模塊都帶有默認的9600波特率。
但對于此項目,請注意,您的HC-05 BT模塊的波特率必須為115200,否則您將無法連接android應用
您可以通過AT命令在google上搜索HC-05 bt模塊的波特率來更改它,您將獲得許多有關它的教程。
/ *這是串行接口的速度* /
#定義SERIAL0_COM_SPEED 115200
#define SERIAL1_COM_SPEED 115200
#define SERIAL2_COM_SPEED 115200
#define SERIAL3_COM_SPEED 115200
如果您認為機器人的響應速度較慢,則可以嘗試在config.h文件中更改此設置,但請記住,這些值必須處于約束狀態。
#define MAX_SPEED 350 //應該<= 500
#define MAX_TARGET_ANGLE 130 //其中10 = 1度,應<= 15度(即<= 150)
#define MAX_STEERING 90 //應該<= 100
Android應用
EZ-GUI應用程序是我們要在這里使用,你可以了解更多關于EZ-GUI(http://ez-gui.com/)從這里。EZ-GUI應用程序可通過點擊以下或掃描下面的二維碼鏈接從Play商店免費下載。上面下載包已包含這個apk文件。
https://play.google.com/store/apps/details?id=com.ezio.multiwii
應用程式設定
打開下載的應用程序,然后單擊屏幕右上角的三個點,點擊設置。
在BT設備上選擇以選擇BT模塊,現在單擊NEXT按鈕
現在,從列表中選擇固件“ Multiwii 2.40”,然后單擊“下一步”,直到到達主屏幕。
單擊“連接”按鈕以連接藍牙。
按下“ AUX”按鈕
刻度線標記如上所示。
這是我的PID設置
該PID設置對于您的機器人來說不是強制性的,每個機器人都是唯一的。PID取決于機器人的設計,重心,車輪尺寸,電機類型等。嘗試不同的設置,經過一定的嘗試,您肯定會獲得最佳的設置。
現在從此屏幕返回,并單擊右上角的三個點并轉到“高級”,然后轉未經測試”,然后單擊“模型控件”
現在,這是與您玩機器人的屏幕,您可以從操縱桿上運行自平衡機器人,
并在此屏幕上進行嘗試不同的設置以了解更多信息。
這樣,我們的DIY自平衡機器人就可以玩了。
-
pcb
+關注
關注
4324文章
23156瀏覽量
399155 -
控制器
+關注
關注
112文章
16437瀏覽量
178988 -
機器人
+關注
關注
211文章
28620瀏覽量
207932
原文標題:DIY 自平衡Arduino機器人-【單片機教程-創客】
文章出處:【微信號:aidanpianji,微信公眾號:單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論