Catalog · How the catalog works
cockpit_drone
Cockpit Drone is an application that allows you to connect wifi drones in special cx-10W from cheerson on PC. Allowing the interaction via joystick. Allowing the user to have a typically military experience with his civilian drone (UAV).
- ★ 5 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
Sistema de Controle e Monitoramento de Drones
Seção 1: Português
Visão Geral do Projeto
Este projeto, desenvolvido em Object Pascal (Lazarus/Free Pascal), constitui uma aplicação para controle remoto e monitoramento de drones. Ele integra múltiplos dispositivos e funcionalidades, tais como joystick, GPS, câmera e mapas, oferecendo uma interface gráfica central para o usuário gerenciar e visualizar o status do drone e dos periféricos conectados.
Estrutura do Projeto
- main.pas
Implementa a interface gráfica principal do sistema. Gerencia a ativação e monitoramento dos controles, incluindo joystick, drone, GPS, câmera e mapa, usando LEDs e controles visuais. Processa comandos do joystick e controla a conexão com o drone via formulário específico. - config.pas
Interface para configuração dos parâmetros de comunicação e seleção do joystick. Permite a visualização e teste em tempo real dos eixos e botões do controlador, integrando-se com a interface principal. - joystick.pas
Arquivo atualmente vazio, reservado para implementações futuras relacionadas ao joystick. - gps.pas
Formulário responsável pela leitura de dados GPS via porta serial, decodificação das sentenças NMEA e apresentação das informações de localização, satélites e qualidade do sinal. - camera.pas
Formulário visual com grade customizada, imagem e etiquetas para apresentação de dados da câmera. Não possui lógica implementada atualmente. - map.pas
Formulário com componente de grade para exibição de mapa ou área visual, sem lógica funcional implementada. - Protocolos dos drones
Os protocolos não ficam mais no cockpit: são componentes da Lazarus AI Suite (CHATGPT), pacoteopenai_drone, reaproveitáveis em outras aplicações:Drone Componente Cheerson CX-10W TAIDroneCX10WMAVLink (ArduPilot/PX4) TAIDroneMavlinkDJI/Ryze Tello TAIDroneTelloESP-Drone / OpenDrone TAIDroneESPDroneFQ777-954 TAIDroneFQ777Parrot AR.Drone 2.0 TAIDroneARDroneDrone ESP32 (firmware Cockpit) TAIDroneCDP - conexaodrone.pas
Base comum das janelas de conexão: monta a janela, converte o manche do cockpit (X/Y, Q/E, botões 1 a 6), entrega o vídeo H.264 aoTAIH264Decodere mostra as mensagens do componente. Cada janela de drone só configura o seu componente e repassa os comandos. - conectionfq777.pas
Conexão exclusiva do quadricóptero FQ777-954 (veja a seção abaixo). - rotavoo.pas / rotamavlink.pas / flightplan.pas
Planejamento de rota de voo (somente drones com GPS), validação, arquivos.waypointse envio da missão peloTAIDroneMavlink. - funcs.pas
Contém funções utilitárias, comoMAPA, que realiza mapeamento linear de valores analógicos para o intervalo byte (0-255), fundamental para a normalização dos sinais.
Instalação
- Instale Lazarus e Free Pascal no seu ambiente de desenvolvimento.
- Instale os pacotes da Lazarus AI Suite (CHATGPT):
openai_core,openai_input,openai_hardware,openai_videoeopenai_drone. - Clone ou obtenha o código-fonte do projeto.
- Abra o arquivo
src/drone.lpino Lazarus. - Compile e execute o projeto.
- Para a câmera (FQ777-954, CX-10W, Tello e AR.Drone), coloque o
ffmpeg.exena pasta dodrone.exe(ou no PATH).
Drone FQ777-954
Selecione FQ777-954 (Wi-Fi) em Configuração > Protocolo. Ao clicar em Start:
- O cockpit procura a rede Wi-Fi do drone (padrão: nome contendo
FQ777) e conecta sozinho. Se a rede não for encontrada, o equipamento não é ligado e a mensagem lista as redes visíveis, para ajustar o nome se necessário. - Conecta ao drone (
172.16.10.1, TCP 8888, UDP 8895) e envia comandos a cada 50 ms. - O vídeo (H.264, 720×576) aparece na janela da câmera.
- Ao desligar, envia aceleração zero e devolve o PC à rede Wi-Fi anterior.
| Comando | Joystick (padrão) | Teclado |
|---|---|---|
| Rolagem | manche esquerdo X | A / D |
| Arfagem | manche esquerdo Y | W / S |
| Guinada | manche direito X | Q / E |
| Aceleração | gatilho direito (RT/R2) | seta cima / baixo |
| Corte dos motores | botão B | Espaço |
Após um corte, a aceleração só volta depois que o gatilho e o teclado retornarem ao mínimo. Eixos, zona morta, modo do acelerador (gatilho ou manche), nome e senha da rede e gravação do vídeo ficam na aba FQ777-954 da configuração (seção [FQ777] do drone.cfg, separada dos outros drones).
O protocolo, o vídeo, o joystick e o Wi-Fi vêm dos componentes TAIDroneFQ777, TAIH264Decoder, TAIJoystick e TAIWifi da Lazarus AI Suite.
Cheerson CX-10W
Selecione Cheerson CX-10W em Configuração > Protocolo e conecte o PC na rede Wi-Fi do drone (Cheerson-CX-10W-…). Ao clicar em Start o cockpit abre o canal de controle e os dois canais de vídeo (TCP 8888), envia os pacotes de inicialização e passa a mandar o comando por UDP 8895 a cada 50 ms. IP e portas ficam na seção [CX10W] do drone.cfg (padrão 172.16.10.1, 8888, 8895), separada dos outros drones.
Por segurança, a aceleração fica travada até ser levada ao mínimo (tecla Q ou manche) depois da conexão. O vídeo é H.264 e usa o ffmpeg.exe (na pasta do programa ou no PATH).
Parrot AR.Drone 2.0
Selecione Parrot AR.Drone 2.0 e conecte o PC na rede ardrone2_…. O cockpit usa o protocolo oficial da Parrot: comandos AT por UDP 5556, telemetria (bateria, altura, atitude) por UDP 5554 e vídeo H.264 por TCP 5555.
| Comando | Joystick / teclado |
|---|---|
| Decolar | botão 3 (tecla 3) ou botão Decolar |
| Pousar | botão 4 (tecla 4) ou botão Pousar |
| Rolagem / arfagem | manche ou setas / W A S D |
| Subir / descer | eixo Z ou E / Q (centro = mantém a altura) |
| Girar | botões 1 / 2 |
| Emergência | botão EMERGÊNCIA na janela do drone |
Com os comandos no centro o drone paira no lugar. Ao desligar, o cockpit manda o drone pousar. Altura máxima, voo ao ar livre e sensibilidade ficam na aba AR.Drone 2.0 (seção [ARDRONE]).
Drone ESP32 (firmware Cockpit)
A pasta firmware/esp32_drone traz o firmware de um mini quadricóptero com ESP32 + MPU6050 + motores escovados, e o protocolo CDP (PROTOCOLO.md). Grave o firmware, conecte o PC na rede CockpitDrone-XXXX (senha cockpit123) e selecione Drone ESP32 (firmware Cockpit).
Botão 3 arma (só com a aceleração no mínimo), botão 4 desarma; a janela do drone tem CORTE DOS MOTORES e Calibrar. O firmware corta os motores se perder o sinal por 500 ms (descida de 2 s) ou se o drone capotar. Leia o README do firmware e faça o primeiro teste sem hélices.
O protocolo ESP-Drone / OpenDrone (CRTP) continua disponível para placas com o firmware ESP-Drone da Espressif (rede do drone 192.168.43.42, UDP 2390).
Rota de voo (somente drones com GPS)
O botão Rota de voo do cockpit abre o planejamento de rota. Ele só fica disponível para drones com GPS e navegação autônoma: hoje, MAVLink (ArduPilot ou PX4), em multirrotores. Com outro drone selecionado (CX-10W, Tello, FQ777-954, OpenDrone, drone ESP32, AR.Drone 2.0 sem o acessório Flight Recorder), a janela não abre e explica o motivo.
- Em Configuração > Protocolo, escolha MAVLink. Na aba MAVLink, informe o IP do drone ou da ponte Wi-Fi e a porta UDP (padrão 14550, a mesma do Mission Planner). Clique em Start.
- Em Rota de voo, clique em Adicionar pelo mapa e clique nos pontos (ou use Ctrl+clique). Arraste para mover o mapa e use a roda do mouse para o zoom. Também é possível usar a posição do drone ou abrir um arquivo
.waypointsdo Mission Planner/QGroundControl. - Ajuste na tabela a latitude, a longitude, a altitude e a velocidade de cada ponto. Nas opções, defina a altitude de decolagem, a velocidade padrão, a distância máxima do ponto de partida e o que fazer ao terminar: voltar ao ponto de partida, pousar ou pairar no último ponto.
- Enviar ao drone: a rota é validada e enviada; o drone confirma.
- Iniciar rota: depois da confirmação, o drone arma, decola e percorre os pontos. Durante o voo: Pausar (pairar), Continuar, Voltar ao ponto de partida e Pousar agora.
Proteções:
- A rota só é enviada com GPS 3D e pelo menos 6 satélites, com a posição e o ponto de partida conhecidos, bateria de pelo menos 30% (quando informada) e o drone desarmado.
- Cada ponto precisa estar entre 2 e 120 m de altitude e entre 0,5 e 15 m/s de velocidade, dentro da geocerca (Alt+clique no mapa) e dentro da distância máxima do ponto de partida.
- Se a rota for alterada depois de enviada, é preciso enviá-la de novo.
- Durante a rota, o manche e o teclado não interferem.
As opções ficam na seção [ROTA] do drone.cfg e a conexão MAVLink na seção [MAVLINK].
Funcionalidades Atuais
- Interface gráfica principal para controle e monitoramento do drone e dispositivos periféricos.
- Visualização e configuração em tempo real dos estados do joystick.
- Leitura e decodificação de dados GPS via porta serial.
- Comunicação TCP/UDP para envio de comandos ao drone e monitoramento da conexão.
- Interfaces visuais básicas para câmera e mapa (sem lógica implementada).
- Utilitário para mapeamento linear de sinais analógicos.
Avaliação do Momento Atual do Desenvolvimento
O projeto está em estágio intermediário, com base do sistema e integração dos dispositivos principais funcionando. Interfaces principais e módulo de configuração operam adequadamente para joystick e comunicação de drone. GPS está parcialmente implementado com decodificação e apresentação básica. Módulos como joystick.pas e formulários de câmera e mapa carecem de código funcional. A função de mapeamento existe, porém sem tratamento robusto de erros. Recomenda-se progresso em robustez, tratamento de exceções e complementação funcional.
Contato
Para dúvidas, colaborações ou sugestões, entre em contato:
- Email: marcelomaurinmartins@gmail.com
- WhatsApp: +55 16 98143-4112
Licença
Este projeto está sob uma licença livre, permitindo o uso, modificação e distribuição conforme condições específicas definidas pela equipe de desenvolvimento. Informações detalhadas devem ser obtidas diretamente com os mantenedores.
Site Oficial
Seção 2: English
Project Overview
This project, developed in Object Pascal (Lazarus/Free Pascal), is an application for remote control and monitoring of drones. It integrates multiple devices and features such as joystick, GPS, camera, and maps, providing a central graphical user interface to manage and view the status of the drone and connected peripherals.
Project Structure
- main.pas
Implements the main graphical interface. Manages activation and monitoring of controls including joystick, drone, GPS, camera, and map using LEDs and visual controls. Processes joystick commands and controls the drone connection via a dedicated form. - config.pas
Provides configuration interface for communication parameters and joystick selection. Allows real-time viewing and testing of joystick axes and buttons, integrated with the main interface. - joystick.pas
Currently empty file, reserved for future joystick-related implementations. - gps.pas
Form responsible for reading GPS data from serial port, decoding NMEA sentences, and displaying location, satellite, and signal quality information. - camera.pas
Visual form with custom grid, image and labels for camera data display. Currently has no implemented logic. - map.pas
Form with grid component for map or visual area display, without functional logic implemented yet. - Drone protocols
The protocols live in the Lazarus AI Suite (CHATGPT)openai_dronepackage, so other applications can reuse them:TAIDroneCX10W,TAIDroneMavlink,TAIDroneTello,TAIDroneESPDrone,TAIDroneFQ777,TAIDroneARDroneandTAIDroneCDP. The cockpit windows (conection*.pas) share the baseconexaodrone.pasand only configure their component and forward the sticks. - conectionfq777.pas
Dedicated connection for the FQ777-954 quadcopter: finds and joins the drone's Wi-Fi automatically (the drone is not started if the network is not found), proportional flight control and H.264 camera, built on the Lazarus AI Suite componentsTAIDroneFQ777,TAIH264Decoder,TAIJoystickandTAIWifi. - funcs.pas
Contains utility functions likeMAPAfor linear mapping of analog values to byte range (0-255), essential for signal normalization.
Installation
- Install Lazarus and Free Pascal in your development environment.
- Install the Lazarus AI Suite (CHATGPT) packages:
openai_core,openai_input,openai_hardware,openai_videoandopenai_drone. - Clone or download the project source.
- Open
src/drone.lpiin Lazarus. - Compile and run the project.
- For the camera (FQ777-954, CX-10W, Tello and AR.Drone), place
ffmpeg.exenext todrone.exe(or on the PATH).
Current Features
- Main GUI for drone and peripheral control and monitoring.
- Real-time visualization and configuration of joystick states.
- GPS data reading and NMEA decoding from serial port.
- TCP/UDP communication for sending commands and monitoring the drone.
- Basic camera and map visual interfaces (without implemented logic).
- Utility for linear mapping of analog signals.
Current Development Status
The project is in an intermediate phase, with basic system infrastructure and main device integrations operational. The main UI and configuration module function for joystick and drone communication. GPS functionality includes basic decoding and display. Modules like joystick.pas and camera/map forms lack functional code. The mapping function exists but lacks robust error handling. Development should focus on robustness, exception handling, and feature completion.
Contact
For questions, collaboration, or suggestions, contact:
- Email: marcelomaurinmartins@gmail.com
- WhatsApp: +55 16 98143-4112
License
This project is under a free license that allows usage, modification, and distribution under specific terms defined by the development team. Detailed info should be obtained directly from maintainers.
Official Website
Sección 3: Español
Visión General del Proyecto
Este proyecto, desarrollado en Object Pascal (Lazarus/Free Pascal), es una aplicación para control remoto y monitoreo de drones. Integra múltiples dispositivos y funcionalidades como joystick, GPS, cámara y mapas, ofreciendo una interfaz gráfica central para gestionar y visualizar el estado del dron y los periféricos conectados.
Estructura del Proyecto
- main.pas
Implementa la interfaz gráfica principal del sistema. Gestiona activación y monitoreo de controles, incluyendo joystick, dron, GPS, cámara y mapa mediante LEDs y controles visuales. Procesa comandos del joystick y controla la conexión con el dron a través de un formulario específico. - config.pas
Interfaz para configurar parámetros de comunicación y selección del joystick. Permite visualización y prueba en tiempo real de ejes y botones del controlador, integrada con la interfaz principal. - joystick.pas
Archivo actualmente vacío, reservado para futuras implementaciones relacionadas con joystick. - gps.pas
Formulario encargado de la lectura de datos GPS vía puerto serial, decodificación de sentencias NMEA y presentación de información de ubicación, satélites y calidad de señal. - camera.pas
Formulario visual con cuadrícula personalizada, imagen y etiquetas para presentación de datos de cámara. No posee lógica implementada actualmente. - map.pas
Formulario con componente de cuadrícula para mostrar mapas o área visual, sin lógica funcional implementada. - Protocolos de los drones
Los protocolos están en el paqueteopenai_dronede la Lazarus AI Suite (CHATGPT):TAIDroneCX10W,TAIDroneMavlink,TAIDroneTello,TAIDroneESPDrone,TAIDroneFQ777,TAIDroneARDroneyTAIDroneCDP. Las ventanas de conexión (conection*.pas) comparten la baseconexaodrone.pas. - funcs.pas
Contiene funciones utilitarias comoMAPA, que realiza mapeo lineal de valores analógicos al rango byte (0-255), fundamental para la normalización de señales.
Instalación
- Instale Lazarus y Free Pascal en su entorno de desarrollo.
- Clone u obtenga el código fuente del proyecto.
- Abra el archivo
main.pasen Lazarus. - Compile y ejecute el proyecto.
Funcionalidades Actuales
- Interfaz gráfica principal para control y monitoreo del dron y dispositivos periféricos.
- Visualización y configuración en tiempo real del estado del joystick.
- Lectura y decodificación de datos GPS vía puerto serial.
- Comunicación TCP/UDP para envío de comandos y monitoreo del dron.
- Interfaces visuales básicas para cámara y mapa (sin lógica implementada).
- Utilitario para mapeo lineal de señales analógicas.
Estado Actual del Desarrollo
El proyecto está en una fase intermedia con infraestructura básica y principales integraciones operativas. La interfaz principal y módulo de configuración funcionan para joystick y comunicación con el dron. La funcionalidad GPS está parcialmente implementada con decodificación y visualización básica. Módulos como joystick.pas y formularios de cámara/mapa carecen de código funcional. La función de mapeo existe pero sin manejo robusto de errores. Se recomienda avanzar en robustez, manejo de excepciones y complementación funcional.
Contacto
Para dudas, colaboraciones o sugerencias, contacte a:
- Email: marcelomaurinmartins@gmail.com
- WhatsApp: +55 16 98143-4112
Licencia
Este proyecto está bajo una licencia libre, permitiendo uso, modificación y distribución conforme condiciones específicas definidas por el equipo de desarrollo. Información detallada debe ser solicitada directamente a los mantenedores.

