Introduction au développement d’applications sur le Karotz – Comment faire une appli en 5 minutes !
Aujourd’hui, nous avons décidé de vous expliquer comment le développement d’applications se fera pour notre ami le Karotz. Nous avons tenté de faciliter au maximum le travail des développeurs en proposant un SDK simple et facile à prendre en main. Comme nous l’avions annoncé en octobre dernier, ce SDK est basé sur le langage Javascript et permet de contrôler entièrement le lapin.
Sur cet article je ne vais parler que des applications embarquées et du SDK, nous aborderons le fonctionnement de l’API web en détail un peu plus tard !
Une application Karotz est une simple archive zip contenant :
- un descripteur
- et son code Javascript
Le descripteur est un fichier XML qui se présente sous la forme suivante :
- name indique le nom de l’application
- apikey est la clé unique publique qui sera donnée à chaque nouvelle application
- version est la version de l’application. En cas de changement, l’application sera mise à jour sur les Karotz où elle est installée.
- accesses correspond à la politique de sécurité de Karotz. C’est à dire que cela spécifie les modules qui sont autorisés ou interdits dans le cadre de l’exécution de l’application. Dans notre cas, cette application peut interagir avec le lecteur RFID, les oreilles, la synthèse vocale (TTS), la LED, la reconnaissance vocale (ASR), la brique multimédia, le bouton, et peut se connecter à Internet.
- deployment définit si l’application est embarquée (hosted) ou distante (external)
- interruptible permet de spécifier si l’application peut être interrompue en cours de fonctionnement par une seconde application (ou pas du tout)
- awake autorise ou non l’application à réveiller le lapin
- multiConf active ou non les instances multiples d’applications
Passons au code Javascript. Le fichier main.js doit être présent à la racine. Notez que l’on pourra librement se créer sa propre arborescence au sein de l’archive.
Une application helloworld se présenterait de la façon suivante :

Une fois téléchargée sur le Karotz, l’application est exécutée sur le lapin grâce à notre machine virtuelle.
Le Lapin (plus précisément le contrôleur) possède 3 types de connexions :
- La Plateforme, qui peut prendre la main sur le lapin grâce à l’API web.
- La KarotzVM embarquée, qui permet d’exécuter les applications embarquées.
- La KarotzVM distante de “dev” qui permet au développeurs d’exécuter des applications depuis un ordinateur placé dans le même réseau local que le lapin.
En d’autres termes, les développeurs pourront programmer leurs applications de façon très rapide en les développant depuis leur ordinateur, et en les testant directement sur leur lapin.
Il s’agira alors de spécifier l’adresse IP locale du lapin à contrôler dans le main.js et le Karotz sera tout simplement piloté par la machine virtuelle placée sur l’ordinateur distant.
On ne peut pas faire plus simple. Voici un exemple sous Linux (il n’y a qu’à préciser le nom de dossier une fois la VM lancée.)
./KarotzVM helloworld
Aujourd’hui, la KarotzVM de développement fonctionne sous Linux et Mac, mais sera prochainement disponible sous Windows. Enfin… si on réussit à trouver un ordinateur sous Windows
Et comme nous sommes vendredi, voici une vidéo qui illustre mes propos et qui explique comment développer une applications en 5 minutes !
La semaine prochaine, comment fabriquer un réacteur nucléaire avec un Karotz !
A lire aussi sur le blog de Karotz :






