  - ()    (Android)
 


    , :  Android-     -.            GPU,   (IMU, GPS, )     15 TOPS.  ,    ,        ,   (ESP32)    PID-   .      :          YOLO+KCF,    ,  PID         .     :    Android,  USB OTG,        (Watchdog, Failsafe,  ).





 

  - ()    (Android)





1.   



1.1.     

       -      ,          .         ,   ,   ,         .

 :     

     ,          .  Qualcomm Snapdragon 865,    2020 ,   15     (TOPS)    .        : 8- Kryo CPU,   Adreno 650,     (DSP)      EVA (Embedded Vision Accelerator).

    ? 15 TOPS       :

-    YOLOv5  YOLOv8   ;

-        ;

-           ;

-  PID-   ;

-       .

   Qualcomm QRB5165 (  Snapdragon 865)           8K HDR.  -       :    ,     , ,    .

 :         ,     .       ,          ,        .

 :     

        ,   .      ,       (  ,   ),  :

-    (6- IMU)       ;

-         (   -       );

- GPS/-    ;

-     ;

-        ;

-        .

 ,             .      Over-Temperature Compensation (OTC),         .     ,         .

  SmartCopter       :  Samsung Galaxy S II,   ,       GPS,    , ,   .    ,   ,      .         300       .

 :   

    .      (, NVIDIA Jetson  Intel NUC)  ,     . ,    ,    50200 ,           .

      :

-    :       ,          ;

-           -   ;

-   :     Google Play  ADB  ,      ;

-     :             .

      ,   SmartCopter,  :              .

    

          :

1. SmartCopter (  )  Samsung Galaxy S II        .      , ,      .

2.   Qualcomm        Samsung Galaxy S5    ,  ,     .  ,          .

3. Androcopter           ,        (IMU)   .       IOIO-Board.  ,        ,           -   Android.

4. DroidDrone (Open Source)   open-source ,   Android-:    (     USB OTG),      .     (ArduPilot, Betaflight, PX4)          .

5. Autopilot for UAV (GitHub)          Android-     .

6. UAS Phone Swarm (Former Lab)  ,   :           (IMU, GNSS, ),   MediaPipe EfficientDet           Wi-Fi            ,   .

 :      

           :

-    (12200 )      ;

-  GPU     (YOLO)   1030   ;

-  Wi-Fi           ;

-   GPS      .

,     ,    . Android      ,          .     -       ( , ,  ),         (ESP32  Arduino).        ,    ,          .



          ,    :   ( 15 TOPS),    (, IMU, GPS)    (   ).    open-source  (SmartCopter, Androcopter, DroidDrone)    .  -    ,    ,      ,     ,     .


1.2.  

      -   ,     .   ,        ,      ,      .    Android,  ,         .       Android     .  ,      ,   .

         .     Android  ,    .        ,        .

 :    

    ,              .

 :  (Android)  

   ,        .  :

-  :    (YOLO),  (KCF, CSRT),  .

-   :         .

-  :    ,   .

-  :   ,   ,     .

 ,   ,   Galaxy SIII,     ,         .  ,       DJI F450, -rooted Android-      IMU.     ,        .

,    , Android   .         .            ,    -   2 .

 :  (ESP32/Arduino)  

        .        :

-    USB OTG  .

-  -   ESC.

-   PID-    ,    .

-          .

  ESP32  Arduino Nano   . ESP32   ,           (PID, ),     .    ESP32-S3, , -  ( ,  , )    ,      . Arduino Nano,     ,     ,      .

 :        .   ,    Rutgers University, Android-  PID-     Arduino,      ESC.     ,   ,      .

 : ESC +   

   . ESC (Electronic Speed Controllers)  -           .       .

  PID-   ?

   ,   .

 PID-,       ,    Android  .   , - ,  Android     ,        .  PID-       .     - PID-,    Android,         .

  PID  , :

1.  :        RTOS,     .

2.    Android:      50 ,    .

3.  :      ,    Android-.

      . ,     PID  - ,    MED,    PID-     .    SmartCopter,   Galaxy SII     Mikrokopter,       ,         ,  .

 

   -       :

|  |  |   |  |

|  |  |  | , ,  |

