Différences entre versions de « P2E-Buzzer-Music-FR »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 15 : Ligne 15 :
 
16p,16f,8d,8a#,2g</nowiki>
 
16p,16f,8d,8a#,2g</nowiki>
  
 +
 +
== Bibliothèque ==
 +
 +
La bibliothèque nécessaire est déjà installée sur le Raspberry-Pi Pico du Pico-2-Explorer.
 +
 +
Il est possible de l'installée sur un autre Raspberry-Pi Pico depuis le dépôt [https://github.com/mchobby/upy-rtttl upy-rtttl disponible ici sur Github].
 +
 +
Il est également possible de trouver de nombreux RingTones RTTTL sur:
 +
*  [http://www.picaxe.com/RTTTL-Ringtones-for-Tune-Command/ www.picaxe.com]
 +
 +
Crédit: la bibliothèque améliorée est basée sur les travaux de [https://github.com/dhylands/upy-rtttl D.Hylands].
  
 
== Cas pratique ==
 
== Cas pratique ==

Version du 27 janvier 2025 à 22:40

Introduction

Dans le tutoriel consacré au Buzzer, nous avons découvert qu'un signal PWM pouvait être utilisé pour produire une tonalité et des notes.

Ring Tone Text Transfer Language (RTTTL) a été développé par Nokia pour permettre le transfert de mélodies (appelée "ringtones") vers un téléphone portable Nokia. Pour l'époque, cette possibilité de personnaliser la sonnerie du téléphone fît du Nokia 3310, l'un des téléphones les plus vendu de sa génération.

P2E-Buzzer-RTTTL-10.jpg

Un buzzer peut aussi être contrôlé par un langage nommé RTTTL permettant de codifier une mélodie sous forme d'une chaîne de caractères dont voici un exemple:

Axel-F:d=4,o=5,b=125:g,8a#.,16g,16p,16g,8c6,8g,8f,g,8d.6,16g,16p,16g,8d#6,8d6,8a#,8g,8d6,8g6,16g,16f,16p,16f,
8d,8a#,2g,p,16f6,8d6,8c6,8a#,g,8a#.,16g,16p,16g,8c6,8g,8f,g,8d.6,16g,16p,16g,8d#6,8d6,8a#,8g,8d6,8g6,16g,16f,
16p,16f,8d,8a#,2g


Bibliothèque

La bibliothèque nécessaire est déjà installée sur le Raspberry-Pi Pico du Pico-2-Explorer.

Il est possible de l'installée sur un autre Raspberry-Pi Pico depuis le dépôt upy-rtttl disponible ici sur Github.

Il est également possible de trouver de nombreux RingTones RTTTL sur:

Crédit: la bibliothèque améliorée est basée sur les travaux de D.Hylands.

Cas pratique

Dans cet exemple, nous allons utiliser un interpréteur RTTTL pour reproduire les mélodies simples tels quelles étaient produite sur les téléphones Nokia de premières générations.

Derrière ce style évidemment rétro, il est possible de reconnaître des thèmes éminemment connus.

Branchement simplifié

Pour que les exemples fonctionnent correctement, il faut vérifier la présence du Cavalier.

P2E-Music-25.png

Le cavalier raccorde la broche GP13 sur le circuit de commande du piezo buzzer.

P2E-Buzzer-PWM-20.png

Remarque:

  • Le script peut être interrompu mais cela n'interrompt pas la génération du son puisque qu'un contrôleur PWM est autonome.
  • Il est bien entendu possible d'interrompre la production du son (le générateur PWM) en pressant le bouton RESET de la carte.

Code

Le code ci-dessous peut être saisi dans une session REPL ou dans Thonny IDE.

Cet exemple est également disponible dans le dépôt pwm-buzzer.py .

 1 from machine import Pin, ADC, PWM
 2 from maps import map
 3 import time
 4 
 5 # Désactive PowerSafe (lower ripple)
 6 Pin( 23, Pin.OUT, value=True )
 7 
 8 a0 = ADC( Pin( Pin.board.GP26 ) )
 9 buzzer = PWM( Pin( Pin.board.GP13 ) )
10 buzzer.duty_u16( 65535//3 )
11 while True:
12     val = a0.read_u16()
13     hertz = int( map(val, 0, 65535, 100, 10000 ) )
14     buzzer.freq( hertz )
15     print( 'frequence = %5i Hz' % (hertz) )
16     time.sleep_ms( 100 )