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 포트와 이더넷 포트의 위치를 바꿀 수 없다는 것 이다. 아직 수정해야 할 부분이 많아서 먼저 설계했던 브라켓이 오기 전까지는 설계를 확정 할 수 없다.

[Arduino] - 파이썬을 이용한 아두이노와 PC 시리얼 통신


파이썬의 시리얼 통신모듈인 pyserial 은 윈도우에서는 커뮤니테이션 포트(com port)를 이용해 장치와 통신을 할수 있게 해준다. 이 모듈을 사용하기 위해서는 pyserial 이 설치되어있어야 한다.

pip install pyserial 

다음은 class serial.Serial의 입력 인수들이다.
  • port – 장치 이름 (ex. COM17, dev/tty.usbserial 또는 tty.usbmodem 등)
  • baudrate (int) – 전송속도(baud rate) (ex. 9600, 115200 등)
  • bytesize – 데이터 비트수 ( FIVEBITSSIXBITSSEVENBITSEIGHTBITS )
  • parity – 패리티 검사 ( PARITY_NONEPARITY_EVENPARITY_ODDPARITY_MARKPARITY_SPACE )
  • stopbits – 정지비트 ( STOPBITS_ONESTOPBITS_ONE_POINT_FIVE,STOPBITS_TWO )
  • timeout (float) – 수신 제한시간 설정
  • xonxoff (bool) – (xon/xoff) 소프트웨어 흐름제어
  • rtscts (bool) – 하드웨어 흐름제어 (RTS/CTS)
  • dsrdtr (bool) – 하드웨어 흐름제어 (DSR/DTR)
  • write_timeout (float) – 송신 세한시간 설정
  • inter_byte_timeout (float) – Inter-character timeout, None to disable (default).
  • exclusive (bool) – 단독 엑세스 모드(exclusive access mode) 설정 (POSIX 에서 만 해당). 포트가 이미 독점 모드로 열려있는 경우 독점 모드로 사용될수 없다.
*RTS - Request To Send, CTS - Clear To Send
*DTR - Data Terminal Ready, DSR - Data Set Ready

일반적인 상황에서는 통신 포트 이름전송 속도만 신경써주면 된다. 하지만 몇몇 운영체제에서는 포트가 열리자마자 하드웨어 흐름 제어 기능이 자동으로 활성화되는 경우가 있다. 흐름제어가 활성화되면 rx tx 만으로는 통신이 되지 않게되니 필요한경우가 아니라면 다음과 같이 false를 주면된다.
serial.Serial(device_Port, 115200, timeout=1,
            xonxoff=False, rtscts=False, dsrdtr=False)
cs




ex) 아두이노에서 파이썬으로 문자열을 보내는 간단한 예제.
  • 아두이노
const char *line = "This is a serial communication test.";
void setup() {
    Serial.begin(112500);
}
void loop() {
    Serial.println(line);
    Serial.flush();
    delay(500);
}
cs
  • 파이썬
import serial
arduino_port = '통신 포트 이름'
serialFromArduino = serial.Serial(arduino_port, 115200, timeout=1)
while True:
    line = serialFromArduino.readline().decode("utf-8")
    print(line)
cs

물론 반대로 파이썬에서 아두이노로 데이터를 보내 LED나 모터를 제어하는 것도 가능하다.

시리얼 - 파이썬
시리얼 - 아두이노

Comments

Popular posts from this blog

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

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

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