|  | ESP32/Arduino |  | PID, , Failsafe |

|  | ESC +  |  |  |

   ,   ,     .    ,           . ESC     ,    .

       ,     ( ,  ),            .       ,      -.


1.3.   

        ,  :        .         ,   ,       .

 1:        

       ,        .   :        ,           .

  .    ESP32  Wi-Fi     .    (,     )      -.     PID-,    IMU ( + ),       ESP32.    ,  ,     ,    ,         .

 .   ,      .    ESP-Drone  Espressif.  open-source     ESP32/ESP32-S2/ESP32-S3,       Android  iOS  Wi-Fi.      Crazyflie.    , ESP-Drone      .

  ESP-Drone     . ,  LiteWing  Circuit Digest  DIY-   $12,       .   ESP32-WROOM-32, IMU MPU6050     720.      open-source   Espressif.

 .       --       .     ESP32       35   5     .  :    2.4    50100 .   Wi-Fi-  ESP32        .   ESP-NOW,    ,      5 .

 .     ,   ,   .      Android-,        .    ,  ,             .     :     ,          .

 2:       

   .      .        (, , ),   ,           .

 .                   ( USB OTG  Bluetooth)     -  ESC.          PID    Android.

 .   . Androcopter (   )                .     ( MIT).    SmartCopter,    IMU, Androcopter      .

    DroidDrone.  open-source ,   Android-          USB OTG,       .    : ArduPilot, Betaflight, INAV  PX4.        VPN (ZeroTier)    .

    UAS Phone Swarm (Former Lab)        .         IMU, GNSS  ,             Wi-Fi        .

  .    Android      .  ,        .  PID-,     ,     . ,   ,   Android-   ,    - PID-,    .

 .     ,     Android-,  ,   .    -         .        :      ,   ,      GPS  ,        .

 

|  |  1:    |  2:     |

|  |  |  |

|     |  |  |

|   | ,  ESP32 | Android-,  ,   |

|   | ,  |    |

|   |   (PID, ) |     |

|   | Wi-Fi | USB OTG () |

|   | ~35  (Wi-Fi) | <5  (USB OTG) |

|   |   FPV () |  ,   |

|  |  (  ) |  ( , ) |

|   | ESP-Drone, LiteWing | DroidDrone, Androcopter |

:   -

 ,      -,    .

 .    1.  ESP-Drone  LiteWing,    , ,   PID-,   ,     Wi-Fi.               .

 .       ,   2,     PID-   .     ,    ,   ,     .  (ESP32)         ,      RTOS, PID-     .      USB OTG,    5 .

      , ESP32       -.      Android (   )        ,    :   , ,  .            50 ,   ,   ESP32   .

      ,                  ,    :   -   .




2.   (Hardware)



2.1.  -: ESP32 vs Arduino Nano

  - -   :              ESC  .         ,     .    ,        .

   :  

       . ESP32 (ESP-WROOM-32)    240    ,   Arduino Nano (ATmega328P)      16 .   15-    .    ,  ESP32          15  .

    :         .         -     FLOPS,      .

     ESP32   .   ,   ESP-FLY      11 ,    (PRO CPU)      :  IMU,  PID   -.   (APP CPU)  Wi-Fi,       .

 Arduino Nano   .         .   ,       ,  IMU BNO055,    Nano   80 000  (80 ) .           10 . ESP32,    ,   PID-   4   0.3      Wi-Fi.

 -: ,   ESC

      -.     (ESC)      .    10        .

Arduino Nano      `analogWrite()`,    3, 9, 10  11    8-  (256 )   490 .     ,  8     256  .      .

ESP32    .    LEDC (LED Controller)   16      15-16 .    32 768  65 536       ,   Nano.      ESC (50 ,  20 ) 16-      305   ,     ESC.

 , ESP32      20-25 .  :          ( 20 ),    ,      .

 : Wi-Fi  Bluetooth  

ESP32   Wi-Fi 802.11 b/g/n  Bluetooth 4.2/5.0.  -  :

-       PID      .

-       ESP-Drone,     ESP32  Wi-Fi   .

-     .

Arduino Nano    (, HC-05  Bluetooth  ESP8266  Wi-Fi),   ,    .

