Sterownik modelu helikoptera na STM32 z manipulatorami MEMS

Prezentowany w artykule projekt to zdalny sterownik modelu helikoptera, bazujący na sensorach MEMS, który umożliwia sterowanie lotem modelu helikoptera za pomocą ruchu dłoni. W projekcie wykorzystano model helikoptera elektrycznego o nazwie Syma 107. Część elektroniczną sterowników inercyjnych zaimplementowano w dwóch zestawach STM32F4DISCOVERY. Działanie całego systemu przedstawiamy na filmie poniżej.

 

 

 

Platforma sprzętowa projektu składa się z dwóch zestawów STM32F4DISCOVERY ( fotografia 1 ) oraz zdalnie sterowanego helikoptera Syma 107, którego wygląd pokazano na fotografii 2.

 

Fot. 1. Wygląd zestawu STM32F4DISCOVERY

Fot. 1. Wygląd zestawu STM32F4DISCOVERY

 

Fot. 2. Wykorzystany w projekcie zdalnie sterowany model helikoptera - Syma S107

Fot. 2. Wygląd modelu helikoptera Syma 107, który został wykorzystany w przykładowym projekcie

 

W celu poznania charakteru wysyłanego sygnału z nadajnika do helikoptera pozyskano źródła informacji w Internecie (np.: http://www.rcgroups.com/forums/showthread.php?t=1417249&page=3 oraz http://www.avergottini.com/2011/05/arduino-helicopter-infrared-controller.html ). Następnie zweryfikowano zdobyte informacje za pomocą oscyloskopu analizując postać ramki danych. Postać ramki danych otrzymanej na ekranie oscyloskopu przedstawiono na rysunku 3.

 

Rys. 3. Ramka danych sterujących lotem helikoptera

Rys. 3. Ramka danych sterujących lotem helikoptera

 

Ramka danych ma następującą budowę:

START

0

7 bitów YAW

0

7 bitów PITCH

C

7 bitów THROTTLE

0

7 bitów ADJUST(YAW)

STOP

 

gdzie:

START – znacznik początku ramki danych;

7 bitów YAW – wartość prędkości kątowej YAW

(0-max prędkość przeciwna do ruchu wskazówek zegara patrząc z góry na helikopter, 63-prędkość zerowa, 255-maksymalna prędkość zgodna z ruchem wskazówek zegara);

7 bitów PITCH – wartość prędkości kątowej PITCH

(0-max prędkość pochyłu do tyłu, 63-prędkość zerowa, 255-maksymalna prędkość pochyłu do przodu);

C – wybrany kanał komunikacyjny;

7 bitów THROTTLE – wartość prędkości obrotowej głównego silnika

(0-prędkość zerowa, 255-prędkość maksymalna);

7 bitów ADJUST(YAW) – wartość dostrojenia prędkości kątowej YAW

(0-max dostrojenie przeciwne do ruchu wskazówek zegara patrząc z góry na helikopter, 63-zerowe dostrojenie, 255-max dostrojenie zgodne z ruchem wskazówek zegara);

STOP – znacznik końca ramki danych;

Każde pole jest kluczowanym przebiegiem prostokątnym o częstotliwości 38 kHz. Poniżej przedstawiono zależności czasowe poszczególnych pól ramki danych:

Nazwa pola

Czas trwania przebiegu prostokątnego 38 kHz [us]

Czas trwania przerwy [us]

START

2000

2000

Bit o wartości 0

300

300

Bit o wartości 1

300

600

STOP

300

40000

 

Do pobrania

O autorze