venerdì 15 giugno 2018

Simple FPV con Android

Esistono gia' applicazioni che trasformano un telefono Android in un visore FPV per droni ma volevo qualcosa di semplice da poter personalizzare

Il progetto e' basato sul usbCameraTest6 con alcune modifiche per permettono di avviare l'applicazione appena viene inserito nel telefono il connettore USB della camera

per compilare il repository Github si deve avere anche montato NDK. Durante le prove ho fare il downgrade del progetto rispetto all'NDK attualmente installato con Android Studio (ver. 16) ed ho utilizzato la versione 14b. Per fare cio' si scarica il pacchetto del vecchio SDK (circa 800 Mb) e lo si decomprime in una directory esterna a Android Studio....a questo punto si deve modificare il file local.properties del progetto Android per esempio

ndk.dir=/home/lucainnocenti/Downloads/android-ndk-r14b

File manifest con le modifche per mettere in ascolto su USB 
---------------------------------------------------------

<manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.serenegiant.usbcameratest6" >

   

    <uses-feature android:glEsVersion="0x00020000" android:required="true" />
    <uses-feature android:name="android.hardware.usb.host" />

    <application        android:launchMode="singleTask"        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
        <activity            android:name="com.serenegiant.usbcameratest6.MainActivity"            android:label="@string/app_name"            android:screenOrientation="sensorLandscape" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
            </intent-filter>
            <meta-data                android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"                android:resource="@xml/device_filter" />


        </activity>
    </application>

</manifest>

---------------------------------------------------------
il file @xml/device_filter seleziona che l'apertura della app avviene solo quando viene inserito un dispositivo UVC
<usb>
   <usb-device class="239" subclass="2" />    <!-- all device of UVC --></usb>
 

Nessun commento:

Posta un commento