ㅇ 일 자 : 2026년 5월 26일(화)
1. 아두이노 환경에서 전자키보드를 만드는 보드와 회로 연결하기

// 예제 [전자 키보드 만들기] 365p
const int melody[] = { // 음계별 주파수를 저장한 변수 선언
262, // 도 주파수
294, // 레 주파수
330, // 미 주파수
349, // 파 주파수
392, // 솔 주파수
440, // 라 주파수
494, // 시 주파수
523, // 도 주파수
};
const int PIEZO_PIN = 13; // 피에조(검은색 원형 볼륨모양) 스피커에 연결된 디지털 핀번호
void setup() {
for (int i=6; i<=13; i++) { // 디지털 버튼 6-13번 핀
pinMode(i, INPUT); // 디지털 핀을 입력 모드로 설정
}
Serial.begin(9600); // 직렬 통신 초기화
}
void loop() {
int index0fMelody = readNote(); // 누름 버튼을 구분해서 음계 선택
if (index0fMelody > -1)
tone(PIEZO_PIN, melody[index0fMelody], 200); // 선택된 음계를 200ms 동안 재생
delay(50); // 버튼 누른 시간 고려 일정시간 지연시킨다.
}
int readNote() { // 누른 버튼에 따라 melody 배열의 인덱스값을 반환하는 함수
int index = -1; //인덱스 초기값
for (int i=6; i<=13; i++) { // 디지털 버튼 6번-13번
int buttonValue = digitalRead(i); // 버튼의 입력값 읽기 반복
if (buttonValue == HIGH) // 버튼을 누르면
index = i-6; // melody의 인덱스값 계산
}
Serial.println(index); // 직렬 모니터에 인덱스값 출력
return index; // 인덱스값 반환
}
기술의 발전
전자피아노를 예로 들면 피아노에 기본적인 음악 사운드를 저장해 놓고 건반으로 입력하여 연주를 하기도 한다. 전자키보드는 시그널을 보내 소스코드 값을 지정한데로 출력하고, 키보드를 눌러 소리를 낸다.
2024년에는 국내 최초로 AI 작곡가(이봄)를 개발하여 배틀에 음악들을 사용했다. 빅데이터가 필요한 기존 생성형 AI와는 다른 기술이 적용됐다. 즉 개발자 안 소장이 연구 중인 ‘합성형 AI’ 기술이 활용됐다.
이는 ”기존 생성형 AI처럼 데이터만 넣고 끝나는 게 아니라 데이터 사용은 최소화하고 이론적인 지식들을 함께 믹스하는 방식“이다.
이봄은 음악 콘텐츠만 대량으로 학습하는 게 아니라 음악 이론을 기초로 음을 익히고, 코드를 학습한 뒤 작곡과 연주를 한다.
전문가 지식과 노하우를 접목했기 때문에 일반 생성형 AI처럼 많은 데이터가 필요하지 않다. 데이터 사용을 최소화해 에너지 소모를 줄이고 노트북으로도 구동이 가능하다.
문자를 만들고 도시 문명을 이루고 수학과 과학 지식을 발견한 인류는 21세기 들어 '로봇자동화'를 통한 스마트 제조, 초고속 무선 인터넷 통신 등 최첨단 기술을 개발했다.
아두이노는 이러한 첨단기술에 앞서 어떠한 기계와 프로그램간 연동을 통해 더 낳은 기술에 적용하고 있다.
2. 프로그램을 개발 하는 구성원
프로그램을 개발하는데는 다양한 구성원이 함께 하여 하나의 프로젝트가 완성된다. 이처럼 다양한 직위에 구성원들이 있기에 개발자가 아니더라도 프로그램 '기획'에 대해 이끌어 가는 기획자도 고민해 볼 만 하다. 책과 전공지식 등 개인이 공부 것에 대한 카테고리에 따라 어떤 프로그램을 개발해 볼수 있을까 기획을 해볼 수도 있다.
프로그램을 개발하는 팀은 기획, 디자인, 개발, 관리, 품질 보증 등 다양한 역할을 가진 전문가들로 구성
- PM (Project Manager / 제품 관리자): 프로젝트의 전체 일정, 예산, 리소스를 관리하며 팀 간의 의견을 조율
- PO (Product Owner / 제품 책임자): 제품의 비전과 요구사항을 정의하고, 개발할 기능의 우선순위를 결정
- 기획자 (Product Designer / Planner): 사용자 요구사항을 분석하여 프로그램의 구조와 상세 기능 흐름을 설계
- UI/UX 디자이너: 사용자가 프로그램을 편리하고 아름답게 사용할 수 있도록 화면 구성(UI)과 사용자 경험(UX)을 디자인함
- PL (Project Leader / 개발 리더): 개발 파트의 리더로서 기술적인 설계를 책임지고 개발자들을 가이드 한다.
- 프론트엔드 개발자 (Frontend Engineer): 사용자가 직접 눈으로 보고 조작하는 웹사이트나 앱의 화면을 개발 한다.
- 백엔드 개발자 (Backend Engineer): 눈에 보이지 않는 서버, 데이터베이스, API를 구축하고 데이터 로직을 처리 한다.
- 풀스택 개발자 (Full-Stack Engineer): 프론트엔드와 백엔드 개발을 모두 수행할 수 있는 개발자
- QA 엔지니어 / 테스터 (Quality Assurance): 완성된 프로그램에 오류가 없는지 테스트, 품질 표준을 만족하는지 검증
- 데브옵스 엔지니어 (DevOps / Infra): 개발된 프로그램이 서버에 안정적으로 배포, 원활하게 운영되도록 시스템 인프라 관리
3. 후 기
아두이노는 좁은 범위에서부터 큰 범위에 이르기까지 전기전자 및 컴퓨터 공학을 두루 어루러지게 하는 학습이다. 일상생활에서 사용하는 모든 기계와 관련된 용품들이 그렇다. 우리는 편리하게 사용하는 전자제품과 기계 설비 들이 모두 백그라운드에서 상호 연동되어 실시간 프로그램으로 가동되는 것을 알고 있는 사실이다. 그렇다면 좀더 편하고 좀더 저렴하고, 좀더 빠르게 구동할 수 있는 개발 방식은 어떤 것들이 있는지에 대한 의문이 생긴다. 과학의 발전은 호기심에서 시작된다는 말이 있듯이 모든 개발은 호기심과 관심에서 시작된다.
프로그램을 개발하는 데는 많든 구성원들이 한팀이 되어 움직이듯 관리, 기획, 디자인, 개발 등 세분화 되어 다양한 업무를 분담하게 된다. 전혀 다른 분야에 새로운 도전은 호기심이 많은 분야이다. 앞으로 "도전은 계속된다."
'학습 로그 > Aduino' 카테고리의 다른 글
| D+31 [아두이노] Aduino 환경에서 조건문, 함수 활용한 제어 실습 (0) | 2026.05.20 |
|---|---|
| D+30 [아두이노] 시뮬레이터+키트 를 활용한 "실습" (0) | 2026.05.19 |
| D+29 [아두이노] PIR 센서로 현관등 만들기 (0) | 2026.05.18 |
| D+25 [아두이노] Arduino 입문 및 실습 (0) | 2026.05.12 |