摘要:\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F91f028ab2cac4d9f8445b2108a2687c4\" img_width=\"560\" img_height=\"392\" alt=\"一顆MCU可以搞定無人機的電機驅動+飛控算法\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003Ei.MX RT飛行學習板,提供多種配套軟件,包括:ZLG-FOC電機庫、簡易飛行控制算法、i.MX RT外設基礎例程等。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fe2509ff127b14c26a9b7f1144afb51f6\" img_width=\"1080\" img_height=\"963\" alt=\"一顆MCU可以搞定無人機的電機驅動+飛控算法\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E下圖則是i.MX RT飛行學習板的電路結構:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E核心是i.MX RT1052跨界處理器。

"\u003Cdiv\u003E\u003Cp\u003E\u003Cstrong\u003E來源 | 嵌入式資訊精選\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cblockquote\u003Ei.MX RT跨界處理器具有實時操作和應用處理器級的功能,其已經實際應用在智能交互、工廠自動化、智能支付終端、語音處理和語音識別等領域,這些應用場景已經足以證明i.MX RT的強大與廣泛的適應性。除了前述的應用方向之外,今天小編再爲大家介紹一個典型的應用場景——無人機。\u003C\u002Fblockquote\u003E\u003Cp class=\"ql-align-justify\"\u003E玩無人機的小夥伴們都知道,四旋翼無人機的BLDC電調電機,通常需要單獨的MCU進行控制,如果用更加節能的FOC控制方式,那麼對MCU的性能要求就比較高。一般講,這顆MCU除去控制電機外,還會處理一些其它事情並留有餘量,所以生產無人機的廠商,大都喜歡用Cortex-M4的MCU來做FOC控制(NXP的高主頻+硬件除法器的M0+也完全可以勝任),也就是四旋翼無人機需要四顆較高性能的MCU,來分別控制四個電機。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E除此之外,還需要一個至少是Cortex-M4級別的MCU做飛控,它需要讀取傳感器數據、控制飛行姿態、完成通訊等任務。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E所有這些控制和操作,現在用一顆i.MX RT就都可以搞定了。i.MX RT性能強悍,以Cortex-M7爲內核,主頻高達600MHz,片內512KB RAM,同時具有4組PWM模塊、適合多電機模擬信號採樣的ADC_ETC模塊,及豐富靈活的通訊接口,所以搞定飛控+4個BLDC電機控制自然不在話下。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們接觸到很多使用i.MX RT做無人機的實例,下面爲各位展示兩個優秀的方案。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E基於i.MX RT1052的飛行學習板\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E這是一個由ZLG技術研發中心設計的,“4個無刷電機FOC驅動 + 飛控算法”的單芯片解決方案,按競賽級設計,有實力在無人機飛行大賽上爭金奪銀的!\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E其中的ZLG-Soar飛控軟件庫具有如下特點:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E採用四元數互補濾波融合算法,和基於角速度環與角度環的串級PID姿態控制算法,在i.MX RT下控制頻率可達2KHz(一般飛控頻率爲0.5KHz)。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E支持自動校準功能,支持9軸或6軸IMU(慣量測量傳感器)。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E支持SBUS航模串口協議,適用於支持該協議的任意無線收發器。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E支持常用的IIC\u002FSPI\u002FUART接口,可以擴展不同的傳感器。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E飛行學習板可以通過藍牙模塊,使用NXP的FreeMaster軟件邊飛邊進行參數的調試。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E提供的軟件接口,可以讓用戶快速移植自己的飛控軟件,或BetaFlight,ClenFlight,PX4,OpenPiliot,RaceFlight等軟件。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E下圖是i.MX RT飛行學習板的真身!產品級軟硬件設計,既可直接用於無人機,也可用於多電機FOC的應用評估,例如穩拍器、機器人、工業縫紉機等等。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fe2509ff127b14c26a9b7f1144afb51f6\" img_width=\"1080\" img_height=\"963\" alt=\"一顆MCU可以搞定無人機的電機驅動+飛控算法\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E下圖則是i.MX RT飛行學習板的電路結構:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E核心是i.MX RT1052跨界處理器;\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E外接4路功率模塊,用無感FOC算法驅動4個無刷電機;\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E外擴IMU傳感器和氣壓計,可同時運行飛行控制算法;\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E同時預留了4個油門脈衝接口,可外接飛行控制器,學習板僅作爲“4無刷電機FOC驅動”使用。默認整機7-12V\u002F16A,可根據需求修改。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F91f028ab2cac4d9f8445b2108a2687c4\" img_width=\"560\" img_height=\"392\" alt=\"一顆MCU可以搞定無人機的電機驅動+飛控算法\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003Ei.MX RT飛行學習板,提供多種配套軟件,包括:ZLG-FOC電機庫、簡易飛行控制算法、i.MX RT外設基礎例程等。用戶可快速搭建無人機產品,或其他多電機FOC的產品,例如穩拍器、機器人、工業縫紉機、IoT創新產品等等。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E基於i.MX RT1052的開源AutoQuad飛控\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E這是一位網絡牛人(姑且稱他爲老J)參加RT-Thread應用作品徵集賽的一個作品。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003EAutoQuad是德國的一款老牌開源飛控(硬件閉源),其旨在提供穩定、動態飛行和自動駕駛功能的飛控控制器。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E由於AutoQuad硬件閉源的特性,國內的玩家很少,但AutoQuad 的ukf算法“獨步天下”,絕對是一絕。15年時老J自己做出了Autoquad的M4版本硬件,並可以運行官方源碼。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E2017年時他又將Autoquad移植到MDK環境下,並且將其RTOS替換爲RT-Thread。後續玩這個玩了蠻久時間。他的體會是這個版本的AutoQuad由於UKF算法佔用了很多CPU資源,使得整個系統CPU佔用率太高,再者就是片內RAM資源捉襟見肘。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E對於這個版本的AutoQuad目前有挺多模友想繼續深入的開發,比如網名爲“我的世界觀”的網友,想將L1自適應控制算法加入到其中,但這個L1自適應算法也是極耗費CPU資源的。在這個背景下,老J開始着手了AutoQuad在i.MX RT1052上的實現,以期留出足夠的資源來給模友們做深入開發,同時也藉機熟悉下RT-Thread的3.x版本。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E硬件板子目前基於野火1052 mini開發板,傳感器是從馬家買的現成模塊,採用飛線的形式固定在開發板上(後期會重新設計一款小的適合飛控的板子)。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F10663e3cc77e4bb0acc07c3820f1bcb4\" img_width=\"384\" img_height=\"254\" alt=\"一顆MCU可以搞定無人機的電機驅動+飛控算法\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E主控+傳感器\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F1c9feba9d970484a89dc8a31ce17a372\" img_width=\"512\" img_height=\"288\" alt=\"一顆MCU可以搞定無人機的電機驅動+飛控算法\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E全部的連接都使用飛線\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F7cf4f84750e646a8b5ae5bb232432926\" img_width=\"512\" img_height=\"288\" alt=\"一顆MCU可以搞定無人機的電機驅動+飛控算法\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E完成後的效果\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E系統框圖如下\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fd2bc1970974048b98c5d36ee6061ac96\" img_width=\"833\" img_height=\"441\" alt=\"一顆MCU可以搞定無人機的電機驅動+飛控算法\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E本設計的特點是:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E首先,作者對AutoQuad非常熟悉,已經清楚地看到了軟件對CPU高性能,與對大容量RAM的要求。剛好i.MX RT可以在這兩方面滿足他的升級要求。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E其次,作者使用了現成的實時操作系統——RT-Thread,及其RT-Thread在i.MX RT上的現成BSP,依託i.MX RT豐富的外設接口和RT-Thread提供的標準設備驅動框架,能夠快速地移植整個軟件系統到i.MX RT平臺上。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E第三,整個硬件環境尤其是主控板,採用了現成的野火開發板,省卻了研究適配開發i.MX RT1052硬件平臺的時間和精力。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003ENXP在i.MX RT105x上的方案\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E以上兩個方案都是充分地利用了i.MX RT1052的高性能、多端口和方便開發的特性,用一顆MCU實現了以前需要4-5顆MCU,甚至更多MCU,才能實現的功能,大大地簡化了硬件系統的複雜度,即降低了總體成本又縮小了系統的整體尺寸,同時減小了重量和功耗,進一步提高了無人機的性價比。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E目前NXP還沒有在i.MX RT上的專用無人機方案,在多電機應用方面,有一個單片i.MX RT同時驅動三個電機的機械臂方案,如下圖所示:\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Faad31c0f0c0f43e19960efe284e72496\" img_width=\"1080\" img_height=\"1002\" alt=\"一顆MCU可以搞定無人機的電機驅動+飛控算法\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E接下來會通過攝像頭實時自動地識別物體,再直接驅動機械臂執行動作,所有這些也將會通過i.MX RT實現。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003Ei.MX RT電機控制第三方學習板預告\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E恩智浦有個MAPS學習評估板系列,是按照原來的TOWER板重新設計的,目前有廣受客戶歡迎的MAPS-DSC系列,同時支持雙電機的伺服或步進。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E如果需要評估i.MX RT的電機控制性能,除了官方發佈的評估板之外,第三方合作伙伴正在建造中的MAPS-RT是個非常實用的評估板,不但支持伺服或步進電機,還可以支持工業中廣泛使用的EtherCAT(與友商合作),值得期待。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Ffb37f66a10ca4cee96d0a9aa94808d83\" img_width=\"598\" img_height=\"619\" alt=\"一顆MCU可以搞定無人機的電機驅動+飛控算法\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F89ace5401d13484e930c5ac8913ca65b\" img_width=\"605\" img_height=\"807\" alt=\"一顆MCU可以搞定無人機的電機驅動+飛控算法\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E"'.slice(6, -6), groupId: '6716422732600312328
相關文章