Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 193

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 197

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338
[ Wikidébrouillard ] Arduino + papertoy = fun !

Arduino + papertoy = fun !

De Wikidebrouillard.

(Matériel)
 
(12 versions intermédiaires masquées)
Ligne 1 : Ligne 1 :
Un dimanche après-midi, J'ai décidé de réaliser l'idée de faire un robot en papier, avec de l'arduino pour l'animer.
Un dimanche après-midi, J'ai décidé de réaliser l'idée de faire un robot en papier, avec de l'arduino pour l'animer.
-
[[Fichier:ardupapertoytete.jpg|200px|align=left]]
+
[[Fichier:ardupapertoytete.jpg|200px|right]]
-
un peu de recherche :
+
==un peu de recherche==
* des papertoys
* des papertoys
* des programmes Arduino et hop !
* des programmes Arduino et hop !
 +
 +
==Voici le résultat==
<html>
<html>
<iframe src="https://vine.co/v/i7edTEDbWeA/embed/simple?audio=1" width="600" height="600" frameborder="0"></iframe><script src="https://platform.vine.co/static/scripts/embed.js"></script>
<iframe src="https://vine.co/v/i7edTEDbWeA/embed/simple?audio=1" width="600" height="600" frameborder="0"></iframe><script src="https://platform.vine.co/static/scripts/embed.js"></script>
Ligne 13 : Ligne 15 :
* papertoy. J'ai pris quelque chose de simple : Les cubecraft ! [http://www.cubeecraft.com/cubee/lego-c3po J'ai choisis C3PO]
* papertoy. J'ai pris quelque chose de simple : Les cubecraft ! [http://www.cubeecraft.com/cubee/lego-c3po J'ai choisis C3PO]
-
* un Servo-moteur
+
* [[Image:Arduino_Diecimila.jpg|50px]] La carte [[Arduino]] Uno
-
* des résistances
+
* [[Image:Arduino_Uno_logo.png|50px]] Le logiciel Arduino
-
* 2 led jaunes de 5mm
+
* [[Image:Fils1.jpg|50px]] Du [[fil électrique]] (noir, rouge…)
-
* un piezo
+
* [[Image:Plaque2.jpg|50px]] Une plaque labdec ou [[Breadboard]]
 +
* [[Fichier:Résistance.jpg|50px]] des [[résistance]]s
 +
* [[Fichier:DEL.png|50px]]2 [[LED]]s jaunes de 5mm
 +
* [[Fichier:Servo-moteur.jpg|50px]] 1 [[servomoteur]]
 +
* [[Fichier:Buzzer.jpg|50px]] Un [[buzzer]]
 +
 
[[Fichier:IMG 5227.jpg|400px]]
[[Fichier:IMG 5227.jpg|400px]]
Ligne 22 : Ligne 29 :
==Fabrication==
==Fabrication==
on découpe et on colle le papertoy en prenant soin de laisser la tête ouverte pour les led et en gardant un morceau de papier pour le servomoteur qui sera dans le corps.
on découpe et on colle le papertoy en prenant soin de laisser la tête ouverte pour les led et en gardant un morceau de papier pour le servomoteur qui sera dans le corps.
-
[[Fichier:ardupapertoytete-servo.jpg|400px]]
 
Ligne 33 : Ligne 39 :
[[Fichier:ardupapertoy-interieurtete.jpg|400px]]
[[Fichier:ardupapertoy-interieurtete.jpg|400px]]
 +
 +
Plus qu'à assembler !
 +
 +
[[Fichier:ardupapertoytete-servo.jpg|400px]]
 +
 +
[[Catégorie:arduino]]
 +
 +
==Le code==
 +
<pre>
 +
/*Code sous licence CC-By-Sa
 +
de Antony Auffret
 +
réalisé avec des bouts de code attrapés ici ou là !
 +
dont notament : http://www.instructables.com/id/How-to-easily-play-music-with-buzzer-on-arduino-Th/
 +
et Tone Melody des exemples de programmes de l'IDE Arduino : http://arduino.cc/en/Tutorial/Tone
 +
6 décembre 2015
 +
*/
 +
#include <Servo.h>
 +
Servo myservo1;  // créer un objet servo 1 pour le contrôler
 +
 +
#define C0 16.35
 +
#define Db0 17.32
 +
#define D0 18.35
 +
#define Eb0 19.45
 +
#define E0 20.60
 +
#define F0 21.83
 +
#define Gb0 23.12
 +
#define G0 24.50
 +
#define Ab0 25.96
 +
#define LA0 27.50
 +
#define Bb0 29.14
 +
#define B0 30.87
 +
#define C1 32.70
 +
