Projekt Sterowniki robotów Dokumentacja techniczna Interfejs zdalnego sterowania robotem klasy minisumo InZdaSter (2,0) Skªad grupy (VI): Dawid Marszaªkiewicz, 28665 Piotr Portasiak, 28594 Termin: srtp Prowadz cy: mgr in». Wojciech Domski 20 czerwca 207
Spis tre±ci Opis funkcjonalno±ci urz dzenia 2 2 Konguracja mikrokontrolerów 2 2. Mikrokontroler STM32F7........................... 2 2.. Ustawienia zegara............................ 4 2..2 Ustawienia DMA............................ 4 2..3 Konguracja dodatkowych peryferii.................. 4 2..4 Peryferia dotycz ce GUI........................ 5 2..5 Peryferia dotycz ce moduªu rozszerzej cego (shield)......... 7 2.2 Mikrokontroler STM32F3........................... 8 2.2. Podstawowe funkcjonalno±ci...................... 8 2.2.2 Konguracja peryferii.......................... 9 2.2.3 Konguracja RCC i NVIC....................... 9 3 Wykorzystywane ukªady zewn trzne 4 Opis dziaªania programu 2 4. Projekt interfejsu gracznego......................... 3 4.2 P tla obsªugi zdarze«.............................. 4 5 Projekt moduªu rozszerzaj cego 5 5. Opis funkcjonalno±ci.............................. 5 5.2 Wykaz elementów elektronicznych....................... 6 Bibliograa 6
Opis funkcjonalno±ci urz dzenia Projekt zakªadaª budow interfejsu zdalnej komunikacji, diagonostyki oraz sterowania robotem minisumo w postaci bezprzewodowego pilota z wy±wietlaczem LCD. W ramach jego realizacji uzyskano wszystkie zakªadane funkcjonalno±ci urz dzenia: ˆ Sterowanie robotem klasy (2,0) poprzez moduª Bluetooth. ˆ Sterowanie (jazda do przodu, do tyªu oraz obroty) odbywa si poprzez przyciski na panelu dotykowym lub joysticku znajduj cy si na dodatkowej pªytce. ˆ Gdy wy±wietlacz znajduje si do góry, joystick jest nieaktywny. ˆ W przeciwnym wypadku to wy±wietlacz nie reaguje na dotyk, co jest zabezpieczeniem przed niekontrolowanym u»yciem. ˆ Komenda gªosowa 'go!' otwiera agi, natomiast komenda 'stop!' je zamyka. ˆ Do poprawnego dziaªania komend gªosowych wymagana jest obecno± karty SD wraz z wzorcowymi transformatami 2 Konguracja mikrokontrolerów Do realizacji projektu powstaªy dwie osobne konguracje mikrokontrolerów: ˆ STM32F746G-DISCOVERY zdalne sterowanie robotem (nadajnik) ˆ STM32F3-DISCOVERY symulacja pracy robota (odbiornik). 2. Mikrokontroler STM32F7 Na rysunku znajduje si konguracja pinów mikrokontrolera STM32F746, który znajduje si w obudowie TFBGA26. Zostaªy ju» skongurowane peryferia, które nie s jeszcze wykorzystywane w celu wykrycia ewentualnych koniktów. W tabeli 3 znajduje si spis wykorzystywanych pinów wraz z informacj jak peªni funkcj oraz do jakiego peryferium nale»y. Tabela : Tabela z konguracj pinów mikrontrolera STM32F746 Peryferium Sygnaª Pin ADC3 ADC3_IN6 PF8 FMC_SDCKE0 PC3 FMC_SDNE0 PH3 FMC_BA0 PG4 FMC_BA PG5 FMC_A0 PF0 FMC_A PF FMC_A2 PF2 FMC_A3 PF3 FMC_A4 PF4 2
FMC_A5 PF5 FMC_A6 PF2 FMC_A7 PF3 FMC_A8 PF4 FMC_A9 PF5 FMC_A0 PG0 FMC_SDCLK PG8 FMC_SDNCAS PG5 FMC_SDNRAS PF FMC_SDNWE PH5 FMC_A PG FMC_D0 PD4 FMC_D PD5 FMC_D2 PD0 FMC_D3 PD FMC_D4 PE7 FMC_D5 PE8 FMC_D6 PE9 FMC_D7 PE0 FMC_D8 PE FMC_D9 PE2 FMC_D0 PE3 FMC_D PE4 FMC_D2 PE5 FMC_D3 PD8 FMC_D4 PD9 FMC_D5 PD0 I2C3 I2C3_SCL PH7 I2C3_SDA PH8 LTDC LTDC_R0 PI5 LTDC_R PJ0 LTDC_R2 PJ LTDC_R3 PJ2 LTDC_R4 PJ3 LTDC_R5 PJ4 LTDC_R6 PJ5 LTDC_R7 PJ6 LTDC_G0 PJ7 LTDC_G PJ8 LTDC_G2 PJ9 LTDC_G3 PJ0 LTDC_G4 PJ LTDC_G5 PK0 LTDC_G6 PK LTDC_G7 PK2 LTDC_B0 PE4 LTDC_B PJ3 LTDC_B2 PJ4 3
RCC SAI2 SDMMC SPI2 USART6 LTDC_B3 LTDC_B4 LTDC_B5 LTDC_B6 LTDC_B7 LTDC_HSYNC LTDC_VSYNC LTDC_CLK LTDC_DE RCC_OSC_IN RCC_OSC_OUT SAI2_SD_A SAI2_SCK_A SAI2_FS_A SAI2_MCLK_A SAI2_SD_B SDMMC_CK SDMMC_CMD SDMMC_D0 SPI2_MISO SPI2_MOSI SPI2_SCK USART6_RX USART6_TX PJ5 PG2 PK4 PK5 PK6 PI0 PI9 PI4 PK7 PH0/OSC_IN PH/OSC_OUT PI6 PI5 PI7 PI4 PG0 PC2 PD2 PC8 PB4 PB5 PI PC7 PC6 2.. Ustawienia zegara Na rysunku 2 znajduje si konguracja zegara mikrokontrolera znajduj cego si na pªytce rozwojowej 32F746GDISCOVERY, który korzysta z zewn trznego rezonatora kwarcowego. 2..2 Ustawienia DMA W tabeli 2 znajduje si wykaz konguracji kontrolera DMA Tabela 2: Konguracja DMA danie DMA Strumie«Kierunek MEMTOMEM DMA2_Stream0 Memory To Memory I2C3_RX DMA_Stream Peripherial To Memory I2C3_TX DMA_Stream4 Memory To Peripherial 2..3 Konguracja dodatkowych peryferii Poni»ej znajduje si opis skongurowanych peryferii na pªytce 32F746GDISCOVERY. Na obecnym etapie realizacji projektu mo»na wyró»ni dwie gªówne grupy peryferiali: 4
Rysunek : Konguracja pinów STM32F746 ˆ zwi zane z obsªuga GUI, ˆ zwi zane z dodatkowym moduªem rozszerzaj cym (shield). 2..4 Peryferia dotycz ce GUI Do poprawnego dziaªania bibliotek STemWin wymagana jest konguracja opisanych poni»ej peryferiów. FMC - Flexible Memory Controller Peryferium to udost pnia interfejs do pami ci SDRAM. Sposób sterowania pami ci SDRAM zostaª zdeniowany przez poª czenia znajdujace si na pªytce deweloperskiej, natomiast konguracja czasowa SDRAM zostaªa stworzona na podstawie dokumentacji ukªadu MT48LC4M32B2B5. Poni»ej znajduje si spis najwa»niejszych konuracji. ˆ Bank: SDRAM Bank 5
Rysunek 2: Konguracja zegarów STM32F746 ˆ Liczba bitów adresu kolumny: 8 bitów 6
ˆ Liczba bitów adresu wiersza: 2 bitów LTDC Sterownik wy±wietlaczy LCD-TFT (LTDC) zostaª skongurowany w 24- bitowym formacie danych z ustawieniami synchronizacji zgodnymi z dokumentacj wy- ±wietlacza. I2C3 Wy±wietlacz LCD znajduj cy si na pªytce deweloperskiej posiada kontroler panelu dotykowy, z którym mo»na si komunikowa poprzez I2C. Peryferium I2C3 zostaªo ustawione w standardowym trybie pr dko±ci z gªównym adresem slave wynosz cym 2. Zdeklarowano równie» dwa kanaªy DMA odpowiedzialne za nadawanie ( Peripherial to Memory) oraz odbieranie ((Memory to Peripherial )). SAI Serial Audio Interface to interfejs wspieraj cy szerok gam protokoªów audio. Mikrokontroler STM32F7 komunikuje si dzi ki temu peryferium z kodekiem audio WM8994, który z kolei komunikuje si z dwoma mikrofonami, które dostarczaj informacj o nat -»eniu d¹wi ku w formacie PCM. ˆ Tryb audio: Master Receive ˆ Dªugo± ramki: 64 bity ˆ Rozmiar danych: 6 bitów SDMMMC Peryferium, które dostarcza interfejs do komunikacji z kart SD. Zapis oraz odczyt z karty SD jest realizowany przy pomocy systemu plików FatFS, w którym ustawiono staªy stempel czasowy. CRC oraz DMA2D Dodatkowo zostaªy aktywowane peryferia DMA2D (ukªad gra- czny pozwalaj cy na szybkie kopiowanie strumienia danych oraz konwersje pomi dzy formatami pikseli) oraz CRC (ze wzgl du na wymagania biblioteki STemWin. 2..5 Peryferia dotycz ce moduªu rozszerzej cego (shield) Wykorzystywana w projekcie pªytka deweloperska STM32F746G-DISCOVERY zostaªa wyposa»ona w zª cza zgodne ze specykacj Arduino Uno (rys. 3). Pozwala to na zainstalowanie wªasnego moduªu rozszerze«(shield) przystosowanego do napi cia logiki mikroprocesora STM32 (3.3V). Ponadto zª cze V in pozwala na doª czenie zewn trznego ¹ródªa nap cia (7-2V) np. akumulatora Li-poly (7.4V), co zostaªo uj te w projekcie ukªadu elektronicznego shieldu. UART W celu bezprzewodowej wymiany informacji pomi dzy pilotem a robotem zostaª skongurowany interfejs portu szeregowego UART do obsªugi moduªu Bluetooth HC-05. Komunikacja pomi dzy urz dzeniami odbywa si w trybie transparentnym, z ustalonymi parametrami poª czenia. SPI Do obsªugi inercyjnej jednostki pomiarowej LSM9DS przygotowano kanaª komunikacyjny SPI. ADC Wykorzystywany do pomiaru napi cia akumulatora Li-poly. 7
GPIO Rysunek 3: Ukªad wyprowadze«arduino Shield Pozostaªe wyprowadzenia shieldu wykorzystano do obsªugi: ˆ 5-pozycyjnego joysticka jako linie wej±ciowe GPIO_Input z obsªug zgªaszania zewn trznego przerwania ˆ diod sygnalizacyjnych kierunek (LED) jako linie wyj±cowe GPIO_Output 2.2 Mikrokontroler STM32F3 Z uwagi na trwaj ce prace nad budow robota mobilnego minisumo, (który ma by docelowym obiektem sterowanym za pomoc opracowywanego pilota) postanowiono przygotowa ukªad symuluj cy jego dziaªanie. Do tego celu wykorzystano moduª rozwojowy STM32F3-DISCOVERY. 2.2. Podstawowe funkcjonalno±ci Podstawowa konguracja (rys. 4) pozwala na nawi zanie bezprzewodowego poª czenia Bluetooth oraz interpretacj odbieranych komend typu: ˆ <F> - jed¹ do przodu ˆ <B> - jed¹ do tyªu ˆ <L> - skr w lewo ˆ <R> - skr w prawo ˆ <S> - stop ˆ <V:X> - ustaw X% maksymalnej pr dko±ci V Dodatkowo zostaj wy±wietlone komunikaty w postaci ±wiec cych diod (LED), informuj ce o kierunkach poruszania si, hamowania, pr dko±ci robota. 8
2.2.2 Konguracja peryferii Wykorzystane peryferia mikrokontrolera STM32F3 to: ˆ USART - obsªuga moduªu Bluetooth HC-05 Baudrate: 5200 Liczba bitów: 8 Kontrola parzysto±ci: brak Bity stopu: ˆ SWD - wykorzystanie SWV oraz przekierowania funkcji printf(), w celu ±ledzenia komunikatów odbieranych przez moduª Bluetooth oraz innego rodzaju debugowania. ˆ GPIO - do sterowania LEDami sygnalizacyjnymi Tabela 3: Tabela z konguracj pinów mikrontrolera STM32F303 Peryferium Sygnaª Pin SYS TRACESWO PB3 USART4 UART4_RX PC UART4_TX PC0 GPIO_Output LD4 [Blue Led] PE8 GPIO_Output LD3 [Red Led] PE9 GPIO GPIO_Output LD7 [Green Led] PE GPIO_Output LD0 [Red Led] PE3 GPIO_Output LD6 [Green Led] PE5 2.2.3 Konguracja RCC i NVIC Rdze«mikrokontrolera taktowany jest sygnaªem zegarowym o cz stotliwo±ci 48 MHz (rys. 5), którego ¹ródªem jest wewn trzny oscylator pracuj cy w p tli PLL. Natomiast magistrala z któr wspóªpracuje USART4 dziaªa z cz stotliwo±ci 24 MHz. Port szeregowy zostaª obsªu»ony w trybie z przerwaniami. Ramki danych przychodz ce z nadajnika s odpowiednio parsowane w ka»dym wywoªaniu funkcji zwrotnej zgªaszanej przez lini USART_RX. Funkcja odpowiadaj ca za to zadanie zostaªa przedstawiona w poni»szym listingu: uint8_t Flaga ; 2 uint8_t Predkosc ; 3 uint8_t Bufor ; 4 5 void HAL_UART_RxCpltCallback( UART_HandleTypeDef * huart ) 6 { 7 8 i f (! Flaga ) 9 switch ( Bufor ) 0 { case ' f ' : 2 HAL_GPIO_WritePin(GPIOE, LD3_Pin, GPIO_PIN_SET) ; 3 break ; 4 case ' b ' : 5 HAL_GPIO_WritePin(GPIOE, LD0_Pin, GPIO_PIN_SET) ; 9
Rysunek 4: Konguracja STM32F3 6 break ; 7 case ' r ' : 8 HAL_GPIO_WritePin(GPIOE, LD7_Pin, GPIO_PIN_SET) ; 9 break ; 20 case ' l ' : 2 HAL_GPIO_WritePin(GPIOE, LD6_Pin, GPIO_PIN_SET) ; 22 break ; 23 case ' s ' : 24 HAL_GPIO_WritePin(GPIOE, LD3_Pin LD7_Pin LD0_Pin LD6_Pin, GPIO_PIN_RESET) ; 25 break ; 26 /* FLAGI */ 27 case ' v ' : Flaga = Bufor ; break ; 28 } 29 e l s e 30 switch ( Flaga ) 3 { 32 case ' v ' : Predkosc=Bufor ; Flaga = 0 ; break ; 33 } 34 0
Rysunek 5: Konguracja zegara STM32F3 35 HAL_UART_Receive_IT(&huart4,&Bufor, s i z e o f ( Bufor ) ) ; 36 } 3 Wykorzystywane ukªady zewn trzne Do implementacji GUI niezb dne s nast puj ce ukªady zewn trzne: ˆ pami SDRAM MICRON MT48LC4M32B2B5 - w pami ci znajduje si aktualna zawarto± wy±wietlacza, komunikacja z pami ci nast puje dzi ki FMC. ˆ wy±wietlacz ROCKTECH RK043FN48H-CT672B - wy±wietlacz LCD-TFT o przek tnej 4.3 cala. Komunikacja z wy±wietlaczem jest uªatwiona dzi ki peryferium LTDC.
Diagram czasowy przedstawiaj cy komunikacje z wy±wietlaczem znajduje si na rysunku 6. W górnej cz ±ci jest przedstawiony sposób wy±wietlania jednej linii (480 pikseli), natomiast w dolnej cz ±ci znajduje si opis wy±wietlania 272 linii. Nale»y zwróci uwag na sygnaªy synchronizacyjne HSYNC oraz VSYNC, których stan nale»y ustawi na niski w trakcie przej±cia do nowej linii (w przypadku HSYNC) lub rozpocz ciu wy±wietlaniu nowego ekranu (w przypadku VSYNC). ˆ kontroler panelu dotykowego FT5336 - komunikacja poprzez I2C. ˆ Czujnik inercyjny 9DoF LSM9DS - komunikacja poprzez SPI. W opisywany projekcie zostaª wykorzystany tylko akcelerometr w roli inklinometru. Rysunek 6: Diagram czasowy LTDC 4 Opis dziaªania programu Po inicjalizacji wszystkich peryferiów sterowanie zostaje w caªo±ci oddane do p tli obsªugi zdarze«obsªugiwanej przez bibliotek STemWin. Zapewnienie ci gªo±ci pracy GUI wymaga inkrementacji zmiennej typu GUI_TIMER_OS co kwant czasu, w tym przypadku wykorzystano do tego przerwanie generowane przez Systicka. Kolejn rzecz jak nale»y dostarczy do GUI jest stan panelu dotykowego. Wykonuje si to w przerwaniu od timera, które wywoªuje si co 0ms. Diagram dziaªania programu jest widoczny na rysunku 7. 2
Rysunek 7: Diagram przepªywu 4. Projekt interfejsu gracznego Interfejs graczny zostaª zaprojektowany w dedykowanym do tego oprogramowaniu narz dziowym GUIBuilder. Projekt interfejsu znajduje si na rysunku 8. Przyciski widoczne w lewym dolnym rogu ekranu sªu» do sterowania kierunkiem jazdy robota. Suwak znajduj cy si po prawej stronie ustawia pr dko± jazdy robota. Checkbox opisany jako terowanie ruchem"b dzie aktywowa sterowanie za pomoc ruchu pilota. 3
4.2 P tla obsªugi zdarze«rysunek 8: GUI Po wyst pieniu zdarzenia do funkcji przekazanej przy inicjalizacji GUI wysyªana jest wiadomo± o fakcie wyst pienia zdarzenia, jakiego elementu to zdarzenie dotyczy oraz jakiego typu zdarzenie si wywoªaªo. Fragment kodu odpowiedzialny za obsªug zdarze«dotycz cych suwaka wygl da nast puj co: case ID_SLIDER_0 : // N o t i f i c a t i o n s sent by ' v e l o c i t y ' 2 switch (NCode) { 3 c a s e WM_NOTIFICATION_CLICKED: 4 // USER START ( Optionally i n s e r t code f o r r e a c t i n g on n o t i f i c a t i o n message ) 5 // USER END 6 break ; 7 c a s e WM_NOTIFICATION_RELEASED: 8 // USER START ( Optionally i n s e r t code f o r r e a c t i n g on n o t i f i c a t i o n message ) 9 HAL_UART_Transmit(& huart6, velcommand, 2, 20) ; 0 // USER END break ; 2 c a s e WM_NOTIFICATION_VALUE_CHANGED: 3 // USER START ( Optionally i n s e r t code f o r r e a c t i n g on n o t i f i c a t i o n message ) 4 hitem = WM_GetDialogItem ( pmsg >hwin, ID_SLIDER_0) ; 5 v e l o c i t y V a l u e = SLIDER_GetValue( hitem ) ; 6 s p r i n t f ( v e l o c i t y L a b e l, " Predkosc : %d", v e l o c i t y V a l u e ) ; 7 velcommand [ ] = v e l o c i t y V a l u e ; 8 hitem = WM_GetDialogItem ( pmsg >hwin, ID_TEXT_) ; 9 TEXT_SetText( hitem, v e l o c i t y L a b e l ) ; 20 // USER END 2 break ; Linie 2-9 pokazuj w jaki sposób jest dokonywana aktualizacja wy±wietlanego tekstu podczas ruchu suwaka. 4
5 Projekt moduªu rozszerzaj cego Elektronika shieldu w caªo±ci zostaªa zaprojektowana w programie KiCAD, który pozwoliª na przygotowanie projektu PCB (rysunek 0) na podstawie schematu ideowego. 5. Opis funkcjonalno±ci Moduª rozszerzaj cy przedstawiony poni»ej (rysunek 0) oraz na schemacie ideowym (na ko«cu dokumentu) skªada si z nast puj cych elementów: sekcji zasilania zª cze zasilania (akumulator Li-poly 7.4V) zabezpieczenie przed odwroton polaryzacj zabezpieczenie przed spadkiem napi cia akumulatora ukªad pomiaru napi cia akumulatora Li-poly poprzez ADC ukªadu komunikacji bezprzewodowej Bluetooth (moduª HC-05) inercyjnej jednostki pomiarowej (IMU) o 9 stopniach swobody w postaci pojedynczego ukªadu scalnego LSM9DS produkcji rmy ST Joysticka 5-pozycyjnego (do przodu, do tyªu, prawo, lewo, stop) wiec ce diody (LED) sygnalizuj ce kierunek poruszania si robota w przypadku sterowania z joysticka (do przodu, do tyªu, prawo, lewo) Rysunek 9: Zdj cie moduªu rozszerzaj cego dla STM32F746G-DISCOVERY 5
5.2 Wykaz elementów elektronicznych Poni»ej (w tabeli 4) przedstawiono list wykorzystywanych elementów do budowy moduªu rozszerzaj cego (shieldu) Tabela 4: Lista elementów elektronicznych (BOM) Symbol Warto± Footprint P2 BLUETOOTH Pin_Headers:Pin_Header_Straight_x06 U LSM9DS warsztaty:lga-24l_3x3.5mm_pitch0.43mm C2 0nF Capacitors_SMD:C_0805_HandSoldering C4 00nF Capacitors_SMD:C_0805_HandSoldering C 00nF Capacitors_SMD:C_0805_HandSoldering C3 0uF Capacitors_SMD:CP_Tantalum_Case-A_EIA-326-8 SHIELD ARDUINO_SHIELD arduino_shields:arduino_shield_2_040pins SW SWITCH_INV misc:przelacznik_smd_2 P CONN_0X02 Pin_Headers:Pin_Header_Straight_x02 R2 220R Resistors_SMD:R_0805_HandSoldering R3 50R Resistors_SMD:R_0805_HandSoldering R4 M Resistors_SMD:R_0805_HandSoldering Q Q_PMOS_GSD TO_SOT_Packages_SMD:SOT-23_Handsoldering R 0R Resistors_SMD:R_0805_HandSoldering Q3 Q_NMOS_GSD TO_SOT_Packages_SMD:SOT-23_Handsoldering R6 0k Resistors_SMD:R_0805_HandSoldering R5 8k Resistors_SMD:R_0805_HandSoldering Q2 BC807-40 TO_SOT_Packages_SMD:SOT-23_Handsoldering T LM336Z-5.0 Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch.27mm Literatura [] Dokumentacja techniczna: biblioteki Segger emwin (dost p: 20 czerwca 207) [2] Dokumentacja techniczna: FT5336 (dost p: 20 czerwca 207) [3] Dokumentacja techniczna: MT48LC4M32B2 (dost p: 20 czerwca 207) [4] Dokumentacja techniczna: STM32F746xx (dost p: 20 czerwca 207) [5] User Manual: Discovery kit for STM32F7 Series with STM32F746NG MCU (dost p: 20 czerwca 207) [6] Nota aplikacyjna: biblioteki STemWin (dost p: 20 czerwca 207) [7] Strona internetowa: http://microelk.azurewebsites.net/ (dost p: 20 czerwca 207) [8] Adam Pyka. Zabezpieczenie akumulatora Li-Poly. KoNaR, Wrocªaw, 20. (dost p: 20 czerwca 207) [9] Dokumentacja techniczna: ST LSM9DS IMU (9 DoF) (dost p: 20 czerwca 207) [0] Dokumentacja techniczna: Moduª Bluetooth (HC-05) (dost p: 20 czerwca 207) 6
Rysunek 0: Widok PCB
2 3 4 5 6 2 3 4 5 6 A B C D A B C D Date: 207-05-7 KiCad E.D.A. kicad 4.0.2+dfsg-stable Rev: Size: A4 Id: / Title: InZdaSter 2.0 File: InZdaSter.sch Sheet: / Dawid Marszakiewicz 28665, Piotr Portasiak 28594 RX TX SCK MISO MOSI VCC PWR_FLAG PWR_FLAG VCC VCC RX TX VDDIO SCL/SPC 2 VDDIO 3 SDA/SDI/SDO 4 SDO_A/G 5 SD0_M 6 CS_A/G 7 CS_M 8 DRDY_M 9 INT_M 0 20 INT_A/G CAP 2 INT2_A/G 2 VDD 22 DEN_A/G 3 VDD 23 RES 4 C 24 RES 5 RES 6 RES 7 RES 8 9 U2 LSM9DS VDDIO SPC VDDIO CS_AG SDI SDO SDO CS_M DDRY_M INT0 INT INT2 DEN C9 0nF C 00nF CAP VDD VDD VDD CAP C8 00nF VDDIO MISO SDI MOSI SDO +3.3V C0 0uF +3.3V NC IOREF 2 NRST 3 3V3 4 5V 5 6 7 VIN 8 PA0 9 PF0 0 PI0 20 AVDD 30 PF9 PH6 2 PB9 3 PF8 2 PI3 22 PB8 32 PF7/PB9 3 PI2 23 PF6/PB8 4 PA5 24 PC7/USART6_RX 5 PA8 25 PC6/USART6_TX 6 PB5 26 PG6 7 PB4 27 PB4 8 PI 28 PG7 9 29 SHIELD ARDUINO_SHIELD INT0 INT INT2 DDRY_M CS_AG CS_M DEN SCK SPC PWR_FLAG 5V +5V PWR_FLAG 3V3 +3.3V 5V 3V3 2 3 SW SWITCH_INV 2 P CONN_0X02 REF R9 220R R0 50R R M 2 3 Q Q_PMOS_GSD VCC R7 0R 2 3 Q3 Q_NMOS_GSD REF REF R7 0k R6 8k VBAT VCC VBAT B E 2 C 3 Q2 BC807-40 4 5 8 T LM336Z-5.0 PWR_FLAG REF CENTER LEFT RIGHT UP DOWN LED LED2 LED3 LED4 C5 00nF R8 00R +3.3V UP/A LEFT/B 2 DOWN/C 3 CENTER/F 4 RIGHT/E 5 COM/D 6 JOY Joystick C4 00nF C3 00nF R3 0k C2 00nF C 00nF CENTER RIGHT DOWN LEFT UP R 300R 2 D LED LED LED2 R2 300R 2 D2 LED LED3 R6 300R 2 D4 LED LED4 R5 300R 2 D3 LED R4 0k TX RX 2 CTS 3 RTS 4 PCM-CLK 5 PCM-OUT 6 PCM-IN 7 PCM-SYNC 8 AIO0 9 AIO 0 USB_D+ 20 PIO7 30 RESET 2 PIO8 3 3v3 2 22 PIO9 32 3 PIO0 23 PIO0 33 NC 4 PIO 24 PIO 34 USB_D- 5 PIO2 25 SPI_CSB 6 PIO3 26 SPI-MISO 7 SPI-MOSI 7 PIO4 27 PIO5 28 SPI-CLK 9 PIO6 29 U HC-05 R5 330R 2 D6 LED R3 200R RST 3V3 CONNECTED CONNECTED KEY SW2 SW_PUSH KEY 3V3 R8 330R 2 D7 LED STATUS STATUS R9 330R 2 D8 LED PAIRED PAIRED R4 330R 2 D5 LED C6 00nF RST C7 0uF R2 47k +3.3V C2 00nF C C