본문 바로가기
데스크탑 로봇/Roarm 시리즈

Waveshare Roarm-M2-S 파이썬 프로그램 - 시리얼 통신 USB 이용

by NDoLab 2025. 5. 24.

이 글은 Waveshare Roarm-M2-S를 USB 연결을 통해 Python Programming 하는 방법을 설명한다.

1 사전 설치 환경

  • Waveshare Roarm-M2-S 로봇암 (이하 Roarm)
  • Python이 설치된 PC (현재 Python 3.8,8 64bit, Windows 11)
  • PC와 Roarm을 USB로 연결 (Roarm의 ESP32 드라이브 설치)

주요사항

  • Roarm의 MCU인 ESP32의 드라이브는 Silicon Labs CP210x USB to UART Bridge(COM10)임

https://www.silabs.com/developer-tools/usb-to-uart-bridge-vcp-drivers

관련 문서

  • 'RoArm-M2-S Python UART Communication'

2 시리얼 통신 프로그램 작성

 

import serial
import argparse
import threading

def read_serial():
    while True:
        data = ser.readline().decode('utf-8')
        if data:
            print(f"Received: {data}", end='')

def main():
    global ser
    parser = argparse.ArgumentParser(description='Serial JSON Communication')
    #parser.add_argument('port', type=str, help='Serial port name (e.g., COM1 or /dev/ttyUSB0)')

    args = 'COM10'

    ser = serial.Serial('COM10', baudrate=115200, dsrdtr=None)
    ser.setRTS(False)
    ser.setDTR(False)

    serial_recv_thread = threading.Thread(target=read_serial)
    serial_recv_thread.daemon = True
    serial_recv_thread.start()

    try:
        while True:
            command = input(">")
            ser.write(command.encode() + b'\n')
    except KeyboardInterrupt:
        pass
    finally:
        ser.close()


if __name__ == "__main__":
    main()
  • 필요 시 python serial 통신 모듈 설치 pyserial 읽어보기 >
pip install pyserial

3 프로그램 실행

  • 프롬프트 ">" 이후에 JSON Command를 입력하면 USB를 통해 Roarm이 동작한다.
= RESTART: C:\Users\user\Desktop\20240915 ESP32 WROOM\RoArm-M2-S_python\RoArm-M2-S_python\serial_simple_ctrl.py
>{"T":1041,"x":235,"y":0,"z":234,"t":3.14}
>{"T":1041,"x":135,"y":0,"z":234,"t":3.14}
Received: {"T":1041,"x":235,"y":0,"z":234,"t":3.14}
>{"T":1041,"x":135,"y":100,"z":234,"t":3.14}
Received: 

>{"T":1041,"x":135,"y":0,"z":234,"t":3.14}
Received: {"T":1041,"x":135,"y":0,"z":234,"t":3.14}
>{"T":1041,"x":0,"y":0,"z":234,"t":3.14}
Received: 

>{"T":1041,"x":135,"y":0,"z":234,"t":3.14}
Received: {"T":1041,"x":135,"y":100,"z":234,"t":3.14}
>
= RESTART: C:\Users\user\Desktop\20240915 ESP32 WROOM\RoArm-M2-S_python\RoArm-M2-S_python\serial_simple_ctrl.py
>{"T":1041,"x":135,"y":0,"z":234,"t":3.14}
>{"T":1041,"x":135,"y":100,"z":234,"t":3.14}
Received: {"T":1041,"x":135,"y":0,"z":234,"t":3.14}

관련 문서

  • 'Roarm-M2-S JSON Command Meaning'
시험 중인 Roarm-M2-S, Copyright 2024 by NDoLab.

2024 NDoLab

2024/9/16 처음 2024/9/16

반응형