Comment programmer un drone LiteWing en utilisant Python avec le SDK Crazyflie Cflib Python

Comment programmer un drone LiteWing en utilisant Python avec le SDK Crazyflie Cflib Python

Introduction

Axé sur la polyvalence et la modularité, le drone LiteWing peut être programmé et contrôlé à l’aide de différentes plateformes. Lorsque vous achetez un drone LiteWing, il est livré avec un micrologiciel par défaut prenant en charge les protocoles Crazyflie. Cela signifie que votre drone est prêt à voler à l’aide de l’application mobile et prend également en charge les packages cfclient et cflib de Crazyflie.

Important: Sur la base des demandes de nos utilisateurs, nous avons également créé un Bibliothèque Python pour LiteWing drones, vous permettant de voler, de surveiller et de programmer plus facilement les trajectoires de vol de vos drones LiteWing avec de simples lignes de code. Consultez le guide de démarrage rapide de la bibliothèque LiteWing Python pour plus d’informations.

Ce guide se concentre sur cflib, qui est un SDK Python de Crazyflie qui vous permet d’écrire votre propre code Python pour contrôler votre drone LiteWing. Si vous préférez la programmation Arduino, vous pouvez également programmer votre LiteWing en utilisant Arduino et reflasher directement votre ESP32, mais c’est pour un tutoriel différent. Pour l’instant, concentrons-nous sur la façon de contrôler votre drone LiteWing à l’aide de Python. Parcourez les idées de projets de drones comprenant des quadricoptères, un contrôle sans fil et l’intégration de capteurs.

Youtube video

Fonction de développement multiplateforme sur LiteWing

Exigence

Description

Environnement de développement

Python 3.11+ et IDE (PyCharm recommandé)

Protocole

Détails

Transport

Wi-Fi-UDP

Cadre

CRTP (protocole fou en temps réel)

Adresse IP

192.168.43.42 (codé en dur dans le firmware)

Format d’URI

udp://192.168.43.42

Installation du package Python Cflib

Commençons par installer cflib sur votre ordinateur. Nous utilisons PyCharm comme notre IDE de développement et je recommanderais la même chose. Mais vous pouvez utiliser n’importe quel IDE de votre choix. Ouvrez un nouveau projet sur PyCharm et accédez au terminal pour suivre les étapes ci-dessous et installer cflib.

Installation étape par étape

Étape

Commande

Description

1

clone git https://github.com/jobitjoseph/crazyflie-clients-python.git

Cloner le référentiel

2

cd crazyflie-clients-python

Accédez au répertoire

3

pip3 install -e .

Installer les dépendances, cfclient et cflib

Vue du terminal PyCharm

Cet exemple simple vous aidera à vous connecter au drone et à faire tourner les quatre moteurs pendant 1 seconde à vitesse minimale. Ce code démontre les bases et sert de base à des projets plus avancés.

Bibliothèques requises
Nous commençons par inclure les bibliothèques requises pour notre code, comme vous pouvez le voir ci-dessous. La bibliothèque time est utilisée pour fournir du retard, et les bibliothèques crtp et crazyflie sont utilisées pour communiquer avec nos drones, comme nous le verrons plus en détail.

import time
import cflib.crtp
from cflib.crazyflie import Crazyflie

Dans la ligne suivante, nous avons fourni le code URI de notre drone. URI signifie Uniform Resource Identifier. Ce code nous permet d’identifier le drone et le protocole de communication utilisé pour communiquer avec le drone.

Paramètre

Valeur

Description

URI

udp://192.168.43.42

Identifiant de connexion du drone

Protocole

UDP

Protocole de communication

Adresse IP

192.168.43.42

Codé en dur dans le firmware LiteWing

# URI for your LiteWing drone
DRONE_URI = "udp://192.168.43.42"

Note: cfclient prend également en charge des protocoles autres qu’UDP ; vous pouvez également essayer UART, USB et BLE ; cependant, nous ne les avons pas encore testés.

