Après l'engouement généré par la sortie du Raspberry Pi, il est étonnant que le Rikomagic MK802 ne fasse pas plus parler de lui. Tout comme le Raspberry Pi, il s'agit d'un petit ordinateur pas cher fonctionnant avec un processeur ARM. Le MK802 paraît au premier abord plus cher (environ 80$, contre les 30$ du Raspberry Pi), mais contrairement à celui-ci, le prix du MK802 inclut un petit boîtier sur mesure très pratique, un bloc secteur, le réseau sans fil et toute la connectique nécessaire. Alors, au delà des apparences que peut-on en faire chez soi ?
Comme d'habitude, nous nous intéressons en particulier aux possibilités d'utiliser le MK802 pour construire des petits systèmes d'automatisation qui interagissent avec l'extérieur à l'aide de nos modules USB. Nous ne cherchons pas les gros contrôleurs de domotique centralisés, mais plutôt les petits systèmes embarqués qui peuvent être interconnectés par un réseau TCP/IP existant.
Nous avons acheté notre MK802 au Rikomagic MK802 family Store. Le MK802 est livré d'usine avec une image Android sur la flash interne. Nous ne manquerons pas d'étudier à une prochaine occasion les possibilités de piloter des modules USB directement en Java sous Android, mais pour aujourd'hui nous allons privilégier l'approche maîtrisée par le plus grand nombre: utiliser une image Linux. Nous avons déjà eu l'occasion de tester nos modules avec Linux ARM par le passé, donc a priori cela ne devrait pas poser de problème, mais autant le vérifier car les bugs dans le firmware des contrôleurs USB, ça n'est pas de la fiction...
Voilà ressemble un Rikomagic MK802
Il suffit de décompresser l'image de Lubuntu 12.04 fournie par MiniAnd Tech et de la copier sur une carte microSD (comme décrit sur cette page) pour démarrer le MK802 dans un environnement Linux familier (le mot de passe par défaut est miniand). Le réseau WiFi (y compris WPA2) se configure sans problème, si ce n'est l'adresse du serveur DNS qui dans notre cas ne se configure pas tout seul par DHCP. Ceci mis a part, il est facile de rajouter tous les package nécessaires avec sudo apt-get install ..., y compris FireFox que vous lancerez avec la ligne de commande sudo firefox afin qu'il ait les droits d'accès nécessaire pour fonctionner. L'accès à distance via ssh fonctionne directement.
Le VirtualHub pour ARM Linux fonctionne aussi sans le moindre problème sur le MK802. Vous pouvez le télécharger directement depuis notre site, ou passer par une clef USB. Au passage on note que le MK802 supporte sans problème l'utilisation d'un hub USB avec plusieurs périphériques simultanément (claviers, souris, clef USB et modules Yoctopuce). N'oubliez juste pas de lui remettre le flag exécutable après le transfert, et de le lancer avec sudo VirtualHub pour qu'il ait accès aux périphériques USB et qu'il puisse ouvrir un port réseau.
Pous s'assurer que le VirtualHub soit lancé à chaque mise sous tension du MK802, on le copie sous /usr/bin et on le lance dans /etc/rc.local avec la ligne de commande suivante:
/usr/bin/VirtualHub -d -c /var/run/VirtualHub.dat -g /var/log/VirtualHub.log
A partir de là, on peut piloter des modules Yoctopuce à travers le MK802, via le réseau sans fil. N'importe quel programme que vous aurez écrit pour fonctionner en direct avec nos modules USB fonctionnera de manière transparente sur des modules connectés à travers le MK802, simplement en remplaçant la ligne de code
par quelque chose du genre
On peut même ajouter un peu de logique de contrôle directement sur le MK802, puisqu'il est largement assez puissant pour faire tourner votre programme en plus du VirtualHub. Jusqu'à là, c'est aussi beau que tout ce que l'on pouvait espérer!
Voyons maintenant comment le MK802 résiste à une petite application de domotique réelle. Le projet du jour consiste simplement à pouvoir contrôler le store et l'éclairage de la terrasse sans se lever de sa chaise, par exemple à l'aide d'un iPhone.
L'application du jour
Il existe bien entendu déjà des interrupteurs au mur pour ouvrir le store et allumer la lumière. On va donc simplement se brancher sur eux pour automatiser à distance la commande, à l'aide de relais 220V. C'est là que la taille compte: ces interrupteurs sont à l'extérieur, sur la terrasse, et il n'est pas question de tirer des fils supplémentaire à travers les murs: l'automatisation doit être sur place, dans une boîte électrique sous les interrupteurs, et pas plus grande qu'eux. Et voici ce que nous pouvons faire avec un MK802, un Yocto-MaxiRelay, un Micro-Hub et un Yocto-Volt:
Ca ressemble un peu à du Tetris, mais tout tient proprement en place
La circuit brun sur la droite est sorti directement du bloc secteur fourni avec le MK802. Il est très facile à extraire de son boîtier, fermé par une seule vis.
Le Yocto-MaxiRelay permet d'automatiser 8 interrupteurs, et le Yocto-Volt permet de connaître l'état de l'éclairage même si il a été changé par un interrupteur manuel. Les deux sont raccordés au MK802 via un Micro-Hub connecté sur le port USB Host du MK802, en utilisant un câble micro-USB standard. Le Micro-Hub est alimenté par la même électronique de bloc secteur servant au MK802. t voici comment les trois modules Yoctopuce sont fixés les uns aux autres, occupant un espace minimal:
Assemblage d'un Yocto-MaxiRelay, un MicroHub et un Yocto-Volt à l'aide de nos connecteurs board-à-board et entretoises filetées
Comme on le voit sur la photo ci-dessus, il y aurait même encore la place de rajouter un module si on le voulait vraiment... Mais bon, en pratique l'alimentation du MK802 s'avère un peu faible pour alimenter plusieurs modules en plus du MK802, donc si vous voulez mettre plusieurs modules, il faudra utiliser un chargeur USB un peu plus haut-de-gamme que celui-ci.
Le résultat, une fois installé sur la terrasse
Une fois le boîtier refermé et fixé en place, ça a un peu un look soviétique, mais ça tient dans la place prévue. Bon, mais est-ce que ça marche ?
Et bien non: le réseau sans fil ne fournit pas une connexion fiable.
Les tests en atelier fonctionnaient bien, mais une fois le boîtier fixé contre le mur, le MK802 ne parvient plus à garder une connexion stable avec le point d'accès sans fil, et ce quelle que soit l'emplacement du point d'accès (et c'est pas faute d'avoir essayé...). Il y aurait peut-être moyen de changer sa position dans la boîte pour améliorer les choses, mais cela impliquerait de changer complètement l'organisation de la boîte. Le vrai problème, c'est qu'il manque une antenne externe au MK802. Et ça, c'est très dommage, car c'est ce qui aurait changé ce joli petit gadget en quelque chose d'utile pour en mettre partout.
Il ne reste donc plus qu'à attendre que notre YoctoHub-Wireless pointe le bout de son antenne... externe, bien sur!
Edit: Après quelques expériences supplémentaires sur d'autres projets, nous avons écrit un autre article avec plus d'information sur ce qu'il est raisonnable d'attendre du MK802 comme controlleur d'automatisation embarqué.