about 2 years ago
Bonjour,
il m’est impossible de faire la pré-commande de mon Karotz. En message d’erreur apparaît. J’ai changé de PC mais rien y fait. Que faire ?
about 2 years ago
Moi aussi je n’ai que des PC sous linux (Ubuntu 10.04) et moi mir:ror ne fonctionne pas… Avec votre talent de développeur, vous pouvez s’il vous plait mettre à jour le mirware, merci
Sinon, la communication est superbe, continuez ainsi !
about 2 years ago
Bonsoir ! merci pour cette vidéo ! A priori on aime bien l’environnement macintosh chez mindscape ! moi aussi
ceci dit, elle risque d’en laisser plus d’un dubitatif. A bientôt bon courage et bonne continuation à la team !
about 2 years ago
Désolé pour le doublon
Ok je sors…
about 2 years ago
que j’aimerais avoir la même complicité avec mon directeur technique… vous êtes trop mignon
chapeau les gars pour cette vidéo, ça donne vraiment envie d’avoir un lapin sous la main.
La première application que je vais faire? je porterai ma vielle “application php pour nabaztag” qui se branche sur la station de vélib juste en bas de chez moi et qui me donne son statut en TTS.
about 2 years ago
Vu que les applications seront lancées depuis le Karotz et non plus sur le serveur comme avec le nabaztag, sera-t-il possible de déconnecter le karotz d’internet sans pour autant qu’il arrête totalement de fonctionner(Heure/Réveil)? Je pense surtout à la nuit où je doit éteindre mon modem.
about 2 years ago
Hélas “pour l’instant” nous obligeons la connexion Internet pour la simple et bonne raison que Karotz a besoin d’Internet pour recevoir sa configuration, sa planification d’applications dans le temps et surtout pour se mettre à l’heure. Etant donné qu’il n’y a pas de pile pour l’horloge sur le lapin, la mise à l’heure est nécessaire. En cas de coupure de courant, le réveil ou toute action prévue dans le temps se retrouverait détraquée. Toutefois, je pense que nous réfléchirons à un moyen de faire fonctionner le Karotz de façon basique en mode déconnecté.
about 2 years ago
Ce serait vraiment génial de pourvoir l’utiliser Offline ! Imaginez les dizaines de situations, coupure de courant (usage sur batterie) ou encore la Livebox qui s’éteint (comme souvent).
Et même l’usage dans le train quand on va à la montagne ! Le Lapin *doit* pouvoir s’utiliser sans Internet c’est logique. Et ce qui serait le top ca serait de pouvoir stocker des appli sur une clé USB grâce au port situé à l’arrière. On connecte la queue du Lapin et le voilà encore plus intelligent ! =D
about 2 years ago
Mince pas de RTC sur le lapin…. alors faire un RTC en soft arm…. ???? Quid de la batterie s’il y a une coupure de courant? Peut-elle etre utilise pour faire tourner le lapin en mode veille ou Low-Power Mode?
about 2 years ago
Si, il y a une RTC sur le processeur. Elle n’a juste pas de source d’alimentation secondaire. Elle doit donc être mise à jour à chaque démarrage.
Peux-tu préciser ta question sur la batterie ?
about 2 years ago
Je voulais juste savoir, si la batterie pouvait etre utiliser lors d’une coupure de courant pour assurer ne serait ce que la fonction reveil.
Il semble que le karotz est vraiment besoin d’internet pour savoir l’heure qu’il est. Je pensais qu’avec un RTC+cron et une gestion de l’alimentation (couper la webcam, le hp, la led, wifi en mode scan par intermittence) en pouvait esperer que la fonction reveil soit encore operante malgre une coupure longue du courant.
about 2 years ago
PS: SVP pour les forums cela permettrait de regrouper les infos et clarifier les echanges. Desole de paraitre un peu lourd sur ce point, mais je pense que cela serait benefique pour tout le monde…
PPS:
personne veut nous dire quand le SDk sera pret….
about 2 years ago
Pour le SDK, c’est une chose qui n’a pas encore été fixée.
about 2 years ago
Au démarrage de Karortz, nous sommes en janvier 1970, il faut fixer l’heure et la date. Ensuite, tant que le lapin reste allumé il est à l’heure. Il n’y a que en cas de coupure de courant totale qu’il se retrouvé déréglé. Par conséquent, si Internet n’est pas présent au redémarrage, l’heure ne sera pas correctement mise à jour. C’est pour ça qu’une connexion à Internet est nécessaire.
Dans un premier temps c’est une restriction totale, mais nous pouvons envisager à terme de faire fonctionner Karotz en mode dégradé même s’il n’a plus Internet et qu’il l’a déjà eu au démarrage pour la mise à l’heure.
about 2 years ago
Ok. Je pense que cela pourrait être intéressant, si le lapin a etait au moins une fois sur Internet.
Peut on envisager de rendre l’application réveil indépendante d’internet, outre pour la mise a jour de l’heure. A savoir si le mp3 lu (ou le texte TTS) pour réveiller peut être stocke sur une flash ou sur le port USB?
D’ailleurs comment compter vous mettre a jour le firmware du Karotz? Par Internet? Par USB?
about 2 years ago
Peut on envisager de rendre l’application réveil indépendante d’internet
> Oui, mais actuellement ce n’est pas le cas.
D’ailleurs comment comptez vous mettre a jour le firmware du Karotz?
> Les deux seront possibles. Le système sera mis à jour automatiquement par internet. Mais dans certains cas où les mises à jours ne fonctionneraient pas (trop faible débit), nous pourrons fournir des clés USB pour mettre à jour le lapin.
about 2 years ago
ok ok intéressant tout ça….. bon allez bientôt on aura les forums et les labs de dispo et la on pourra s’amuser un peu plus…. Merci en tout cas pour les infos! J’ai hâte de voir le prochain Dev Diary!
about 2 years ago
Ouh elle m’intéresse déjà cette appli Mirli.
Merci pour ce Dev Diary, j’ai hâte d’être au mois de mars.
about 2 years ago
Fantastique !
Même moi qui ne m’y connais pas trop, ça donne envie de se lancer dans la prog de petites applis bien sympa
Et toujours merci pour la com’ , continuez comme ça !
about 2 years ago
Karotz pré-commandé
et ok pour vous prêter un PC sous Windows
about 2 years ago
rhalala, j’ai hâte de commencer !
/* sinon,
*/
(Math.floor(Math.random() * 1000)) % 300
fait que les 100 premiers mp3 sortent plus souvent que les 200 derniers…
on pourrait faire tout simplement
Math.floor(Math.random() * 300)
non ?
about 2 years ago
Bonjour Mindscape,
désolé si n’est pas la juste place pour vous demander cette chose… mais c’est vrai qui Karotz ne parlera pas italien?!? Je suis moderatrice de la communauté italienne de Nabaztag et beaucoup entre nous aimerons pré-commander Karotz mais on n’est pas sure s’il sera disponibile dans la version italien…
Merci… woshi
about 2 years ago
Bonjour Woshi,
dans un premier temps, nous nous sommes concentrés sur 4 langues de développement : français, anglais, allemand et espagnol.
Nous envisageons d’ores et déjà d’ajouter d’autres langues dont l’italien mais pour le moment nous ne pouvons pas vous dire lorsque ce sera disponible.
A très bientôt
about 2 years ago
Parfait, parfait… une usine à gaz quand même la programmation de l’appli !
Un petit bonjour à Guillaume V en passant et si j’arrive à tout bien comprendre, j’adopterai un karotz pour tenir compagnie à mon petit Nabaztag.
Une question cependant…. toujours un abonnement pour l’accès à certaines fonctionnalités ????
about 2 years ago
Perso, je trouve leur appli et leur environnement de dev pour l’instant assez simple. Tout y est pour développer de bonne appli. Ca sera toujours mieux que les appli avec la requete url…..
about 2 years ago
Au faite, il ne serait pas temps de mettre en place les forums, je vois que pleins de posts sont en doublons (batteries, precommandes, etc)….
Mais au faites, a quand le SDK??
Pour le reacteur nucleaire, ca peut etre une solution se passer de la batterie…!!
about 2 years ago
Salut !!
Est-ce que ce SDK est compatible avec les Nabaztag tag ?
Sinon, y aura t-il un moyen de développer des applis pour le nabaztag ? (Est-ce que les “API” Violet seront migrées ?)
about 2 years ago
Bonjour,
Je suis chercheur en traitement d’images et je me demandais si il serait possible d’acceder à la webcam pour faire une application de reconnaissance de visage par exemple.
Bien cordialement
about 2 years ago
Oui le SDK permettra d’accéder à la webcam et d’y faire les traitement que vous souhaitez.
about 2 years ago
Merci,
C’est parfait, on va enfin pouvoir jouer avec ce petit lapin et lui donner une vrai interactivité avec son utilisateur.
about 1 year ago
y a t il un programme pour creer les applications?
merci d avance
about 1 year ago
Bonjour olivier, et merci pour votre intérêt dans la création d’applications. Pour celle-ci, je vous oriente vers le Karotz Lab se trouvant à l’adresse http://www.karotz.com/lab/home (interface en anglais). Vous y trouverez les outils pour le développement ainsi qu’un groupe de discussion où vous pourrez échanger avec d’autres développeurs et poser toutes les questions que vous souhaitez. (Note : les offres d’emploi n’ayant pas été actualisées depuis un certain temps, merci de ne pas en tenir compte).