Archives par étiquette : GROVE

Récupérer les coordonnées GPS de l’arduino sur une application PC (Visual Studio)

Mise à jour le 22/09/2017.Lorsque vous utilisez un Arduino, vous avez peut être besoin de récupérer des informations depuis celui ci sur votre PC.

 

Prérequis

Vous devez avoir Visual Studio installé sur votre PC. Si vous souhaitez reproduire notre article chez vous, il vous faudra également un arduino avec un système grove GPS afin de récupérer les trames GPGGA de celui ci.

Côté Arduino

Il faudra réaliser un montage très simple : reliez le 5v et gnd du module GPS à votre Arduino. Reliez ensuite la broche TX du GPS au pin D2 et la broche RX du GPS au pin D3 de l’arduino

Envoyez ensuite le programme Arduino suivant qui permettra de récupérer les trames GPGGA du GPS et qui les route vers le port série relié au PC

Côté PC : Création du projet Visual Studio

Lancez visual studio puis créez un nouveau projet Windows Forms Application. Vous verrez apparaître alors une fenêtre qui est la fenêtre de votre application.

Visual Studio Serial Port

Dans la boite à outils (toolbox), sélectionnez le composant SerialPort puis glissez-le  sur votre fenêtre. Vous le verrez apparaître en bas de l’écran.

Insérez également deux boutons (un pour Connecter, un pour déconnecter), un numericUpDown (pour préciser le port COM) et un textbox (qui affichera les données de l’arduino) dont l’option multiline est active.

En double cliquant sur un bouton, vous entrez dans le code de son événement de clic. C’est ici que l’on doit coder ce qui doit se produire quand on clique sur le bouton.

Voici le code permettant de se connecter ou déconnecter du port com de l’arduino :

Dans la connexion, on indique quel est le port à utiliser sous la forme d’une chaîne de caractères (Exemple : COM8) puis on ouvre la communication. Dans le bouton déconnecter, on ferme la connexion série.

Afin de récupérer les données envoyées depuis l’arduino vers le PC, on va s’abonner à un événement du port série.

SerialPort1_Receiving est l’événement qui indique que le port Série virtuel du PC a reçu des données. A chaque fois qu’il se déclenche, on va lire ces données puis les envoyer à la suite du texte déjà présent dans le textbox. Etant donné que la récupération sur le port série se passe sur un autre thread (processus) que celui de l’application, on ne peut pas directement mettre à jour l’interface graphique (afficher le texte) depuis l’évenement du port série sous peine d’avoir une erreur à l’exécution. On va donc passer depuis un délégué qui va se charger de transmettre l’information et mettre à jour l’interface graphique (partie avec le Delegate et méthode SetText).

Maintenant, nous allons récupérer indépendamment la latitude et la longitude et les afficher à l’écran.

Comme la communication série récupère les données par bribes, on doit donc recomposer les trames GPGGA pour pouvoir les traiter une à une. La fonction remplirTrame se charge de récupérer les données et reformer une trame GPGGA complète. Dès que la trame est complète, on va la traiter à l’aide de la fonction AfficherLatitudeLongitude pour découper la trame, récupérer les informations puis les convertir en affichage réutilisable.

separateur-redohm-001

Le code source en téléchargement

Code source complet du programme

.

Code source à télécharger

.

separateur-redohm-001

Pour utiliser l’application, réaliser le montage Arduino/GPS puis envoyer le programme de notre article sur le module GPS Grove. Connectez l’arduino au pc, lancez le programme GPS Localiser puis choisissez le port com correspondant à l’arduino. Cliquez sur connecter et attendez que les trames GPGGA apparaissent. Vous aurez alors la latitude et la longitude dès que le GPS aura accroché les satellites.

Réalisé par Steeve / Hervé

Retour au menu

 

 

Grove OLE42178P : Exemple 87 Visualisation de 2 entrées analogique
***

Mise à jour le 22/03/2017

Le but de cet exemple n’est pas d’optimisé le programme mais de montrer le principe de fonctionnement de celui-ci ( dans la partie void setup la présentation du numéro de l’exemple idem à l’exemple 86 )

REDOHM AFFICHAGE GROVE OLE42178P EXERCICE 87

Exemple 87. Affichage de valeur analogique

Matériel nécessaire

– 1 Carte Arduino Mega 2560
– 1 Carte Grove Mega  Shield
– 1 Afficheur Oled 96×96 OLE42178P
– 1 Détecteur de lumière Grove SEN11302P
–  1 Module potentiomètre Grove COM08212P

A savoir

la fonction d’initialisation setup() qui est exécutée une seule fois au démarrage.Cette fonction est utilisée pour initialiser les variables, le sens des broches, les librairies utilisées
– la fonction « boucle sans fin » loop() qui est exécutée en boucle une fois que la fonction setup() a été exécutée une fois.
– Toutes les lignes qui commencent par // sont ignorées par le compilateur et sont appelées des commentaires.Les commentaires sont des lignes de texte incluses dans le programme, de plus elles n’occupent aucun espace mémoire dans le microcontrôleur
– Le code de la fonction est compris entre des accolades qui sont en quelque sorte les « bornes » délimitant la fonction.Les accolades sont un élément majeur de la programmation en langage C. Elles sont utilisées dans plusieurs constructions différentes.

Notion à savoir :

 

Retour au menu
 
Grove OLE42178P : Exemple 86 Visualisation de 4 entrées
***

Visualisation de 4 entrées sur l ‘afficheur OLE42178P

Mise à jour le 19/01/2017