USB OTG:     

        USB OTG   .    :   ESP32   USB-.

 ESP32 (ESP-WROOM-32)     USB-UART (CP2102)    .      USB-.   OTG  ESP32-S2  ESP32-S3.      USB,       ,     .

  :     USB OTG      (      ),  ESP32-S2  ESP32-S3,    ESP32.   ESP-FLY, ,   ESP32-S3   USB OTG.

    

  .        ESP32:

- ESP-Drone  Espressif   open-source ,  ESP32/ESP32-S2/ESP32-S3.       Wi-Fi.

- ESP-FLY    (50?50?25 ,  <11 )   ESP32-S3    : IMU MPU6050, 4 , Wi-Fi , PID-.

- ESP32 Drone Bridge  ,  ESP32     USB-   ,   OTG.

  Arduino Nano         ,  ,  ,   . Arduino Nano           .

 

|  | Arduino Nano | ESP32 () | ESP32-S2/S3 |

|   | 16  | 240  | 240  |

|  | 1 | 2 | 2 |

|   | 8  |  16  |  16  |

|  Wi-Fi/Bluetooth |  |  |  |

|  USB OTG |  |  |  |

|   | ~80  | ~4-10  | ~4  |

|   |  |  |  |

  -: ESP32-S3.

   ESP32?         USB OTG           .  ESP32   . ESP32-S3    :

-        .

-    (16 ).

-  Wi-Fi    .

-   USB OTG.

   : ESP32-S3        .                .       .


2.2.   USB OTG:  

  -            .  ,         ,              . USB OTG (On-The-Go)        ,        .

 :  USB OTG 

 ,  USB OTG    ,      . USB 2.0 Full Speed (12 /),    ,     1       -  .  High Speed USB (480 /)     125  (-).  ,     ,   ,         1   Full Speed  125   High Speed.

      :

1.         .

2.    USB- Android     .

3.        USB   .

4.      , ,  .

 ,    ,   (round-trip)   5 .   :     Android-     OTG-            .

 : Wi-Fi-    20  100   ,          ,   ,   . Bluetooth,   ,     200 .  ,      ,   5   50          .

 USB- Android   

Android  USB Host Mode    3.1,      Android 4.2.       USB-, :

-   USB-.

-       .

-     .

-     (bulk),  (interrupt)   (isochronous) .

      (bulk)                ,   ,    .

 : USB Host Mode      ,  USB Accessory Mode.  Host Mode        .  Accessory Mode (AOA)     .      ESP32/Arduino  OTG-    Host Mode.

 :  usb-serial-for-android

     USB-   Android   `usb-serial-for-android` (mik3y/kai-morich).  :

-   USB-: FTDI, CDC-ACM (Arduino), CP210x, PL2303.

-  API    .

-   root-   .

   :

1.     `UsbManager.requestPermission()`.

2.        `ProbeTable`.

3.     (baud rate),  , -,  .

4.        `write()`.

5.     `read()`   `SerialInputOutputManager`.

 :    (Latency Timer)

 FTDI- (  )     Latency Timer  ,          .       16 .  ,       , FTDI-    16 ,      .

    .  ,     :

```java

FtdiSerialPort ftdiPort = (FtdiSerialPort) port;

ftdiPort.setLatencyTimer(1); // 1    

```

   1      ,     CPU,      .  -   .

 CDC-ACM  (Arduino   USB-)          bulk- ,   1   Full Speed.

 :     

 115200         Arduino  ESP32.  :

-   ~11.5 /         (   ).

-             .

   (250000, 500000, 921600 )   ,     .   :

-      ,    .

-  USB-UART-     .

-    ,          (, ).

 :  115200    .         ,  250000  500000 ,     .

 :   vs  

        ,  `"MOTOR_1 70\n"`.                ,   .      :

-        .

-         .

         . :

```

[START_BYTE] [MOTOR_ID] [POWER_VALUE] [CHECKSUM]

```

:

- `START_BYTE`     (, 0xAA).

- `MOTOR_ID`    (1 ).

- `POWER_VALUE`    (1-2 , 0-100%  0-255).

- `CHECKSUM`      .

 :

-    (4-5   10-12   ).

-        .

-       .

