Cuprins:
- Pasul 1: Création Du Circuit Analogique
- Pasul 2: Choix Des Composants
- Pasul 3: Réalisation Du PCB
- Pasul 4: Réalisation De La Partie Mécanique (suport Et Instrument)
- Pasul 5: Conectare MCP-Raspberry
- Pasul 6: Achiziționarea datelor
- Pasul 7: FFT
- Pasul 8: Génération Du Son
Video: Polyflûte: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Le projet Polyflûte consiste în realizarea unui instrument de muzică numerică.
Le but est de créer un instrument de musique respectant des conditions particulières; Acest instrument trebuie să fie:
-Autonome et portable (Batterie, pile …)
-Autodidacte (Enseigner à l’utilisateur à partir d’un site internet, funcționarea și construcția aparatului)
-Auto tune (Produce un son musical à partir une fréquence relevé dans l’environnement -alentour)
Le but est donc de réussir à convertir une où vibratoire, oscillante de la vie courante ou issue d’objets du quotidien en unde sonore et musicale.
Pasul 1: Création Du Circuit Analogique
Notre système se base sur le principe de la détection delumière: On place une LED et photodiode face à face séparé par une hélice propulsé en roue libre par un ventilateur. Ainsi le passage d'une pâle devant la photodiode créera un signal de type T. O. R (plutôt proche du sinusoïdale en prenant en compte le temps de réception de la lumière).
Le capteur constituie le coeur de la partie analogique. Nous avons donc décidé de distinguer un circuit d'émission și un circuit de réception. Le circuit est alimenté par 6 piles rechargeables de 1.2 V soit au total 7.2V. Le circuit d'émission is constitué d'une LED and d'un engine branché in parallèle (une diode de protection a also been placée pour éviter les retours de courants). Le circuit d'émission se constituie dintr-o fotodiodă dont the signal is amplified par a AOP; ainsi que de 2 filtres passe bas d’ordre 1 filtrant à environ 80 Hz (fréquence maximale de rotation de l'hélice).
Pasul 2: Choix Des Composants
Une fois le circuit théorique établit, on choisit les composants les plus adaptés au montage.
Vous retrouverez ci-dessous les références et valeurs des différents composants (în se bazează pe schema electronică precedentă):
LED: SFH 4550
Ventilator: MB40200V1 (5V)
Diodă: 1N4001
Fotodiodă: SFH 203
AOP: LM358N
CAN: MCP3008
Rezistență R1 (LED): 47 Ohmi
Rezistență R2 (Filtre 1): 220 Ohmi
Rezistență R3 (Filtre 2): 220 Ohmi
Rezistență R4 (Filtre în ieșire de Vref): 1 kOhms
Condensateur C1 (Filtre): 10nF
Condensateur C2 (Filtre): 10nF
Condensateur C3 (Filtre în sortie de Vref): 5µF
Régulateur: 0J7031 reg09b
Connecteur 40 pini
Raspberry PI 2 Model B.
Hélice d'hélicoptère de 3, 8 cm
6 piloți reîncărcabili 1,2 V
Pasul 3: Réalisation Du PCB
Realizarea du PCB (Printed Circuit Board) s-a realizat în mai multe etape:
- Le dessin de la carte (Agencement des composants)
- Le routage des composants sur la carte și Impression de la carte
- Soudage des composants
Le dessin et le routage de la carte ont été faits sur le logiciel ALTIUM Designer (logiciel used in entreprise pour le routage de PCB). Nous avons donc dû nous initier au logiciel. Les composants ont été disposés de manière à réduire the size de la carte (9 cm de long, 5 cm de large). Le routage fut la partie la plus délicate, car la carte étant imprimé en double couche nous devions décidés de la disposition des connections en couche Top ou Bottom. Une fois la carte imprimée, nous avons soudés les composants sur des supports afin de pouvoir enlever les composants in cas de défaillances ou de changements de composants. Am avut și noi plăcerea pe carte, conectorul reliant la PCB și la Rasberry. Nous avons pour cela dû identifier les ports SPI de la Rasberry et faire la bonne correspondance avec le PCB.
Veți găsi fișierele Gerber (fișier Altium Designer).
Pasul 4: Réalisation De La Partie Mécanique (suport Et Instrument)
Le tube constitutive la flûte este un tube in PVC (plomberie) qui a fost coupé a une longueur de 15 cm și 4, 1 cm de diametru. On retrouve 4 trous de 1 cm de diamètre espacé chacun de 2 cm. A l'intérieur on retrouve une hélice soutenu par une tige en plastique de 2 cm. Le PCB et le tube sont fixés sur une plaque en bois à fixé l'aide d'entretoises et de vis. Sur la partie gauche du tube on a fixé le ventilateur à l'aide d'un scotch de cablu electric. De l'autre côté, le tube est bouché par un morceau de carton.
- tub din PVC
- plaque en bois d'environ 30 cm x 30 cm
- 4 entretoises de 3, 5 cm
- 4 ecrous
- Un interrupteur 2 positions classique
- Suport de grămadă
- Cutie de carton
Pasul 5: Conectare MCP-Raspberry
Conexiunea MCP-3008 / Rasberry este esențială pentru comunicare, recepție de transmitere a datelor.
Conexiunea Raspberry / MCP este detaliată în imagini.
La connection s'effectue en bus SPI, le code d'initialisation du bus est joint dans the files.
Pasul 6: Achiziționarea datelor
Une fois la Raspberry connectée to a convertisseur analogique / numérique de type MCP3008 à l'aide d'un bus SPI, il faut maintenant acquérir les données souhaitées. Nous ne relevons qu'un type de valeur, l'amplitude de notre signal fréquentielle, sur la chaîne 1 du MCP3008. Ces valeurs sont stockées dans un tableau de taille 512: on choisit une puissance de 2 pour faciliter les algorithmes de transformé de Fourier à venir, et plus le nombre de points est élevé plus le signal discret sera précis.
L'acquisition des données ne peut cependant pas se faire de manière aléatoire, în effect the fréquence d'acquisition și donc the fréquence d'échantillonnage est primordiale. Noi am determinat în mod empiric că nu ne semnalăm niciodată cu frecvențe superioare la 80Hz. Pour respecter Shannon notre fréquence d'échantillonnage must be supérieure à 160Hz, nous avons choisi une Fe à 250Hz.
Afin d'acquérir les données à cette fréquence, nous avons créé un timer qui fait appel à notre function d'acquisition tous les 4ms (Te = 1 / Fe = 4ms). Primul thread al programului nostru conține astfel funcția timerului care efectuează achiziția datelor.
Pasul 7: FFT
Une fois le tableau de données d'acquisition rempli, on peut effectuer the transformer de Fourier discrète pour retrouver the fréquence du signal.
On utilise pour cela la bibliothèque GSL qui permet à partir d'un tableau de données, avoir le tableau d'amplitude des raies fréquentielles composant ce signal. En écartant la premier case du tableau contenant l'amplitude des composantes continues, on peut retrouver l'indice i de la fréquence qui a la plus forte amplitude à l'aide de la formula suivante: Freq = i * Fe / (2 * Nb_Points).
Notre fréquence d'échantillonnage étant 250Hz și numărul de puncte achiziționat fiind 512.
Pasul 8: Génération Du Son
Maintenant que l'on a récupéré la fréquence du signal il suffit de générer un sinus pour avoir un son. Deux solutions se sont ouvertes à nous: Emite un sinus directement à partir des fréquences acquises en les multipliant pour les rendre audible, ou bien associer des fréquences précise aux plages des différentes notes de notre prototype.
Nous avons testé les deux méthodes et nous avons finalement retenu la seconde plus concluante. Les notes jouées sont celle de la gamme 4, cependant les contraintes de notre système nous permet seulement d'avoir 8 plages distinctes et ainsi de jouer 8 notes different: Do, Ré, Mi, Fa, Sol, Sol bémol, La et Si.
Enfin vous trouverez les codes complets des deux solutions citées au-dessus.
Recomandat:
Cum să faci 4G LTE dublă antenă BiQuade Pași simpli: 3 pași
Cum să fac 4G LTE Double BiQuade Antenna Pași simpli: De cele mai multe ori mă confrunt, nu am o putere de semnal bună pentru lucrările mele de zi cu zi. Asa de. Căut și încerc diferite tipuri de antenă, dar nu funcționează. După un timp pierdut, am găsit o antenă pe care sper să o fac și să o testez, pentru că nu se bazează pe principiul
Design de joc în Flick în 5 pași: 5 pași
Designul jocului în Flick în 5 pași: Flick este un mod foarte simplu de a crea un joc, în special ceva de genul puzzle, roman vizual sau joc de aventură
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino - Pași cu pași: 4 pași
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino | Pași cu pas: în acest proiect, voi proiecta un senzor senzor de parcare inversă Arduino Car Circuit folosind senzorul cu ultrasunete Arduino UNO și HC-SR04. Acest sistem de avertizare auto bazat pe Arduino poate fi utilizat pentru navigație autonomă, autonomie robotică și alte r
Detectarea feței pe Raspberry Pi 4B în 3 pași: 3 pași
Detectarea feței pe Raspberry Pi 4B în 3 pași: În acest instructabil vom efectua detectarea feței pe Raspberry Pi 4 cu Shunya O / S folosind Biblioteca Shunyaface. Shunyaface este o bibliotecă de recunoaștere / detectare a feței. Proiectul își propune să obțină cea mai rapidă viteză de detectare și recunoaștere cu
Cum să faci un contor de pași ?: 3 pași (cu imagini)
Cum să fac un contor de pași ?: obișnuiam să performez bine la multe sporturi: mersul pe jos, alergatul, mersul pe bicicletă, jocul de badminton etc. Îmi place să călăresc să călătoresc în preajmă. Ei bine, uită-te la burtica mea ostilă …… Ei bine, oricum, decid să reîncep să fac mișcare. Ce echipament ar trebui să pregătesc?