Marc Silanus

Tutoriel Node-Red

Posted on 18 février 2018

Dans de nombreux projets, l'IHM est constituée d'une application web accessible depuis un navigateur. Il n'est pas toujours aisé de programmer le lien entre le matériel (capteurs et/ou actionneurs) et la page web fournie à l'utilisateur.  Une solution consiste à utiliser un script Python dont l'exécution peut être planifiée avec Cron, pour interagir avec le matériel, lire les données des capteurs et les stocker dans une base de données comme MySQL. Un serveur web comme Apache2, via une page web php, met à disposition des utilisateurs les informations. Cette solution décrite dans un précédant article nécessite la mobilisation de nombreuses technologies et plusieurs langages de programmation, contraignant les développeurs du projet à retarder la mise œuvre d'un prototype pour se former.

Combiné avec une solution matérielle constituée d'une Raspberry et éventuellement une carte Arduino, Node Red se révèle être une alternative très intéressante :

Node-RED est un outil puissant pour construire des applications de l'Internet des Objets (IoT) en mettant l'accent sur la simplification de la programmation qui se fait grâce à des blocs de code prédéfinis, appelés «nodes» pour effectuer des tâches. Il utilise une approche de programmation visuelle qui permet aux développeurs de connecter les blocs de code  ensemble. Les nœuds connectés, généralement une combinaison de nœuds d'entrée, de nœuds de traitement et de nœuds de sortie, lorsqu'ils sont câblés ensemble, constituent un «flow».

Formation STS SN Packet Tracer Activity Wizard

Posted on 16 juin 2017

Cisco Packet Tracer est un programme de simulation de réseau puissant qui permet aux étudiants d'expérimenter le comportement du réseau.

Packet Tracer fournit la simulation, la visualisation, la création, l'évaluation et les capacités de collaboration et facilite l'enseignement et l'apprentissage des concepts technologiques complexes.

Packet Tracer complète l'équipement physique dans la salle de classe en permettant aux élèves de créer un réseau avec un nombre presque illimité de périphériques, d'encourager la pratique, la découverte et le dépannage. L'environnement d'apprentissage basée sur la simulation aide les élèves à développer des compétences tels que la prise de décision, la pensée créative et critique, et la résolution de problèmes.

Le module Activity Wizard de Packet Tracer est un assistant de création d’activités. Il est conçu pour améliorer l'enseignement et l'apprentissage en permettant la création de scénarios d’activités et d’évaluations dans un environnement structuré. Dans cette formation, vous apprendrez à créer une activité simple basée sur un scénario unique, puis une activité qui utilise des variables pour permettre de diversifier les scénarios.

A la fin de se module, vous serez en mesure de concevoir une activité auto évaluée à l'aide de "l'assistant de création d'activités" de Packet Tracer.

Lire la suite ...

Remplis sous: Divers Commentaires

Créer un graphique en php à partir de données de MySQL

Posted on 25 mars 2017

Bien souvent, les données collectées grâce aux capteurs sont enregistrées dans une base de données. Considérons que nous disposons du gestionnaire de base de données MySQL, d'un serveur web Apache2, du langage de script php5 et de phpmyadmin.

Nous disposons d'un système de mesure de masse d'une ruche et nous enregistrons tous les jours la masse de cette ruche.
Image générée par php

Structure d’un premier objet communicant

Posted on 24 février 2017

Le but de ce tutoriel est de mettre en œuvre une structure type d'un objet communicant basé sur l'utilisation d'une carte Arduino pour la partie acquisition/actionneurs et d'une carte PC embarqué (pcDuino, Raspberry Pi, ...) pour la partie traitement (script Python, programme C/C++, ...), connexion au réseau (filaire ou wifi), stockage local des données (serveur de bases de données SQLigth, MySQL, ...), mise à disposition des données (serveur web Apache2, lighttpd, ginx, ...). La connexion entre ces deux carte se fait naturellement par une liaison série sur USB. Le synoptique ci-dessous représente par exemple un système de surveillance de la hauteur et de la qualité de l'eau d'un cours d'eau. La température, le Ph et la hauteur de l'eau sont mesurés sur demande par la carte Arduino. Le pcDuino via un scritp Python dont l'exécution peut être planifiée avec Cron, effectue la demande puis lit les réponses et les stockent dans la base de données MySQL. Apache2, via une page web php, met à disposition des utilisateurs les informations.

Synoptique Sorgomètre - Carla ISN 2016

Kinect Microsoft dans un projet Windows Form C#

Posted on 10 février 2017

L'utilisation de la Kinect de Microsoft dans un projet nécessitant une localisation dans l'espace d'une personne peut s'avérer très utile. Microsoft met a disposition des développeur un SDK avec plusieurs exemples de programmes dans différents langages. Toutefois, aucun exemple de programmation à partir d'un projet Windows Form n'est fourni. C'est pourtant ce type de projet que l'on va privilégier au niveau terminal S-SSI ou STI2D SIN.

Cet article est un tutoriel de mise en œuvre de la Kinect dans un projet Windows Form en C# avec Visual Studio.

L'intérêt de la Kinect en robotique est évident. Elle permet de doter vos robots d'une capacité de reconnaissance de la présente d'un humain dans son environnement, d'interpréter ses gestes et bientôt, d'interpréter son expression faciale et de faire de la reconnaissance vocale. Le capteur Microsoft Kinect est donc un capteur de choix pour vos robots.

