Les articles de Open Silicium N°5

Article mis en avant

Le Bluetooth pour vos montages et vos systèmes embarqués

Il existe bon nombre de systèmes de communication sans fil permettant d'asservir un montage, de communiquer avec des sondes ou d'établir un lien avec un système embarqué. Celui qui nous intéresse aujourd'hui est le Bluetooth car, en ce qui concerne la communication à courte distance, c'est la technique la plus universelle et la plus simple à mettre en œuvre. Comme vous allez le constater, la disponibilité du matériel permet à chacun de créer des systèmes communiquant à peu de frais tout en conservant une certaine souplesse d'utilisation.

J'espère que vous aimez le bleu ! Le bleu est l'une des trois couleurs primaires et c'est aussi une couleur généralement associée à plein de bonnes choses comme la paix, le calme, la volupté, la fraîcheur, ... « Il symbolise l'infini, le divin, le spirituel. Il invite au rêve et à l'évasion spirituelle. », nous dit Wikipédia. J'espère donc que vous aimez le bleu car vous risquez d'en avoir pour votre argent dans ce numéro.
Comme annoncé lors des Rencontres Mondiales du Logiciel Libre à Strasbourg en juillet dernier, le blog linuxembedded.fr a lancé un concours autour d'une plateforme embarquée que vous connaissez bien, puisqu'elle a fait l'objet de la couverture du premier numéro : la carte Mini2440 de FriendlyARM. La première phase du concours s'est terminée en octobre dernier avec des résultats très intéressants.
Qu'il soit alimenté par panneau solaire ou par piles, un montage autonome nécessite une faible consommation. Cela tombe bien car les AVR sont capables de nous impressionner dans ce domaine. Voyons ensemble comment...
Les FPGA (Field Programmable Gate Array) sont de plus en plus présents dans les systèmes embarqués modernes. Ils permettent de combiner les performances du matériel avec la souplesse de programmation du logiciel. Dans cet article, nous allons présenter un produit développé par la société californienne KNJN (http://www.knjn.com). Cette carte d’interface générique permet de construire des fonctions applicatives dédiées grâce au FPGA Xilinx Spartan 2 présent sur la carte. Au fur et à mesure du déroulement de l'article, nous verrons comment mettre en place un environnement de développement GNU/Linux alors que le constructeur fournit uniquement un support Windows.
Transformer n'importe quel montage électronique « intelligent » en périphérique Bluetooth. Ajouter des fonctionnalités Bluetooth à un système ne disposant que d'une connectivité série. Créer automatiquement une liaison série sans fil, over Bluetooth, entre deux systèmes sans avoir à implémenter le moindre code de gestion de part et d'autre. Voilà autant de réalisations possibles en mettant en œuvre ce qu'il est commun d'appeler un UART Bluetooth.
Nous l'avons vu dans l'article d'introduction, la mise en œuvre d'une pile de protocoles Bluetooth peut s'avérer très lourde et gourmande en ressources pour un système embarqué de faible capacité. D'autre part, des modules à base de puce BlueCore4 comme celui de Wide.hk permettent d'ajouter rapidement une connectivité Bluetooth à un système, mais restent de simples modules. Et s'il était possible de réunir les deux avec un équipement intégrant toute la gestion du Bluetooth, mais se présentant comme une simple clé USB/série ? Voilà exactement ce que propose le module SD1000U de SENA.
Les essais et implémentations clientes d'utilisation du Bluetooth dans ce numéro, qu'il s'agisse de passerelle Bluetooth/série, de C ou de Java/android, reposent tous sur un montage décrit dans le précédent numéro. Nous n'allons pas vous faire l'insulte ici de redétailler ce montage relativement simpliste. Ce très bref article, en revanche, a pour but de servir soit de piqûre de rappel, soit de point de départ pour la lecture d'une documentation plus poussée concernant les microcontrôleurs AVR ou une platine Arduino.
Le titre est un peu maladroit, je le reconnais volontiers, mais allez résumer en une phrase courte le fait de développer vos programmes en C en utilisant les bibliothèques et donc la partie userland de l'implémentation de la pile Bluetooth, appelée BlueZ, telle qu'elle est développée pour le système GNU/Linux... Ouf ! Ça fait un sacré titre. Car c'est bien de cela qu'il s'agira de traiter dans le présent article. Du C, du Bluetooth et un système open source en logiciel libre qui fait le bonheur des développeurs et bidouilleurs en tous genres.
Nous venons de voir au fil des précédents articles que la prise en charge du Bluetooth est relativement aisée et permet toutes les réalisations. Qu'il s'agisse de la ligne de commandes ou du développement en C, il est ainsi possible de construire un ensemble permettant à un ordinateur de bureau, un serveur ou un système embarqué, de piloter et dialoguer avec un montage qui peut être très simple ou très complet. La dernière étape de notre voyage va nous amener dans un environnement bien différent mais tout aussi captivant : celui des smartphones et tablettes Android.
Je suis assez nostalgique des bornes arcades des années 80 : Xgalaga, 1942, Arkanoid [1]... autant de « Shoot Them Up » qui ont eu raison de mes petites économies d'adolescent. Ensuite est venu le temps du Commodore 64, de l'Amiga 500. Des machines mythiques (je n'ai pas dit ordinosaures) qui restaient inaccessibles pour moi à l'époque. Ensuite, les consoles portables ont fait leur apparition, je me souviens, ému, de ma première Sega GameGear. Maintenant, nous sommes à l'air de la 3D, mais, mis à part l'aspect graphique et réseau (ou encore les jeux d'énigmes [2]), le cœur des jeux n'a guère évolué depuis Space Invader ou SWIV [3] : il faut toujours détruire l'autre :-). Serait-ce pour cela que je m'en serais détourné et utilisé tout ce temps libéré à la découverte et l'utilisation de Linux... mais là je m'égare...
Les fêtes de fin d'année sont passées et vous ne savez pas quoi offrir à votre Douce (ou Doux) pour la Saint Valentin qui approche rapidement ? Les chocolats, ça fond et ça fait grossir (et ça ne dure pas), les fleurs, c'est plus présentable mais périssable, le restaurant, ce n'est pas du tout geek... Je vous propose une idée qui fera plaisir à la fois à la personne qui offre (vous ?) et à celle qui reçoit, un cadeau original qu'on ne trouve pas (encore) dans les magasins ! Faites vite avant que les copies asiatiques inondent le marché et cassent tout le romantisme...
Dans le numéro 140 de Linux Magazine, nous avons vu avec un Arduino et son shield ethernet comment gérer un ruban de LED grâce au protocole xPL. Aujourd'hui, nous allons voir comment créer un capteur qui va émettre ses valeurs par xPL via une liaison Xbee.
Ne vous est-il jamais arrivé de devoir diagnostiquer des problèmes réseau ou des connexions à des serveurs/services avec comme seules alternatives soit d'utiliser ou tester les outils initialement prévus par l'applicatif (navigateur, client mail, code ou client dédié), soit de, passez-moi l'expression, littéralement galérer avec ping, Telnet, netstat et quelques autres utilitaires basiques ? Pour avoir goûté à ce genre de réjouissances plus d'une fois, j'ai appris à toujours installer un outil magique dans tous mes systèmes embarqués : Netcat.