Ou comment faire discuter l’éléphant avec un lapin

Lundi 14 septembre 2009,

Le nabaztag est un objet communicant représentant un lapin, il est équipé de 5 leds clignotant de toutes les couleurs, 2 grandes oreilles motorisées, un micro, un haut parleur et une carte wifi. Il peut vous annoncer la météo, la bourse, vos mails... et vous pouvez même commander ses mouvements.

 

Edit 9 Aout 2011 : Mindscape, en redressement judiciaire a définitivement coupés ses serveurs hébergeant les nabaztags. Des solutions alternatives sont proposées. Nous sommes en train d’étudier le développement d’une nouvelle solution full PHP.

Edit 25 juillet 2011 : Les serveurs de Mindscape hébergeant l’API, utilisées par cette classe, vont être coupés dans les jours qui suivent, je modifirais l’article et la classe si il est possible de passer par un autre moyen que l’API.

Le but de cet article est de vous montrer comment utiliser la librairie PHP/nab pour utiliser votre ( ou celui de vos visiteurs ! ) nabaztag sur votre site internet.

Cette librairie est composée de 5 classes PHP :

  • choreography
  • retreve
  • stream
  • nabaztag
  • xmlanayser

Les classes que vous pouvez utiliser sont :
- choreography : cette classe vous permet d’envoyer une chorégraphie à votre nabaztag
- stream : cette classe vous permet de lire des fichiers mp3 ou un flux audio à l’aide de votre nabaztag
- retreve : cette classe vous permet de récupérer des informations de votre nabaztag

Nous allons voir maintenant comment utiliser cette classe de manière à faire une petite chorégraphie :

<?php

//nous commençons par inclure les classes
require_once "class/nabaztag.class.php";
require_once 
"class/choreography.class.php";
require_once 
"class/retreve.class.php";
require_once 
"class/stream.class.php";
require_once 
"class/xmlanayser.class.php";

//nous créons l'objet choreography, il nécessite plusieurs paramètres:
//le SN: Le numéro de série du nabaztag (en fait c'est son adresse MAC)
//le token, un code obtenu sur le site de violet
//le tempo exprimé en Hz, 10 correspond à 10 occurrences par secondes.
$chor = new choreography("Votre SN""Votre token"10);

//cette commande permet de remettre les oreilles en position verticale.
$chor->addAllEarZeroCommand();

//cette commande permet de faire tourner l' oreille gauche de 40 degrés
//vers l'avant 6 secondes après le début de la choregraphie.
$chor->addEarCommand(60"left""40""front");


//cette commande permet de faire tourner l' oreille gauche de 40 degrés
//vers l'arrière 6 secondes après le début de la choregraphie.
$chor->addEarCommand(60"right""40""back");

//cette commande permet d'alumer une DEL du lapinou
//la couleur est au format RGB, chaque valeur est comprise entre 0 et 255.
//$chor->addLedCommand(temps, position, R, G, B);

$chor->addLedCommand(10"top""255""255""255");
$chor->addLedCommand(10"left""255""0""0");
$chor->addLedCommand(10"middle""0""255""0");
$chor->addLedCommand(10"right""0""0""255");
$chor->addLedCommand(10"bottom""0""0""0");

$chor->addAllLedOFFCommand(100);
$chor->addAllLedCommand(150"255""255""255");

//cette commande permet d'éteindre toutes les leds à la 20eme seconde.
$chor->addAllLedOFFCommand(200);

//cette commande permet de remettre les oreilles en position verticale à
//la 20eme seconde.
$chor->addAllEarZeroCommand(200);

$chor->addAllLedCommand(200"255""0""0");
$chor->addAllLedCommand(210"0""255""0");
$chor->addAllLedCommand(220"0""0""255");
$chor->addAllLedCommand(230"0""255""255");
$chor->addAllLedCommand(240"255""0""255");
$chor->addAllLedCommand(250"255""255""0");
$chor->addAllLedOFFCommand(260);

//on lance la chorégraphie créée.
$chor->go();
?>

Nous allons voir maintenant comment lire des fichiers mp3 ou un flux audio à l’aide de votre nabaztag, cela est beaucoup plus simple.

<?php

//nous commençons par inclure les classes
require_once "class/nabaztag.class.php";
require_once 
"class/choreography.class.php";
require_once 
"class/retreve.class.php";
require_once 
"class/stream.class.php";
require_once 
"class/xmlanayser.class.php";

//nous créons l'objet choreography, il nécessite plusieurs paramètres:
//le SN: Le numéro de série du nabaztag (en fait c'est son adresse MAC)
//le token, un code obtenu sur le site de violet
$stream = new stream($sn$token);

//On ajoute à la playlist les musiques (qui peuvent aussi être des webradios)
$stream->addStream("http://www.votre-site.fr/dossier/01.mp3");
$stream->addStream("http://www.votre-site.fr/dossier/02.mp3");

//on lance le flux créée.
$stream->go();
?>
A suivre ...