:      .   ,       .

   ESP32-S2/S3  USB OTG

     ,   ESP32   USB-.  ESP32 (ESP-WROOM-32)     USB-UART  .     OTG  ESP32-S2  ESP32-S3.      USB,       ,     .

  ESP32-S3    OTG-:

1. ESP32-S3   USB- ().

2.    USB-.

3. ESP32-S3  CDC-ACM ( )       COM-.

 ,           `usb-serial-for-android`   CDC-ACM  .   ESP32-S3   CDC-ACM- (,  TinyUSB  ESP-IDF).

  :   Wi-Fi   Bluetooth

|  | USB OTG | Wi-Fi | Bluetooth |

|   | <5  | 20-100  | ~200  |

|  |   |  |  |

|  |  |  |  |

|     |  |  (,  ) |  |

|  |  |  |  |

|  |  |   |  |

Wi-Fi,     ,  ,          :

-    Wi-Fi- (-  - )    .

-           .

-         .

Bluetooth,   ,       .

   

1.   OTG-  ,   .

2.  Latency Timer  FTDI-  1 .

3.   115200   ,       .

4.        .

5.   -   `SerialInputOutputManager`   ,    .

6.     ,    .

7.          ,     .



USB OTG      ,    ,     .   5            -,              .     (Latency Timer, , )    ,      ,   .


2.3.   

        ,    :        . ESP32      ,  IMU ,     USB-.    ,  :    ,   .

    ,    ,       .

    

          (ESC).  ESC     :     2030     .      :

1.        ,     .

2.     ,        .

 ,   ESC       ,         .     ,   IMU   USB-. ESP32,     ,     .

        .

  

        .        .

 1:  ()

:    ESC.

:  LiPo-  3S (11.1 )  4S (14.8 ).

:    .     ,      ,          ESC.          .

 :       (PDB)   XT60.  PDB     ESC. :        (   1820 AWG   22052306 ).     ,    .

 2:  ()

:   (ESP32/Arduino), IMU    .

:  BEC (Battery Elimination Circuit),      PDB. BEC     (11.114.8 )   5 .

  BEC:

- :   3   ESP32  .    BEC     ,   .

-  :       50100  ().  BEC    ,     ,   .

 :      USB-,    `5V`  `GND`   . USB-     ,       .   USB              .

 3:  ()

:      .

 :     .            .    ,        .        ,            .

 :   USB OTG    (Power Injection).

  ,        (,   ,     ).   :

```

 LiPo  BEC (5, 23)  USB- (Y-  )  

```

 :

-          USB-C (  ,   Micro-USB   ).

-   Y-  OTG-   Power Injection.

- BEC    5      2  (  ).

:   Power Injection ,  BEC       .         (   )  ,        .

  

             .      .

   

     .        XT60 (  PDB,      ).

 :

-  3S4S : 4701000 , 25 .

-  6S : 4701000 , 35 .

- : Low-ESR (   )  Panasonic FM, Nichicon UHW.

 :         10 .          .

 :     ,    MOSFET-  ESC.         ,     .

LC-   

      ,       (   ).     LC-       ()  .

 : LC-        ,   BEC        (  Power Injection).

:

- : 47100 ,    2 .

- : 4701000 , 35   , 100220   .

 :   LC- (, iFlight LC Filter, Matek LC Filter),        ,   .

 

  ()         .

 :

-   ESC ( ESC   ).

-  USB-,    .

-    BEC.

     :       ,    ,    .

 

          . :   (GND)                   PDB.

  :     (),    (ground loop)   ,    ,   .          ,     IMU  USB-   .

 :

1.    (ESC, BEC)      PDB.

2.         .

3.  USB- ()     .

4.   (IMU, )    ,       .

:         .       .

   

1.  :     .   50     .  BEC    3050 .

2.  :    (  PDB  ESC)     18 AWG.  BEC    2022 AWG.

3.     :   (USB, I?C, UART, -  ESP32  ESC)       23    .        .




  .


   .

   ,     (https://www.litres.ru/book/raznoe/avtonomnyi-ii-dron-perekhvatchik-bpla-na-baze-smartfona-android-74358004/)  .

      Visa, MasterCard, Maestro,    ,   ,     ,  PayPal, WebMoney, ., QIWI ,       .