Ensuite, nous initialiserons les pilotes pour CRTP en utilisant «cflib.crtp.init_drivers() » et créez une instance pour l’objet Crazyflie. Il a été développé par Crazyflie ; nous utiliserons ce protocole pour communiquer avec notre drone via UDP.

# Initialize CRTP drivers
cflib.crtp.init_drivers()
# Create Crazyflie instance
cf = Crazyflie()

Suivant, nous nous connectons au drone en utilisant notre URI Drone. Lorsque nous établissons une connexion avec le drone, vous pourrez également voir la LED LINK (bleue) clignoter sur le drone.

# Connect to the drone
print("Connecting to drone...")
cf.open_link(DRONE_URI)

Pour contrôler le drone, nous allons utiliser l’option send_setpoint. Vous pouvez en savoir plus ici dans la documentation cflib. Essentiellement, « send_setpoint(roulis, tangage, lacet, poussée) » peut être utilisé pour définir la position du drone en lui donnant la valeur de roulis, de tangage, de lacet et de poussée. Si vous n’êtes pas sûr de ce que sont le roulis, le tangage et le lacet, veuillez consulter la documentation sur les bases des drones.

Avant de commencer quoi que ce soit, il faut armer le drone pour commencer à le contrôler. Il s’agit d’une fonction de sécurité programmée dans le micrologiciel afin que les moteurs ne tournent pas accidentellement pendant le développement. Pour armer le drone, nous pouvons utiliser la commande send_setpoint et envoyer toutes les valeurs à zéro, comme indiqué ci-dessous

# First send zero setpoint to unlock safety and arm drone
print("Sending zero setpoint to unlock safety...")
cf.commander.send_setpoint(0, 0, 0, 0)
time.sleep(0.1)

Une fois le drone armé, nous allons faire tourner les quatre hélices pendant une seconde, toujours en utilisant la même commande send_setpoint mais en donnant une valeur de poussée. La valeur de poussée minimale de votre drone est de 10 000 et la valeur maximale de 60 000. Nous allons en utiliser 10 000 pour que le drone ne décolle pas.

# Flight parameters
roll = 0.0
pitch = 0.0
yaw = 0
thrust = 10000  # Thrust value is 10000 minimum and 60000 maximum
# Start motors
print("Starting motors at minimum speed...")
cf.commander.send_setpoint(roll, pitch, yaw, thrust)
time.sleep(1)

Le send_setpoint(roulis, tangage, lacet, poussée) La fonction est l’interface de contrôle principale :

Paramètre

But

Exemples de valeurs

rouler

Mouvement latéral

-10,0 (gauche), 0,0 (centre), +10,0 (droite)

pas

Mouvement avant/arrière

-10,0 (en arrière), 0,0 (au centre), +10,0 (en avant)

yawrate

Vitesse de rotation

-50 (rotation à gauche), 0 (pas de rotation), +50 (rotation à droite)

poussée

Force verticale

10 000 (minimum), 35 000 (survol), 60 000 (maximum)

# Stop the motors
print("Stopping motors...")
cf.commander.send_setpoint(0, 0, 0, 0)
time.sleep(0.1)
# Close the connection
cf.close_link()

Test du code Python ‘Bonjour LiteWing’

Étape

Action

1

Allumer le drone LiteWing

2

Connectez l’ordinateur portable au SSID WiFi LiteWing

3

Recherchez le réseau WiFi : LiteWing_F09E9E29511D (exemple)

4

Connectez-vous avec le mot de passe : 12345678

Connecter Litewing via WiFi sur PC

Test du code Python Hello LiteWing

Note: Vous pouvez ignorer les avertissements concernant le cache et les threads : ils sont normaux et n’affectent pas les fonctionnalités.

Dernière mise à jour : 8 décembre 2025 | Statut de construction : Testé et vérifié

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

Youtube video

  • Crazybee F4 Lite 1S VTX 4in1 ESC FC intégré for Mobula6 Tiny Whoop Drone
  • Drone avec Caméra HD 1080P, Wipkviey T26 drone enfant adulte avec vidéo, Flip 3D, Capteur de gravité, Maintien de l'altitude, Mode sans tête