Test



Microclub

    Arduino: un succès embarqué

    Qu’est ce qu’est Arduino?

    Une plateforme de développement hard et soft, souple, bon marché, aux sources multiples, facile à mettre en oeuvre, bien documentée, bref l’environnement idéal pour débuter dans le domaine de l’embarqué (embedded in english). Vous désirez utiliser de l’électronique et de la microprogrammation? Piloter un moteur, activer un buzzer? afficher des informations, lire une température, une pression? C’est de prime abord passablement difficile.

    Il faut se farcire des datasheet éprouvantes, souvent en anglais. Faire un schéma des composants qui tienne la route. Sortir le fer à souder, picots, circuit imprimé, ou pour le moins câbler (sans se tromper!) des chips et autres composants pas facile à appréhender, poser des connecteurs. Choisir une alimentation.

    Ce n’est pas fini: il faut aussi trouver un environnement de développement: en assembleur (pas de chance! On se retappe des liste d’opcodes et on cherche les registres du processeur et leurs multiples finesses) en BASIC ou en C. Puis il faut se documenter comment produire le code exécutable et le charger dans la mémoire de la cible que vous aurez sélectionnée. Avec un peu de chance, on trouve des exemples de code qui résolvent notre problème: mais là encore, il faut adapter, voire fortement modifier le code pour que ce soit compatible avec notre montage.

    Arduino standardise tout ça et le rend accessible rapidement: hard, soft, exemples Voyons comment.

    La plateforme hardware

    Commençons par voir ce qui se fait au point de vue du matériel. La carte processeur est faite autour du microcontrôleur Atmel AVR. La carte de base classique est la Arduino Uno.

    Arduino Uno

    On en trouve de nombreuses déclinaisons, dont celle mise au point par le Professeur Nicoud, la Diduino (http://didel.com) basée sur le modèle ATmega328, un modèle RISC de 8 bits à 20 MHz (voir: http://www.atmel.com/devices/ATMEGA328.aspx pour les détails). Car c’est possible de fabriquer soi-même une carte compatible Arduino: http://arduino.cc/en/Main/Policy. La carte Diduino possède un bloc d’expérimentation, elle est livrée avec un set de composants pour tester des montages.Diduino

    Suivant le but du montage, on peut choisir une autre déclinaison du board CPU: le modèle Mega, Lyli Pad, le Nano, ou le Mini, voir d’autres dérivations de fabricants imaginatifs.

    Des extensions, dénommées  »shield », peuvent être rapportées sur la version de base pour y ajouter, Bluetooth, Ethernet, Flash card, commande de moteurs. Bref un joli pannel d’interfaces possibles. Les modules d’origine des différentes versions de l’Arduino sont fabriqués par la société italienne Smart Projects. Mais oui, les concepteurs d’Arduino sont italiens!

    L’environnement soft

    Installation

    L’environnement de développement se charge depuis le site officiel: http://arduino.cc/en/Main/Software. C’est assez lourd: 70 Mb, et une fois décomprimé, c’est 232 Mb. Par contre vous pouvez déplacer le répertoire arduino-1.0 ou bon vous semble, voire sur une clef USB: il se lancera sans problème. Comme il est écrit en Java, il tourne sur les trois OS phares: Windows (32 et 64 bits), Linux, Mac. Il est basé sur Processing et contient le compilateur avr-gcc, ainsi qu’une panoplie de softs Open Source.

    Une fois arduino.exe lancé, le développement proprement dit se fait dans des modules appelés « sketch ». Voici à quoi cela ressemble.

    Sketch

    Sketch

    La barre des menus est suivie d’icônes, permettant de faire son développement: valider le code, le charger, créer un nouveau Sketch, charger et enregistrer. Le source, en C/C++ est introduit dans la fenêtre texte. La partie code montre une syntaxe à peine colorée: les mots-clefs reconnus sont en brun. Le Sketch est sauvé dans un répertoire du nom du projet, et le fichier de même nom prend l’extension « .ino »; c’est en fait le fichier source à l’identique, sans fioriture, éditable et copiable p. exemple avec Notepad++.

    Une fenêtre inférieure montre le résultat des différentes commandes: ici celui d’une compilation réussie. Des erreurs seraient écrites en rouge.

    Les paramètres de transfert sont réglés par le choix de la cible, et le port série à utiliser. Ici: Atmega328 et COM11.

    De manière générale, le programme est constitué d’une fonction d’initialisation setup(), et d’une boucle infinie loop(). Elles constituent une surcouche du C qui habituellement appelle le programme principal par la fonction main().

    Vous trouverez une introduction pratique plus détaillée sur le site de notre HB9 préféré, Michel Vonlanthen, ici: http://www.von-info.ch/hb9afo/arduino/main.htm

    Parmi un foultitude d’exemples de programmation, la base consensuelle et universelle est toujours le clignotement d’une LED, alimentée par une patte de sortie du CPU via une résistance de quelques kilo-Ohms. Le programme consiste à : positionner la sortie à l’état haut, attendre, positionner à l’état bas, attendre, et boucler ad aeternam. Ensuite, on peut compliquer à souhait en testant un bouton, en attendant une valeur, en écrivant sur le port sériel, en pilotant un moteur, etc, etc!

    Or l’exemple ci-dessus montre l’utilisation d’une technique fort avancée: l’utilisation de l’interruption. On en discute plus bas.

    Chargement et éxécution

    Le programme est fait, la cible connue (type de circuit Arduino ATmega328) , il faut maintenant charger le programme. Diduino (et d’autres…) proposent la connexion USB. Celle-ci, non seulement alimente la carte – tant qu’on ne lui ajoute pas de moteurs ou de relais qui demande de la puissance – ouvre une connexion série. Autant sous Windows que Mac, il faut installer le pilote adéquat. La version la plus simple est de laisser Windows « chercher le pilote adéquat »; sinon, il faut le faire à la main. Les pilotes sont dans le répertoire: \arduino-1.0\drivers\. Ou directement du fabricant,  FTDI, a disposition ici: http://www.ftdichip.com/Drivers/VCP.htm.

    Un fois la fiche USB connectée, le pilote Windows se montre: Start -> Périphérique et imprimantes -> Non spécifié(e)s

    UART

    Malgré l’installation réussie du pilote, du paramètre Tools -> Serial Port (et le choix du bon n° de seriel), il se peut que ça ne fonctionne pas. A titre indicatif, sur 2 PC différents j’ai expérimenté:

    - Pas de recherche automatique de Windows 7: il m’a fallut indiquer où se situe le pilote sur le bon répertoire, et l’installer. Tout a fonctionné parfaitement

    - Recherche automatique: Windows recherche le pilote, l’installe.

    Par contre à l’utilisation, des soucis de menu: il met 18 secondes pour se développer! La programmation patine aussi, avec le message sibyllin suivant: avrdude: stk500_getsync(): not in sync: resp=0×00. Un driver corrigé s’adresse à ce problème, ici: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1237179908. Il appert que la DLL qui scrute les ports série les énumère à tout coup et attend leur time-out… Suite au remplacement de la DLL : rxtxSerial.dll, tout fonctionne bien sur mes deux PCs.

    Il faut donc persévérer et rechercher sur le WEB une solution.

    La souplesse et l’exemple

    La force de l’ensemble Arduino est d’offrir d’une part un matériel défini, puisque même les sources d’autres constructeurs « collent » aux spécifications des originaux; en offrant bien entendu plus de ports, ou un processeur plus puissant. Et d’autre part, un ensemble logiciel préparé et épuré pour programmer la cible. Le choix du C/C++ est à mon avis fort judicieux: ce langage permet de compiler du code très efficace et proche de la machine.

    NDA: je suis un peu plus dubitatif avec le C++. Vu la taille mémoire à disposition, on ne voit pas trop comment des instanciations d’objets ou des templates un peu compliquées auraient leur place. Mais comme à l’heure d’écrire ces lignes je n’ai que pratiqué des petits exercices, cela pourrait changer à l’avenir.

    Il vaut la peine de se pencher un peu plus sur ce programme d’interruption, pour montrer la souplesse et la puissance d’abstraction des librairies Arduino. Comment est gérée une interruption? Pour répondre à une requête d’interruption, le processeur devra (source Wikipédia) :

    • préserver le contexte d’exécution du programme en cours afin de pouvoir, à terme, en reprendre l’exécution ;
    • lire en mémoire l’emplacement du programme destiné à gérer l’événement particulier (appelé gestionnaire d’interruption ou routine de gestion d’interruption), pré-établi lors de la prise en charge, par l’ordinateur, de l’ensemble spécialisé ici, par la routine start();
    • exécuter la routine, court programme grâce auquel le processeur interagira avec l’ensemble spécialisé qui le sollicite afin de satisfaire ses attentes ;
    • restaurer le contexte d’exécution du programme interrompu ; et enfin
    • continuer à exécuter ce dernier.

    On le voit, ce mécanisme est aussi complexe que délicat à mettre en oeuvre. Eh bien, avec Arduino, on initialise l’interruption en une fonction de 3 paramètres: attachInterrupt(0, irq_func, FALLING); . Ceci a pour effet de lier lorsque l’interruption hardware n°0 est déclenchée, d’appeler la routine d’interruption ici réalisée par la fonction « irq_func() », sur un flanc descendant. Les autres possibilités étant: flanc montant, état haut, état bas. Le fameux flanc descendant est activé lorque la LED rouge s’eteint, car on aura pris soin de relier cette sortie n°13 sur la patte n°2 qui est effectivement l’entrée d’interruption 0.

    La fonction d’interruption se contente d’inverser l’état de la LED jaune, ce qui fait qu’elle clignote à une fréquence de moitié de la LED rouge. Avec l’environnement de développement viennent de nombreux exemples didactiques de programmation : \arduino-1.0\examples\, et bien sûr sur le site officiel: http://arduino.cc/en/Tutorial/HomePage.

    Les fonctions dédiées et librairies

    Il est clair que le C pur ne suffit pas – a vrai dire, le C pur n’existe pas! Ce langage s’applique a quasi tous les CPU, du 8 bit au 64 bits (voir plus?) et un montage 8 bits n’a pas les mêmes possibilités qu’un système multicoeurs. Pour chaque implémentation, il y a des fonctions dédiées qui permettent d’utiliser toutes les finesses du système. Arduino a aussi les siennes, sur le WEB ici: « langage reference« , en local dans /arduino-1.0/reference/index.html.

    On y trouve notamment les possibilités de positionner directement et efficacement une patte à 0 ou à 1, de la lire, par respectivement digitalWrite() et digitalRead(). Plus exotique, la fonction qui permet de moduler une largeur d’impulsion (PWM, Pulse Width Modulation) s’appelle analogWrite(), en décalage par rapport à analogRead(), qui fait elle fait une vraie conversion analogique -> numérique (A/D: Analog -> Digital). C’est bien sûr dépendant des possibilités du CPU.
    Des librairies sont également à disposition http://arduino.cc/en/Reference/Libraries. Il s’agit des les importer pour pouvoir en utiliser les fonctions. Celles-ci d’adressent à du matériel (EEPROM, LCD, cartes SD) ou des protocoles souvent utilisés (Serie, Ethernet, SPI).

    Du hard et du soft, un cours très complet

    Le document ci-dessous est une large représentation de réalisations Arduino. Mais constitue aussi un cours complet de mise en oeuvre, qui explore toutes les facettes en partant de l’électronique, de la réalisation pratique avec des maquettes dessins, schémas. En français, s’il vous plaît.
    http://fr.flossmanuals.net/_booki/arduino/arduino.pdf

    Des fournisseurs

    Pour débuter et tester, la carte Diduino, elle est idéale.

    Les indications ci-dessous m’ont été communiquées par M. Frédéric Benninger, donc pas (encore) testées personnellement.

    Le Seeeduino Starter Kit Standard[Shop.boxtec.ch] vise le même but, mais elle pourra par la suite être réutilisée dans un produit fini. Pour ceux qui visent une application dédiée, cela dépend de la taille du projet et du type d’alimentation envisagée. Par exemple en modélisme le Seeeduino Film est un must, seulement quelques grammes, elle est livrée avec une petite batterie et le régulateur de charge pour panneaux solaires est inclus.

    Pour faire une application qui a besoin de gérer une horloge calendaire, par exemple à des fins d’ d’acquisition de données, le Seeeduino Stalker est parfait, il intègre une RTC et un emplacement pour carte micro SD.

    Voici encore des châssis [www.sparkfun.com] pour les bricoleurs, sans oublier des boîtes [shop.boxtec.ch] pour mettre en valeur le fruit du travail fourni.

    Des références

    LE site de référence: Arduino.cc

    Wikipédia: http://fr.wikipedia.org/wiki/Arduino

    Liste de discussion (Suisse) : http://fr.groups.yahoo.com/group/arduino_suisse/

    
    

    Picasa et la reconnaissance faciale

    Mise en route

    Picasa est un gestionnaire d’image gratuit, produit par Google. On peut le télécharger facilement et l’installer sur son PC (http://picasa.google.fr/). J’avoue ne l’utiliser qu’occasionnellement, à cause de sa lourdeur en terme de charge et sa prise en main style « prison dorée ». Le produit a un lien fort avec le WEB – c’est un euphémisme que de le dire, venant d’un des acteurs majeur de la blogosphère. Mais ses puissantes fonctionnalités, telles que organisation, retouche photo sont très intéressantes (et gratuites ;-) . Mais ici, je ne vous parlerai que de la fonction de reconnaissance faciale, disponible dès fin 2008 mais seulement en version anglaise, elle a évolué en un outils performant dans la version 3.9. Pour plus de précisions sur cette fonctionnalité:  http://support.google.com/picasa/bin/answer.py?hl=fr&answer=156272

    Une technologie puissante

    En quoi consiste-t-elle, cette reconnaissance faciale? Il s’agit de détecter des visages dans des photos numériques, puis, par classification de traits morphologiques, lui attribuer un nom. C’est dit en 2 phrases, mais penser à la puissance de calcul d’analyse, de tri, de détection qu’il faut rien que pour savoir dans une image de 2 à 15 méga pixels si c’est bien un tête à laquelle on a affaire? Si c’est l’analyse d’une série de portraits ce serait encore raisonnable. Mais dans les milliers de photos qui gisent sur le disque d’un PC personnel, parmi les paysages, les décors, les sites et j’en passe! Une tête peut bien faire partie d’une photo de groupe que d’un portrait posé, avec des possibilités de zoom allant du cadrage photo-passeport, à la prise de Madame devant un site dont la beauté s’ajoute à celle du sujet, à la photo d’un groupe hétérogène…

    La tête détectée, il s’agit encore de savoir si les traits du visage appartiennent à un profil donné. Ces traits pris bien sûr dans des conditions de lumière aussi variables qu’un contre-jour photogénique, un trois-quart, voire éclairé en face par un flash. De plus le sujet peut avoir changé de coupe de cheveux, mis un couvre-chef, des lunettes! ça semble une mission impossible. Et pourtant, Picasa le fait. Mais voyons comment.

    Activée, la fonction de reconnaissance faciale scanne les images de votre disque, en arrière plan. Avant de laisser démarrer le scan, il vaut mieux limiter le champ d’action à Picasa. Sans quoi, tout le disque y passe. Si comme moi vous avez des montages de photos et des copie de sites WEB, il va vous les trouver à triple! Ceci se fait par « Outils – Gestionnaire de dossier ». Ensuite, l’analyse se passe: il y en a pour des heures, avec un CPU 2 Core, dont un quasi utilisé pour Picasa.CPU load

    Après un certain temps, un bon quart d’heure, Picasa commence à vous proposer des visages. Dès lors, vous pouvez leur coller un nom et plus : adresse email, coordonnées, compte de blog, etc. Pour faire simple, le nom suffit a valider la fiche. Dès que Picasa en trouve de nouvelles instances, il les propose avec deux coches : OK, pas OK.

    Il a fallut 3 heures pour parcourir l’ensemble de mes photos: 17 Go, 13’000 fichiers dans 543 dossiers.

    Précision de la détection

    Il faut l’avouer, la détection dans des conditions de lumière fort diverses fonctionne de manière impeccable. Jugez-en plutôt (désolé si il y a souvent mon portrait, mais c’est pour éviter une fuite WEB incontrôlable côté famille). Il n’y a aucune comparaison – en parlant des pixels entre les conditions de lumière et formes présentées ici:Yves lumiere

    Et à des âges différents, est-ce que ça fonctionne? et de côté? Mais oui!

    Yves selon age

    Sur la photo bas, à gauche, j’ai 26 ans, une moustache des cheveux mi-longs (et noirs!) pris légèrement en plongée. De plus, ma fille masque un peu le visage: il est pourtant reconnu.

    Reconnaissance de paternité ?

    Avant de cliquer OK (ou non), il est intéressant de voir ce que Picasa propose. Avec mon petit-fils Jérémie, il vient souvent son père: Anh-Cat. Picasa prend donc en compte la possibilité d’avoir des images anciennes, scannées dont la date de fichier ne correspond pas à la prise de vue.

    Dans les quelques photos que j’ai du père de Anh-Cat (donc le beau père de ma fille, vous suivez?), il était proposé comme premier choix en tant que « Anh-Cat ». Même scénario entre mon fils Jonathan et moi:

    J’apparais dans le deuxième et dernier choix. D’où la réaction de ma femme: est possible qu’il y ait des traits et des ressemblance si frappantes? Il faut avouer que, sur plusieurs cas, c’est surprenant de précision.

    Le contexte et le nommage

    En regardant un peu profondément, on s’aperçoit que Picasa a un choix limité de personnes: celles que vous voulez bien reconnaître, en en les ayant en nombre de représentation sur votre disque dur. De plus, j’ai pris le plis de nommer mes photos. Plutôt que IMG_449.JPG, elle ont le n°, puis le nom raccourci des acteurs présents et le lieu ou le contexte. Ce n’est donc pas impossible que Picasa se base sur ces patterns de caractères pour s’aider à la détection. En outre, dans des photos familiales, qu’y trouve-t-on? des gens de la famille, bien sûr.

    Contre exemple

    Or donc, la théorie de la paternité imaginée par mon épouse au vu des premiers résultats va vite être réfutée. Pour cela, il faut aller dans la liste des visages non reconnus. Sur mon PC, il y en a environ 12’000; ceci est dû notamment à mes activités associatives ou apparaissent nombre d’images de groupe, avec des enfants sourds et leur fratrie. En voici un, avec un sympathique ressortissant du continent africain, par ailleurs père d’un enfant sourd et faisant partie – comme moi – de l’ASPEDA (www.aspeda.ch):

    On voit dès lors que Picasa pioche dans les registres connus… Sans se soucier trop de la ressemblance, ni de race (un africain, un européen, un asiatique!)

    Plus amusant, ce vitrail, qui en lieu et place du Christ, propose… (je ne le dirait pas!)

    Jesus

    Toujours est-il qu’un visage a été reconnu dans la photo! Dès lors, on peu fortement douter de la précision d’un système d’authentification basé sur la reconnaissance faciale, tel que décrit ici: http://www.clubic.com/univers-mac/actualite-467310-apple-songerait-deverrouillage-reconnaissance-faciale.html .

    Conclusion

    Forcément provisoire… Picasa permet de faire une collection de portrait d’un personne souvent photographiée pour en faire un montage, un petit film, ou un quiz: où était-ce? Le machines puissantes et multiple-cores d’aujourd’hui permettent ce qui – il y a quelques années, semblait tenir de la science-fiction. Avec bien sûr, des dérives à la clef dès que ça file sur le WEB. Picasa le propose bien sûr en lien avec Goggle+. Associé avec la géolocalisation, Big Brother n’est plus très loin… Cette technologie est possible également avec d’autres logiciels (http://www.softonic.fr/s/reconnaissance-faciale ), pas essayé.

    Autres liens en relation:

    http://webster.e-monsite.com/home/nouvelles-de-l-informatique/la-reconnaisance-faciale-arrive-sur-google.html

    http://www.lesnumeriques.com/allemagne-brider-reconnaisance-faciale-facebook-n20471.html

    Yves Masur


    Bouh! le vilain email

    Voici le message parvenu dans ma boîte email:

    Venant de linkedin, il n’y a pas de méfiance particulière à avoir, bien que je ne connaisse pas ce Michael Brown.

    Mais lorsque je clique sur le lien, voici que l’adresse URL devient moins… friendly:

    Page malveillante !
    La page Web sur deti-solntsaru.704.com1.ru a été signalée comme étant une page malveillante et a été bloquée sur la base de vos préférences de sécurité.

    Et si on veut des détails, un bouton donne (voir au bas de l’article) comme quoi, c’etait un « fake » destiné à me harponner, ni plus ni moins! Mais où va-t-on, si des sites de contacts dit sérieux, professionnels servent de réservoir à gogos?

    Yves Masur

    Navigation sécurisée

    Page de diagnostic pour deti-solntsaru.704.com1.ru

    Quel est l’état actuel du site deti-solntsaru.704.com1.ru ?

    Ce site est répertorié comme suspect. Une visite sur celui-ci peut endommager votre ordinateur.

    Une activité suspecte sur une partie de ce site a été détectée 5 fois au cours des 90 derniers jours.

    Que s’est-il passé lors de la visite de ce site par le robot Google ?

    Sur les 5 pages du site que nous avons testées au cours des 90 derniers jours, un certain nombre (2) entraînait le téléchargement et l’installation de logiciels malveillants sans l’autorisation de l’utilisateur. La dernière visite effectuée par le robot Google sur ce site a eu lieu le 2012-01-09, et le dernier contenu suspect sur celui-ci a été détecté le 2011-12-11.Parmi les logiciels malveillants, les éléments suivants sont présents : 2 scripting exploit(s).

    Des logiciels malveillants sont hébergés sur 2 domaine(s), y compris ll-ccc.cz.cc/, stats-co.cz.cc/.

    Ce site était hébergé sur 1 réseau(x), y compris AS43146 (AGAVA3).

    Ce site a-t-il servi d’intermédiaire pour favoriser la propagation de logiciels malveillants ?

    Au cours des 90 derniers jours, deti-solntsaru.704.com1.ru ne semble pas avoir servi d’intermédiaire pour l’infection de sites.

    Ce site a-t-il hébergé des logiciels malveillants ?

    Non, ce site n’a hébergé aucun logiciel malveillant au cours des 90 derniers jours.

    Que s’est-il passé ?

    Dans certains cas, des tiers peuvent ajouter du code malveillant sur des sites légitimes, ce qui déclenche l’affichage du message d’avertissement.


    Python avec l’environnement PyCharm

    Installation et 1ère prise en main

    L’environnement PyCharm, de Jetbrains (http://www.jetbrains.com/pycharm/) est prévu pour la programation, test, debug et déployement en Python. Le fichier téléchargé pour l’installation pèse env.80 MB. Elle se fait sans problème, pas besoin de redémarrer Windows. Avant de le lancer, il faut avoir un (ou plusieurs) interprèteur(s) Python installé(s). Dans mon cas, j’ai la version 2.7.2.

    Au lancement, PyCharm vous demande lequel vous utilisez, afin de l’analyser et l’indexer. Ce qui prend pas mal de temps.

    scann de Python

    Si comme moi vous rangez vos projets Python dans un répertoire, il suffit d’indiquer à PyCharm avec lequel vous voulez travailler; il en fait un projet. Chaque fichier *.py du répertoire peut être démarré, Par contre, il faut le configurer en conséquence. Ci-dessous, le message: « Configure Python Interpreter », qui survient, la config étant accessible en tout temps via l’icône « clef à écrou » juste avant le « Help ».

    Open dir
    Ouvrir un projet

    Disposition

    Les fenêtres sont assez parlantes par elles même: Projet, Structure, Favorites, mais précisons qu’on peut les développer par Alt + n° de la fenêtre dans le layout, qui lui même est configurable et modifiable. Les fenêtres peuvent être Pined, Docked, Split ou encore Floating. Un double clic sur un nom de fichier du projet l’ouvre dans l’éditeur. Évidemment en syntaxe colorée. La structure correspondante apparaît et peut être développée. L’élément est représenté par un symbole coloré. On a v: variable, C: classe ou m: fonction (méthode, selon la terminologie PyCharm); si le symbole est cliqué, le curseur est positionné à l’endroit adéquat dans le fichier source. Celui-ci est encodé en utf-8 par défaut, PyCharm gère aussi le format de lignes Mac ou Unix.

    Toutefois, j’ai été surpris par un fichier de config contenant des lettres accentuées au format ANSI Windows-1252 (et non utf-8 comme indiqué ci-dessous), il affichait de vilains losanges avec ‘?’.

    codage win-1252

    codage win-1252

    Configuration

    Reprenons les paramètres de lancement du module. Dans l’écran ci-dessus, le module chargé « det_an02″ est un programme simple, qui tient dans un seul fichier. Il faut qu’il soit déclaré « main » pour démarrer. Voyons donc la configuration, pas encore établie, donc avec un ‘x’ rouge.

    Edit config
    Editer la config

    run_debug_conf

    Par défaut, le nom de la config est celle du nom de fichier de script. Le plus souvent, si le module doit être testé, l’important est de fournir des paramètres en ligne de commande. Dans ce cas, se sont un fichier d’entrée à traiter « riponne20.txt » et celui de sortie « out3.txt ».

    Pour lancer l’exécution,Logo Run la lancera en mode normal, tandis que Logo debug la lancera en mode « debug », dont le temps d’exécution est environ 10 fois plus grand.

    Une fenêtre de l’interpréteur Python montre le résultat. Ou les erreurs de compilation, vu que le Python produit du byte-code. Un clic sur l’erreur amène l’édition à la ligne coupable.

    Debugger

    Le mode debugger est un point important d’un environnement de développement. Plutôt que d’envoyer des « print » aux points blocants du programme, PyCharm permet d’insérer des « break point » dans le code. Ou de lancer l’exécution jusqu’à la position du curseur dans le source. Ensuite, on peut suivre le déroulement en pas à pas, avec ou sans détailler les appels à des fonctions/méthodes, attendre le retour d’un fonction, voire un prochain « break point ». Il faut noter, cependant, un ralentissement considérable de l’exécution du programme!

    Dès que le programme est suspendu, on peut changer au vol des variables, et procéder à l’évaluation d’expression, ce qui est utile dans des tests compliqués. Il suffit de faire une sélection partielle du code source et de le copier dans l’évaluateur pour en avoir le résultat.

    Éditeur

    L’éditeur est – nous l’avons vu – a coloration syntaxique. Ce n’est pas tout: il met automatiquement la parenthèse fermante si l’on en ouvre une, ainsi que les guillemets, crochets, etc, de ce qui va par paire. Ajouter un appel à la méthode d’une classe nous les propose et cette liste se réduit au fur et à mesure que les caractères sont tapés; on peut cliquer sur une des propositions pour la valider. La méthode acceptée, les paramètres nécessaires ou en option sont indiqués en suivant, mettant en gras le paramètre à introduire.

    Aide à la rédaction

    Dès qu’une ligne est en édition, ou si vous y posez le curseur, une lampe vient et vous propose une amélioration du code. Par exemple:

    Aide redaction

    C’est vrai qu’à l’instar de la ligne précédente, on pourrait écrire l’incrément de ‘duree’: duree += 1, ce qui est fait par un simple clic!

    Une refactorisation des expressions dans une condition est parfois proposée plus compliquée que l’original, et n’amène rien:

    Aide if

    D’une manière générale, on peut lancer « Inspect code », et une liste de propositions d’améliorationn sera faite, classées par genre:

    inspect code

    L’édition est régulièrement sauvegardée dans un tampon qui mémorise les modifications apportées. On peut revenir sur nos dernières retouches (un bon millier est conservé) et les restituer à l’état précédent si besoin.

    diff

    Ceci a un coût: PyCharm a besoin de 160 à 270 Mb de RAM. Sur mon netbook, la mise en veille a un réveil bien lent. Il lui faut joliment 1 minute pour tout retrouver. En le démarrant depuis zéro, comme il prend par défaut le dernier projet, toujours sur mon netbook ça prend 1’35 : chargement du programme, chargement et analyse des fichiers (une barre de progression et les fichiers traités sont affichés), initialisation des fenêtres… arrive ensuite le pop-up « Tips of the day », soit une astuce ou conseil du jour, tandis-que la fenêtre « structure » se complète.

    Productivité

    PyCharm ne se laisse pas « avoir » par une modification de fichier extérieure, il a un oeil sur tout. Sa puissance est démontrée lors de modification tel le renommage d’une structure. Son nom n’est pas terrible, vous voulez le changer? Un clic droit dessus, et « refactor » permet de la renommer ou de la déplacer: toutes les références dans les différents sources sont mises à jour, même dans les commentaires!

    refactor

    Ceci est particulièrement bienvenu dans Python, car des erreurs dans un bloc qui passe rarement peuvent facilement passer inaperçues, jusqu’au jour ou la condition est remplie. Et l’erreur sort à l’éxécution. La limite du système se voit si vous utilisez un nom un peut trop général: PyCharm scannant tous les modules, il va vous en proposer un peut trop. Mais on peut facilement les exclure, et éviter de modifier par mégarde du code importé qui fonctionne.

    Une fenêtre sympathique: Todo. Il suffit de mettre ce mot clef dans un commentaire de votre code, et vous pourrez en atteindre rapidement l’endroit:

    todo

    S’il y en a beaucoup, la présentation arborescente par fichier en facilite l’accès.

    Mode interactif – console Python

    Démarrer la console n’est pas – contrairement à ce qu’on peut s’y attendre – sous le menu « Run », mais sous « Tools ». Cette console permet – comme dans d’autres solutions – de rentrer une portion de code pour en tester la forme et les réactions. Les lignes entrées sont mémorisées, même après l’arrêt et le redémarrage de la console, voir du programme, ce qui permet d’y revenir facilement. De plus, la fenêtre « structure » montre les éléments introduits, comme pour un source Python.

    Conclusion provisoire

    Forcément provisoire… JetBrains est un éditeur plein de ressources, proposant plus d’une dizaine d’environnement. Les versions progressent rapidement et sont mise à jour en fonction non seulement des nouveautés, mais avec des fonctionnalités nouvelles ou supérieures. Il y a encore ce dont je ne vous ai pas parlé (car non utilisé): l’édition de Javascript et de HTML, et pour rester coté Python,  le développement WEB avec Django. Utilisable 30 j gratuit, la licence est de 99$. Pour un usage entreprise, c’est $199. Avec du support dans les deux cas.

    Yves Masur


    De la mailing list à Twitter

    Un petit article un peu provocateur sur un sujet qui sera certainement abordé à l’AG ce soir : le moyen de communication privilégié du Club.

    Les mailing-lists meurent aussi

    La mailing-list microclub-general@alphanet.ch est mourante. Son pouls ne bat plus que quelques fois par an, son cerveaur est occupé à d’autres choses, et de toutes façon, elle est très vieille. Ces vénérables dames sont nées à l’époque où l’e-mail était de la haute technologie, et comme on le voit ci-dessous, la notre est l’une des rares survivantes.

    Google Trend de ''Mailing List''

    Laissons-la mourir dignement avant que quelqu’un se demande ce que font ces hommes dans la force de l’âge avec un système de communication totalement fermé, hébergé sur un serveur confidentiel… Même sa soeur cadette http://groups.google.com/group/microclub espagnole est sourde et muette à mes tentatives de réanimation.

    La vogue des blogs

    Depuis 2 ans notre site/blog est puissamment propulsé par WordPress, le CMS le plus en vogue du moment. Il contient « déjà » 148 articles et a reçu 190 commentaires, dont une bonne moitié par des gens qui ne sont pas membres du club.

    Voici d’abord le nombre de visites reçues par mois:

    Et voici les pages ayant reçu plus de 100 visites au total (une misère…) :

    Titre Visualisations
    Home page More stats 3 334
    LES SACS D’ARGENT More stats 1 009
    Python More stats 357
    Membres More stats 297
    Conférences More stats 292
    Stuxnet More stats 279
    DropBox et Wuala: le cloud s’enrichit More stats 205
    Vanne thermostatique électronique More stats 197
    Agora More stats 185
    Twitter, le retour… More stats 165
    Fête de l’informatique rétro à l’EPFL More stats 162
    Festival Robotique EPFL More stats 145
    Bricobot More stats 140
    Projet « Barrette » livrable! More stats 109
    Historique More stats 101

    Mais il a peut-être échappé à certains:

    1. que tout membre du club peut y publier des articles ou participer à la gestion du site sur simple demande
    2. que les commentaires sont ouverts à tous, mais modérés automatiquement (pour éviter le spam) et manuellement (pour éviter les emm…, mais on en a pas eu jusqu’ici)
    3. mais surtout que les commentaires étant attachés aux articles ou pages et organisés hiérarchiquement, ils forment une arborescence tout à fait comparable à un forum.
    4. de plus, la page Agora permet de poster des commentaires sur n’importe quel sujet
    5. que les 10 derniers commentaires sont listés et accessibles dans la colonne de gauche
    6. que ce flux RSS (il était un peu caché il est vrai) permet d’être informé de tout nouveau commentaire

    Bref, les commentaires sur microclub.ch permettent de faire ce qu’on faisait sur la mailing-list, et se rapprochent même d’un forum.

    Alors pourquoi pas un forum ?

    Les avantages d’un forum, c’est qu’on peut EMPECHER les non-membres de voir ce qu’on fait (ou pas) au Microclub, leur INTERDIRE de participer s’ils ne sont pas inscrits, donc les OBLIGER à nous supplier à genoux pour avoir le droit de bénéficier du privilège de contribuer à nos activités. (En fait on peut aussi faire tout ça avec WordPress, mais je ne veux pas y penser…)

    Sérieusement, un forum ça fait sens quand on a des milliers d’utilisateurs qui pondent des centaines de contributions sur des dizaines de thèmes chaque jour. J’ai donc ajouté bbPress à notre installation WordPress, ce qui fait que nous avons désormais un forum. Essayons. Voyons si ça mord.

    Mais je n’y crois pas, parce que les tendances sont catégoriques : les forums sont sur le déclin, alors que les blogs se maintiennent :

     

    Google Trends de "mailing list (invisible...), forum (rouge), blog (orange) et twitter (vert)

    Ce qui va faire un malheur dans les prochaines années, c’est …

    Twitter

    Comme je l’ai expliqué il y a un an, Twitter est un système de communication hyper pratique, mega efficace, giga rapide tout en étant ultra simple. J’ai plus le temps d’expliquer tout ça ici, juste de vous donner un conseil :  créez-vous un compte twitter, abonnez vous à http://twitter.com/#!/goulu/microclub-2 et on en reparle dans une année…



Bricobot

    Newsletter Robotique – Octobre 2011

    A l’approche des vacances d’automne, nous profitons de cette occasion pour vous donner quelques nouvelles sur les activités en robotique. Que ce soit de la soudure ou de la programmation, le choix est vaste… et si vous préfèrez voir les robots en action ne manque pas la First Lego League qui aura lieu le 19 novembre.  Nous proposons aussi un petit concours à tous les propriétaires de Thymio II, n’hésitez pas à y participer !

    Nous vous souhaitons d’agréables vacances et espérons que vous aurez beaucoup de plaisir à participer à l’une ou l’autre de ces activités. Quant à nous, nous vous donnons rendez-vous début décembre.

    Cordialement,

    Mariza Freire

    Francesco Mondada

    ——————————————————–

    Sommaire des activités

    1. Découvrir les microcontrôleurs, pour les plus grands.

    2. Initiation à l’électronique et à la programmation d’un petit robot

    3. Challenge FIRST LEGO League – compétition de robotique pour les 10-16 ans

    4. Atelier robot vibreur en brosses / films Stop Motion

    5. Concours : Montrez vos Thymio !!

    6. Zigobot

    7. Club Robotique du Gymnase du Bugnon

    8. Initiation à la programmation avec les robots LEGO MINDSTORMS et LEGO WeDo

    9. Cours « Les Robots, c’est l’affaire des filles »

    10. Cours « internet pour les filles »

    11. Trax

    12. Ouverture de la 6e édition de bugnplay.ch

    13. KIDSinfo – Un projet de l’Association Suisse des Femmes Ingénieures ASFI / SVIN avec le support de la Commission « Femme et SIA » en Romandie

    14. Bricobot

    1. Découvrir les microcontrôleurs, pour les plus grands.

    Age : 14 à 77 ans.

    Des microcontrôleurs, on en entend beaucoup parler lors du festival de robotique. Mais, c’est quoi, au juste ? Est-ce compliqué à mettre en œuvre ? Durant cette journée, vous apprendrez à créer de petites applications à microcontrôleur, tant du point de vue matériel que logiciel. Vous utiliserez un environnement particulièrement simple et puissant, que vous pourrez emporter avec vous.

    Samedi 22 octobre 2011, de 9h à 17 h. (prendre son pic-nic pour midi)

    Les participants peuvent venir s’ils le souhaitent avec leur PC portable (Windows).

    Participation : 45.- y compris le matériel (LaunchPad TMS430, CD logiciels et composants). Renseignements et inscriptions: Pierre-Yves Rochat, ingénieur EPFL, e-mail : pyr@gmx.net, Tél. 076  534.19.85

    2. Initiation à l’électronique et à la programmation d’un petit robot

    La première séance aura leu le samedi 12 novembre le matin de 9h à 12h à Vevey (collège secondaire, rue du Collège 30). Les dates  des séances suivantes seront fixées d’entente avec les participants. Philippe Krähenbuhl (021/ 963.30.36 ou pkraehenbuhl@hotmail.com)

    3. Challenge FIRST LEGO League – compétition de robotique pour les 10-16 ans

    Le Centre Roberta de l’EPFL organise la 2e édition de la compétition FIRST LEGO League lausannoise qui accueillera 13 équipes de jeunes de 10 à 16 ans pour un challenge qui allie matchs de robots et recherche scientifique. Pendant plus de 2 mois, ces équipes ont travaillé à la construction et à la programmation de robots LEGO Mindstorms et étudié le thème de la compétition : la sécurité des aliments. Venez nombreuses et nombreux pour apprécier leur travail et les encourager !

    Date : samedi 19 novembre 2011

    Lieu : Forum du Rolex Learning Center de l’EPFL

    Pour plus d’informations sur le challenge et sur les horaires de la compétition : http://roberta.epfl.ch/fll. Contact : roberta@epfl.ch.

    4. Atelier robot vibreur en brosses / films Stop Motion

    Les participants construisent avec peu d’effort technique un robot vibreur en brosses qui sera composé d’une brosse à vaisselle, d’un moteur, des piles et d’un commutateur. Avec Daniel Imboden. Le collectif artistique omnimorph.ch fait une introduction à la production des films Stop Motion et montre comment on peut utiliser cette technologie à la maison.

    Atelier à Lugano : Samedi, le 12 novembre, 9 – 16 heures

    Atelier à Winterthur : Samedi, le 3 décembre, 9 – 16 heures

    Coûts : CHF 50.- par personne (déjeuner et matériel inclus)

    Inscription et contact : par courriel à caroline.morand@mgb.ch

    5. concours : Montrez vos Thymio !!

    Profitez de ces vacances pour faire une nouvelle création et la soumettre à notre concours « Thymio écolo ». Pour participer au concours, envoyez quelques photos ou une vidéo accompagnées d’un petit texte qui décrit comment vous avez réussi à rendre votre Thymio II sensible au développement durable. Envoyez le tout (pour la vidéo vous pouvez par exemple la mettre sur youtube et envoyer le lien) à concours@thymio.org avant le 15 novembre 2011. Toutes les réalisations seront publiées sur le site www.thymio.org et le gagnant fera l’objet d’une page spéciale. Un jury jugera la réalisation plus originale qui recevra un prix de 250 francs en bons cadeaux pour des jouets éducatifs.

    N’oubliez pas que de nombreux exemples de réalisations ont été publiés cet été sur le site thymio à la page https://aseba.wikidot.com/fr:thymioexamples. Bonnes vacances!

    6. Zigobot

    Nouveau !!! ZigoBot vous accueille dans son nouvel espace entièrement équipé au cœur de Lausanne. Dès mi-novembre, des cours, des animations et des ateliers pour tous les niveaux ainsi que des séances de rencontres seront régulièrement proposés! Un lieu unique où chacun peut présenter, découvrir, discuter et perfectionner des réalisations électroniques, mécaniques et, bien sûr, robotiques !

    Profitez des 3 premiers ateliers de lancement :

    a. Atelier Soudure (âge suggéré: 11-14 ans) CHF 25.-

    Samedi 19 novembre 2011 de 13h à 16h

    Apprends à souder avec le kit Golo contenant les jeux de références en électroniques : ping-pong, Simon et la possibilité de jouer des notes de musique ou avec le kit Bâton Magique. Des explications seront données pour comprendre leurs programmes

    b. Initiation à l’électronique (âge suggéré: 10-14 ans) CHF 20.-

    Mercredi 23 novembre 2011 de 14h à 16h30

    Nous construirons un gadget à emporter!

    c. Atelier Soudure (âge suggéré: 9-14 ans) CHF 20.-

    Samedi 26 novembre 2011 de 13h à 15h

    Montage du dé électronique de P.-Y. Rochat. Comment ça fonctionne? La pile dure-t-elle vraiment 2 ans? Mais que veut dire aléatoire?

    d. Initiation au Formacube (âge suggéré: 6-96 ans) Gratuit

    Les jeudis 8 et 15 décembre 2011 de 19h à 21h

    Jean-Michel Meys, le concepteur, vous présente une partie des multiples activités possibles avec le Formacube : jeux, réflexion, créativité, mémoire, vision dans l’espace, logique…

    Les inscriptions sont ouvertes dès lundi 18 octobre 2011, attention les places sont limitées afin d’assurer une attention et une qualité d’accompagnement à chacun des participants.

    De nombreuses très bonnes surprises vous attendent pour cette fin d’année! On vous en dévoile encore une: Attention aux âmes sensibles d’incroyables nouveaux insectoïdes font leurs apparitions en Suisse et seront disponibles dans quelques jours chez ZigoBot!

    Redonnez vie à votre Superpattt offert par le Festival de robotique en profitant de l’action Bricobot : une pile CR44 pour seulement 50 centimes !

    7. Club Robotique du Gymnase du Bugnon

    Le Club Robotique du Bugnon est un cours facultatif ouvert à tous les élèves des gymnases de Lausanne. Il a lieu les vendredi soir de 16h30 à 18h, au Site de l’Ours, Rue du Bugnon 5, dans la salle 300. Pour plus d’info : https://sites.google.com/site/bugnoninfo/robotique

    8. Initiation à la programmation avec les robots LEGO MINDSTORMS et LEGO WeDo

    CreativeStudio, distributeur officiel des produits « LEGO Education », organisera plusieurs cours pour parents et enfants en novembre et décembre 2011. Les cours auront lieu à Lausanne le lundi, mardi ou vendredi soir entre 18h15 et 19h45.

    Pour plus d’information : www.creative-studio.ch

    9. COURS « LES ROBOTS, C’EST L’AFFAIRE DES FILLES »

    Construire son robot ; le programmer pour le faire parler, lui donner des émotions, le faire danser, et lui apprendre à prendre des décisions. Ce cours destiné aux jeunes filles de 11 à 13 ans aura lieu à l’EPFL les samedis matin de 10h30 à 12h30 ou l’après-midi de 14h à 16h, de février à juin 2012. Inscription dès maintenant à l’adresse : http://roberta.epfl.ch/filles-cours (en bas de page, semestre 1 2012)

    10. COURS « INTERNET POUR LES FILLES »

    Ces cours pratiques par une approche complémentaire au programme scolaire offrent la possibilité aux jeunes filles de 9 à 12 ans d’acquérir une formation structurée sur Internet tout en y prenant plaisir.  Les cours ont lieu dans les locaux de l’EPFL le samedi matin de 10h30 à 12h30 ou le samedi après-midi de 14h à 16h, de février à juin 2012. Ils sont encadrés par des assistant-e-s qualifié-e-s de l’EPFL et sont entièrement gratuits pour les participantes. Informations et formulaire d’inscription : http://funweb.epfl.ch/

    11. Trax

    Vous aimez le logiciel du Thymio, écrit par Stéphane Magnenat?

    Comme étudiant en 1999, Stéphane s’est fait la main avec un programme pour simuler un robot qui a deux moteurs pas à pas. On liste les pas faits à droite et à gauche, et la trajectoire est dessinée sur l’écran. http://stephane.magnenat.net/data/trax.win.exe

    Chargement facile, testé sur XP et W7. De quoi bien s’amuser, et pourquoi pas calculer les pas pour une trajectoire parfaite?

    12. Ouverture de la 6e édition de bugnplay.ch

    Les jeunes d’aujourd’hui grandissent avec des smartphones, Facebook, Youtube et des tablettes tactiles, qu’ils utilisent naturellement. bugnplay.ch, le «Concours médias et robots» du Pour-cent culturel Migros encourage les jeunes de 8 à 20 ans à créer des projets issus de leur imagination, au moyen de médias numériques et de nouvelles technologies. La clôture des inscriptions est fixée au 31 janvier 2012.

    Tes outils sont l’ordinateur, le fer à souder, l’appareil photo numérique, la scie sauteuse, le téléphone portable et bien d’autres encore. Ton projet peut prendre la forme d’un robot, d’un film d’animation, d’un collage sonore, d’un feuilleton policier sur téléphone portable, d’un jeu sur ordinateur, d’un mélange de tout cela.

    Une nouveauté pour cette édition: bugnplay.ch proposera aux jeunes divers ateliers sur les thèmes de la robotique, du montage sonore et du film d’animation.

    13. KIDSinfo – Un projet de l’Association Suisse des Femmes Ingénieures ASFI / SVIN avec le support de la Commission « Femme et SIA » en Romandie

    Le projet «KIDSinfo», lancé par l’Association Suisse des Femmes Ingénieures ASFI, a comme but la sensibilisation des enfants dès leur plus jeune âge aux professions techniques, que ce soit les filles ou les garçons.

    A cette fin, «KIDSinfo» offre des présentations gratuites aux écoles primaires. Les animatrices, des professionnelles des domaines scientifique et technique, décrivent aux jeunes leur univers de travail en leur présentant le monde fascinant de la technique. Les animatrices ont aussi comme but de démontrer que les carrières techniques ne se conjuguent pas seulement au masculin.

    Le projet ayant pris une grande ampleur nous aimerions renforcer notre équipe d’animatrices. Nous sommes à la recherche de femmes actives dans une profession technique où d’étudiantes en branches techniques, qui souhaiteraient transmettre la fascination de leur profession / leurs études aux jeunes.

    Si vous vous sentez concernée, vous êtes cordialement invitée à renforcer notre équipe en Romandie. Veuillez contacter Regina Frei par e-mail: kidsinfo.romandie@gmail.com. Pour inviter KIDSinfo à l’école de votre enfants. Veuillez remplir le formulaire de contact sur:

    http://www.kidsinfo.ch/cms/index.php?id=110


  1. Pas encore de commentaire