나만의 작품 만들기 & 마무리¶
Part 3: 소리로 표현하기 🎵¶
🎯 이 장에서 배우는 것¶
- [ ] LED, 버튼, 부저를 조합해 나만의 작품을 만들 수 있다
- [ ] 전체 과정에서 배운 내용을 정리할 수 있다
- [ ] 다음 학습 방향을 알 수 있다
📚 핵심 개념¶
개념: 통합 프로젝트¶
지금까지 배운 모든 것을 하나로 합치는 시간이에요!
마치 레고 블록처럼, 각각 배운 LED, 버튼, 부저를 자유롭게 조합하면 다양한 작품이 탄생합니다.
flowchart LR
A[🔘 버튼] --> B[🧠 라즈베리파이]
B --> C[💡 LED]
B --> D[🔔 부저]
조합 아이디어: - 버튼 → 멜로디 = 초인종 - 버튼 → LED + 소리 = 알림 장치
🔨 따라하기: 나만의 초인종 만들기¶
Step 1: 회로 연결 확인¶
기존 연결 그대로 사용합니다:
- 버튼: GPIO 17
- LED: GPIO 18
- 부저: GPIO 27
Step 2: 통합 코드 작성¶
from gpiozero import LED, Button, Buzzer
from time import sleep
# 부품 연결
led = LED(18)
button = Button(17)
buzzer = Buzzer(27)
# 초인종 멜로디
def doorbell():
print("🔔 딩동!")
led.on()
# 딩~
buzzer.on()
sleep(0.3)
buzzer.off()
sleep(0.1)
# 동~
buzzer.on()
sleep(0.5)
buzzer.off()
led.off()
# 버튼 누르면 초인종 작동
button.when_pressed = doorbell
print("초인종 준비 완료! 버튼을 눌러보세요")
print("종료: Ctrl+C")
while True:
sleep(0.1)
실행 결과:
초인종 준비 완료! 버튼을 눌러보세요
🔔 딩동!
📝 전체 코드¶
from gpiozero import LED, Button, Buzzer
from time import sleep
led = LED(18)
button = Button(17)
buzzer = Buzzer(27)
def doorbell():
print("🔔 딩동!")
led.on()
buzzer.on()
sleep(0.3)
buzzer.off()
sleep(0.1)
buzzer.on()
sleep(0.5)
buzzer.off()
led.off()
button.when_pressed = doorbell
print("초인종 준비 완료!")
while True:
sleep(0.1)
⚠️ 주의할 점¶
무한루프 종료: Ctrl+C로 프로그램을 종료하세요. 강제 종료해도 괜찮습니다!
🎉 축하합니다!¶
🏆 수료를 축하합니다!¶
14차시 완주!
여러분은 이제 라즈베리파이로 하드웨어를 제어할 수 있는 사람입니다!
💡 LED 켜기 → 🔘 버튼 입력 → 🔔 소리 출력
"하드웨어가 더 이상 무섭지 않아요!"
📖 배운 내용 정리¶
| 차시 | 배운 것 | 핵심 코드 |
|---|---|---|
| 1차시 | LED 켜기/끄기 | led.on(), led.off() |
| 2차시 | 버튼 입력 받기 | button.when_pressed |
| 3차시 | 부저로 소리내기 | buzzer.on(), buzzer.off() |
🚀 다음 단계 추천¶
더 배우고 싶다면: 1. 센서 추가: 온도, 습도, 거리 센서 2. 모터 제어: 서보모터, DC모터 3. 네트워크: IoT 프로젝트 (원격 제어)
추천 검색어: "라즈베리파이 센서 프로젝트", "gpiozero 튜토리얼"
✅ 마지막 점검¶
- LED, 버튼, 부저를 동시에 제어할 수 있나요?
정답 확인
네! 각각 GPIO 핀에 연결하고, 함수 안에서 순서대로 제어하면 됩니다.- 이 과정에서 가장 중요했던 것은?
정답 확인
직접 해보는 것! 코드를 읽기만 하지 말고, 실행하고 수정해보세요.🔗 마무리¶
여러분은 14차시 전체 과정을 완주했습니다! 🎊
처음엔 낯설었던 GPIO, 회로, 코드가 이제는 친숙해졌을 거예요. 이 경험을 바탕으로 더 재미있는 프로젝트에 도전해보세요.
기억하세요: 모든 멋진 프로젝트는 LED 하나 켜는 것에서 시작했습니다! 💡