neděle 29. července 2012

ARM STM32F

Další činnost byla zaměřena na 32b ARM mikroprocesory, kterými je letoun osazen. Prioritou je nanoQUAD co nejrychleji dostat do stavu schopného letu, proto další kroky vedou k navázání na již hotové a zprovoznění nezbytných částí pro let.

Nejprve bylo třeba seznámit se prostřednictvím dokumentací se základními informacemi, jako je princip práce s registry a jejich rozvržení, s periferiemi, zdrojem hodin (RCC) atd. Následně došlo k samotnému programování (v jazyce C). Z praktických důvodů se pro toto seznámení s STM32 zvolil vývojový kit DISCAVERY.

Součástí systému stabilizace je kamera TCM8230MD, která slouží k detekci pohybu v horizontální rovině. Kamera je připojena k STM32F103, který komunikuje s řídícím STM32 prostřednictvím sběrnice I2C. Jelikož konfigurace kamery je řešená přes stejnou sběrnici, kterou použitý STM32F103 disponuje pouze jednou, I2C kamery bylo připojeno na volné I/O piny mikroprocesoru. Z tohoto důvodu bylo třeba vytvořit I2C softwarově a k tomuto účelu byla napsána knihovna (využívající časovač) nakonfigurovatelná na libovolné I/O piny.

Dále je třeba provést konfiguraci kamery, zprovoznit paralelní komunikaci s kamerou a implementaci potřebného algoritmu ke zpracování obrazu.

neděle 15. července 2012

Horizontální sonar


Práce na projektu začala obecným seznámením s hardwarem a principy, které budou použity při řízení a pro které je hardware také navržen. Jednalo se zejména o možnosti reprezentací polohy v prostoru (quaternion, rotační matice, Eulerovy úhly), stručný popis tvorby modelu v MATLABu a vysvětlení práce horizontálního sonaru.

Horizontální sonar tvoří všesměrový ultrazvukový vysílač a čtyři přijímače, které budou vůči sobě natočené o 90°. Obvod přijímače je založený na širokopásmovém mikrofonu a frekvenční násobičce, díky které bude provedena selekce echa od šumu a jiných nežádoucích signálů (rušení od motorů atd.).  Buzení ultrazvukového vysílače bude obdélníkový signál s neměnnou amplitudou a frekvencí, která bude odpovídat násobku frekvence buzení motorů.

Frekvenci signálu, který bude detekován, nastavíme obdélníkovými signály o požadovaném kmitočtu, vzájemně posunuté o ½ π, můžeme si to představit jako sinovou a kosinovou služku. Vynásobením a následnou integrací obou složek získáme normy obou vektorů (které jsou vzájemně posunuté o ½ π). Z těchto informací jednoduše spočítáme fázový posun signálu, díky kterému zvýšíme rozlišovací schopnost sonaru pod vlnovou délku, na které pracuje. Současně vektorovým součtem ověřujeme kmitočet přijatého signálu.
Zmíněný princip byl simulován MATLABem, schéma můžeme vidět zde:



Po vynásobení je signál přiveden k filtrům, jejichž výstupem je střední hodnota vynásobeného signálu. Úhel, který odpovídá fázovému posunu přijatého signálu a vektorový součet (norma), závisející na kmitočtu tohoto signálu je třeba odečíst s ohledem na kvadrant, ve kterém se vektor nachází, informaci o kvadrantu jednoduše získáme pomocí znamének obou integrálů.
Po rozboru principu činnosti sonaru, proběhlo měření směrovosti přijímače a jeho oživování. Směrovost byla měřena následovně:
Senzor byl umístěn na podložku s vyznačenými úhly (po 5,625°), jednalo se o úhly vůči ose, ve které se nacházel ultrazvukový vysílač. Otáčením přijímače a vzdalováním vysílače (po 5cm), byly získány potřebné hodnoty k zjištění směrovosti přijímače. Hodnoty byly zapsány ve formě peak-to-peak (měřeno osciloskopem na výstupu OZ IC100-A).

Postup oživování:

Byl naprogramován jednoduchý generátor dvou obdélníkových signálů o frekvenci 40kHz (frekvence testovacího ultrazvukového vysílače) s fázovým posunem ½ π. Oba signály byly přivedeny na vstupy 3 a 6 (vstupy switchů), na vstup 5 byla přivedena reference 1.5V (polovina napájecího napětí OZ - pro symetrické zesílení). Po přivedení napájení a vyslání několika ultrazvukových impulzů byly měřeny výstupy senzorové desky a některé uzly obvodu.
Měřením byl odhalen zkrat na desce, zkrat byl odstraněn a upravila se časová konstanta filtrů (změna kapacity kondenzátorů na 1nF). Oživení bylo úspěšné.
Další kroky povedou k seznámení se s MCU na řídící desce (ARM Cortex-M4).

neděle 8. července 2012

Motivace



Projekt nanoQUAD začal hardwarovým návrhem Ing. Jaromíra Dvořáka roku 2011 pro ČVUT FEL, DCE AA4CC. V současnosti je vyvíjen software a pracuje se na oživení, prozatím dílčích částí letounu.

Projekt si klade za cíl návrh a studium řízení formací těchto letounů. Aby to bylo možné, je nanoQUAD osazen modulem GPS, vertikálním ultrazvukovým dálkoměrem, horizontálním sonarem, vertikálním infračerveným dálkoměrem, který dokáže měřit i intenzitu osvětlení, vertikální kamerou, 3D gyrem, 3D akcelerometrem, 3D magnetometrem a tlakoměrem. Komunikace je řešena pomocí RF modulu NRF24L01, který poskytuje přenos dat téměř bez latence, což je výhodné při vzájemné detekci letounů ve formaci. Rozměry nanoQUADU bez vrtulí jsou 105x105mm (171x171mm s vrtulemi), letová hmotnost v současné konfiguraci činí 55g a maximální tah motorů je 1,1N.

Proč kvadrotor? Oproti ostatním vznášedlům a vrtulníkům je toto řešení výhodné z hlediska mechaniky, s výjimkou rotorů, neobsahuje žádné pohyblivé části. Není třeba naklápění listů vrtule, ani celého rotoru, jak je tomu například u tří vrtulové varianty, kde se moment vzniklý rotací vrtulí kompenzuje naklápěním jednoho z motorů. V případě sudého počtu rotorů, lze vzniklý moment kompenzovat rozdílným smyslem otáčení protilehlých motorů. Kvadrotor je tak mechanicky jednoduchým a ekonomicky výhodným řešením pro tuto úlohu.

S podobnou problematikou jsem se už zabýval, konkrétně se jednalo o trikoptéru. Na tomto projektu mě zaujala velikost a současně možnosti navrženého hardwaru. Také let ve formaci považuji za zajímavou úlohu, která lze rozdělit na pod úlohy využitelné i pro jiné aplikace.