Modifications

Sauter à la navigation Sauter à la recherche
2 910 octets ajoutés ,  26 avril 2018 à 12:19
Ligne 15 : Ligne 15 :  
Celui-ci est raccordé sur différentes entrées/sorties encore libre sur notre Arduino.  
 
Celui-ci est raccordé sur différentes entrées/sorties encore libre sur notre Arduino.  
   −
xxxxxxx
+
[[Fichier:Mon-Reveil-83a.jpg|480px]]
    
== Mélodies ==
 
== Mélodies ==
Ligne 80 : Ligne 80 :  
Malheureusement, nous avons pas trouvé un outil capable de convertir une musique (entière) en mélodie polyphonique.
 
Malheureusement, nous avons pas trouvé un outil capable de convertir une musique (entière) en mélodie polyphonique.
   −
== Les 3 phases des alarmes ==
+
== Les 3 fonctions de contrôle d'alarmes ==
    
Premièrement, il est nécessaire de comprendre les 3 fonctions principales. Chacune de ces fonctions est appelée à chacune des phases des alarmes.
 
Premièrement, il est nécessaire de comprendre les 3 fonctions principales. Chacune de ces fonctions est appelée à chacune des phases des alarmes.
Ligne 118 : Ligne 118 :  
* '''alarmeStop''' est appelée quand une alarme doit s'arrête.
 
* '''alarmeStop''' est appelée quand une alarme doit s'arrête.
   −
== Exemples de hacks ==
     −
Je vais vous montrer comment ajouter facilement différentes fonctionnalités à vos alarmes.
+
== Hack d'alimentations ==
 +
Parmi les hacks, nous utilisons un servo moteur (mais cela serait également vrai avec un solénoïde).
 +
 +
Un servo moteur consomme plus de courant que le régulateur de tension d'un Arduino peut délivrer (350mA).  
   −
=== Hack d'alimentations ===
+
Il est donc nécessaire:
 +
* soit d'utiliser une alimentation supplémentaire pour le servo moteur.
 +
* soit d'alimenter directement la carte Arduino en 5V.
   −
Le servo moteur consomme plus de ressources que l'Arduino peut fournir, il est donc nécessaire d'utiliser une alimentation supplémentaire.
+
Nous vous proposons ici plusieurs montages possibles, à vous de choisir celui qui vous convient le mieux.
 
  −
Je vous propose plusieurs montages possibles, à vous de choisir celui qui vous convient le mieux.
      
Voici le schéma simplifié des connectiques des alimentations de l'Arduino :
 
Voici le schéma simplifié des connectiques des alimentations de l'Arduino :
Ligne 132 : Ligne 134 :  
[[Fichier:Mon-Reveil-104.jpg|640px]]<small><br />''Cliquez pour agrandir''</small>
 
[[Fichier:Mon-Reveil-104.jpg|640px]]<small><br />''Cliquez pour agrandir''</small>
   −
==== Pont entre 5V et Vin ====
+
=== Pont entre 5V et Vin ===
 +
Ce moyen permet de contourner le régulateur de tension au niveau de l'entrée Jack et donc de fournir directement le courant nécessaire au circuit 5V de votre Arduino.
   −
Ce moyen permet de contourner le régulateur de tension au niveau de l'entrée Jack et donc de fournir directement le courant nécessaire au circuit 5v.
+
[[Fichier:Mon-Reveil-106.jpg|640px]]<small><br />''Cliquez pour agrandir''</small>
   −
