Taula de continguts:
- Pas 1: materials
- Pas 2: Programació
- Pas 3: 4. Escoger Canciones Para Programarla
- Pas 4: Unir programes
- Pas 5: Convertir-lo en físic
- Pas 6: Màquines utilitzades
- Pas 7: Recomanacions
Vídeo: Rocola Luis Hernández E Ignacio Casado: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:10
Aquesta és una rocola que compte amb dues cançons, el tema de Harry Potter i la cançó de Despacito de Luis Fonsi
Pas 1: materials
1 Protoboard
1 Arduino UNO
cables jumper macho-hembra i macho-macho
1 pantalla LCD 16x2
2 Buzzer pasivo
2 Polsador
1 cable USB per Arduino
1 font de poder extern
Pas 2: Programació
Primer, hi ha que inclourà la biblioteca del LCD en el programa i configurar-los amb els pins als quals està connectat. Luego, hay que instanciar las variables que determinan la cancion, los pins de los 2 botones, una variable "anti-derrames" i el pin per al buzzer.
#incloure
// librería para manejar pantallas LCD
LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // Indica que pines se estan utilitzant
int quantitat = 0;
const int botonI = 10; const int botonD = 9; int antiderrames = 0; // esta variable va a servir per evitar que el LCD muestre 3 coses al mateix temps int buzzer_pin = 6;
Després d’això, hi ha que nomenar a les funcions que van a:
- Definir el tono a tocar (segons el pin del buzzer, la nota i la duració de la mateixa).
- Definir les notes (en lletres), dándoles un valor únic de Hz.
- Definir l’estructura de les notes (nota, semi-nota, etc).
Y por ultimo, definir el tempo en milisegundos
void setTone (int pin, int note, int duration) {to (pin, nota, durada); retard (durada); noTone (pin); } struct MusicStruct {int A = 550; int Com = 582; int B = 617; int C = 654; int Cs = 693; int D = 734; int Ds = 777; int E = 824; int F = 873; int Fs = 925; int G = 980; int Gs = 1003; int A2 = 1100; int A2s = 1165; int B2 = 1234; int C3 = 1308; int C3s = 1385; int D3 = 1555; }Música; struct LengthStruct {float half = 0,5; float one = 1,0; float one_half = 1,5; flotador dos = 2,0; flotador dos_mig = 2,5; }Llargada;
int tempo = 400; // velocitat de la composició
Després de definir tot això, podem començar la part interessant del programa.
Primer, he que:
- Monitor de sèrie
- Definir els modes dels pins dels botons i el buzzer
- Encender el LCD y poner el cursor en la posició inicial
configuració nul·la () {Serial.begin (9600); pinMode (botonI, INPUT_PULLUP); pinMode (botonD, INPUT_PULLUP);
// Secció de pantalla LCD
lcd.begin (16, 2); // Enciende lcd lcd.clear (); lcd.setCursor (0, 0); // El proper missatge apracecera a la cordenada 0, 0 pinMode (buzzer_pin, OUTPUT);
}
Luego, necessitamos instanciar las funciones de las funciones, que van a dar el orden, tono, temps de les 2 cancions que vamos a tenir en aquest projecte (despacit i el tema principal de Harry Potter).
Utilitzeu 2 formes de tocar cançons en aquest projecte:
- Usant la funció setTone, que definim abans (Harry Potter)
- Usant la funció de to del brunzidor de l'Arduino (Despacito)
Nota de l’autor: La funció per al desacat només toca els primers 12 segons de la cançó, originalment el codi era de 856 línies
void jarri () {setTone (buzzer_pin, Music. B, tempo * Length.one); setTone (buzzer_pin, Music. E, tempo * Length.one_half); setTone (buzzer_pin, Music. G, tempo * Length.half); setTone (buzzer_pin, Music. F, tempo * Length.one); setTone (buzzer_pin, Music. E, tempo * Length.two); setTone (buzzer_pin, Music. B2, tempo * Length.one); setTone (buzzer_pin, Music. A2, tempo * Length.two_half); setTone (buzzer_pin, Music. Fs, tempo * Length.two_half); setTone (buzzer_pin, Music. E, tempo * Length.one_half); setTone (buzzer_pin, Music. G, tempo * Length.half); setTone (buzzer_pin, Music. F, tempo * Length.one); setTone (buzzer_pin, Music. Ds, tempo * Length.two); setTone (buzzer_pin, Music. F, tempo * Length.one); setTone (buzzer_pin, Music. B, tempo * Length.two_half);} void Despacito () {tone (buzzer_pin, 587, 709.720327982); retard (788.578142202); retard (10.3082110092); to (buzzer_pin, 554, 709.720327982); retard (788.578142202); retard (5.15410550459); to (buzzer_pin, 493, 273.683002294); retard (304.092224771); retard (5.15410550459); to (buzzer_pin, 369, 273.683002294); retard (304.092224771); retard (5.15410550459); to (buzzer_pin, 369, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 369, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 369, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 369, 134.52215367); retard (149.469059633); retard (5.15410550459); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 273.683002294); retard (304.092224771); retard (5.15410550459); to (buzzer_pin, 440, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 273.683002294); retard (304.092224771); retard (5.15410550459); to (buzzer_pin, 391, 412.843850917); retard (458.715389908); retard (5.15410550459); to (buzzer_pin, 391, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 391, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 391, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 391, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 391, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 273.683002294); retard (304.092224771); retard (5.15410550459); to (buzzer_pin, 554, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 587, 273.683002294); retard (304.092224771); retard (5.15410550459); to (buzzer_pin, 440, 412.843850917); retard (458.715389908); retard (5.15410550459); to (buzzer_pin, 440, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 440, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 440, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 440, 41.7482545872); retard (46.3869495413); retard (36.0787385321); to (buzzer_pin, 440, 37.109559633); retard (41.2328440367); retard (30.9246330275); to (buzzer_pin, 440, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 587, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 587, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 587, 46.3869495413); retard (51.5410550459); retard (30.9246330275); to (buzzer_pin, 587, 46.3869495413); retard (51.5410550459); retard (20.6164220183); to (buzzer_pin, 587, 273.683002294); retard (304.092224771); retard (5.15410550459); to (buzzer_pin, 659, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 659, 273.683002294); retard (304.092224771); retard (5.15410550459); to (buzzer_pin, 554, 691.165548165); retard (767.961720183); retard (314.40043578); to (buzzer_pin, 587, 552.004699541); retard (613.338555046); retard (5.15410550459); to (buzzer_pin, 554, 552.004699541); retard (613.338555046); retard (5.15410550459); to (buzzer_pin, 493, 273.683002294); retard (304.092224771); retard (5.15410550459); to (buzzer_pin, 369, 273.683002294); retard (304.092224771); retard (5.15410550459); to (buzzer_pin, 369, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 369, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 369, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 369, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 369, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 46.3869495413); retard (51.5410550459); retard (30.9246330275); to (buzzer_pin, 493, 46.3869495413); retard (51.5410550459); retard (20.6164220183); to (buzzer_pin, 493, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 273.683002294); retard (304.092224771); retard (5.15410550459); to (buzzer_pin, 440, 134.52215367); retard (149.469059633); retard (5.15410550459); to (buzzer_pin, 493, 273.683002294); retard (304.092224771); retard (5.15410550459); }
Una vegada tinguem tot això, podem passar a la part més important del programa de l'Arduino … el Loop ()
Primer, definits un label llamado leibel (espectacular nombre, lo sé), per a què es porti a l’inici del bucle () quan acabi cada cançó. Després, hi ha que donar valor a la variable anti-derrames que instanciamos anteriorment, per evitar que el LCD mestre diverses lletres en el mateix lloc i sea incomprensible.
Luego, hay que poner que cada vez que se oprima un botón se cambie el valor que defineix la cançó que es toca.
void loop () {leibel: if ((antiderrames == 0) && (digitalRead (botonI) == 1) && (digitalRead (botonD) == 1)) {lcd.setCursor (0, 0); lcd.print ("Elegir cancion"); // CAMBIA el icono lcd.setCursor (0, 1); lcd.print ("1 o 2"); } else {if (digitalRead (botonI) == 0) {delay (400); lcd.clear (); if (quantitat == 0) {quantitat = 1; } antiderrames ++; } if (digitalRead (botonD) == 0) {delay (400); lcd.clear (); if (quantitat == 1) {quantitat = 0; } antiderrames ++; } if (quantitat == 0) {lcd.setCursor (0, 0); lcd.print ("Harry Potter"); // CAMBIA el icono lcd.setCursor (0, 1); lcd.print ("Tema"); jarri (); antiderrames = 0; lcd.clear (); vés a leibel; // volvem a l’inici
}
else if (quantitat == 1); {
lcd.setCursor (0, 0); lcd.print ("Despacito"); // CAMBIA el icono lcd.setCursor (0, 1); lcd.print ("Luis Fonsi"); Despacito (); antiderrames = 0; lcd.clear (); vés a leibel; // volvem a l'inici}}}
Junto con la programación, también se probó la funcionalidad de la pantalla LCD 16x2, para después guardar el programa y así unirlo a los demás para el programa final.
Pas 3: 4. Escoger Canciones Para Programarla
Busqueu 2 cancions per programar-les i així incloure-les per a la rocola. En aquest cas serien les cançons de "Despacito" de Luis Fonsi i el tema de la pel·lícula Harry Potter.
Pas 4: Unir programes
Després de tenir la programació dels botons, la pantalla i les cançons; se unieron para así probar si eran compatibles y si no, modificarlos en tinkercad.
Pas 5: Convertir-lo en físic
Després de comprobar que sí funcionarà a la pàgina de tinkercad, es va copiar el maquinari per veure els resultats. Sin embargo, al tratar de armarlo ocurrió un inconveniente, el cuál nos imposibilitó usar la pantalla ya que esta se quemó por un mal contacto al soldarlo. Es por esto que en la presentación final solo incluye los botones y el buzzer.
Pas 6: Màquines utilitzades
S'utilitza la cortadora làser del Maker-Space per crear la carcassa on irien tots els circuits.
Es va utilitzar la cortadora de vinil per fer adhesiu i decorar la carcassa
Utilitzeu el quadre de pedestal del Maker-space per fer els aigües per al buzzer i el cable del Arduino
Pas 7: Recomanacions
Algunes recomanacions si es replica aquest projecte per als millors resultats és:
- Probar prèviament el programa a la pàgina de Tinkercad per veure com funciona. Així com verificar els cables i connexions entre el protoboard i l'arduino.
- Al soldar, verificar que no hi ha contacte entre aquests anys es toquen, així es podrà evitar que es quedi algun component.
- Al replicar el hardware de la pàgina Tinkercad, connectar tot de forma cuidadosa per a no romper una peça i verificar que no es salga dels seus llocs.
- Medir les dimensions per a la caixa, així es pot evitar que quedi massa gran o molt petita.
Recomanat:
Rocola: 5 passos
Rocola: Es realitza una rocola amb buzzer actiu que reprodueix 3 cançons al pressionar un botó i que es registra visualitzant el nombre de la cançó en una pantalla LCD.Materials: Arduino UNOJumpers3 Botones1 Buzzer activo1 Potenciómetro1 Pantalla LCD5 resist
Rocola Digital: 4 passos
Rocola Digital: Una rocola és un dispositiu que produeix música. Estan compostos per una màquina i regularment son operades a base de monedes per reproduir vídeos o cançons. En aquest cas es crea una rocola que funciona de forma manual, gràcies a tres botons
Rocola (Jukebox) Manufactura Digital: 7 passos
Rocola (Jukebox) Manufactura Digital: Rocola programada amb arduino. Conté tres cançons: Starwars, Game of thrones i Coffin dance
Rocola Amb ARDUINO: 6 passos
Rocola With ARDUINO: És instructiu trobar com crear la teva pròpia * ROCKOLA * amb Arduino i un Buzzer activo. Primer es van a necessitar tots els materials que es trobin a la secció de " Llistat de materials " per crear la rocola. Con los mater
Introducció: Rocola; Fernando Lavarreda; Diego Hernández: 5 passos
Introducció: Rocola; Fernando Lavarreda; Diego Hernández: En el següent instructiu es troben detallats pas a pas els processos requerits per construir una rocola fent ús d’Arduino i un buzzer pasivo. Como ya es bien sabido, Arduino es una comunidad de creadores que provee micro-controlador