2016-01-07 57 views
0

我正在開發無人機項目,目前正在選擇使用的電路板。是否有可能使用一個Arduino納米的這些都是需要:Arduino無人機項目

  • 陀螺儀和加速度計
  • 晴雨表(高度計)
  • 數字磁力
  • 的WiFi(發送遙測處理)
  • GPS模塊
  • 4電機

PS(當然):

  1. 我對Arduino一無所知。不過,我擁有良好的ASM,C/C++,編程背景,並且我曾經設計過模擬電路。
  2. 我想避免使用現成的飛行控制器。
+0

您將在Arduino Nano上用盡您所描述的需求列表。速度觀點,也許沒問題。 – Trevor

+0

spi內存怎麼樣?它會解決內存問題嗎? –

+0

這些芯片有三種類型的內存。閃存,SRAM和EEPROM。我懷疑你會用完的是閃存,可能是SRAM。您可以使用SPI RAM來幫助SRAM部分,但閃存需要在芯片上。一個很好的網頁是https://www.arduino.cc/en/Tutorial/Memory這是一個很簡單的解釋。關於SPI的另一部分是再次使用引腳。你有沒有將它們映射出來,看看什麼會一起工作呢? (請參閱https://www.arduino.cc/en/Main/ArduinoBoardNano作爲切入點)。如果你不瞭解零件,很樂意提供幫助。 – Trevor

回答

2

引腳數量應該不會太大的問題,如果使用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個字節可用。

當然不是說這很容易做,每個方面都必須進行優化,但看起來不可能。

2

這將是一個把所有這些工作納入納米技巧。我建議你看看http://ardupilot.com/他們已經圍繞ARM芯片(與Arduino相同)建立了很多酷思考,並​​且還有一些非常活躍的社區。

+0

爲什麼這會是一個詭計?由於處理能力?我正在研究同一個項目,並且真的很想使用納米。 :) –

+0

@ErlendD。我猜arduino輸出的數量將是第一個問題 –

1

即使你沒有用完引腳(你可能會用完),在你寫電機和GPS代碼的時候,你會用完RAM。

這甚至沒有進入CPU速度,這是遠遠不夠。正如在其他答案中提到的那樣,使用Cortex M-x CPU會更好。

可以說,你可以使用一些的Nano,每個任務之一,但鏈接在一起將是一個不錯的混亂......

相關問題