#define Db1 34.65
 +
#define D1 36.71
 +
#define Eb1 38.89
 +
#define E1 41.20
 +
#define F1 43.65
 +
#define Gb1 46.25
 +
#define G1 49.00
 +
#define Ab1 51.91
 +
#define LA1 55.00
 +
#define Bb1 58.27
 +
#define B1 61.74
 +
#define C2 65.41
 +
#define Db2 69.30
 +
#define D2 73.42
 +
#define Eb2 77.78
 +
#define E2 82.41
 +
#define F2 87.31
 +
#define Gb2 92.50
 +
#define G2 98.00
 +
#define Ab2 103.83
 +
#define LA2 110.00
 +
#define Bb2 116.54
 +
#define B2 123.47
 +
#define C3 130.81
 +
#define Db3 138.59
 +
#define D3 146.83
 +
#define Eb3 155.56
 +
#define E3 164.81
 +
#define F3 174.61
 +
#define Gb3 185.00
 +
#define G3 196.00
 +
#define Ab3 207.65
 +
#define LA3 220.00
 +
#define Bb3 233.08
 +
#define B3 246.94
 +
#define C4 261.63
 +
#define Db4 277.18
 +
#define D4 293.66
 +
#define Eb4 311.13
 +
#define E4 329.63
 +
#define F4 349.23
 +
#define Gb4 369.99
 +
#define G4 392.00
 +
#define Ab4 415.30
 +
#define LA4 440.00
 +
#define Bb4 466.16
 +
#define B4 493.88
 +
#define C5 523.25
 +
#define Db5 554.37
 +
#define D5 587.33
 +
#define Eb5 622.25
 +
#define E5 659.26
 +
#define F5 698.46
 +
#define Gb5 739.99
 +
#define G5 783.99
 +
#define Ab5 830.61
 +
#define LA5 880.00
 +
#define Bb5 932.33
 +
#define B5 987.77
 +
#define C6 1046.50
 +
#define Db6 1108.73
 +
#define D6 1174.66
 +
#define Eb6 1244.51
 +
#define E6 1318.51
 +
#define F6 1396.91
 +
#define Gb6 1479.98
 +
#define G6 1567.98
 +
#define Ab6 1661.22
 +
#define LA6 1760.00
 +
#define Bb6 1864.66
 +
#define B6 1975.53
 +
#define C7 2093.00
 +
#define Db7 2217.46
 +
#define D7 2349.32
 +
#define Eb7 2489.02
 +
#define E7 2637.02
 +
#define F7 2793.83
 +
#define Gb7 2959.96
 +
#define G7 3135.96
 +
#define Ab7 3322.44
 +
#define LA7 3520.01
 +
#define Bb7 3729.31
 +
#define B7 3951.07
 +
#define C8 4186.01
 +
#define Db8 4434.92
 +
#define D8 4698.64
 +
#define Eb8 4978.03
 +
// Durée des notes
 +
#define BPM 120    //  changer cette valeur change toutes les autres
 +
#define H 2*Q //demi 2/4
 +
#define Q 60000/BPM //Quart 1/4
 +
#define E Q/2  //huitième 1/8
 +
#define S Q/4 // seizième 1/16
 +
#define W 4*Q // entier 4/4
 +
 +
// notes de la mélodie :
 +
int melody[] = {
 +
LA3,LA3,LA3,F3,C4,LA3,F3,C4,LA3,E4,E4,E4,F4,C4,Ab3,F3,C4,LA3,LA4,LA3,LA3,LA4,Ab4,G4,Gb4,E4,F4,Bb3,Eb4,D4,Db4,C4,B3,C4,F3,Ab3,F3,LA3,C4,LA3,C4,E4,LA4,LA3,LA3,LA4,Ab4,G4,Gb4,E4,F4,Bb3,Eb4,D4,Db4,C4,B3,C4,F3,Ab3,F3,C4,LA3,F3,C4,LA3
 +
 +
};
 +
 +
// durée des notes
 +
int noteDurations[] = {
 +
Q,Q,Q,E+S,S,Q,E+S,S,H,Q,Q,Q,E+S,S,Q,E+S,S,H,Q,E+S,S,Q,E+S,S,S,S,E,E,Q,E+S,S,S,S,E,E,Q,E+S,S,Q,E+S,S,H,Q,E+S,S,Q,E+S,S,S,S,E,E,Q,E+S,S,S,S,E,E,Q,E+S,S,Q,E+S,S,H
 +
 +
};
 +
 +
