macOS 에서 리산테크 AVR FLASHER 10 사용하기

![img_1](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh_UQMMViB7Of1FnJHfsB5xeHz97bHSsjJk1JtteJCBYDswq109E_WFqRIsOuYLcGFQ2UXLdkERQHWFspN9JUUzCywiamd4JVcXVp3fPrjd0kMElJ2wlAC6fZlICVxuw6JV3bSRDRQBpITNEQgEWaCBStmQwkSV9yVxjOcZUX_XTVnxlxohNqYlUvRKls/s4000/KakaoTalk_Photo_2025-01-04-00-14-17.jpeg) AVR 프로그래밍에 주로 사용하는 리산테크의 AVR FLASHER 10 제품이다. 총 10개의 서로다른 펌웨어를 저장하여 PC 없이도 타겟 장치의 전원으로 펌웨어 다운로드가 가능하다. 펌웨어 다운로드가 고속으로 이루어지기 때문에 아주 편하다. 최근 윈도우 데스크탑 보다 맥북으로 작업을 하는 상황이 많아지면서 이 장비를 사용하는데에 소프트웨어 지원이 윈도우만 되기때문에 불편함을 격고 있었다. 이것때문에 윈도우 노트북을 장만하는건 말이 안되는거 같고 그렇다고 매번 데스크탑을 켜는것도 불편하고 고민만 하고 있었다. 예전에는 부트캠프를 사용해 윈도우 용 프로그램을 쉽게 사용할수 있었지만 맥북이 애플실리콘을 사용하면서 이런점은 살짝 불편해 졌다고 볼수도있다. 호환성이 많이 좋아졌다고 하지만 예전에 Whisky로 시도했다가 실패한 경험이 있었기 때문에 큰 기대는 하지 않으려고했다. 아직 가상화는 시도해보지 않았는데 UTM 은 좀 쓰기가 불편했고 Parallels 는 과금방식이 전부터 마음에 들지 않았다. 사실 개인 사용 목적으로는 VMWare가 무료이기 때문에 다른 선택지가 없다. ![img_2](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjl6Piz058YvIQ1Wv-lqH-lgM7cpMD1KP4Qps0jIAQ2KPVy8mK51ecO-iCA4eH3teAte-Kk...

[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)

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

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