Archive

Archive for the ‘programmation’ Category

Barrette écologique – suivi

23 novembre 2009 ymasur 1 commentaire

Comme ce projet avance par étapes, je me propose d’en relater les avancées ici. Eh oui, c’est finalement assez complexe, et ça mérite quelques éclaircissements. Il ya :

  • Le hard
  • le logiciel bas niveau
  • les processus LAN
  • du temps réel
  • l’interface WEB
  • de la compression
  • des stockages et transmission de données

Actuellement (novembre 2009),  le hard est posé dans les grandes lignes; mais pas complètement arrêté. La clock RTC sera matérialisé par un DS1307, une pile, un quartz. La commande de triacs sera fortement inspirée d’une interface de Franic (merci Laurent!).

Les couches logicielles assez bien définies; toutefois, c’est la partie qui risque de subir les plus grand changements – même si le hard est terminé! Chacun pour

clock et datas

clock et datas

ra peaufinner son interface WEB. Pour cela, il faudra une bibliothèque bien établie de tags, et de modules en Javascript. Et de modules en C, bien sûr.

Le tout est téléchargeable ici: http://yves.masur.microclub.ch/articles/

Ce n’est pas vraiment un article, mais il y a: le code source, les pages WEB, et deux documents au format pdf. “MXBOARD_decouverte” présente les différentes facette de cette plateforme, alors que “barette” est le cahier des charges – qui se transforme en cahier de réalisation petit à petit.

Yves Masur

Catégories:Ecologie, hardware, programmation, réseau, web Mots-clefs :, , , , ,

Wireshark opérationnel sous W7

18 novembre 2009 ymasur Laisser un commentaire

Wireshark 1.2.4 (stable) has been released – ça fait plaisir! Enfin on peut utiliser cet analyseur de réseau sous Windows 7. Et il s’installe sans coup férir (32 bits – je n’ai plus la 64 bits…)

En effet, pour le projet “Barrette écologique”,  j’avais besoin de sniffer ce qui se passe entre le module MXBOARD. Jusqu’ici, je devais passer par le débugger et voir ainsi les trames reçues/envoyées, via ligne série!

Le but est de trouver une requête régulière que ferait un PC, pour lancer un timer de prolongation de durée de l’enclenchement du secteur.

//Yves

Superordinateurs de table

Depuis de nombreuses années, les ordinateurs les plus puissants sont formés de très nombreux processeurs calculant en parallèle. Le record actuel est tenu par le “Roadrunner” d’IBM qui comprend 6′948 Opteron bicœurs et 12′960 processeurs PowerXCell 8i d’IBM, contenant chacun 8 unités de calcul en flux (”Stream Processing Unit”, SPU).

“Roadrunner” peut effectuer 1 petaflops, soit un million de milliards d’opérations arithmétiques par seconde et vaut des millions d’euros. Vous pouvez aujourd’hui assez facilement disposer dans votre PC du millième de cette puissance pour quelques centaines d’euros seulement.

En effet, les processeurs graphiques “GPU” récents sont formés de centaines d’unités de calcul en flux assez semblables aux 8 SPU du Cell. Initialement dédiés à la génération d’images réalistes en 3D temps réel et limités au calcul en virgule fixe, les GPU sont devenus capables d’exécuter certains programmes en virgule flottante beaucoup plus rapidement que sur les processeurs classiques : c’est le calcul générique sur GPU  (GPGPU).

La série 5000 d’ATI (racheté par AMD) et les nouvelles GTX 200 de nVidia offrent désormais une puissance de l’ordre du teraflops, soit 200x plus que les plus puissants processeurs intel. D’ailleurs nVidia commercialise désormais ses derniers processeurs sur des cartes “Tesla” dédiées au calcul, et dépourvues de sortie video, un comble pour des processeurs graphiques !

La suite sur mon blog…

Aseba, c’est cool !

Suite à la présentation d’Aseba par Stéphane Magnenat, je me suis attaqué à la programmation d’un robot mobile pour le “Challenge”. Voici le résultat d’un duel de deux exemplaires partageant le même code:

Si vous voulez vous y mettre et tenter de battre mon robot :

  1. téléchargez Aseba et la doc en français
  2. lancez asebachallenge et créez 2 robots : un “Goulu” et un pour vous
  3. lancez asebastudio.exe, connectez vous au port 33333 (par défaut), coupez/collez mon code ci-dessous et cliquez [Charger] puis [Executer] : mon robot démarre. fermez asebastudio
  4. relancez asebastudio.exe, connectez vous au port 33334 et programmez votre robot. Si vous battez le mien, mettez votre code dans un commentaire, ça m’intéresse ;-)
var gains_R[3]=1,0,-1
var gains_B[3]=-1,0,1
var speed=0
var turn=0
var turn_R=0
var turn_B=0
var mode=1
onevent timer
    if mode==1 then #forward
        speed=(camB[1]-camR[1])/5
        call math.dot(turn_R,camR,gains_R,3)
        call math.dot(turn_B,camB,gains_B,3)
        turn=turn_R+turn_B
        leftSpeed=speed+turn
        rightSpeed=speed-turn
        if leftSpeed<2 and rightSpeed<2 then
            mode=2
            colorB=255 #follow me
            colorR=0
            colorG=0
        end
    elseif mode==2 then #rotate
        leftSpeed=-max_speed/3
        rightSpeed=-max_speed
        speed=(camB[1]-camR[1])/8
        if speed>5 then
            mode=1
            colorB=0
            colorR=255 #avoid me
            colorG=0
        end
    end

Pour rappel et pour publicité j’ai traduit en français la description d’Aseba figurant sur la page de l’EPFL :

Aseba est une architecture basée “événements” pour la commande distribuée des robots mobiles. Il cible les robots intégrant plusieurs processeurs, ou des groupes d’appareils mono-processeurs pour autant qu’il communiquent par un réseau. Le coeur d’Aseba est une machine virtuelle légère, assez petite pour tourner sur un microcontrôleur. En Aseba, on écrit les comportements du robot dans un langage de script. Ceci se fait dans un environnement de développement tournant sur un PC. L’environnement permet de compiler, déployer et déboguer les comportements en temps réel. Aseba s’applique dans plusieurs contextes:

  • Dans des robots à multiples microcontrôleurs, Aseba permet de tirer parti de la puissance des microcontrôleurs pour atteindre une modularité hardware, une faible latence entre perception, et une utilisation économique de la bande passante du bus. De plus, son langage facile à comprendre permet l’écriture rapide de comportements du robot (article IROS 2007).
  • En robotique collective, Aseba accélère le processus de développement en permettant des modifications instantanées du code ainsi que le déboguage en parallèle de tous les robots (article SIMPAR 2008).
  • Dans l’éducation, la facilité d’apprentissage du langage Aseba, son environnement de programmation user-friendly , et le plaisir de faire bouger un robot apportent une approche originale à l’enseigement et à l’apprentissage de la programmation  (article FNG 2008).

Aseba est “open source” et tout le monde peut l’utiliser et le modifier gratuitement tant que l’on respecte la licence  (GNU General Public License version 3).

Pour en savoir plus sur Aseba, regardez la presentation ou lisez les articles sus-mentionnés.

Pour ceux qui ne l’auraient pas vue, voici une vidéo assez spectaculaire du “robot bibliothécaire” en cours de développement dans ce labo :

Catégories:programmation, robot Mots-clefs :,