Le but de cet exemple n’est pas d’optimisé le programme mais de montrer le principe de fonctionnement de celui-ci.

REDOHM AFFICHAGE GROVE OLE42178P EXERCICE 86

Matériel nécessaire

– 1 Carte Arduino Mega 2560
– 1 Carte Grove Mega  Shield
– 1 Afficheur Oled 96×96 OLE42178P
–  1 Bouton poussoir ou un fil shunt

A savoir

– la fonction d’initialisation setup() qui est exécutée une seule fois au démarrage. Cette fonction est utilisée pour initialiser les variables, le sens des broches, les librairies utilisées
– la fonction “boucle sans fin” loop() qui est exécutée en boucle une fois que la fonction setup() a été exécutée une fois.
– Toutes les lignes qui commencent par // sont ignorées par le compilateur et sont appelées des commentaires. Les commentaires sont des lignes de texte incluses dans le programme, de plus elles n’occupent aucun espace mémoire dans le microcontrôleur
– Le code de la fonction est compris entre des accolades qui sont en quelque sorte les “bornes” délimitant la fonction. Les accolades sont un élément majeur de la programmation en langage C. Elles sont utilisées dans plusieurs constructions différentes.

***

Grove : Capteur UV Grove 101020043
***

Mise à jour le 11/04/2016

101020043 remplace SEN00700P
Capteur UV Grove

Capteur de lumière UV compatible Grove basé sur le circuit GUVA-S12D avec une plage de 200 à 370 nm.Le module émet un signal électrique qui varie avec l’intensité du rayonnement UV

SEN00700P REDOHM 001

Caractéristique technique

Interface: compatible Grove
Alimentation: 5 Vcc
Plage de mesure: 200 à 370 nm
Temps de réponse: 20 à 30 s
Dimensions: 20 x 20 mm
Température de service: -30°C à +85°C
Connectique uniquement compatible avec le système Grove
Référence fabricant Seeedstudio: 101020043 (remplace SEN00700P)

Prix en général de 8 à 12€ suivant fournisseur

Quelques information supplémentaires

UV-A, UV-B , UV-C

Ces trois types de rayonnements UV sont classés en fonction de leur activité biologique et de leur pouvoir de pénétration de la peau. Ils correspondent à trois plages de longueurs d’onde. Plus le rayonnement UV a une longueur d’onde longue, moins il est nocif (il se rapproche de la lumière visible) mais plus il a un pouvoir de pénétration cutanée important. Quand sa longueur d’onde diminue, il possède plus d’énergie, se rapproche des rayons X et donc est plus destructeur.

UV-A (400-315 nm) :
Les UV-A, dont la longueur d’onde est relativement longue, représentent près de 95 %  du rayonnement UV qui atteint la surface de la Terre. Ils peuvent pénétrer dans les couches profondes de la peau.

UV-B (315-280 nm) :
Les UV-B, de longueur d’onde moyenne, ont une activité biologique importante, mais ne pénètrent pas au-delà des couches superficielles de la peau, ils sont relativement absorbés par la couche cornée de l’épiderme (mélanine). Une partie des UV-B solaires sont filtrés par l’atmosphère.

UV-C (280-100 nm) :
Les UV-C, de courte longueur d’onde, sont les UV les plus énergétiques ainsi que les plus nocifs (l’énergie croît quand la longueur d’onde décroît), mais ils sont complètement filtrés par la couche d’ozone de l’atmosphère et n’atteignent donc pas théoriquement la surface de la Terre. Toutefois, des lampes UV-C sont utilisées en laboratoire de biologie pour les effets germicides, afin de stériliser des pièces ou des appareils

Exemple d’application des UV

  • 13.5 nm: Lithographie par ultraviolets extrêmes
  • 230-365 nm: suivi de balises sur les produits, code-barres
  • 230-400 nm: détecteurs optiques, instrumentation diverse
  • 240-280 nm: Désinfection, assainissement d’eau et de surfaces (son absorption par ADN atteignit son comble à 260 nm), effaceur d’EPROM
  • 200-400 nm: Science forensique, dépistage de drogues
  • 270-360 nm: Analyse de protéines, séquençage de l’ADN, recherches pharmaceutiques
  • 280-400 nm: Imagerie médicale des cellules
  • 300-320 nm: Luminothérapie
  • 300-365 nm: Séchage de polymères d’encres
  • 300-400 nm: Éclairage à semi-conducteurs
  • 350-370 nm: Piège à insectes (les mouches sont attirées le plus par la longueur 365 nm)

 

Exemple de programme du constructeur

Source technique : Seedwiki ,

Retour au menu

 

Grove : Capteur d’humidité et de T° SEN11301P

***

Mise à jour le 28/01/2015

Ce capteur de température et d’humidité compatible Grove utilise une thermistance CTN et un capteur capacitif et délivre une sortie digitale. Il délivre les mesures de températures et d’humidité au même moment. Quand le capteur se trouve dans des conditions d’humidité relative  de  HR 20 % et 90 %  et de température   0° C et 50° C, il donne des lectures fiables

 Ne fonctionne pas en-dessous de 0°C. Capture
Tension de travail: 3, 3V ~ 5V
Plage de mesure :
Humidité : 20 % – 90 % RH
Température: 0 ~ 50 ° C

  • Précision :
    Humidité: ± 5 % HR
    Température: ± 2 ° C
  • Sensibilité :
    Humidité : ±1 % hr
    Température : 1° C
  • Signal collecte période: 2 s

Source technique : Seeedwiki

retour au menu 001