ASRock BC-250 보드 RAZER CORE X CHROMA 에 설치하기 4

RAZER CORE X CHROMA 에 있는 12V 전원 을 사용하는 허브 보드를 설계중이다. 새로 설계되는 허브에는 4개의 USB 2.0 포트, 이더넷 포트를 통한 오디오 출력, 오디오 엠프 회로, 전원 감지 및 오디오 엠프 컨트롤을 위한 MCU 가 포함되어있다. 전원 소스는 12V 와 5VSB 를 사용하며, MCU 만 5VSB 를 사용하고 나머지 장치들은 12V 를 사용하도록 설계하였다. 보드 고정의 경우 RAZER CORE X CHROMA 에 장착 되어있던 PCIE 허브 카드의 브라켓을 그대로 사용할수 있도록 설계하였다. 핀 헤더를 통해 BC-250 의 USB 2.0 포트에 납땜하여 사용할 목적으로 설계 되었다. USB 2.0 포트 하나를 희생해서 사용한다. USB 허브 전원은 BC-250 에서 가져오지 않고 내부 전원 회로에서 컨버팅 된 5V3A 전원을 커런트 리미트로 제한하여 사용하도록 설계하였다. 그리고 이 보드에는 BC-250 전원이 꺼졌는지 감지하여 먼저 제작 하였던 PSU 컨트롤러로 신호를 보내주는 회로가 설계되어 지난번에 우려 했던 PSU 가 꺼지지 못하는 상황을 방지 할 수 있다.  오디오 엠프를 넣은 것은 개인적인 욕심인데 스피커를 내장하기 위함이다. 엠프를 넣지 않았다면 사이즈도 더 작아지고 설계도 많이 쉬웠을 것이다. 가장 큰 걸림돌은 USB 포트와 이더넷 포트의 위치를 바꿀 수 없다는 것 이다. 아직 수정해야 할 부분이 많아서 먼저 설계했던 브라켓이 오기 전까지는 설계를 확정 할 수 없다.

[Python] - 블루투스 모듈 HC-06의 MAC 주소를 이용하여 통신 포트 찾기

BlunoBeetle 버전의 경우는 BlunoBeetle(피버시노) 과 BlunoLink(PC쪽 수신기) 가 무선을 해결해 주었기 때문에 PC가 직접 블루투스로 연결되지 않았다. 게다가 BlunoLink 의 시리얼 넘버도 한 자리로 잡혔었기 때문에 반쪽짜리 성공이였다. 하지만 지난번에 만든 블루투스 모듈(HC-06)을 이용한 피버시노는 PC와 직접 블루투스로 연결된다. 초기 버전의 피버시노가 시리얼 넘버를 이용하여 통신포트를 찾았다면 이번에는 블루투스 장치의 MAC 주소를 이용하여 통신 포트를 찾아 보려고 한다.


  • HC-06의 MAC 주소 알아내기
우선 블루투스 모듈의 MAC 주소를 알아내야한다.
MAC 주소는 생각보다 어렵지 않게 알아낼 수 있는데 바로 장치관리자에서 알아낼 수 있다.
이 방법 말고도 파이썬을 이용해서 알아내는 방법도 있다. 하지만 파이썬에서는 뭐가 MAC주소인지 알기 어려우니 장치관리자에서 알아보는 것이 좋다.


HC-06을 PC에 설치한 후 장치관리자에 보면 위와같이 2개의 직렬 포트가 열린것을 확인 할수 있다. 각각 송신과 수신이라고 보면 된다. 간혹 장치를 제거하고 재연결 했을때 두 포트의 역활이 바뀌는 경우도 있다. 재미있는건 한 포트에서만 MAC주소가 검출된다는 것이다.

내 경우에는 COM7으로 부터 아두이노의 시리얼 신호를 수신하는데, 바로 이 수신 포트만 MAC 주소를 가지고 있다. 참고로 HC-06의 패스워드는 "1234" 이다.


해당 포트의 속성 > 자세히 > Bluetooth Device Address 로 이동하면 나오는 값이 MAC주소이다. 뭔가 의심스러운 사람은 스마트폰과 연결해보면 쉽게 확인 할 수 있다.

아래 사진은 스마트폰에서 잡히는 MAC 주소이다.





  • MAC 주소를 이용해 HC-06 통신 포트 찾기
장치관리자나 파이썬을 이용해 hwid(하드웨어ID) 를 찾아보면 다음과 같은 값을 확인 할 수 있다. 한 가지 아쉬운 점 이라면 파이썬에서 장치의 통신포트 정보만 이용하여 MAC 주소값만 뽑아올 수 있으면 좋겠지만 구현이 안되어 있는 것 같다.

[BTHENUM\{00001101-0000-1000-8000-00805F9B34FB}_LOCALMFG&0002\7&239BBA68&0&201807130C23_C00000000] 

이 값은 HC-06 모듈의 하드웨어 ID 인데 마지막 부분에 MAC 주소가 나와있다. 즉, hwid를 이용하면 MAC 주소로 통신 포트를 찾을 수 있다.

import serial.tools.list_ports 
def macAddfinder():
    
    dev = serial.tools.list_ports.comports()
    port=[]
    for com in dev:
            port.append((com.device, com.hwid))
    macAddress = "201807130C23"
    for device in port:
        if macAddress in device[1]:
            result= str(device[0])
            
    print("\nBluetooth MAC Address is [" + macAddress + "]\nDevice detected serial ports:")
    
    return result
          
if __name__ == '__main__':
    print("-> Port is [" + macAddfinder() + "]")
cs
이제 이 함수를 피버시노 파이썬 코드에 넣어주면 된다.
프로그램이 조금 느려졌다. 해결방법으로 지금은 알수 없지만 MAC 주소를 이용한 새로운 탐색 방법 이나, 최초 실행시 정보를 기록하여 다음 실행시 우선 참조하도록 하는 방법이 있다.

소스코드

Comments

Popular posts from this blog

[POE] - 패스 오브 엑자일 획득키 F 의 사용법 (Path of Exile)

[AD보드] - 맥북 패널을 모니터로 만들기 ( LP154WP4-TLA1 )

[Arduino] - HC-06를 이용해 PC 와 Arduino 블루투스 연결