Génération Robot

Remplis sous: Divers Lire la suite

Connexion automatique d’une Arduino avec VisualStudio C#

Posted on 7 février 2017

Ce programme permet de piloter la LED connectée sur D13 sur une Arduino (uno, mega, ...). La connexion à la carte Arduino est automatique. Le système identifie le port sur lequel l'Arduino est connecté et tente d'ouvrir le port. L'utilisateur à la possibilité de modifier la connexion, dans le cas ou plusieurs cartes Arduino seraient reliées à l'ordinateur par exemple.

Les mots de commandes disponibles sont :

  • ON : Allumer la LED
  • OFF : Eteindre la LED
  • STATUS : Demande le status de la LED

autoConnectArduino

Reconnaissance faciale par Eigenfaces

Posted on 5 février 2017

Ce projet doit permettre de faire une reconnaissance faciale, en employant des photos de référence des personnes connues et en soumettant au programme la photo d'une personne à identifier. La reconnaissance est donc limitée à l'emploi d'images en deux dimensions. La méthode de reconnaissance faciale Eigenfaces emploie la technique de l’analyse en composante principale, qui marque une différence notable avec les méthodes plus classiques, appelées méthodes géométriques ou locales, qui se basent sur les particularités du visage analysé, et dont les défauts résident dans son manque de précision, ainsi que sa sensibilité aux informations qui ne sont pas pertinentes. La méthode utilisée ici est qualifiée de globale, puisque l’ensemble du visage est alors analysé.

Les eigenfaces sont un ensemble de vecteurs propres utilisés dans le domaine de la vision artificielle afin de résoudre le problème de la reconnaissance du visage humain. Le recours à des eigenfaces pour la reconnaissance a été développé par Sirovich et Kirby (1987) et utilisé par Matthew Turk et Alex Pentland pour la classification de visages. Cette méthode est considérée comme le premier exemple réussi de technologie de reconnaissance faciale. Ces vecteurs propres sont dérivés de la matrice de covariance de la distribution de probabilité de l'espace vectoriel de grande dimension des possibles visages d'êtres humains.

Wikipédia : https://fr.wikipedia.org/wiki/Eigenface

Cette technique de reconnaissance utilise la méthode d’analyse en composantes principales (PCA) ou la méthode de décomposition en valeurs singulières (SVD). De manière simple, elle vise a diminuer la dimension de l’espace de travail pour simplifier les données et leur interprétation. Le but est ainsi de prendre en compte les informations importantes qui permettront de reconnaître un visage parmi d’autres avec un bon taux de réussite.

Remplis sous: Divers, Python Lire la suite

Azolla : le plus court chemin entre deux points …

Posted on 28 janvier 2017

C'est bien connu, le plus court chemin entre deux points, c'est la ligne droite !

Dans cet article, je vous propose de mettre en application cet adage dans Azolla, un simulateur robotique 2D. Il s'agit ici de faire aller le robot sur une cible déposée sur le monde. Pour cela, nous allons comparer les coordonnées du robot et de la cible et faire avancer le robot dans la direction de la cible jusqu'à ce que leurs coordonnées soient égales (ou presque).

  • Les coordonnées du robot sont accessibles par la méthode :
    • getposition(numrobot)
  • Les coordonnées de la cibles sont accessibles par la méthode :
    • gettarget(numcible)

Utilisation d’une manette de jeu avec Visual Studio en C#

Posted on 21 janvier 2017

Le contrôle d'objets mobiles à distance nécessite l'emploi d'une télécommande ou d'une manette. De nombreux shields Arduino   existent sur le marché et permettent de satisfaire à ce besoin (ex : http://www.robotshop.com/ca/en/dfrobot-joystick-input-shield-arduino.html). Cependant, la première idée qui vient souvent à l'esprit des élèves est d'utiliser leur vielle manette de jeu Xbox, PS, ou autre compatible.

Leur utilisation dans le cadre d'un projet de développement nécessite l'utilisation de librairies spécifiques (python : pygame, Microsoft : DirectX, SlimDX, XNA, ...). Bien qu'il y ait de nombreux tutoriels sur le net, je n'ai pas trouvé de solution simple, à la porté d'élèves de terminal STI2D novices en programmation.

Toutefois, l'environnement XNA Game Studio met à disposition du développeur un framework qui contient les outils nécessaires à la gestion des manettes connectées à un PC sous Windows. Il peut être utilisé sous Visual Studio dans le cadre d'un projet Windows Form classique.

Je vous propose de réaliser une application de test des principaux contrôles possibles avec une manette compatible Logitech.

La météo dans ma ville

Posted on 18 janvier 2017

De nombreux projets font appels à des données météorologiques et il n'est pas toujours possible de disposer de tous les capteurs nécessaires. Il existe sur internet de nombreuses bases de données météo qui couvrent le monde entier. Une base en particulier parait très intéressante car elle est accessible gratuitement et couvre près de 200 000 citées : http://openweathermap.org/

Il s'agit ici d'un test de connexion et de lecture des données météo classiques à partir de l'API d'openWeatherMap. Ce test a été réalisé en python, l'interface Homme-Machine est réalisée avec Qt Designer (voir article Tuto Qt+Python) et l'accès aux données se fait au travers de l'API pyowm (https://media.readthedocs.org/pdf/pyowm/latest/pyowm.pdf).

Les fichiers du projet ici.

Remplis sous: Divers, Python Commentaires