Bemerkung

Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community auf Facebook! Tauche gemeinsam mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.

Warum beitreten?

  • Experten-Support: Löse After-Sales-Probleme und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.

  • Lernen & Teilen: Tausche Tipps und Tutorials aus, um deine Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalte frühzeitig Zugang zu neuen Produktankündigungen und Sneak Peeks.

  • Spezielle Rabatte: Genieße exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nimm an Gewinnspielen und Feiertagsaktionen teil.

👉 Bereit, mit uns zu entdecken und zu erschaffen? Klicke [here] und tritt noch heute bei!

Passiver Summer

Einführung

In diesem Projekt lernen wir, wie man einen passiven Summer durch Ansteuerung mit unterschiedlichen Frequenzen Musik abspielen lässt. Passive Summer benötigen im Gegensatz zu aktiven Summern ein externes Signal, um Klang zu erzeugen.


Schaltplan

Die Schaltung verwendet einen passiven Summer, einen NPN-Transistor und einen 1 kΩ Widerstand. Der Widerstand schützt den Transistor vor zu hohem Strom. Durch Variieren der Frequenz des mit dem Transistor verbundenen GPIO-Pins erzeugt der Summer unterschiedliche Töne, wodurch er Musik abspielen kann.

../_images/1.2.2_sch.png

Verdrahtungsdiagramm

Befolge diese Schritte, um die Schaltung aufzubauen:

  1. Verbinde die Basis des NPN-Transistors über den Widerstand mit PWM0.

  2. Verbinde den Emitter des Transistors mit der Stromversorgung (+).

  3. Verbinde den Kollektor des Transistors mit einem Anschluss des passiven Summers.

  4. Verbinde den anderen Anschluss des Summers mit Masse (-).

../_images/1.2.2_bb.png

Code

Der folgende Python-Code erzeugt musikalische Töne mit einem passiven Summer:

#!/usr/bin/env python3
from fusion_hat.modules import Buzzer
from fusion_hat.pwm import PWM
from time import sleep

# Initialize a TonalBuzzer connected to PWM 0
tb = Buzzer(PWM('P0'))  # Update this pin number based on your setup

def play(tune):
   """
   Play a musical tune using the buzzer.
   :param tune: List of tuples (note, duration), where each tuple represents a note and its duration.
   """
   for note, duration in tune:
      print(note)  # Output the current note being played
      tb.play(note,float(duration))  # Play the note on the buzzer
   tb.off()  # Stop playing after the tune is complete

# Define a musical tune as a sequence of notes and durations
tune = [('C#4', 0.2), ('D4', 0.2), (None, 0.2),
   ('Eb4', 0.2), ('E4', 0.2), (None, 0.6),
   ('F#4', 0.2), ('G4', 0.2), (None, 0.6),
   ('Eb4', 0.2), ('E4', 0.2), (None, 0.2),
   ('F#4', 0.2), ('G4', 0.2), (None, 0.2),
   ('C4', 0.2), ('B4', 0.2), (None, 0.2),
   ('F#4', 0.2), ('G4', 0.2), (None, 0.2),
   ('B4', 0.2), ('Bb4', 0.5), (None, 0.6),
   ('A4', 0.2), ('G4', 0.2), ('E4', 0.2),
   ('D4', 0.2), ('E4', 0.2)]


try:
   play(tune)  # Execute the play function to start playing the tune

except KeyboardInterrupt:
   # Handle KeyboardInterrupt for graceful termination
   pass

Dieses Python-Skript spielt eine Melodie mit einem passiven Summer, der an PWM 0 angeschlossen ist. Bei der Ausführung:

  1. durchläuft das Skript eine vordefinierte Folge von Noten (tune) und spielt jede Note für eine festgelegte Dauer.

  2. werden die Noten während der Wiedergabe in der Konsole ausgegeben, um eine visuelle Referenz zu bieten.

  3. stoppt die Melodie automatisch, sobald alle Noten abgespielt wurden. Der Summer gibt während der Pausen (wenn die Note None ist) keinen Ton aus.

  4. Das Programm kann mit Ctrl+C sauber beendet werden.