Vorrei comprare un gimbal/stabilizzatore, ma è essenziale che sia gestibile tramite una mia app.
Secondo chatGPT è possibile controllare i gimbal feiyutech, che sembrerebbero usare il protocollo Feiuytech G, usando questo codice python:
<code>
</code>
O persino usando una pagina web, perchè i moderni browser hanno accesso al bluetooth:
qualcuno che ha un gimbal Feiyutech potrebbe verificare?
Secondo chatGPT è possibile controllare i gimbal feiyutech, che sembrerebbero usare il protocollo Feiuytech G, usando questo codice python:
<code>
codice:
import socket import struct import time # Indirizzo IP e porta del dispositivo che controlla la testa motorizzata HOST = '192.168.1.100' PORT = 7878 # Codice di comando per il controllo della testa motorizzata CMD_START = b' xa0 x01 x00 x00 x00 x00 xa1' CMD_STOP = b' xa0 x00 x00 x00 x00 x00 xa0' # Funzione per inviare il codice di comando al dispositivo def send_cmd(cmd): # Creazione del socket sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(1) # Invio del comando sock.sendto(cmd, (HOST, PORT)) # Chiusura del socket sock.close() # Funzione per inclinare la testa motorizzata in su def tilt_up(): cmd = b' xa0 x06 x00 x00 x00 x01 xa7' send_cmd(cmd) time.(0.1) send_cmd(CMD_STOP) # Funzione per inclinare la testa motorizzata in giù def tilt_down(): cmd = b' xa0 x06 x00 x00 x00 xff xa3' send_cmd(cmd) time.(0.1) send_cmd(CMD_STOP) # Funzione per ruotare la testa motorizzata a destra def pan_right(): cmd = b' xa0 x05 x00 x00 x00 x01 xa6' send_cmd(cmd) time.(0.1) send_cmd(CMD_STOP) # Funzione per ruotare la testa motorizzata a sinistra def pan_left(): cmd = b' xa0 x05 x00 x00 x00 xff xa2' send_cmd(cmd) time.(0.1) send_cmd(CMD_STOP) # Esempio di utilizzo delle funzioni tilt_up() pan_right() tilt_down() pan_left()
O persino usando una pagina web, perchè i moderni browser hanno accesso al bluetooth:
codice:
const BTDevice = await navigator.bluetooth.requestDevice({ filters: [ { services: ['feiyu'] }, { namePrefix: 'FeiyuTech' } ] } ) ; const server = await BTDevice.gatt.connect(); const service = await server.getPrimaryService('feiyu'); constacteristic = await service.getCharacteristic('feiyu_command'); // Posizionamento assoluto in angolo const panAngle = 90; // Angolo di pan desiderato const tiltAngle = -30; // Angolo di tilt desiderato const panAngleByte1 = (panAngle >> 8) & 0xff; const panAngleByte2 = panAngle & 0xff; const tiltAngleByte1 = (tiltAngle >> 8) & 0xff; const tiltAngleByte2 = tiltAngle & 0xff; const command = new Uint8Array([0xA0, 0x08, panAngleByte1, panAngleByte2, tiltAngleByte1, tiltAngleByte2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4]); awaitacteristic.writeValue(command);
qualcuno che ha un gimbal Feiyutech potrebbe verificare?