Drone codrone

Installation et mise en route

Chaque drone est commandé par une télécommande connectée à l'ordinateur en usb (micro usb)

Pour commander plusieurs drones à la fois (mode essaim) il faut connecter chaque drone en usb à l'ordinateur (en utilisant un hub usb si besoin)

Installer Thonny (environnement de programmation python) disponible ci-dessous.

Thonny est un environnement développé par l'université de Tartu. La licence Thonny autorise la diffusion de cet environnement.


On peut utiliser le drone seul ou à plusieurs (en essaim).

Ci-dessous, le mode de fonctionnement est détaillé à gauche pour un seul drone et à droite pour l'essaim de drones (swarm en anglais)


Un seul drone

  • Code de base :
from codrone_edu.drone import *
drone = Drone()
drone.pair()
drone.takeoff()
drone.hover(5)
drone.land()
drone.close()
Le drone décolle, reste en l'air 5 s et se pose.

  • Tourner à droite : turn_right(degree)
drone.turn_right(60)
Le drone tourne à droite de 60°

  • Tourner à gauche : turn_left(degree)
drone.turn_right(40)
Le drone tourne à gauche de 40°

  • Avancer d'une longueur : move_distance(x,y,z,vitesse) x,y,z en mètre, vitesse de 0 à 2
drone.move_distance(0.5,0,0,1)
Le avance devant lui de 50 cm à la vitesse 1

drone.move_distance(0,-0.2,0,0.5)
Le avance sur sa droite de 20 cm à la vitesse 0.5

drone.move_distance(0,0,0.8,2)
Le monte de 80 cm à la vitesse 2

  • Faire un flip : flip(orientation)
drone.flip("back")
Fait un flip vers l'arrière

drone.flip("forward")
Fait un flip vers l'avant

drone.flip("left")
Fait un flip vers la gauche

drone.flip("right")
Fait un flip vers la droite

  • Mouvements combinés
Principe : changement des paramètres de vol, lancement du mouvement puis remise à zero des paramètres de vol. On utilise :
set_pitch(valeur) valeur entre -100 et 100
set_roll(valeur) valeur entre -100 et 100
set_throttle(valeur) valeur entre -100 et 100
set_yaw(valeur) valeur entre -100 et 100
puis
move(duree) durée en secondes
Exemple 1 : le drone monte en tournant..
drone.set_throttle(25)
drone.set_yaw(60)
drone.move(5.5)
drone.set_throttle(0)
drone.set_yaw(0)
Réglage de la montée à 25, la rotation à 60 vers la gauche (positif)
Mouvement pendant 5 secondes et demie
remise à zéro des paramètres
Exemple 2 : montée en hélice..
drone.set_throttle(25)
drone.set_yaw(60)
drone.set_pitch(35)
drone.move(5)
drone.set_pitch(0)
drone.set_yaw(0)
drone.set_throttle(0)
drone.move(0.1)
Réglage de la montée à 25, la rotation à 60 vers la gauche, déplacement avant à 35
Mouvement pendant 5 secondes
remise à zéro des paramètres
La dernière instruction sert à arrêter le mouvement

Vol en essaim

  • Code de base :
from codrone_edu.swarm import *
swarm = Swarm()
swarm.connect()
swarm.takeoff()
swarm.hover(5)
swarm.land()
swarm.run_drone(1,'takeoff')
swarm.run_drone(1,'hover',5)
swarm.run_drone(1,'land')
swarm.close()
swarm.takeoff() : Tous les drones décollent
swarm.run_drone(1,'takeoff') : seul le drone 1 décolle.
Attention aux deux syntaxes différentes

Les drones sont numérotés comme ceci : 0, 1,...

swarm.run_drone(1,'hover',5)
pilote un seul drone en essaim alors que si le drone étai piloté seul, on écrirait :
drone.hover(5)

Exemples de code

Les drones font un tour sur eux-mêmes par quart de tout de façon synchone
from codrone_edu.swarm import Swarm
import time
swarm = Swarm()
swarm.connect()
swarm.takeoff()
for i in range(4):
swarm.hover(1)
swarm.turn_left()
swarm.hover(3)
swarm.land()
swarm.close()