int pause[] = {
 +
  Q+1,Q+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,H+1,Q+1,Q+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,H+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,S+1,S+1,E+1+E+1,E+1,Q+1,E+S+1,S+1,S+1,S+1,E+1+E+1,E+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,H+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,S+1,S+1,E+1+E+1,E+1,Q+1,E+S+1,S+1,S+1,S+1,E+1+E+1,E+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,H+1+2*H
 +
 +
};
 +
int potar1=A0; // le potentiomètre est branche sur la broche analogique A0
 +
int val1;        // variable pour stocker la valeur du potentiomètre 1
 +
int sens;  //pour faire changer de sens au mouvement de la tete
 +
 +
void setup() {
 +
pinMode(8, OUTPUT);  //pour le piezo
 +
pinMode(9, OUTPUT);      //pour les 2 leds
 +
digitalWrite(9,LOW);
 +
myservo1.attach(10);  // brancher le servomoteur sur l'entrée 10
 +
sens = 1;
 +
}
 +
 +
void loop() {
 +
  // il y a 66 notes, on itère jusque 66
 +
  for (int thisNote = 0; thisNote < 66; thisNote++) {
 +
    digitalWrite(9,HIGH); // allume les leds
 +
 +
    tone(8, melody[thisNote], noteDurations[thisNote]); //joue la note
 +
   
 +
    digitalWrite(9,LOW); //éteins les leds
 +
   
 +
    delay(pause[thisNote]); //pause nécessaire entre les notes
 +
 +
    noTone(8);//arret de la note en cours
 +
   
 +
  if (val1>180) { //repere le sens de rotation de la tete
 +
  sens = 2;
 +
  }
 +
 
 +
  if (val1<10) {
 +
  sens = 1;
 +
  }
 +
 
 +
  if (sens<2) {
 +
  val1=val1+10;
 +
  }
 +
  if (sens>1) {
 +
  val1=val1-10;
 +
  }
 +
    myservo1.write(val1);              // mettre le servomoteur dans la bonne position
 +
  }
 +
}
 +
</pre>

Version actuelle en date du 4 mars 2016 à 12:54

Un dimanche après-midi, J'ai décidé de réaliser l'idée de faire un robot en papier, avec de l'arduino pour l'animer.

Sommaire

un peu de recherche

  • des papertoys
  • des programmes Arduino et hop !

Voici le résultat

Matériel


Fabrication

on découpe et on colle le papertoy en prenant soin de laisser la tête ouverte pour les led et en gardant un morceau de papier pour le servomoteur qui sera dans le corps.


On colle sur la tête un des accessoirs qui se fixent sur le servomoteur.

Les led sont fixées dans la tête.

Plus qu'à assembler !

Le code

/*Code sous licence CC-By-Sa
de Antony Auffret
réalisé avec des bouts de code attrapés ici ou là !
dont notament : http://www.instructables.com/id/How-to-easily-play-music-with-buzzer-on-arduino-Th/
et Tone Melody des exemples de programmes de l'IDE Arduino : http://arduino.cc/en/Tutorial/Tone
6 décembre 2015
*/
#include <Servo.h> 
Servo myservo1;   // créer un objet servo 1 pour le contrôler

#define	C0 16.35
#define	Db0	17.32
#define	D0	18.35
#define	Eb0	19.45
#define	E0	20.60
#define	F0	21.83
#define	Gb0	23.12
#define	G0	24.50
#define	Ab0	25.96
#define	LA0	27.50
#define	Bb0	29.14
#define	B0	30.87
#define	C1	32.70
#define	Db1	34.65
#define	D1	36.71
#define	Eb1	38.89
#define	E1	41.20
#define	F1	43.65
#define	Gb1	46.25
#define	G1	49.00
#define	Ab1	51.91
#define	LA1	55.00
#define	Bb1	58.27
#define	B1	61.74
#define	C2	65.41
#define	Db2	69.30
#define	D2	73.42
#define	Eb2	77.78
#define	E2	82.41
#define	F2	87.31
#define	Gb2	92.50
#define	G2	98.00
#define	Ab2	103.83
#define	LA2	110.00
#define	Bb2	116.54
#define	B2	123.47
#define	C3	130.81
#define	Db3	138.59
#define	D3	146.83
#define	Eb3	155.56
#define	E3	164.81
#define	F3	174.61
#define	Gb3	185.00
#define	G3	196.00
#define	Ab3	207.65
#define	LA3	220.00
#define	Bb3	233.08
#define	B3	246.94
#define	C4	261.63
#define	Db4	277.18
#define	D4	293.66
#define	Eb4	311.13
#define	E4	329.63
#define	F4	349.23
#define	Gb4	369.99
#define	G4	392.00
#define	Ab4	415.30
#define	LA4	440.00
#define	Bb4	466.16
#define	B4	493.88
#define	C5	523.25
#define	Db5	554.37
#define	D5	587.33
#define	Eb5	622.25
#define	E5	659.26
#define	F5	698.46
#define	Gb5	739.99
#define	G5	783.99
#define	Ab5	830.61
#define	LA5	880.00
#define	Bb5	932.33
#define	B5	987.77
#define	C6	1046.50
#define	Db6	1108.73
#define	D6	1174.66
#define	Eb6	1244.51
#define	E6	1318.51
#define	F6	1396.91
#define	Gb6	1479.98
#define	G6	1567.98
#define	Ab6	1661.22
#define	LA6	1760.00
#define	Bb6	1864.66
#define	B6	1975.53
#define	C7	2093.00
#define	Db7	2217.46
#define	D7	2349.32
#define	Eb7	2489.02
#define	E7	2637.02
#define	F7	2793.83
#define	Gb7	2959.96
#define	G7	3135.96
#define	Ab7	3322.44
#define	LA7	3520.01
#define	Bb7	3729.31
#define	B7	3951.07
#define	C8	4186.01
#define	Db8	4434.92
#define	D8	4698.64
#define	Eb8	4978.03
// Durée des notes 
#define BPM 120    //  changer cette valeur change toutes les autres
#define H 2*Q //demi 2/4
#define Q 60000/BPM //Quart 1/4 
#define E Q/2   //huitième 1/8
#define S Q/4 // seizième 1/16
#define W 4*Q // entier 4/4

