Bonjour
après la création du programme de lecture écriture dans une carte RFID, la suite et ce pourquoi il a été créé.
Idée: Réaliser une Music Box basée sur arduino tone() et avec mélodie interchangeable.
Les mélodies sont codées dans la zone données d'une carte RFID Mifare 1 K.
j'ai pas inventé la roue ...
le schéma est des plus classique.
ce qui donne
les mélodies sont affichées sur l'OLED
titre auteur nombres de notes et tempo.
codage de la carte RFID
les notes et leurs durées (blanche, noires etc ..) sont codés sur 2 octets.
Dans le programme les fréquences sont dans un tableau en PROGMEM on a juste donc besoin de l'indice, idem pour les durées recalculées a partir de la tempo.
Optimisation du codage de la mélodie sur une idée de fdufnews avec l'aide de terwal
qu'ils soient remerciés.
la mélodie est codée par triplet 3 octets pour 2 notes et 2 durées.
un exemple de dump
[]|00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15
00|C3|D5|1A|E5|E9|08|04|00|62|63|64|65|66|67|68|69
01|20|20|20|20|42|61|64|69|6E|65|72|69|65|73|20|20
02|20|20|20|4A|2E|20|53|2E|20|42|61|63|68|20|20|20
03|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
04|EA|00|78|3D|40|8A|3D|38|A8|3D|38|AA|34|38|8A|34
05|31|A6|2C|31|AA|34|31|AA|33|31|AA|33|31|AA|30|33
06|AA|36|33|AA|34|31|88|3D|40|8A|3D|38|A8|3D|38|AA
07|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
08|34|38|8A|34|31|A6|34|34|88|34|34|88|3D|34|88|34
09|33|88|38|38|88|38|38|88|40|38|88|38|35|88|33|38
10|AA|3B|38|AA|3A|38|AA|3A|38|AA|35|3A|AA|3D|3A|AA
11|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
12|3B|3A|AA|3B|3A|AA|38|3B|AA|38|35|AA|38|3D|AA|38
13|35|AA|38|3F|AA|38|35|AA|38|40|AA|38|35|AA|38|40
14|AA|3F|3D|AA|3F|3B|AA|3A|38|AA|3B|3A|88|38|00|66
15|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
16|38|3B|8A|38|33|A8|38|33|AA|2F|33|8A|2F|2C|A6|32
17|31|88|36|35|8A|38|3B|A8|39|38|AA|39|36|88|39|3D
18|8A|39|36|A8|39|36|AA|33|36|8A|33|2F|A6|2F|34|AA
19|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
20|38|34|AA|36|34|AA|36|34|AA|33|36|AA|39|36|AA|38
21|36|AA|38|36|AA|34|38|AA|34|33|AA|34|39|AA|34|33
22|AA|34|3B|AA|34|33|AA|34|3D|AA|34|33|AA|34|3D|AA
23|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
24|3B|39|AA|3B|38|AA|36|34|AA|38|36|88|34|38|68|38
25|38|88|38|40|88|38|38|88|36|36|88|36|36|88|36|3F
26|88|36|36|88|34|3D|88|40|3D|AA|3B|39|86|39|3D|8C
27|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
28|3B|39|CC|38|36|C6|36|39|8C|38|36|CC|34|32|CA|36
29|39|AA|36|32|AA|31|32|AA|31|30|A8|2C|2D|88|2C|31
30|88|30|33|AA|36|34|8A|33|34|A8|31|33|CC|34|36|CC
31|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
32|38|34|8A|38|3D|A8|38|36|8A|34|33|AA|34|33|A8|31
33|00|66|00|00|00|00|00|00|00|00|00|00|00|00|00|00
34|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
35|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
36|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
37|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
38|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
39|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
40|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
41|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
42|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
43|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
44|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
45|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
46|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
47|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
48|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
49|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
50|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
51|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
52|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
53|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
54|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
55|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
56|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
57|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
58|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
59|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
60|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
61|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
62|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
63|00|00|00|00|00|00|FF|07|80|69|FF|FF|FF|FF|FF|FF
badinerie de JS Bach 234 notes tempo 120
les blocs 1 et 2 contiennent titre et auteur.
le tout sera mis dans une boite
en cours de réalisation.
la carte s’insère devant dans une fente et la manivelle (encodeur) sera juste a coté.
pour coder les mélodies j'ai réalisé un petit programme Lazarus qui ouvre un xmlmusic en retire les notes et encode suivant le format il peut aussi jouer la mélodie mais le beep() Windows est pas vraiment au point ...
Je sais qu'il existe des trucs assimilé orgue de barbarie qui jouent des mélodies a partir d'une carte sd mais je voulais qq chose qui rappelle un peu les bandes perforées sur lesquelles etait "gravé" la musique. je ne suis pas musicien et je suis bien incapable de réaliser de telle carte ou de pointer un cylindre ..
. et puis ca a déjà été fait ...
pas de circuit imprimé pour cette réalisation ... faire un circuit pour y mettre juste des connecteurs aucun intérêt ! tout sera fixé a l'intérieur et câblé a partir du support nano (un peu plus proprement ....
)
toute la partie électronique et programme fonctionne .. reste plus que la menuiserie et la déco ...
fichiers avec musique de J.S. Bach
MusicBox.zip (10.0 KB)






