[실습] 버저(Buzzer)를 이용한 작은별 동요 실행
                
                    필기자                
                                                
            
            
                                2024-04-29 12:27
                                5,341
                0
                                            
        본문
        버저(Buzzer)를 이용한 작은별 동요 실행
목 적
1. 버저(Buzzer) 액츄레이터 모듈 설치

2. 버저(Buzzer) 액츄레이터 구동 및 응용

 

         
        
                
        	
                                    
                
                
                        
                            목 적
- 라즈베리파이에 버저(Buzzer) 액추레이터 사용법을 이해한다.
 - 버저(Buzzer) 액추레이터를 응용하여 단음 작은별 동요를 실행한다.
 
1. 버저(Buzzer) 액츄레이터 모듈 설치
2. 버저(Buzzer) 액츄레이터 구동 및 응용
2. 버저(Buzzer) 액츄레이터 구동 및 응용
1. 버저(Buzzer) 액츄레이터 모듈 설치
- 액티브 버저 모듈
	
- 액티브 버저 모듈은 전기 신호를 받았을 때 소리를 내는 장치임.
 - 내장된 발진 회로를 가지고 있어서 단순히 전원을 공급하면 특정 주파수로 소리를 낼 수 있음.
 - 액티브 버저는 로봇, 알람 시스템, 사용자 인터페이스 피드백 등 다양한 응용 프로그램에 사용됨.
 
 - 기본 사양
	
- 전원 공급: 일반적으로 3.3V 또는 5V DC
 - 소비 전류: 약 30mA
 - 작동 주파수: 주로 2kHz 내외
 - 소리 크기: 약 85 dB 정도
 
 - GPIO 연결
	
- VCC : 3.3V 또는 5V Power(핀 1 또는 2)
 - GND : Ground 접지(핀 2)
 - IN : 입력 핀으로 LOW 또는 HIGH 신호에 따라 버저가 활성화됨
		
- GPIO 17(핀 11)
 
 
 
2. 버저(Buzzer) 액츄레이터 구동 및 응용
- 기본 구동 프로그램 : 라즈베리파이 가상환경에서 파이썬 코딩
	
- VSCode에서 buzzer.py 파일 생성
 - GPIO 17핀(핀 11)을 출력 모드로 설정
 - GPIO 17핀을 순회하면 On/Off 코딩
 
 

import RPi.GPIO as GPIO
import time
# GPIO 모드 설정
GPIO.setmode(GPIO.BCM)
# 사용할 GPIO 핀의 번호를 설정한다. 여기서는 17번 핀을 사용한다.
BUZZER_PIN = 17
GPIO.setup(BUZZER_PIN, GPIO.OUT)
try:
    while True:
        # 부저를 켠다.
        GPIO.output(BUZZER_PIN, GPIO.HIGH)
        print("Buzzer on")
        time.sleep(1) # 1초 동안 대기
        # 부저를 끈다.
        GPIO.output(BUZZER_PIN, GPIO.LOW)
        print("Buzzer off")
        time.sleep(1) # 1초 동안 대기
except KeyboardInterrupt:
    # 프로그램 종료 시 GPIO 핀 상태를 초기화한다.
    GPIO.cleanup()
- 계이름 응용 구동 프로그램 : 라즈베리파이 가상환경에서 파이썬 코딩
	
- VSCode에서 buzzer_melody.py 파일 생성
 - 주파수 대역과 음 지속 시간을 이용하여 계이름(도레미파...시도) 소리 출력
 
 
import RPi.GPIO as GPIO
import time
# GPIO 모드 설정
GPIO.setmode(GPIO.BCM)
# Buzzer 핀 설정
BUZZER_PIN = 17
GPIO.setup(BUZZER_PIN, GPIO.OUT)
# PWM 인스턴스 생성 및 초기 주파수 설정
pwm = GPIO.PWM(BUZZER_PIN, 100)
pwm.start(0)
# 주요 음표의 주파수 (단위: Hz)
notes = {
    'C4': 261.63,
    'D4': 293.66,
    'E4': 329.63,
    'F4': 349.23,
    'G4': 392.00,
    'A4': 440.00,
    'B4': 493.88,
    'C5': 523.25  # 추가된 높은 도 음표
}
# 간단한 멜로디 (음표와 지속 시간)
melody = [('C4', 0.5), ('D4', 0.5), ('E4', 0.5), ('F4', 0.5),
          ('G4', 0.5), ('A4', 0.5), ('B4', 0.5), ('C5', 0.5)]  # 마지막 음을 높은 도로 변경
def play(note, duration):
    pwm.ChangeFrequency(notes[note])
    pwm.ChangeDutyCycle(50)  # 켜짐
    time.sleep(duration)  # 음표 지속 시간
    pwm.ChangeDutyCycle(0)  # 꺼짐
try:
    for note, duration in melody:
        play(note, duration)
        time.sleep(0.1)  # 음표 사이의 간격
finally:
    pwm.stop()
    GPIO.cleanup()
- 다음 작은별 악보를 보고 부저 프로그램을 완성하여라.
 

                                                
                                        
                                
댓글목록0