// notes de la mélodie :
int melody[] = {
LA3,LA3,LA3,F3,C4,LA3,F3,C4,LA3,E4,E4,E4,F4,C4,Ab3,F3,C4,LA3,LA4,LA3,LA3,LA4,Ab4,G4,Gb4,E4,F4,Bb3,Eb4,D4,Db4,C4,B3,C4,F3,Ab3,F3,LA3,C4,LA3,C4,E4,LA4,LA3,LA3,LA4,Ab4,G4,Gb4,E4,F4,Bb3,Eb4,D4,Db4,C4,B3,C4,F3,Ab3,F3,C4,LA3,F3,C4,LA3

};

// durée des notes
int noteDurations[] = {
Q,Q,Q,E+S,S,Q,E+S,S,H,Q,Q,Q,E+S,S,Q,E+S,S,H,Q,E+S,S,Q,E+S,S,S,S,E,E,Q,E+S,S,S,S,E,E,Q,E+S,S,Q,E+S,S,H,Q,E+S,S,Q,E+S,S,S,S,E,E,Q,E+S,S,S,S,E,E,Q,E+S,S,Q,E+S,S,H

};

int pause[] = {
  Q+1,Q+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,H+1,Q+1,Q+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,H+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,S+1,S+1,E+1+E+1,E+1,Q+1,E+S+1,S+1,S+1,S+1,E+1+E+1,E+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,H+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,S+1,S+1,E+1+E+1,E+1,Q+1,E+S+1,S+1,S+1,S+1,E+1+E+1,E+1,Q+1,E+S+1,S+1,Q+1,E+S+1,S+1,H+1+2*H

};
int potar1=A0; // le potentiomètre est branche sur la broche analogique A0
int val1;         // variable pour stocker la valeur du potentiomètre 1
int sens;   //pour faire changer de sens au mouvement de la tete

void setup() {
pinMode(8, OUTPUT);   //pour le piezo
pinMode(9, OUTPUT);       //pour les 2 leds
digitalWrite(9,LOW);
myservo1.attach(10);  // brancher le servomoteur sur l'entrée 10
sens = 1;
}

void loop() {
  // il y a 66 notes, on itère jusque 66
  for (int thisNote = 0; thisNote < 66; thisNote++) {
    digitalWrite(9,HIGH); // allume les leds

    tone(8, melody[thisNote], noteDurations[thisNote]); //joue la note
    
    digitalWrite(9,LOW); //éteins les leds
    
    delay(pause[thisNote]); //pause nécessaire entre les notes

    noTone(8);//arret de la note en cours
    
   if (val1>180) { //repere le sens de rotation de la tete
   sens = 2;
   }
   
   if (val1<10) {
   sens = 1;
   }
   
   if (sens<2) {
   val1=val1+10;
   }
   if (sens>1) {
   val1=val1-10; 
   }
    myservo1.write(val1);               // mettre le servomoteur dans la bonne position
  }
}
Portail des ExplorateursWikidébrouillardLéon DitFLOGPhoto mystèreJ'ai FaitPortraits
AR

Arduino + papertoy = fun !

Rechercher

Page Discussion Historique
Powered by MediaWiki
Creative Commons - Paternite Partage a l

© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique