104年嵌入式軟韌體工程師人才養成班
Abstract
目前市面上多旋翼相關產品,大都以MCU套件+遙控器居多,此
專題我們將使用搭載Linux作業系統的Raspberry Pi B+
教學板控制直流馬達實現穩定的飛行。
為解決Raspberry Pi的硬體PWM腳位不足,我們使用的子板擴充
(PCA9685)。飛行姿態由MPU6050量測加速度與角速度,並利用
Complementary Filter演算法增加測量的穩定性,結果經PID運算後,
透過調整PWM的週期達到BLDC馬達轉速控制.
為提供馬達及系統有足夠的電流,所以使用20C鋰電池以達
到四軸飛行器作業需求。通訊方式則以WiFi作為Notebook和
Raspberry Pi作為溝通媒介。
 General Flight Posture:
UP
Down
Forward
Back
Left Right
Flight Principle
Rotate
Reversal
採取X型態方式飛行(單顆馬達能量耗損低) 。
Flight Control
 旋槳配置(1對順時針/1對逆時針)可平衡旋翼對機身的反扭矩。
四旋翼使用4個旋翼來產生上升的動力。
M1M3
M2M4 BLDC
順時針方向逆時針方向
Balance Control
初始位置
傾斜時
加速補償
減速補償
 無控制方向時,藉由角度判斷執行馬達加減速以進行平衡控制.
 藉由方位角度變化的判斷來對馬達加減速,以達移動的目的.
How to control Quadrotor
Balance
Control
PWM
User Control
(Remote)
Height Control
Direction Control
Pitch/Roll
Filter
MPU-6050
Flight Posture
(Change)
software
ESC/BLDC
Hardware Block Diagram
Control System
(Raspberry Pi B+)
BLDC Driver (ESC*4) BLDC*4
I2C
PWM Extend
(PCA9685)
4 PWM
Remote
Battery
(Li-Po)
I2CNotebook
(with Putty)
+12v
+5v
Quadrotor
IMU Module
(MPU-6050)
Step-Down
Voltage
Regulator
+12v
WIFI
Hardware Interfaces
利用慣性感測元件偵測姿態並做BLDC控制.致力於穩定的飛行控制.
BLDC
ESC
MPU-6050 Battery
Voltage Regulator
PWM Extend
Raspberry Pi
ESCUSB WiFi
System Platform
 Hardware
晶片 BCM-2835
記憶體 512MB
40個GPIO端子
1隻腳位支援PWM
 Software
掛載Linux系統(debian)
 Raspberry Pi B+  擴充子板
16-channel, PWM
Balance
Control
PWM
User Control
(Remote)
Height Control
Direction Control
Pitch/Roll
Filter
MPU-6050
Flight Posture
(Change)
software
ESC/BLDC
IMU (MPU-6050 )
 慣性感測器 我們使用MPU-6050
,包含三軸加速度計與三軸陀螺儀.
規格:
◎ 供電電源:3~5V(內部低壓差穩壓)
◎ 通信方式:標準I2C通信協定
◎ 晶片內置16bit AD轉換器 / 16位元資料輸出
◎ 陀螺儀範圍:±250 / 500 / 1000 / 2000°/s
◎ 陀螺儀靈敏度:131 / 65.5 /32.8 /16.4
◎ 加速度範圍:±2 / ±4 / ±8 / ±16g
◎ 引腳間距2.54mm
為了偵測物體位置與方向
使用慣性感測器(Inertial Measurement Unit ,IMU)
MPU-6050’s Function
陀螺儀(Gyroscope)
又名角速度計,為角慣性感測器,用於感測圍繞某個軸發生
的旋轉,測量以度/秒為單位的角速度,
偵測物體水平改變的狀態,無法計算物體移動的激烈程度
加速度計(Accelerometer)
藉由檢測施加在其中一個軸向的作用力來間接測量加速度。加速
度計常見的檢測方法是電容檢測
只能偵測物體的移動行為,無法偵測物體角度改變的能力
Balance
Control
PWM
User Control
(Remote)
Height Control
Direction Control
Pitch/Roll
Filter
MPU-6050
Flight Posture
(Change)
software
ESC/BLDC
Signal Correction(1/2)
 Why do I need a filter?
慣性感測元件實際所取得的數據會受雜訊、環境等因素影響,
因此會有誤差產生.
 實際面臨問題:
加速度計:量測僅長期數據較穩定(初期易受雜訊影響) 需要濾波處理
陀螺儀:長時間數據會產生漂移  需要利用加速度計修正
以濾波演算法處理
Kalman filter 卡爾曼濾波
Complementary Filter 互補式濾波
採用Complementary-filter方法修正誤差.
Signal Correction(2/2)
Balance
Control
PWM
User Control
(Remote)
Height Control
Direction Control
Pitch/Roll
Filter
MPU-6050
Flight Posture
(Change)
software
ESC/BLDC
Motor Selected
 馬達分類概圖
選擇直流無刷馬達
 直流馬達分類
最大差異:電刷有無
BLDC’s Property
特性:
 電子式(無電刷)進行電流換相.
 轉速同DC馬達由繞組線圈的電壓決定.
 需透過驅動電路,將直流轉為三相交流.
 分外外轉子與內轉子兩種.
Type 內轉子 外轉子
構造
轉子在
線圈內
轉子在
線圈外
極數 普通
較多
(扭力較大)
轉速 較高 普通
外轉子BLDC示意圖
考量機體與裝置重量,
使用外轉子BLDC
轉子差異概述:
BLDC’s Driver Circuit
 雙極型BLDC的驅動電路一般由MCU和三相橋式電路組成.
 市面現成BLDC驅動電路,一般稱電子調速器(ESC)或
