有想法就去做的我,又一次失敗了

半個月前

半個月之前,我忙於WEB開發,結果因爲各種原因啥也沒搞出來,搞的代碼最終是直接github開源,希望能幫到需要的人吧湖理大助手微信小程序後端

大學-學習路

最近的半個月裏,我開始了一段新的征程,可能這是回到了當初。大一下學期的時候,我在老師的推薦下,去了學校的創客空間。在那看到了新奇的東西,無人機。我從來都對新奇的東西有無限的渴望,所以我加入了。開始了我最早的硬件方面的學習。從C51到STM32到放棄,最終我離開了那裏,也不知道什麼原因。我當時的內心是,自己不怎麼喜歡搞硬件,其實我在那也學到了很多。還是很感謝那的老師。
在大二下學期開始,我開始了web開發的學習,第一次接觸到了這些。在一學期的時間裏面,我在PHP都不大會的情況下,通過Laravel學習了web方面的開發。直到現在,大三下學期結束了。我這段時間可以說一直在搞跟HTTP有關的事情。

2019年7月19 : 關於新的征程

這個征程爲什麼說是,可能這是回到了當初。因爲,新的征程和無人機有關。大一的時候,第一次看到無人機,瞭解到無人機,直到現在,我對他依然知之甚少。我也不知道什麼時候,下的決定。想自己開發一套飛控系統,並且在上面架設有趣的應用。於是開始了這段探索。

選擇

因爲,我在硬件方面的知識沒有太多的積累,於是。我想通過偏向軟件的方式來進行飛控的開發。而且正好,我手邊有一塊星瞳的ESP32的支持micropython的板子。我當時心中的想法就是用他吧。好像也沒人用這個開發飛控。也聽說過,別人說micropython不適合進行飛控開發,但是我還是想試試。

歷程

在這裏插入圖片描述
PAChewie項目Github
我把這個項目命名爲PAChewie。這個名字來源於復仇者聯盟裏面的那隻貓Chewie(噬元獸)。P代表是用的python,當然是micropython。A是Autopilot,無人機飛控的意思。

整個過程其實一直都非常的艱難,我從網上的各種博客中尋找總結資料。從開始的查需要些什麼模塊,什麼配件。然後,最初的用micropython驅動電調,再到,姿態傳感器的數據的獲取,再到PID控制,PID參數整定。在PID控制的地方,我做了選擇,畢竟考慮到我現在對飛控各種知識的學習並不完整,所以我的PID庫是選擇的直接從其他的飛控上進行移植的,把c語言的版本翻譯成micropython的。最終在PID這一步,我終止了這個項目。因爲,我所用的esp32,使用的600 DMIPS的240 MHz雙核Tensilica LX6微控制器。但是,我發現用這樣強大的微控制器通過micropython來進行PID控制時,在姿態控制環,卻連200Hz都達不到,大概80Hz。更別說加上了,其他模塊之後。這直接導致了我的PID參數不管怎麼調整,都無法調整到比較理想的地步。而且由於micropython不支持在中斷服務程序中,進行內存的申請。並且不支持搶佔式的優先級中斷。更加讓我感覺micropython不適合來進行飛控開發。因爲,在這種實時性要求高的場景下,我個人認爲搶佔式的優先級中斷,是一個很好的解決方式。最終我放棄了,通過micropython的途徑。

難道micropython做不到?

我不這麼認爲,其實是最得到的,因爲,micropython支持stm32的H系列的高性能處理器。我所用的esp32和pyboard(stm32f405rgt6)性能不足。但是H系列來說,我認爲是足夠的。而且,micropython本身底層採用的是 c語言實現。那麼其實需要封裝FreeOS那樣的能支持搶佔式的優先級中斷,還是可以做到的。性能問題通過更高性能的處理器可以解決。但我認爲,這並不是好的解決途徑,使用c/c++開發,甚至於使用stm32f10系列的低端處理器,都可以做到比較穩定的飛行控制,而且移植FreeOS的搶佔式優先級中斷,對我來說是比較困難的事情,因爲,我對STM32並不太瞭解。這將花費我大量的時間,本末倒置,會使得最終走偏。到目前爲止,我認爲micropython的發起者,也考慮到了python語言在嵌入式方面的優缺點。所以,纔不會移植像這種搶佔式優先級中斷。而且在關於定時器那一塊的實現,並不是功能那麼強大,有許多限制。從這一點可以看出,micropython的目標,應該是那種非實時的應用級場景。飛控的頂層應用方面倒是可以用python。

接下來我要做的

其實從開始到現在,雖然我沒有通過micropython最終實現飛控系統。但是,在這途中我還是學到了許多關於無人機的飛控的知識,這些都是我的收穫。這對於我的後續開發並不是沒有意義的,這些都是有意義的過程。

接下來我打算通過C/C++的方式,使用自己的學習方式,來邊開發飛控,邊學習STM32的開發。星瞳的stm32的板子不能浪費,雖然店家不提供資料。但是,板子應該還是可以用的。比較引腳圖還是有的。結合芯片資料應該沒什麼大問題。只有有耐心,慢慢來吧。項目的名稱的話,還是叫Chewie吧,我很喜歡這個名字,也很喜歡貓咪,以後一定也要養幾隻。貓咪也叫Chewie。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章