Modifications

Sauter à la navigation Sauter à la recherche
311 octets ajoutés ,  27 mars 2018 à 12:11
Ligne 108 : Ligne 108 :  
* Pour la clochette, nous avons choisi une clochette pour chats.
 
* Pour la clochette, nous avons choisi une clochette pour chats.
 
* Pour le servo moteur, nous avons pris un micro servo tower (disponible sur le [https://shop.mchobby.be/servo-moteurs/64-micro-servo-tower-pro-sg90-3232100000643.html shop])
 
* Pour le servo moteur, nous avons pris un micro servo tower (disponible sur le [https://shop.mchobby.be/servo-moteurs/64-micro-servo-tower-pro-sg90-3232100000643.html shop])
* Pour le support, nous avons utilisé le kit MakerBeam (disponible sur le [https://shop.mchobby.be/makerbeam/328-makerbeam-kit-de-demarrage-noir-anodise-3232100003286-makerbeam.html shop])  
+
* Pour le support, nous avons utilisé des pièces du kit MakerBeam (disponible sur le [https://shop.mchobby.be/makerbeam/328-makerbeam-kit-de-demarrage-noir-anodise-3232100003286-makerbeam.html shop])  
    
Premièrement, il sera nécessaire d'ajouter dans l'entête :
 
Premièrement, il sera nécessaire d'ajouter dans l'entête :
Ligne 114 : Ligne 114 :  
...  
 
...  
   −
// ### HACK ###
+
// ### ZONE HACK ###
// Ajouter vos variables hack
  −
// Exemple : GONG
     −
// Ajouter la bibliothèque
+
// -- Clochette --
#include <Servo.h>
+
#include <Servo.h>         // Ajouter la bibliothèque
 
+
#define SERVO_MOTEUR  6    // Définit la broche du servo moteur du gong
// Définit la broche du servo moteur du gong
+
Servo monServo;            // Initialisation du servo
#define SERVO_MOTEUR  6
+
unsigned long moteurTempsAvant = 0 ; // Délai
 
+
int sens = -1;              // Sens de rotation
// Initialisation du servo
  −
Servo monServo;
  −
unsigned long moteurTempsAvant = 0 ;
      
...
 
...
Ligne 136 : Ligne 131 :  
   ...  
 
   ...  
   −
   // Exemple SERVO
+
   // -- HACKS --
   monServo.attach( SERVO_MOTEUR );  
+
  // Activer le servo
 
+
   monServo.attach( SERVO_MOTEUR );  
   // Le mettre à l'angle zéro
+
   monServo.write( 0 );
+
   // Position du servo de base
 +
   monServo.write( 1 );
 +
  delay( 500 );
 +
 
 +
  // Désactiver le servo
 +
  monServo.detach();
    
   ...
 
   ...
Ligne 146 : Ligne 146 :  
</syntaxhighlight>
 
</syntaxhighlight>
   −
Dans les différentes phases, on va définir que uniquement l'alarme 1 possède un gong et les autres possèdent la mélodie.
+
Dans les différentes phases, on va définir que uniquement l'alarme 1 possède le réveil sonnette et les autres possèdent la mélodie.
    
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
Ligne 153 : Ligne 153 :  
  */
 
  */
 
void alarmeStart( int alarmePos ){
 
void alarmeStart( int alarmePos ){
   // Hack moteur
+
   // Hack  
 
   if( alarmePos == 0)
 
   if( alarmePos == 0)
 
     activerMoteur();
 
     activerMoteur();
Ligne 197 : Ligne 197 :  
     // Remise à zéro du moteur
 
     // Remise à zéro du moteur
 
     moteurTempsAvant = 0;
 
     moteurTempsAvant = 0;
     monServo.write( 0 );
+
    // Activation du servo
 +
     monServo.attach( SERVO_MOTEUR );  
 
}
 
}
 
void jouerMoteur(){
 
void jouerMoteur(){
   unsigned estIlTemps = effectuerAction( moteurTempsAvant, 10000 );
+
  // Tous les 0.1 secondes effectuer
 +
   unsigned estIlTemps = effectuerAction( moteurTempsAvant, 10 );
 
    
 
    
  // Est-il temps de faire sonner le GONG ???
   
   if( estIlTemps != 0 ){
 
   if( estIlTemps != 0 ){
 +
    // Changer quand a été effectué l'action précédente
 
     moteurTempsAvant = estIlTemps;
 
     moteurTempsAvant = estIlTemps;
      
+
 
     // Bouger le servo de 90°
+
     // Inverser le sens
     monServo.write( 90 );
+
    sens *= -1;
 +
     // Bouger le servo de 1° à 46°
 +
     monServo.write( 31 + (sens*30) );  
 
   }
 
   }
  else
  −
    monServo.write( 0 );
   
}
 
}
 
void stopMoteur(){
 
void stopMoteur(){
   monServo.write( 0 );
+
   monServo.write( 1 );
 +
  delay( 300 );
 +
  monServo.detach();
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
   −
La fonction '''effectuerAction''', ci dessous, permet de répèter une tâche tous les x temps.
+
La fonction '''effectuerAction''', ci dessous, permet de répéter une tâche tous les x temps.
    
Cette fonction peut être réutiliser dans d'autres cas.
 
Cette fonction peut être réutiliser dans d'autres cas.
Ligne 226 : Ligne 230 :  
  *  
 
  *  
 
  * ARGUMENTS
 
  * ARGUMENTS
  * tempsAvant est temps précédent en milisecondes
+
  * tempsAvant est temps précédent en millisecondes
 
  * dureeAttente est le temps avant de relancer l'exécution
 
  * dureeAttente est le temps avant de relancer l'exécution
 
  *  
 
  *  

Menu de navigation