Développement
La vidéo du vendredi (un jeudi !) : un mini-jeu Karotz chante Daft Punk pour les fêtes de Noël !
23/12/10
Bonsoir,
Voici donc notre petite vidéo hebdomadaire sur Karotz. Aujourd’hui, je suis avec Nabil et nous vous présentons une application mini-jeu que nous avons développée sur la chanson de Daft Punk “Harder, Better, Faster, Stronger” !
Il faut être un peu patient, l’introduction de la chanson est un peu longue
Demain, la Karotz Team fête Noël (et on embarque Karotz dans les familles, histoire qu’il ne se sente pas trop seul), du coup, nous ne serons de retour que lundi. Nous vous souhaitons d’avance un joyeux Noël à toutes et tous !
A lire aussi sur le blog de Karotz :
Un bonjour de Chine
20/12/10
Cette semaine, comme vous le savez peut-être, je suis en Chine dans l’usine qui fabrique les Karotz.
Que vous dire, c’est immense… Actuellement nous sommes dans la phase d’industrialisation de plus d’un an d’efforts. Un an que nous travaillons d’arrache-pied à mettre au monde un projet. Nous sommes passés par de nombreuses phases et celle-ci est une des dernières, mais c’est peut être une des plus délicates. En effet, jusqu’ici la réalisation de nos prototypes était plutôt artisanale (de petites séries faites à la main), dans la phase d’industrialisation, les cartes électroniques sont faites à la machine et c’est autrement plus impressionnant. Jusqu’à il y a peu je n’avais jamais imaginé comment on pouvait faire les cartes électroniques. Il faut imaginer que vous faites une pizza chez Pizza Hut (pour les connaisseurs).

Première étape, vous prenez la pâte (c’est la carte ou PCB), vous y étalez la sauce tomate à l’aide d’un pochoir (c’est la pâte à braser qui servira à souder les composants). Ensuite vous ajoutez les composants (fromage, jambon, olives, ananas), ça c’est le rôle des machines qui prennent les composants sur des bobines et les placent sur la carte (la première fois que je l’ai vu faire, j’avais l’impression d’être à Disney Land, je vous le dis, vu la précision et la rapidité de ces trucs, quand Skynet aura décidé de s’y mettre, faudra bien s’accrocher). Ceci fait il ne reste plus qu’à faire cuire. On passe donc la pâte dans un four sur tapis roulant qui va progressivement cuire notre pizza (la pâte à braser chauffe et soude ainsi les composants). Une fois que la pizza sort elle est cuite et prête à être dégustée. Voilà c’était ma métaphore de la fabrication des cartes électroniques ^^. Les puristes diront qu’il manquent quelques phases. Qu’ils ne m’en veuillent pas.

Donc nous en sommes là, les cartes sortent des machines. L’étape suivante c’est le montage et il y en a des choses à monter dans le lapin, il faut relier 10 tout petits fils dont une caméra, une minuscule à la carte, implanter une quinzaine de vis. Ça à l’air de peu des choses mais ramené au nombre de lapins, c’est un travail de Titan. Heureusement pour nous, cela ne fait pas peur à notre partenaire.
En photo, des plats qui sont servis dans les restaurants où nous emmènent nos hôtes (je ne vous parlerai pas des rotules de poulet, promis).
A lire aussi sur le blog de Karotz :
Introduction au développement d’applications sur le Karotz – Comment faire une appli en 5 minutes !
17/12/10
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 :
Architecture logicielle de Karotz
24/11/10
Aujourd’hui nous tenons à vous présenter l’architecture logicielle de Karotz, pour vous donner un premier aperçu des possibilités qu’il offrira.
Le système de Karotz repose sur le noyau Linux 2.6, la uClibC et BusyBox sur lequels viennent se greffer différentes bibliothèques système, multimédia, web…
Le lapin wifi Karotz se compose de différents modules indépendants dialoguant entre eux via un système de communication inter-processus, D-Bus en l’occurrence.
- Le contrôleur est le coeur de Karotz, il centralise les données venant de l’extérieur et supervise le fonctionnement général du Karotz.
- Karotz to Karotz est le module de communication VOIP entre Karotz.
- La KarotzVM est la machine virtuelle basée sur V8 (de Google) permettant d’exécuter des applications Javascript embarquées.
- Le Scheduler est l’ordonnanceur de Karotz. Il permet de planifier l’exécution de tâches et d’applications JavaScript dans le temps.
- Le Spirit Manager gère les différentes humeurs et le comportement du lapin.
Les modules suivants permettent d’interagir sur les entrées et sorties du lapin.
- RFID : Détection / Lecture de puces RFID
- Voice : Reconnaissance vocale et synthèse de parole
- Multimedia : lecture de fichiers multimedia depuis le lapin, un périphérique USB ou bien à distance en streaming (http, rtsp, mms)
- Webcam : Prise de photos à la demande
- Button : Détection de différents types de clics
- LED : Contrôle de la LED de Karotz. Gestion de la couleur, intensité et vitesse de pulsation
- Ears : Contrôle des oreilles et détection de mouvements
Il existera deux catégories d’applications possibles pour Karotz.
Les applications distantes
Elles utilisent l’API web (REST), et peuvent êtres développées dans n’importe quel langage et sur n’importe quel système (smartphone, windows, mac, linux, …)
Les applications embarquées
Ces dernières sont développées en JavaScript avec notre SDK et sont exécutées depuis Karotz dans un environnement défini et sécurisé. Une seule application JavaScript pourra fonctionner à la fois.
A lire aussi sur le blog de Karotz :







