我正在開發無人機項目,目前正在選擇使用的電路板。是否有可能使用一個Arduino納米的這些都是需要:Arduino無人機項目
- 陀螺儀和加速度計
- 晴雨表(高度計)
- 數字磁力
- 的WiFi(發送遙測處理)
- GPS模塊
- 4電機
PS(當然):
- 我對Arduino一無所知。不過,我擁有良好的ASM,C/C++,編程背景,並且我曾經設計過模擬電路。
- 我想避免使用現成的飛行控制器。
我正在開發無人機項目,目前正在選擇使用的電路板。是否有可能使用一個Arduino納米的這些都是需要:Arduino無人機項目
PS(當然):
引腳數量應該不會太大的問題,如果使用I²C傳感器,他們會只是全部共享相同的兩個引腳(SCL,SDA)。
我同意RAM可能是一個限制,處理能力(30 MIPS的arduino uno)應該是足夠的。
在arduino巨型項目上,APM項目多年來取得了巨大的成功。
我相信有可能用Arduino nano和幾個I²C傳感器+ GPS做一個非常簡化的無人機飛行控制器。
但即使使用更先進的微控制器,它也不是一項簡單的任務。
***如果您仍想嘗試實驗,請查看openlrs項目:https://code.google.com/p/openlrs/。它很古老(也有幾個派生項目),但它運行在類似於arduino uno(atmega328)的硬件上。它提供RC控制,帶有i²C陀螺儀的四軸飛行控制器,加速度計(基於wii遙控器)和氣壓計。
它也從GPS解析數據,但afaik它不提供自主導航,但應該可以添加它,而不需要太多額外的工作。
編輯:關於可用的RAM。
據我所知,第一眼看起來2kb的RAM似乎是非常少量的。它的一部分已被Arduino使用,例如串行庫提供兩個64字節的FIFO,使用一些RAM。 Wire(I²C)庫相同,但金額較小。它還爲堆棧和臨時變量使用一些RAM,即使對於浮動操作等簡單任務也是如此。總而言之,它將使用500個字節。
但是真的需要多少內存? - 它有幾個PID調節器,假設每個調節器都使用10個浮點參數來存儲PID參數,當前值等。因此,它給每個調節器40個字節,假設我們需要10個調節器。我們應該少一些,但我們來舉個例子吧。這就是400字節。 - 然後它需要解析GPS信息。 GPS消息最多80個字節。讓我們允許80個字節的緩衝區進行GPS解析,即使它可以在不進行緩衝區存儲的情況下進行大部分「即時」分析。 - 爲GPS和傳感器數據保留一些空間,300字節看起來很慷慨,因爲我們不需要將它們存儲在浮游物中。但我們可以在其中存儲當前的GPS座標,高度,衛星數量,俯仰,滾動等。 - 然後在某些位置顯示應用數據,例如家庭GPS座標,當前模式,控制桿位置,伺服值等。
其餘主要是計算,從當前的GPS座標和目標座標到目標高度,航向等。然後將PID輸入計算出的俯仰和俯仰。但是這不需要額外的RAM。
所以我會說可以做一個非常簡單的飛行控制器使用1280字節。如果我太低或忘記了某些方面,仍然有超過700個字節可用。
當然不是說這很容易做,每個方面都必須進行優化,但看起來不可能。
這將是一個把所有這些工作納入納米技巧。我建議你看看http://ardupilot.com/他們已經圍繞ARM芯片(與Arduino相同)建立了很多酷思考,並且還有一些非常活躍的社區。
爲什麼這會是一個詭計?由於處理能力?我正在研究同一個項目,並且真的很想使用納米。 :) –
@ErlendD。我猜arduino輸出的數量將是第一個問題 –
即使你沒有用完引腳(你可能會用完),在你寫電機和GPS代碼的時候,你會用完RAM。
這甚至沒有進入CPU速度,這是遠遠不夠。正如在其他答案中提到的那樣,使用Cortex M-x CPU會更好。
可以說,你可以使用一些的Nano,每個任務之一,但鏈接在一起將是一個不錯的混亂......
您將在Arduino Nano上用盡您所描述的需求列表。速度觀點,也許沒問題。 – Trevor
spi內存怎麼樣?它會解決內存問題嗎? –
這些芯片有三種類型的內存。閃存,SRAM和EEPROM。我懷疑你會用完的是閃存,可能是SRAM。您可以使用SPI RAM來幫助SRAM部分,但閃存需要在芯片上。一個很好的網頁是https://www.arduino.cc/en/Tutorial/Memory這是一個很簡單的解釋。關於SPI的另一部分是再次使用引腳。你有沒有將它們映射出來,看看什麼會一起工作呢? (請參閱https://www.arduino.cc/en/Main/ArduinoBoardNano作爲切入點)。如果你不瞭解零件,很樂意提供幫助。 – Trevor