[[Fichier:Mon-Reveil-106.jpg|640px]]<small><br />''Cliquez pour agrandir''</small>
+
{{ambox|text=Truc et actuce: si vous avez monté le connecteur 6 broches à l'arrière de votre réveil, vous pourrez aussi réaliser le pontage Vin -> 5V directement sur ce connecteur :-) }}
    
* '''Avantages'''
 
* '''Avantages'''
 
** Propre niveau du câblages.
 
** Propre niveau du câblages.
 
** Un seul fil nécessaire.
 
** Un seul fil nécessaire.
** Une seule alimentation nécessaire.
+
** Une seule alimentation 5V nécessaire (directement sur le connecteur Jack d'Arduino).
 
* '''Inconvénients'''
 
* '''Inconvénients'''
** Nécessite uniquement une alimentation de 5V.
+
** <font color="red">Risque d'endommager les composants de l'Arduino si vous appliquez une tension supérieur à 5V.</font>
** Risque d'endommager les composants de l'Arduino.
+
** <font color="red">Le circuit ne peut être alimenté que par une seule alimentation à la fois! Hors de question de brancher l'USB et l'alimentation 5V en même temps... au risque de détériorer votre Arduino.</font>
** On ne peut que alimenter l'ensemble du circuit avec une seule alimentation !
      
{{ambox-stop | text = Connectez uniquement une alimentation de 5v !}}
 
{{ambox-stop | text = Connectez uniquement une alimentation de 5v !}}
   −
==== Alimenter le moteur avec une autre alimentation. ====
+
=== Alimenter le moteur avec une seconde alimentation. ===
    
[[Fichier:Mon-Reveil-108.jpg|320px]]<small><br />''Cliquez pour agrandir''</small>
 
[[Fichier:Mon-Reveil-108.jpg|320px]]<small><br />''Cliquez pour agrandir''</small>
    
* '''Avantages'''
 
* '''Avantages'''
** En cas de problèmes, l'Arduino n'est pas endommagé.
+
** Ne risque pas d'endommager votre Arduino (si vous vous tromper de tension d'alimentation).
 
** Les plages des tensions pour alimenter le moteur se trouvent entre 4.8v et 6v.  
 
** Les plages des tensions pour alimenter le moteur se trouvent entre 4.8v et 6v.  
 
* '''Inconvénients'''
 
* '''Inconvénients'''
 
** Nécessite une deuxième alimentation.
 
** Nécessite une deuxième alimentation.
** Nécessite de faire de nouvelles liaisons.
+
** Nécessite de réaliser des connexions supplémentaires.
   −
==== Alimenter l'arduino en 5V directement ====
+
=== Alimenter l'arduino en 5V directement ===
    
[[Fichier:Mon-Reveil-109.jpg|300px]]<small><br />''Cliquez pour agrandir''</small>
 
[[Fichier:Mon-Reveil-109.jpg|300px]]<small><br />''Cliquez pour agrandir''</small>
Ligne 167 : Ligne 169 :  
** L'ensemble de l'Arduino possède une entrée 5v avec plus d'intensité
 
** L'ensemble de l'Arduino possède une entrée 5v avec plus d'intensité
 
* '''Inconvénients'''
 
* '''Inconvénients'''
** Nécessite uniquement une alimentation de 5V.
+
** <font color="red">Nécessite une alimentation de 5V. Toute tension supérieure détruira votre Arduino.</font>
** Risque d'endommager les composants de l'Arduino.
+
** <font color="red">Le circuit ne peut être alimenter que par une seule source d'alimentation ! Hors de question de brancher votre Arduino en USB en meêm temps que l'alimentation externe.</font>
** On ne peut que alimenter l'ensemble du circuit avec une seule alimentation !
      
{{ambox-stop | text = Connectez uniquement une alimentation de 5v ! Toute tension supérieure injectera une surtension sur le circuit 5V du microcontrôleur et détruira votre Arduino.}}
 
{{ambox-stop | text = Connectez uniquement une alimentation de 5v ! Toute tension supérieure injectera une surtension sur le circuit 5V du microcontrôleur et détruira votre Arduino.}}
   −
=== Faire sonner une clochette ===
+
== Faire sonner une clochette ==
    
Pour faire sonner une clochette, il sera nécessaire d'utiliser un servo moteur, une clochette, une alimentation supplémentaire et un support/pied.
 
Pour faire sonner une clochette, il sera nécessaire d'utiliser un servo moteur, une clochette, une alimentation supplémentaire et un support/pied.
 +
 +
{{ambox|text=L'activation permanente du servo moteur à répétition créera des appels de courant important sur le régulateur de tension de votre Arduino. Les chutes de tension que cela va provoquer fera redémarrer votre Arduino.
 +
 +
IL FAUT DONC OPTER POUR UNE SOURCE D'ALIMENTATION EXTERNE!}}
 +
 +
Dans notre cas de figure, nous avons opté pour un pontage Vin -> 5V (décrit au point précédent) avec l'utilisation d'une {{pl|311|alimentation externe 5V}}.
 +
 
{{#Widget:Iframe
 
{{#Widget:Iframe
 
|url=https://www.youtube.com/embed/N0VNmWjmfHs
 
|url=https://www.youtube.com/embed/N0VNmWjmfHs
Ligne 182 : Ligne 190 :  
|border=0
 
|border=0
 
}}
 
}}
==== Choix du matériel ====
+
=== Choix du matériel ===
 
   
* 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 {{pl|64|micro servo moteur}}
 
* Pour le servo moteur, nous avons pris un {{pl|64|micro servo moteur}}
 
* Pour le support, nous avons utilisé des pièces du {{pl|328|kit MakerBeam}}  
 
* Pour le support, nous avons utilisé des pièces du {{pl|328|kit MakerBeam}}  
* Pour l'alimentation supplémentaire de 5V (avec le 5V injecté directement sur le 5V de l'Arduino).
+
* Une {{pl|311|alimentation 5V externe}} (avec le 5V injecté directement sur le 5V de l'Arduino).
   −
==== Code ====
+
=== Code ===
 +
 
 +
{{download-box|Code exemple de la clochette sur Github|https://github.com/mchobby/Mon-Reveil-1/blob/master/Exemples/clochette.ino}}
    
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 216 : Ligne 225 :  
   monServo.attach( SERVO_MOTEUR );  
 
   monServo.attach( SERVO_MOTEUR );  
 
   
 
   
   // Position du servo de base
+
   // Position de base du servo de base
 
   monServo.write( 1 );
 
   monServo.write( 1 );
 +
  // laisser au servo le temps de se positionner
 
   delay( 500 );
 
   delay( 500 );
 
    
 
    
   // Désactiver le servo
+
   // Désactiver l'asservissement du servo  
 +
  // pour qu'il ne fasse plus de bruit.
 
   monServo.detach();
 
   monServo.detach();
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
   −
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.
+
Dans les différentes phases, seul l'alarme 1 (alarmPos=0) active la sonnette et les autres alarmes activent la mélodie.
    
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
Ligne 241 : Ligne 252 :     
/*
 
/*
  * Pendant que l'alarme sonne, répéter une étape
+
  * Pendant que l'alarme sonne:
 +
* balancer la clochette -OU- jouer un morceau de la mélodie
 
  */
 
  */
 
void alarmePulse( int alarmePos ){
 
void alarmePulse( int alarmePos ){
Ligne 247 : Ligne 259 :  
   if( alarmePos == 0)
 
   if( alarmePos == 0)
 
     jouerMoteur();
 
     jouerMoteur();
   // Sonnerie
+
    
 
   else  
 
   else  
 +
    // Sonnerie
 
     jouerMelodie();
 
     jouerMelodie();
 
}
 
}
Ligne 265 : Ligne 278 :  
</syntaxhighlight>
 
</syntaxhighlight>
   −
* '''activerMoteur();''' dans cette fonction, il faudrait remettre le servo à l'angle zéro, au cas ou il n'est pas encore définit à cette position.
+
* '''activerMoteur();''' dans cette fonction, il remettre le servo à l'angle zéro, au cas ou il n'est pas encore à cette position.
* '''jouerMoteur();''' dans cette fonction, il faudrait changer la position du servo moteur de façon à faire sonner le gong.
+
* '''jouerMoteur();''' dans cette fonction, il faut changer la position du servo moteur régulièrement de façon à faire sonner la clochette (ou un gong).
* '''stopMoteur();''' dans cette fonction, il faudrait remettre le servo à l'angle zéro.
+
* '''stopMoteur();''' dans cette fonction, remettre le servo à l'angle zéro.
    
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
Ligne 287 : Ligne 300 :  
     moteurTempsAvant = estIlTemps;
 
     moteurTempsAvant = estIlTemps;
   −
     // Inverser le sens
+
     // Inverser le sens de rotation du servo
 
     sens *= -1;
 
     sens *= -1;
     // Bouger le servo de 1° à 46°
+
     // Bouger le servo entre 1° à 61°
 
     monServo.write( 31 + (sens*30) );     
 
     monServo.write( 31 + (sens*30) );     
 
   }
 
   }
 
}
 
}
 +
 
void stopMoteur(){
 
void stopMoteur(){
 
   monServo.write( 1 );
 
   monServo.write( 1 );
Ligne 326 : Ligne 340 :  
</syntaxhighlight>
 
</syntaxhighlight>
   −
=== Activer une peluche qui danse et chante ===
+
== Activer une peluche qui danse et chante ==
    
Pour interagir avec la peluche, il sera nécessaire de posséder une peluche et deux relais (dans notre cas).
 
Pour interagir avec la peluche, il sera nécessaire de posséder une peluche et deux relais (dans notre cas).
Ligne 374 : Ligne 388 :     
==== Code ====
 
==== Code ====
 +
 +
{{download-box|Code exemple de la peluche sur Github|https://github.com/mchobby/Mon-Reveil-1/blob/master/Exemples/renard.ino}}
 +
 
Premièrement, il sera nécessaire d'ajouter dans l'entête :
 
Premièrement, il sera nécessaire d'ajouter dans l'entête :
 
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
Ligne 456 : Ligne 473 :  
</syntaxhighlight>
 
</syntaxhighlight>
   −
=== Activer un relais ===
+
== Activer un relais ==
    
Pour activer un matériel électronique, il sera nécessaire d'utiliser un relais.
 
Pour activer un matériel électronique, il sera nécessaire d'utiliser un relais.
Ligne 468 : Ligne 485 :  
}}
 
}}
   −
==== Choix du matériel ====
+
=== Choix du matériel ===
    
* Pour le relais, nous avons choisis le {{pl|1289|Power Switch Tail}}, qui est un relais protégé par un boîtier. Ce relais est alimenté directement par le secteur. Ensuite, le circuit base tension est isolé du circuit haute tension.
 
* Pour le relais, nous avons choisis le {{pl|1289|Power Switch Tail}}, qui est un relais protégé par un boîtier. Ce relais est alimenté directement par le secteur. Ensuite, le circuit base tension est isolé du circuit haute tension.
Ligne 486 : Ligne 503 :  
|}
 
|}
   −
