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

주문 제작 하였던 브라켓이 도착하였다.  재질은 철이 아니고 알루미늄이라 그런지 상당히 가볍고 잘못하면 휘어질 것 같은 느낌이 든다. 제작하고 수령하기 까지 거의 3주라는 긴 시간이 걸렸다. 원래 이렇게 까지 걸리진 않는데 원인은 가공 엔지니어로 부터 온 메일을 확인하지 않고 3일이나 흐른 뒤에 답장을 하였고, 연말 기간도 걸려서 늦어져 버렸다. BC-250 카드에 기존 브라켓을 제거하고 새로 설계한 브라켓을 달아보니 아주 잘 맞았다. 버튼도 잘 눌리고 이더넷, USB, DP 포트 모두 사용에 문제가 없다. 이렇게 보고 나서 알아차린 부분이지만 하단 쪽에 고정 다리를 추가한다는 것을 빼먹었다. 다시 만드는 건 금액도 만만치 않았기 때문에 수정해서 발주를 다시 넣지는 않을 예정이고 튼튼하게 고정하기 위해 다른 솔루션을 찾아 보려고 한다. 사실 브라켓을 설계한 건 설치 문제도 있지만 완성된 시스템이 외관상으로 봤을 때 튀는 부분 없이 완성도가 높아 보이길 원했기 때문이다. 이렇게 보니 모양도 그럴싸하고 원래 이런 제품일지도 모른다는 착각도 든다. 타공 모양도 벌집 모양으로 했으면 더 완벽했겠지만 만드는 동안에는 그런 생각 없이 만들었기 때문에 큰 후회는 없다. 장착 되어있던 USB 허브 보드 대신 사용될 PCB도 도착하였다. 기존 허브 보드와 비교하자면 사이즈만 많이 커졌지만 브라켓과 호환이 되는지 확인하였고 장착하는 데는 문제가 없을 것으로 예상하고 있다.  지금 보니 오디오 앰프가 꼭 있어야 했는지 살짝 욕심이 과했다는 생각도 든다. 조립에 사용될 부품들은 아직 수급 중이며 차근차근 조립을 해 나갈 예정이다. 먼저 설계했던 PSU 전원 컨트롤 보드는 다음과 같이 장착 되었고 주요 동작에는 큰 이상이 없으나 몇 가지 수정 사항이 생겼다. 수정 사항은 허브 보드을 새로 설계하면서 발생한 것으로 두 보드 간에 별도의 통신 선이 연결된다. 사실 이렇게 기능을 분리할 필요는 없었는데 첫 번째로 만든 보드에서 하드웨어 적으로 누락된 기능이 있기 때문에 허...

[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 블루투스 연결