아두이노와 파이썬으로 컴퓨터 음량 조절하기 (pyserial, ctypes)
페이지 정보
작성자 홍예브 작성일16-07-27 11:29 조회9,603회 댓글1건관련링크
본문
안녕하세요 메카솔루션입니다.
이번에는 아두이노와 파이썬으로 서로 통신을 하면서 컴퓨터의 음량을 제어하는것을 알아보도록 하겠습니다.
파이썬으로 키보드 입력 제어하기!
본 프로젝트에서 사용될 파이썬 명령중 키보드 입력을 제어하는 방법에 대해서 알아보도록 하겠습니다.
import ctypes user = ctypes.windll.user32 HEX = 0xAD #가상키 코드 user.keybd_event(HEX,0,1,0) #키 내리기 user.keybd_event(HEX,0,2,0) #키 올리기 |
ctypes 는 파이썬의 기본함수가 아닌 외부함수를 사용할 수 있도록 해주는 라이브러리로, 윈도우즈의 DLL(동적 링크 라이브러리)에있는 함수를 불러다가 사용할 수 있습니다.
이러한 원리로 윈도우의 user32.dll 내부의 함수인 keybd_event 함수를 가져다 사용할 수 있습니다.
keybd_event함수와, 가상키 코드 목록에 대한 링크 입니다.
--------------------------------------------------------------
볼륨 조절에 사용하는 키보드 입력 알아보기
가상키 코드 목록을 보시면 가상 key를 제어하기위한 목록표가 있습니다.
volume을 검색해보니 음소거, 음량조절 등의 키보드입력을 찾아보았습니다.
이를 이용해서 아두이노가 해당 코드를 입력하면 가상키보드입력이 이루어지도록 코드를 작성하면 되겠습니다.
--------------------------------------------------------------
파이썬으로 시리얼 통신하기
파이썬에서 시리얼 통신을 하기위해서는 pyserial이라는 라이브러리를 설치해주셔야합니다.
(라즈베리 파이 환경에서는 이미 설치 되어 있지만 윈도우에서는 설치 되어있지 않습니다.)
win+r 을 눌러주시고, CMD를 입력해 명령 프롬포트를 실행 해 주도록 합니다.
(라즈베리 파이 환경에서는 이미 설치 되어 있지만 윈도우에서는 설치 되어있지 않습니다.)
win+r 을 눌러주시고, CMD를 입력해 명령 프롬포트를 실행 해 주도록 합니다.
CMD 창에 다음 명령을 입력해줍니다.
pip install pyserial
설치가 완료되면 python에서 pyserial을 사용가능합니다.
다음의 소스코드로 테스트해봅시다.
다음의 소스코드로 테스트해봅시다.
import serial ser = serial.Serial() ser.port = 'COM33' #시리얼 포트 선택 ser.baudrate = 9600 #통신속도 선택 ser.open() #시리얼 포트 열기 while(True): #무한반복 if(ser.inWaiting() > 0): #수신받은 데이터가 0개 보다 많으면 ser.write(ser.read())#읽어들인 값을 출력함 |
--------------------------------------------------------------
아두이노 소스코드 작성하기
저는 음량조절과 음소거를 제어하기 위해, 엔코더를 사용하고자 합니다.
http://blog.naver.com/roboholic84/220771287560
위 링크에서 엔코더의 기본 소스코드와 회로도를 확인할 수 있습니다.
본예제에서 사용되는 소스코드는 다음 링크에서 보실 수 있습니다.
--------------------------------------------------------------
파이썬 아두이노 통신 소스코드
본 소스코드는 다음 링크에서 확인 할 수 있습다.
--------------------------------------------------------
동작확인
댓글목록
홍예브님의 댓글
홍예브 작성일ㅠㅠ 글 작성한게 뒷부분이 잘려서 올라갈때가 있는거같아요 ㅠㅠ
최신댓글