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.
Verdrahtungsdiagramm
Befolge diese Schritte, um die Schaltung aufzubauen:
Verbinde die Basis des NPN-Transistors über den Widerstand mit PWM0.
Verbinde den Emitter des Transistors mit der Stromversorgung (+).
Verbinde den Kollektor des Transistors mit einem Anschluss des passiven Summers.
Verbinde den anderen Anschluss des Summers mit Masse (-).
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:
durchläuft das Skript eine vordefinierte Folge von Noten (
tune) und spielt jede Note für eine festgelegte Dauer.werden die Noten während der Wiedergabe in der Konsole ausgegeben, um eine visuelle Referenz zu bieten.
stoppt die Melodie automatisch, sobald alle Noten abgespielt wurden. Der Summer gibt während der Pausen (wenn die Note
Noneist) keinen Ton aus.Das Programm kann mit
Ctrl+Csauber beendet werden.