-
Notifications
You must be signed in to change notification settings - Fork 10
chor
#Choreography
You can create choreography for your Nabaztag with the following API. All documentation refer to the code available in ChorController.java
Une chorégraphie est une série d'actions effectuées par les DEL et les oreilles. Le paramètre principal de la chorégraphie est un tempo ajustable. Une fois que le tempo est défini, les actions vont être découpées à ce rythme. Chaque action est lancée à un moment précis, appelé "l'heure" de l'action : ce nombre est exprimé par le nombre de battements écoulés depuis le début de la chorégraphie jusqu'à l'évènement désiré.
Par exemple, avec un tempo d'un dixième de seconde, l'action associée à l'heure '10' se produira une seconde après le début de la chorégraphie. De même, l'action associée à l'heure '25' se produira 2,5s après le début de la chorégraphie et ainsi de suite... La syntaxe d'une chorégraphie est une série de mots-clef ou de nombres, séparés par des virgules. Les nombres sont toujours des entiers, exprimés sur en base 10. Les mots-clef sont soit 'motor' pour commander les oreilles, soit 'led' pour commander les DEL.
Cette série débute par le tempo, puis se constitue d'une succession d'actions sur les moteurs (des oreilles) ou les DEL. Chaque action ('motor' ou 'led') commence avec "l'heure" (exprimée par le nombre de battements écoulés depuis le début de la chorégraphie jusqu'à l'évènement désiré), suivie par la commande ('motor' ou 'led') et une série de variables qui décrivent l'action Si deux actions sont commandées en même temps, elles seront effectuées en même temps.
Le tempo est exprimé en Hz. '10' représente donc un tempo d'une seconde.
Pour commander les oreilles, on utilise une série de valeurs séparées par des virgules.
Les commandes sont les suivantes :
- Première valeur : "l'heure" de l'action, '0' si c'est la première commande
- Deuxième valeur : 'motor', pour bouger une oreille
- Troisième valeur : commande des oreilles :
- '1' pour commander l'oreille gauche
- '0' pour commander l'oreille droite
- Quatrième valeur : angle de l'oreille, compris entre 0 et 180
- Cinquième valeur : inutilisée, mettre à '0'
- Sixième valeur : sens de rotation des oreilles
- '1' : sens horaire : haut->arrière->bas->face->haut...
- '0' : sens antihoraire : haut->face->bas->arrière->haut...
Exemple d'une commande qui tourne l'oreille gauche dans le sens antihoraire avec un angle de 20°, à "l'heure" 0 :
0,motor,1,20,0,0
Pour commander les DEL, on utilise une série de valeurs séparées par des virgules. Les commandes sont les suivantes :
- Première valeur : "l'heure" de l'action, '0' si c'est la première commande
- Deuxième valeur : 'led', pour changer la couleur d'une DEL
- Troisième valeur : utilisée pour définir quelle DEL vous voulez illuminer :
- '0' : DEL du dessous
- '1' : DEL de gauche
- '2' : DEL du milieu
- '3' : DEL de droite
- '4' : DEL du nez du lapin
- Quatrième, cinquième et sixième valeurs : la couleur en RVB, les valeurs sont comprises entre 0 et 255.
Exemple d'une commande qui met la DEL du milieu en vert, puis qui met celle de gauche en rouge, et pour finir qui éteint celle de droite :
0,led,2,0,238,0,2,led,1,250,0,0,3,led,2,0,0,0
Voici comment combiner les trois actions, avec les paramètres initaux de tempo :
10,0,motor,1,20,0,0,0,led,2,0,238,0,2,led,1,250,0,0,3,led,2,0,0,0
Si vous avez bien suivi, c'est un jeu d'enfant d'envoyer la chorégraphie ainsi écrite ! Il suffit d'appeler cette URL :
/api/chor?data=10,0,motor,1,20,0,0,0,led,2,0,238,0,2,led,1,250,0,0,3,led,2,0,0,0
This will generate a random choreography (used in the taichi)
/api/chor/rand/:time