Archives par étiquette : begin

ROBOT MAYA – La création de l’œil

***

Mise à jour le 20/11/2016

Sommaire :

 

***

Le matériel utile pour cette réalisation

Présentation de l’écran LCD 1,77 » Arduino

redohm-mayan-ecran-001

Pour la création de l’œil , on va utiliser un écran couleur LCD TFT 1,77″ Arduino .Le module est équipé d’un port micro-SD, ce qui permet notamment de stocker et afficher des images bitmap et de communiquer avec la carte Arduino via le port SPI. La librairie contenue dans la version Arduino 1.5.8 beta est nécessaire au bon fonctionnement de cet afficheur.

Fiche technique :

 

Alimentation: 5 Vcc
Ecran: 1,77″
Couleurs: 262000
Résolution: 160 x 128 pixels
Port: SPI
Support carte: micro-SD
Température de service: -20 à +70°C
Dimensions: 60 x 42 x 15 mm
Référence fabricant: A000096

Retour au sommaire

Utilisation de la bibliothèque :

Si vous utilisez l’interface SPI matériel avec la carte Arduino Uno ou Mega Arduino, il vous suffit de déclarer le CS, DC, RESET et  MOSI (broche 11) et SCLK (broche 13) qui sont déjà définies.Voir l’exemple ci-dessous .

Retour au sommaire

***

Mot clef : begin

Cette instruction doit  être appelée pour initialiser l’écran lcd TFT 1,77″ Arduino . Exemple ci-dessous

 

Retour au sommaire

 

 

***

Mot clef : background

Permet d’effacer à tout moment l’écran LCD avec la couleur indiquer .Peut être utilisée dans  loop () pour effacer l’écran.Voir exemple ci-dessous .

Retour au sommaire

 

 

***

Mot clef : stroke

Cette instruction est  appelée avant de dessiner un objet sur l’écran, il définit la couleur des lignes et des bordures autour des formes.

L’instruction stroke  () attend des valeurs de 8 bits pour chacun des canaux rouge, vert et bleu, mais l’écran n’affiche pas l’ensemble de ces couleurs . Les valeurs rouges sont réduites aux couleurs de 5 bits (32 étapes distinctes) et les couleurs bleues sont réduites à 6 bits (64 étapes distinctes) .

Retour au sommaire

 

 

***

Mot clef : noStroke

Après avoir appelé la fonction noStroke, arrêt de la définition de  la couleur des lignes et des bordures autour des formes.

Retour au sommaire

 

 

***

Mot clef : fill

Cette instruction est  appelée avant de dessiner un objet sur l’écran, il définit la couleur du remplissage  des formes et des textes.

L’instruction fill  () attend des valeurs de 8 bits pour chacun des canaux rouge, vert et bleu, mais l’écran n’affiche pas l’ensemble de ces couleurs . Les valeurs rouges sont réduites aux couleurs de 5 bits (32 étapes distinctes) et les couleurs bleues sont réduites à 6 bits (64 étapes distinctes).

 

Retour au sommaire
 

 

***

Mot clef : noFill

Après avoir appelé la fonction noFill, toutes les formes dessinées sur l’écran ne seront pas remplies.

Retour au sommaire
***

Mot clef : text()

L’instruction écrire un texte à l’écran aux coordonnées données.Exemple ci-dessous.

La syntaxe est la suivante : screen.text(text, xPos, yPos);

  • text: le texte que vous voulez écrire sur l’écran
  • xPos: int, l’emplacement sur l’axe-x que vous voulez commencer à dessiner le texte à l’écran
  • yPos: int, l’emplacement sur l’axe-y que vous voulez commencer à dessiner le texte à l’écran.

Retour au sommaire

***

Mot clef : setTextSize

Définit la taille du texte qui suit. La taille par défaut est « 1 ». Chaque changement de taille augmente le texte par 10 pixels en hauteur. Autrement dit, la taille 1 = 10 pixels, taille 2 = 20 pixels, et ainsi de suite.Exemple ci-dessous.

La syntaxe est la suivante : screen.setTextSize(size);

redohm-ecran-001

Affichage de texte et définition de la taille des caracteres

Retour au sommaire

***

Mot clef : point

Dessine un point aux coordonnées données. Le premier paramètre est la valeur horizontale pour le point, la deuxième valeur est la valeur verticale pour le point.Exemple ci-dessous.

La syntaxe est la suivante : screen.point(xPos, yPos);

Retour au sommaire
***

Mot clef : line

Dessine une ligne entre deux points.Exemple ci-dessous.

La syntaxe est la suivante : screen.line(xStart, yStart, xEnd, yEnd);

Paramètres

  • xStart: int, la position horizontale où la ligne commence
  • ystart: int, la position verticale où la ligne commence
  • xEnd: int, la position horizontale où la ligne se termine
  • yEnd: int, la position verticale où les extrémités de la ligne

 

Retour au sommaire

 

***

La création de l’œil de Maya .

La première étape consiste à dessiner le plus grand cercle

redohm-maya-yeux-001

Maya – étape 1

La deuxième étape consiste à dessiner le trait horizontal et le trait vertical

redohm-maya-yeux-002

Maya – étape 2

La troisième étape consiste à dessiner un cercle noir qui donnera une épaisseur au cercle extérieur

redohm-maya-yeux-003

Maya – étape 3

La quatrième étape consiste à dessiner un cercle gris

redohm-maya-yeux-004

Maya – étape 4

La cinquième étape consiste à donner une épaisseur au cercle gris

redohm-maya-yeux-005

Maya – étape 5

L’ensemble du programme de la création de l’œil se compose de la façon suivante

***

Création de la fonction pour dessiner l’oeil

 

Dans cette partie, on modifie  le programme principal pour le transformer en fonction indépendante , qui s’appellera -> creation_de_oeil.

 
la syntaxe sera la suivante : void creation_de_oeil()
 
 

 

Transfert du programme principal dans la fonction

 

 

 

 

 

 

 

redohm-robot-maya-002

Vue d’ensemble

 

 

 

Retour au menu

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 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