Archives par étiquette : arduino

Nestor : Programmation des yeux

.

Mise à jour le 26/01/2019 :

.

.

Sommaire : 

.

Retour au sommaire

.

separateur-redohm-001

Programmation de l’œil droit ( étape 1 )

 

Oeil droit

Œil droit

 

 

 

 

.

 

Retour au sommaire

separateur-redohm-001

Programmation de l’œil droit ( étape 2 )

Dilatation de la pupille

.

 

//
//
//========================================================
//*       Programmation de l'oeil droit de Nestor        *
//*                                                      *
//*             dilatation des pupilles                  *
//*Etape 2                                               *
//*                                                      *
//*Le 26/01/2019                                         *
//*Par Hervé Mazelin                                     *
//*                                                      *
//========================================================  



// je charge la librairie SPI
// Cette librairie vous permet de communiquer avec des périphériques SPI
// La carte Arduino en tant que "maitre" par defaut 
#include <SPI.h>
// je charge la librairie TFT
// Cette bibliothèque permet à une carte Arduino de communiquer à
// l'écran LCD TFT 
#include <TFT.h> 
 
// Affectation des pins pour la communication Arduino-> afficheur  
#define cs   10
#define dc   9
#define rst  8
 
TFT screen = TFT(cs, dc, rst);

// déclaration de l'entrée analogique 
// ou se trouve le module potentiometre Grove 
int potar_pin2 = 2; 
 int potar_pin3= 3;

// variable du type int pour stocker la valeur du cercle 
int cercle1 ;
int passage ;
int new1;

/* 
 * Un programme Arduino doit impérativement contenir cette fonction .
 * Elle ne sera exécutée qu'une seule fois au démarrage du microcontroleur
 * Elle sert à configurer globalement les entrées sorties  
 *  
 */
 
void setup()

{

 //ouvre le port série et fixe le debit de communication à 9600 bauds
   Serial.begin(9600);

 // initialisation de l'écran 
  screen.begin(); 
  
 // Efface l'ecran et met le fond en noir 
  screen.background(0,0,0);

 //defini la couleur pour tracer l'objet a dessiner 
 screen.stroke(255,255,255);
 
 // ******************** 1 anneau ****************************
 //
 // Anneau 1 exterieure bleu 
 // définition de la couleur de remplissage exemple bleu -> 128,255,255
 screen.fill(128,255,255);
 // Dessine un cercle sur l'écran.
 // Le cercle est tracé par rapport à son centre, 
 // ce qui signifie que le diamètre total sera toujours un nombre impair.
 screen.circle(88,64, 58);

 
 //****************** Dessin le rectangle *******************
 //
 //stroke = il définit la couleur des lignes et des bordures 
 //autour des formes.
 screen.stroke(0,0,0);
 //définition de la couleur de remplissage exemple noir -> 0,0,0
 screen.fill(0,0,0);
 screen.rect(73,109,30,20);

 // ******************** 2 anneau ****************************
 //dessine le cercle noir  
 screen.fill(0,0,0);
 screen.circle(88,64, 46);

 // ******************** 3 anneau ****************************
 //dessine le cercle bleu foncé  
 screen.fill(19,56,236);
 screen.circle(88,64, 43);

 // ******************** 4 anneau ****************************
 //dessine le cercle noir  
 screen.fill(0,0,0);
 screen.circle(88,64, 28);

 // ******************** 5 anneau ****************************
 //dessine le cercle bleu foncé  
 screen.fill(19,56,236);
 screen.circle(88,64, 25 );

 // ******************** 6 anneau ****************************
 //dessine le cercle noir  
 screen.fill(0,0,0);
 screen.circle(88,64, 18);


}

/*
 *Le programme principal s’exécute par une boucle infinie appelée Loop () 
 * 
 */
 
void loop() {


 
// lis la valeur de la tension analogique présente sur la broche 2
// et introduit le resultat dans la variable "variable"
cercle1 = analogRead(potar_pin2);
// la valeur du potentiometre est comprise entre 0 et 1023
// Etalonnage de la valeur du potentiometre en valeur de temps 
// valeur de temps comprise de 100 a 1200 milliseconde
// pour cela on utilise la fonction Map
// map (variable ,valeur basse de depart,valeur haute de depart ,new valeur basse, new valeur haute )
// valeur basse de depart = 1
// valeur haute de depart = 1023
// new valeur basse = 100
// new valeur haute = 1200
cercle1 =map( cercle1 ,0,800,10,0);



delay (10);

// Verification si on recoit l'ordre d'agrandir la pupille
if ( passage < cercle1)
{
  Serial.println("Verification si on recoit l'ordre d'agrandir la pupille");
  Serial.print(passage);
  Serial.print(" < ");
   Serial.println(cercle1); 
   
 // ******************** 6 anneau ****************************
 //dessine le cercle noir  
 screen.fill(0,0,0);
 screen.circle(88,64, 18+cercle1);
 
 Serial.print("Nouvelle valeur de la pupille => ");
   new1=18+cercle1;
   Serial.println(new1);
}
 


// Verification de reduction de la pupille 
else if (passage > cercle1)
{
 Serial.println("Verification de reduction de la pupille");
 Serial.print(passage);
  Serial.print(" > ");
   Serial.println(cercle1);
    
 
 // ******************** 4 anneau ****************************
 //dessine le cercle noir  
 screen.fill(0,0,0);
 screen.circle(88,64, 28);
 
 // ******************** 5 anneau ****************************
 //dessine le cercle bleu foncé  
 screen.fill(19,56,236);
 screen.circle(88,64, 25 );
 
 // ******************** 6 anneau ****************************
 //dessine le cercle noir  
 screen.fill(0,0,0);
 screen.circle(88,64, 18+cercle1);
  Serial.print("Nouvelle valeur de la pupille => ");
   new1=18+cercle1;
   Serial.println(new1);
}

else if (passage == cercle1 )
{

   
}

passage = cercle1;
 
}




// --------------- Ensemble de sous programme ------------------
// 







void clignote_les_yeux ()
  
{

  delay (1000);
 //dessine le cercle noir  
 screen.fill(255,0,0);
 screen.circle(88,64, 18);

 delay(1000);                
 //dessine le cercle noir  
 screen.fill(233,209,223);
 screen.circle(88,64, 18);

  
}

.

Retour au sommaire
Fichier Stl pour le robot GOLBOTTH8
.

Mise à jour le 02/11/2020 : Ce petit robot est destiné à vous initier à la programmation, nous l’appellerons Golbotth8. La construction de cet engin passe déjà par l’impression 3D, vous trouverez l’ensemble des fichiers STL sur notre site ainsi que la matière que nous avons utilisée et les différents conseils techniques. Vous aurez la possibilité de suivre des tutoriels sur Arduino avec ce module. Nous avons surtout essayé de minimiser le coût de l’ensemble.

Continuer la lecture