電子變速器.
電子變速器外觀
PWM Control(1/2)
脈波寬度調變(Pulse Width Modulation ,PWM)
線圈通電時MOSFET依照PWM訊號開關,可在不改變驅動電路
供電電壓的情形下,利用調整duty對馬達進行轉速控制.
、、
Duty: 為PWM方波週期內導通的百分比
period
duty
BLDC’s Phase change(0~60゚)
雙極性BDLC採用60度換相, 目前主要換相邏輯有120度導通和180度導通2種.
120度較為常用.每一相只導通兩個電晶體;三相電流亦只有兩相電流流通.
U
V
W
Angle 0~60
Q1 1
Q2 0
Q3 0
Q4 0
Q5 0
Q6 1
BLDC Phase change(60~120゚)
V
W
Angle 60~120
Q1 1
Q2 1
Q3 0
Q4 0
Q5 0
Q4 0
雙極性BDLC採用60度換相, 目前主要換相邏輯有120度導通和180度導通2種.
120度較為常用.每一相只導通兩個電晶體;三相電流亦只有兩相電流流通.
U
BLDC Phase change(120~180゚)
V
W
Angle 60~120
Q1 0
Q2 1
Q3 1
Q4 0
Q5 0
Q4 0
雙極性BDLC採用60度換相, 目前主要換相邏輯有120度導通和180度導通2種.
120度較為常用.每一相只導通兩個電晶體;三相電流亦只有兩相電流流通.
U
BLDC Phase change(180~240゚)
V
W
Angle 60~120
Q1 0
Q2 0
Q3 1
Q4 1
Q5 0
Q4 0
雙極性BDLC採用60度換相, 目前主要換相邏輯有120度導通和180度導通2種.
120度較為常用.每一相只導通兩個電晶體;三相電流亦只有兩相電流流通.
U
BLDC Phase change(240~300゚)
V
W
Angle 60~120
Q1 0
Q2 0
Q3 0
Q4 1
Q5 1
Q4 0
雙極性BDLC採用60度換相, 目前主要換相邏輯有120度導通和180度導通2種.
120度較為常用.每一相只導通兩個電晶體;三相電流亦只有兩相電流流通.
U
BLDC Phase change(300~360゚)
V
W
Angle 60~120
Q1 0
Q2 0
Q3 0
Q4 0
Q5 1
Q4 1
雙極性BDLC採用60度換相, 目前主要換相邏輯有120度導通和180度導通2種.
120度較為常用.每一相只導通兩個電晶體;三相電流亦只有兩相電流流通.
U
Control System
(Raspberry Pi B+)
BLDC Driver (ESC*4) BLDC*4
I2C
PWM Extend
(PCA9685)
4 PWM
Remote
Battery
(Li-Po)
I2CNotebook
(with Putty)
+12v
+5v
Quadrotor
IMU Module
(MPU-6050)
Step-Down
Voltage
Regulator
+12v
WIFI
Step-Down Voltage Regulator
Raspberry Pi B+ ~600mA
USB-WiFi 500mA (max)
Li-Po Battery
Raspberry Pi B+
+
USB-WiFi
+12V +5V
LM2576
5V/3A(max)
 LM2576穩壓降壓電路
 實際電路圖
利用LM2576降壓穩壓電路
可符合需求
>1A
78XX
 鋰電池降壓供電給Pi
Reference
 i2c相關資料
 維基百科
 成大資工wiki
 Gordons Projects website
 PWM&BLDC相關資料
 Slideshare 網站(馬達基本認識與BLDC電路驅動實驗
DMP electronics inc)
 HT46R47 可調速無刷直流馬達驅動器應用
 曾逸敦教授網站資料
 降壓穩壓電路
 Texas datasheet
 IMU&濾波相關資料
 http://www.pieter-jan.com/node/11
 http://blog.gtwang.org/
 電子工程專輯:加速度計和陀螺儀感測器:原理、檢測與應用
 http://robottini.altervista.org/
 艾鍗科技講師群與研發團隊
 背景圖陳爾冬 youtube
 http://www.bigfactory.com.hk/wp/quadcopter/
Thank You

Raspberry Pi專題製作四旋翼飛行器

Editor's Notes

  • #12 MPU6050 包含三軸加速度計與三軸陀螺儀.主要用來獲取四旋翼的角位置,以達四旋翼穩定控制的目的.
  • #15 受到感測器雜訊、微機電製程技術等影響,感測器所讀取的原始數據皆會有誤差產生.使用數學方程補償 Complementary Filter 互補式濾波 angle=0.98*(angle + gyrData*dt )+0.02*( accData) 互補式濾波較易實作(無須提供環境變數 陀螺儀數據被集成每時間步與當前角度的值。在此之後它是結合來自加速度計(已處理用的atan2)低通數據。常數(0.98和0.02)要加起來1,但當然可以過濾適當改變來調整。
  • #18 直流馬達轉速不受電源頻率限制可以製作出高速馬達,速度控制只需用PWM做簡易控制 無刷馬達無碳刷磨耗問題,且較安靜與省電.
  • #19  參數意義: kV:每1伏特電壓於空載時的轉速 RPM:表示一分鐘轉圈數 例:一顆BLDC顯示920KV, 則表示 該馬達於空載時,每伏特920 RPM ,若是10V, 則920*10=9200rpm
  • #20 雙極型驅動電路可產生交流(線圈內為直流電時, 稱為單極性BLDC ,早期較多; 考量效率問題,目前以雙極性居多) ESC規格主要有最大耐壓及最大耐電流,這個規格主要是由上面的MOSFET所限制.