==== Code ====
+
=== Code ===
 +
 
 +
{{download-box|Code exemple du relais sur Github|https://github.com/mchobby/Mon-Reveil-1/blob/master/Exemples/relai.ino}}
    
Premièrement, il sera nécessaire d'ajouter la broche utilisé (la N° 12) pour commander le PowerSwitchTail.
 
Premièrement, il sera nécessaire d'ajouter la broche utilisé (la N° 12) pour commander le PowerSwitchTail.
Ligne 565 : Ligne 584 :  
</syntaxhighlight>
 
</syntaxhighlight>
   −
=== Jouer la mélodie d'une boîte à musique ===
+
== La boîte à musique ==
 +
 
 +
Pour jouer la mélodie de la boîte à musique, il sera nécessaire d'utiliser un servo moteur, un régulateur pwm et d'utiliser deux entrées de l'arduino, dont une en PWM.
 +
 
 +
Voir la [https://youtu.be/-50OEOMNhro vidéo sur YouTube].
 +
 
 +
{{#Widget:Iframe
 +
|url=https://www.youtube.com/embed/-50OEOMNhro
 +
|width=420
 +
|height=315
 +
|border=0
 +
}}
 +
 
 +
=== Choix du matériel ===
 +
* Nous avons trouvé la boîte à musique dans le commerce (site [http://fridolin.de/ officiel]).
 +
* {{pl|155|Pont-H L293D}} permettant de commander un moteur à partir d'un Arduino. L'utilisation d'un signal PWM sur une broche Arduino permettra de contrôler plus finement la vitesse du moteur. Voir aussi le [[Pont-H L293D|tutoriel sur le pont-H L293]]
 +
* {{pl|438|Un mini moteur avec boîte de réduction}} disponible chez MC Hobby.
   −
Pour jouer la mélodie de la boîte à musique, il sera nécessaire d'utiliser un servo moteur.
+
=== Branchement ===
   −
''' VIDEO '''
+
Pour brancher le moteur avec le régulateur :
   −
==== Choix du matériel ====
+
Petit erratum: La broche Enable est branchée sur Arduino #12 (et non pas #2 comme libellé sur le breadboard).
 +
 
 +
[[Fichier:Mon-Reveil-Hack-10b.jpg|480px]]
 +
 
 +
Pour plus d'informations, visitez [[Pont-H L293D|tutoriel L293D sur notre wiki]].
 +
 
 +
=== Code ===
   −
* Nous avons trouvé la boîte à musique dans le commerce.  
+
{{download-box|Code exemple de la boîte à musique sur Github|https://github.com/mchobby/Mon-Reveil-1/blob/master/Exemples/boite-a-musique.ino}}
* (disponible sur le [ shop])
  −
==== Code ====
      
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 643 : Ligne 682 :  
</syntaxhighlight>
 
</syntaxhighlight>
   −
* '''activerBoite();''' dans cette fonction, il faudrait simplement activer le relais.
+
* '''activerBoite();''' dans cette fonction, il faudrait simplement activer l'entrée enable 2.
* '''jouerBoite'''
+
* '''jouerBoite();''' dans cette fonction, on définira la vitesse (en pwm) du moteur.
* '''stopBoite();''' dans cette fonction, il faudrait simplement stopper le relais.
+
* '''stopBoite();''' dans cette fonction, il faudrait simplement désactiver l'entrée enable 2.
 
   
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
 
void activerBoite(){
 
void activerBoite(){
Ligne 652 : Ligne 690 :  
}
 
}
 
void jouerBoite(){
 
void jouerBoite(){
 +
  // La vitesse en pwm, dans notre cas 220, peut varier de 0 à 255
 
   analogWrite( BOITE_INPUT , 220);
 
   analogWrite( BOITE_INPUT , 220);
 
}
 
}
29 836

modifications

Menu de navigation