A/0
Activitat 0
- Conceptes bàsics per seguir la resta d'activitats del manual instròniks.
La primera activitat que farem serà la de fer sonar notes o una melodia pel brunzidor mitjançant Arduino.
1. Primer fem sonar un LA (440Hz) i encendre un LED.
2. Modificarem fent sonar 2 sons (greu i agut) i que un LED vagi quan hi hagi so.
3. 2 LEDs i una seqüència de 4 notes
4. Canvi del brunzidor per una sortida minijack o per un jack i com posar-hi volum.
5. Escriure o transcriure una melodia
1 Arduino UNO
1 Protoboard
1 Altaveu piezoelèctric
2 Díodes emissors de llum o diode LED
1 Resistència elèctrica de 230 Ohms
1 Connector jack de 3.5mm per a protoboard
Diversos cables (mascle – mascle)
// Manual Instròniks // A1.1.1 Fer sonar un LA // Configuració de l'Arduino que només s'executa una vegada. void setup() { // Configurar el pin 3 a l'Arduino com a Sortida, pel SO pinMode (3, OUTPUT); // Configurar el pin 13 a l'Arduino com a Sortida, pel LED pinMode (13, OUTPUT); // pin Led } // Configuració de l'Arduino que s'executarà moltes vegades de manera infinita void loop() { // encén el LED digitalWrite (13, HIGH); // fes sonar un LA que té una freq de 440Hz per la sortida 3 durant 20ms tone (3,440,20); // espera 500 ms (mig segon) delay (500); // apaga el LED digitalWrite (13, LOW); // pq no soni res pel pin 3 noTone (3); // espera 500 ms delay (500); }
// Manual Instròniks // A1.1.2 Fer sonar un so greu i un agut // Configuració de l'Arduino que només s'executa una vegada. void setup() { // Configurar el pin 3 a l'Arduino com a Sortida, pel SO pinMode (3, OUTPUT); // Configurar el pin 13 a l'Arduino com a Sortida, pel LED pinMode (13, OUTPUT); // pin Led } // Configuració de l'Arduino que s'executarà moltes vegades de manera infinita void loop() { // encén el LED digitalWrite (13, HIGH); // CANVI: fes sonar un so GREU a una freq de 200Hz per la sortida 3 durant 20ms tone (3,200,20); // espera 500 ms (mig segon) delay (500); // apaga el LED digitalWrite (13, LOW); // CANVI: fes sonar un so AGUT a una freq de 7000Hz per la sortida 3 durant 20ms tone (3,7000,20); // fem sonar un so agut // espera 500 ms delay (500); }
// Manual Instròniks // A1.2.1 Seqüència de 4 notes amb 2 leds // En aquest cas només comentem les línies que són noves void setup() { pinMode (3,OUTPUT); pinMode (13,OUTPUT); // CANVI: Configurar el pin 12 a l'Arduino com a Sortida, pel segon LED pinMode (12,OUTPUT); } void loop() { digitalWrite (13,HIGH); tone (3,200,20); delay (200); digitalWrite (13,LOW); tone (3,7000,20), delay (200); // CANVI: Encen el 2n LED connectat al pin 12 digitalWrite (12, HIGH); // CANVI: fes sonar un so GREU a una freq de 500Hz per la sortida 3 durant 20ms tone (3, 500, 20); // CANVI: Espera 200 ms delay (200); // CANVI: Apaga el 2n LED connectat al pin 12 digitalWrite (12, LOW); // CANVI: fes sonar un so AGUT a una freq de 4000Hz per la sortida 3 durant 20ms tone (3, 4000, 20); // CANVI: Espera 200 ms delay (200); }
// Manual Instròniks // A1.2.2 Seqüència de 4 notes amb 2 leds i variable de temps // En aquest cas només comentem les línies que són noves // CANVI: Declarem una variable per indicar el valor de temps entre notes int tempo = 200; void setup() { pinMode (3,OUTPUT); pinMode (13,OUTPUT); pinMode (12,OUTPUT); } void loop() { digitalWrite (13,HIGH); tone (3,200,20); // CANVI: Fem servir la variable tempo que té valor 200 per dir temps d'espera delay (tempo); digitalWrite (13,LOW); tone (3,7000,20), delay (tempo); digitalWrite (12, HIGH); tone (3, 500, 20); // CANVI: Fem servir la variable tempo que té valor 200 per dir temps d'espera delay (tempo); digitalWrite (12, LOW); tone (3, 4000, 20); // CANVI: Fem servir la variable tempo que té valor 200 per dir temps d'espera delay (tempo); }
// Manual Instròniks // A1.3 Melodia: El Gegant del Pi // Anirem fent una seqüència amb els dos leds amb la melodia // Variables de tipus enter per recordar les freqüències de les notes int do4 = 264; int re4 = 297; int mi4 = 330; int fa4 = 352; int sol4 = 396; int la4 = 440; int si4 = 495; int do5 = 528; // El valor que li donem a la espera entre notes int tempo = 400; // durada de la nota que és una negra int negra = 100; // durada de la nota que és una corxera int corxera = 50; void setup() { // pin Sortida So pinMode(3, OUTPUT); // pin Led1 pinMode(13, OUTPUT); // pin Led2 pinMode(12, OUTPUT); } void loop() { digitalWrite(13, HIGH); tone(3, mi4, corxera); // fem sonar la primera nota delay(tempo / 2); // la meitat perquè és val la meitat que la negra digitalWrite(13, LOW); tone(3, fa4, corxera); delay(tempo / 2); digitalWrite(12, HIGH); tone(3, sol4, negra); delay(tempo); digitalWrite(12, LOW); tone(3, mi4, negra); delay(tempo); digitalWrite(13, HIGH); tone(3, do4, negra); delay(tempo); digitalWrite(13, LOW); tone(3, fa4, corxera); delay(tempo / 2); digitalWrite(12, HIGH); tone(3, mi4, corxera); delay(tempo / 2); digitalWrite(12, LOW); tone(3, re4, corxera); delay(tempo / 2); digitalWrite(13, HIGH); tone(3, do4, corxera); delay(tempo / 2); digitalWrite(13, LOW); tone(3, re4, corxera); delay(tempo / 2); digitalWrite(12, HIGH); tone(3, re4, corxera); delay(tempo / 2); digitalWrite(12, LOW); tone(3, mi4, corxera); delay(tempo / 2); digitalWrite(13, HIGH); tone(3, do4, corxera); delay(tempo / 2); digitalWrite(13, LOW); tone(3, mi4, corxera); delay(tempo / 2); digitalWrite(12, HIGH); tone(3, fa4, corxera); delay(tempo / 2); digitalWrite(12, LOW); tone(3, sol4, negra); delay(tempo); digitalWrite(13, HIGH); tone(3, mi4, negra); delay(tempo); digitalWrite(13, LOW); tone(3, do4, negra); delay(tempo); digitalWrite(12, HIGH); tone(3, fa4, corxera); delay(tempo / 2); digitalWrite(12, LOW); tone(3, mi4, corxera); delay(tempo / 2); digitalWrite(13, HIGH); tone(3, re4, corxera); delay(tempo / 2); digitalWrite(13, LOW); tone(3, do4, corxera); delay(tempo / 2); digitalWrite(12, HIGH); tone(3, re4, corxera); delay(tempo / 2); digitalWrite(12, LOW); tone(3, mi4, corxera); delay(tempo / 2); digitalWrite(13, HIGH); tone(3, do4, negra); delay(tempo); digitalWrite(13, LOW); noTone(3); // esperem 3 tempo per tornar a començar delay(3 * tempo); }
Com heu vist al vídeo anterior, hem modificat el programa per fer una pulsació programada.
A. Segur que ja sabeu què són les figures a música (negra, blanca, corxera, semicorxera, …). Podeu fer un programa a l’Arduino que demostri aquestes figures bàsiques?
B. Modifiqueu el programa per fer una melodia, per exemple, quina és aquesta?
NOTA: Si tens resposta a alguna d’aquestes preguntes, o alguna observació, la pots compartir per Twitter.
Etiqueta la resposta amb el hashtag: #instroniks_a1 i @instroniks
Així la podrem veure dins d’aquesta activitat.