Archives de catégorie : Arduino Hardware

Librairie Arduino SofwareSerial()
***

Mise à jour le 20/03/2015

Les cartes Arduino disposent d’une communication série matérielle sur les broches 0 et 1  (qui va aussi à l’ordinateur via la connexion USB).Cette communication série matérielle est réalisée par un module matériel (intégré dans la puce) appelé UART . Ce matériel permet a la puce Atmega de recevoir des communications série même en travaillant sur ​​d’autres tâches, tant qu’il y a de la place dans les 64 octets de buffer de l’UART (le buffer est reçoit les données entrantes et les stocke en attendant qu’elles soit lues).

Pour inclure la librairie SerialSoftware dans un programme, on ajoutera au début du programme la ligne suivante :

#include <SoftwareSerial.h>

   Fonction   Définition de la fonction
 SoftwareSerial() 

Un appel de l’instruction SoftwareSerial(rxBroche, txBroche) crée un nouvel objet SoftwareSerial, que vous pourrez nommer selon votre choix

Exemple de Syntaxe : SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);

  • mySerial : le nom donné au nouvel objet SoftwareSerial créé.
  • rxBroche : la broche utilisée pour recevoir les données série.
  • txBroche : la broche utilisée pour émettre les données série.
Exemple dans un programme:

 

 begin()  Définit la vitesse pour la communication série . L’utilisation d’une vitesse supérieures à 9600 bauds donnera des erreurs de communications
Exemple de Syntaxe
: mySerial.begin(9600);

Exemple dans un programme:

 

 read() 

Lit un caractère sur la broche en réception sur le port série logiciel . Il le lit et renvoie la valeur reçue

Exemple de Syntaxe : char a = serial.read();
A savoir – > a : une variable de type char

Valeur renvoyée  ->  le caractère lu sur le port série (type int)

 print()

Affiche dans une fenêtre Terminal les données émises par la broche d’émission du port série logiciel

Exemple de Syntaxe : mySerial.print(valeur) ou mySerial.print(valeur, format)


Cette instruction peut prendre plusieurs formes :

  • mySerial.print(55);                               affiche « 55 »
  • mySerial.print(1.23456);                     affiche « 1.23 »
  • mySerial.print(byte(79));                    affiche « O » (dont la valeur ASCII est 79)
  • mySerial.print(‘N’);                              affiche « N »
  • mySerial.print(« bonjour »);                 affiche « bonjour »

 

 println()

Affiche dans une fenêtre Terminal les données émises par la broche d’émission du port série logiciel, suivi d’un saut de ligne.

Exemple de Syntaxe : mySerial.println(valeur) ou mySerial.println(valeur, format)

Cette instruction peut prendre plusieurs formes :

  • mySerial.println(55);                               affiche « 55 »
  • mySerial.println(1.23456);                     affiche « 1.23 »
  • mySerial.println(byte(79));                    affiche « O » (dont la valeur ASCII est 79)
  • mySerial.println(‘N’);                              affiche « N »
  • mySerial.println(« bonjour »);                 affiche « bonjour »

 

 Retour au menu

Librairie Arduino stepper ( pour moteur pas à pas )
***

Mise à jour le 21/02/2015

Cette librairie vous permet de contrôler des moteurs pas à pas unipolaires et bipolaires. Ce type de moteur est très courant dans tous les dispositifs où l’on souhaite faire du contrôle de vitesse ou de position en boucle ouverte ( sans retour d’une information pour vérifier la réponse du système ) . Un moteur pas à pas est  capable d’exécuter des rotations « angle par angle  » d’une grande précision. Pour utiliser cette librairie avec votre carte Arduino, vous  aurez besoin d’un moteur pas à pas et d’une interface de puissance adaptée pour contrôler le moteur.

Pour inclure la librairie Stepper dans un programme, on ajoutera au début du programme la ligne suivante :

#include <Stepper.h>

  Fonction  Définition de la fonction
setSpeed()

Cela permet de définir la vitesse de rotation du moteur c’est a dire la fréquence des signaux rectangulaire  

Exemple:
// définît la vitesse du moteur à 30 tours par minute
stepper.setSpeed(30);

steps()

C’est le fonction la plus utile puisque c’est celle qui permet de faire tourner le moteur du nombre de pas spécifié  

Exemple:
stepper.steps(nombre_de_pas);

nombre_de_pas est une variable int [Une variable de type int (pour integer, entier en anglais], spécifiant le nombre de pas à générer. Cette variable variable peut être positive ou négative selon le sens dans le lequel on veut faire tourner le moteur.

 

 

   

Retour au menu

Librairie Arduino gestion des cartes SD
***

Mise à jour le 25/03/2015

Cette librairie gère aussi bien les cartes SD que les cartes SD HC et support aussi bien les cartes formatées en FAT16 qu’en FAT32. Elle utilise les noms de fichier courts comportant au maximum 8 caractères . La notion de répertoire et de sous répertoire  est également supportée.

  Fonction   Définition de la fonction
 SD.begin()  Initialise la librairie SD et la carte SD. Cela lance l’utilisation du bus SPI
(broches numériques 11,12 et 13 sur la plupart des cartes Arduino; 50, 51 et 52 sur la Mega)
 SD.exists(nom du fichier )

 Cette fonction teste la présence d’un fichier ou d’un répertoire sur la carte préalablement initialisée. Elle retourne un résultat:
true : si le fichier ou répertoire existe   —–> true = vrai
false : si le fichier ou le répertoire n’existe pas  ——-> false = faux

 SD.mkdir(« nom du répertoire »)  Cette fonction crée un répertoire sur la carte mémoire SD. Elle retourne un résultat vrai si la création s’est bien passée et faux dans le cas contraire . 
 SD.rmdir(« nom du répertoire »)  Cette fonction est le contraire de la précédente pour détruire le répertoire spécifié.
Elle retourne un résultat vrai si la destruction s’est bien passée et faux dans le cas contraire . ( a savoir : si le répertoire n’excite pas , la valeur de retour est indéterminée ) 
 SD.remove(nom du fichier )  Cette fonction efface un fichier de la carte mémoire SD. Elle retourne un résultat vrai si la suppression s’est bien passée et faux dans le cas contraire . ( a savoir : si le répertoire n’excite pas , la valeur de retour est indéterminée ) 
 SD.open(nom du fichier

ou

SD.open(nom du fichier, mode)

 Cette fonction ouvre un fichier sur la carte mémoire SD. Elle retourne un objet de type fichier correspondant au fichier qui vient d’être ouvert, si cette ouverture n’est pas possible , cet objet peut être testé comme une variable booléenne .

mode (optionnel), le mode d’ouverture du fichier, par défaut FILE_READ – byte. Les paramètres possibles sont :
FILE_READ: ouvre le fichier pour lecture, en démarrant au début du fichier.
FILE_WRITE: ouvre le fichier pour lecture et écriture, en démarrant au début du fichier.

 file.available()  Cette fonction vérifie si des octets sont disponibles en lecture dans le fichier. 
 file.close() Cette fonction ferme le fichier en s’assurant que les données qui y ont éventuellement été écrits sont bien sauvegardées sur la carte SD .Cette fonction ne retourne aucun résultat .
 file.flush() Cette fonction s’assure que les données écrites dans un fichier ont été physiquement enregistrées sur la carte mémoire SD. 
file.peek() Cette fonction lit un octet dans un fichier sans avancer au suivant. Ainsi, des appels successifs de la fonction peek() renverront la même valeur, jusqu’au prochain appel de la fonction read().
file.position() Cette fonction indique la position ou se trouve le pointeur au sein du fichier
file.print(data)

ou

file.print(data, BASE)

Cette fonction écrit des données dans un fichier, lequel doit être ouvert pour écriture. Cette fonction affiche les nombres comme une séquence de chiffres, chacun comme un caractère ASCII 
 file.println()

ou

file.println(data)

ou

 file.println(data, BASE)

 Cette fonction écrit des données suivies d’un saut de ligne ( retour chariot + nouvelle ligne) dans un fichier , lequel doit être ouvert pour écriture. Cette fonction affiche les nombres comme une séquence de chiffres, chacun comme un caractère ASCII (par exemple le nombre 123 est écrit sous la forme de 3 caractères ‘1’, ‘2’, ‘3’). 

file : une instance de l’objet File (renvoyée par la fonction SD.open())
data: les données à écrire dans le fichier – types possibles : char, byte, int, long, ou string
BASE : (optionnel): la base dans laquelle écrire les nombres : BIN pour binaire (base 2), DEC pour décimal (base 10), OCT pour octal (base 8), HEX pour hexadécimal (base 16). La base par défaut est la base décimale.

 file.seek(pos)  Cette fonction positionne le pointeur dans le fichier sur la valeur indiquée par position qui doit etre comprise entre 0 et la taille maximun du fichier
 file.size()  Cette fonction permet de connaître la taille d’un fichier (en nombre d’octets). 
 file.read()  Cette fonction lit un octet dans un fichier et avance le pointeur au suivant .Elle retourne le caractère lu ou -1 si aucun caractère n’est disponible
 file.write(données)

ou

file.write(tampon, longueur)

1 er forme : Cette fonction écrit des données dans un fichier .
2 éme forme : elle écrit le contenu du tampon dont la taille est spécifiée par le paramètre longueur

Retour au menu

Librairie Arduino Grove [ OLE42178P ]
***

Mise à jour le 21/03/2015

La bibliothèque Gris OLED fournit des interfaces logicielles complètes pour utiliser  les fonctions du pilote SSD1327Z avec un afficheur Grove OLED 96×96 gris

A savoir :

Pour démarrer le programme chargé d’abord la bibliothèque Wire.h .Cette bibliothèque vous permet de communiquer avec des périphériques  I2C. (Pour la procédure d’installation cliquez ici )

 

  Fonction   Définition de la fonction
  SeeedGrayOled.init ();  Initialise l’affichage
 SeeedGrayOled.clearDisplay ();  Efface tout l’écran. Devrait être utilisé avant de commencer un nouveau départ ou après la désactivation du  défilement. Cette fonction positionne le curseur sur le coin supérieur gauche.
 SeeedGrayOled.setNormalDisplay ();   Définir affichage en mode normal (en mode  non inverse)
 SeeedGrayOled.setContrastLevel (127);  Définir l’affichage et le rapport de contraste à demi-niveau(c.-à 256/2 -1).
 SeeedGrayOled.setInverseDisplay ();   Placer l’affichage en mode inverse
 SeeedGrayOled.setHorizontalMode ();  Définir le mode d’affichage en mode horizontal
 SeeedGrayOled.setVerticalMode ();  Définir le mode d’affichage en mode vertical
 SeeedGrayOled.setTextXY (0,0);  Placez le curseur à 0e ligne de texte, la colonne de texte 0e
SeeedGrayOled.putChar (‘S’); Affiche le caractère S .Afficher un caractère à l’écran à partir de l’adresse pointeur réglé par setTextXY (X, Y). Cette fonction est utilisée en interne par PutString ().
SeeedGrayOled.putString (“Bonjour tout le monde!”); Affiche la chaîne de caractères .
SeeedGrayOled.putNumber (-56,123);  Affiche le numéro de -56123 .Le nombre peut être char, int ou long en type de données. Il prend également en charge le signe
 SeeedGrayOled.drawBitmap (SeeedLogo, 96 * 96/8);  Dessine une image binaire (96 pixels * 96 pixels / 8) octets
SeeedGrayOled.setHorizontalScrollProperties (Scroll_Left, 72,95,0,47, Scroll_5Frames); Définit les propriétés du défilement horizontal
SeeedGrayOled.activateScroll (); Activer défilement.
SeeedGrayOled.deactivateScroll ()  Désactiver le défilement.

Télécharger la Bibliothèque LCD_Display

Retour au menu

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

 

 

Arduino + LCD 3,5”

Carte mère Uno avec écran

 

Mise à jour 09/02/2015

Caractéristiques générales:

Alimentation: 6 à 9 Vcc via le connecteur alimentation
Consommation: 200 mA
Mémoire Flash de 4 Mb pour le stockage d’images
Rétro-éclairage par led
Contraste: 500:1
Dimensions: 77 x 77 x 20 mm

Arduino:

Compatible avec la carte Arduino Uno R3
Microcontrôleur: ATMega328P
E/S digitales: 14 dont 6 PWM
Entrées analogiques: 6
Mémoire:
– Flash: 32 k
– SRAM: 2 k
– EEPROM: 1 k

Affichage tactile:

Microcontrôleur 16 bits
Contrôleur LCD RGB
Mémoire de stockage de 256 k
Résolution: 320 x 240 pixels
65536 couleurs
Ecran tactile résistif

Démarrage Arduino + LCD 3,5”

– Etape 1

Assurez-vous que vous avez la dernière version IDE Arduino .
Ci-joint le lien : http://www.arduino.cc/

Avant de commencer, effectuer le téléchargement des fichiers et Installer les pilotes de votre arLCD
Ci-joint le lien : http://www.earthlcd.com/

Branchez la carte écran  « arLCD » dans un port USB libre et attendez quelques secondes. Windows reconnaît le nouveau matériel et l’affiche dans votre gestionnaire de disque. L’utilitaire arLCD a construit un disque Flash de 4 MO  qui sera installé automatiquement à l’aide d’un pilote intégré Windows. Vous devez installer le driver EarthMake se trouvant sur votre carte afficheur ou sur le site du constructeur.

– Etape 2

Après avoir branché le ARLCD et installé avec succès le driver, un port COM sera disponible.
Ce port COM sera affiché dans le gestionnaire de périphériques, sous ports, vous verrez divers dispositifs tels que :

005- ARLCD

 

– Etape 3 : Mettre à jour les fichiers système .

Afin de tirer le meilleur parti de votre arLCD, il est recommandé de mettre à jour le système de fichiers. Vous avez peut-être déjà téléchargé le dernier système de fichiers à l’étape 1. Ouvrez le fichier zip nommé : « ArLCD_Filesystem_ {date} .zip » et copier l’ensemble des fichiers dans le répertoire racine de votre arLCD. Lorsque Windows vous demande d’écraser les fichiers existants, cliquez sur oui. Redémarrez le arLCD ou appuyer sur le bouton reset de votre carte.

006- ARLCD

 

– Etape 4 : Installation des fichiers de la bibliothèque de votre carte arLCD dans le programme IDE Arduino.

La carte  arLCD est livré avec une bibliothèque pour être utilisé avec l’Arduino IDE, ce qui rend la programmation de l’afficheur très facile. Dans le fichier nommé arLCD_Library_{date}.zip que vous avez téléchargé plutôt. Vous trouverez un dossier nommé ezLCD. Ce dossier contient les fichiers de la bibliothèque et un exemple de programmation. Localisez le dossier de l’Arduino IDE  sur votre ordinateur et copier le dossier ezLCD dans le dossier des bibliothèques .

001- ARLCD REDOHM

– Etape 5 : Chargement d’un exemple de programme dans votre arLCD

Avant de communiquer avec votre afficheur arLCD,  vous devez vérifier que le fichier startup.ezm doit être correctement configuré. Si un startup.ezm est dans le EZUSER \ Macros \ alors il sera utilisé. Sinon, il utilisera le startup.ezm dans le EZSYS \ Macros \ répertoire. Vous pouvez ouvrir ce fichier avec le bloc note de Windows 7 ou 8. Ouvrez le fichier startup et vérifiez si les lignes ci-dessous sont présentes dans celui-ci.

print « Arduino Mode CMD 38400 Baud »
cfgio 3 serial2_rx 38400 n81
cfgio 4 serial2_tx 38400 n81
cmd serial2

‘setup usb bridge to program arduino
CFGIO 2 serial1_tx 57600 n81

CFGIO 6 serial1_rx 57600 n81
CFGIO 7 USB_DTR
bridge USBserial1
‘extra options
cfgio 9 touch_int low quiet

Si vous deviez changer quelque chose, appuyez sur le bouton de réinitialisation à l’arrière de l’écran pour redémarrer le arLCD.
Remarque: Le arLCD utilise le GPU pour programmer l’Arduino via le port USB

 

 

EN COURS DE REALISATION

Retour au menu