Copyright (C) 커널연구회 (www.kernel.bz)문서작업: 정재준(rgbi3307 골뱅이 nate.com)문서위치 메인(출처): http://www.kernel.bz/SmartPrince아래 내용은 누구나 사용할 수 있습니다.단, 저자정보는 지우지 말고 공유하시고 출처를 기입해 주시기 바랍니다.마지막 수정일: 2019-02-20 커널연구회에서 설계하여 제작한 SmartMotor 모듈의 외형은 아래 사진과 같다. 이 모듈의 제품 모델명은 B06_SmartMotor(V03)이다. 이 보드는 SmartPower 모듈에서 라즈베리파이 40핀 I/O핀에 장착할 수 있고, 아두이노 헤더핀과도 호환된다. Cortex-M0(STM32F0) MCU가 내장되어 있어서 모듈 독립적으로 DC 모터 4개(4륜구동)를 PWM 신호로 속도와 방향을 제어할 수 있다. DC 모터는 시중에서 판매하는 일반적인 5V 전압에서 동작하는 것을 사용하면 된다. 또한 스테핑 모터와 Servo 모터도 확장핀을 통하여 연결가능하다. SmartMotor 모듈에 있는 마이크로 USB 포트를 PC에 연결하고 PC에서 시리얼통신 터미널을 실행하여 AT 명령어로 모터를 쉽게 제어할 수 있다. 또한 라즈베리파이와 아두이노와 결합하여 이동형 로봇 제작에 활용할 수도 있다. 좀더 자세한 내용들은 아래부터 설명된다. 5V DC모터 2개, Servo 모터 2개, Stepping 모터 1개 연결 제품은 아래 링크에서 구매 가능합니다.https://www.kernel.bz/product/SmartMotor 커널연구회 SmartMotor 시연 동영상 하드웨어 제원 및 기능먼저, B06_SmartMotor(V03)의 하드웨어 제원 및 기능에 대해서 알아보도록 하자. 아래 사진은 이 모듈의 외형을 보여주는 것이다. SmartMotor 모듈(V03) 외형 SmartMotor(V03) 모듈 제원 및 기능요약 보드 크기는 가로 53mm, 세로 70mm (아두이노 헤더핀 호환) Cortex-M0(STM32F0) MCU 내장 5V DC 모터 4개 제어(4륜구동) PWM 신호로 모터 속도 및 방향 제어 5V Servo 모터 2개 제어 5V Stepping 모터 1개 제어 외부 확장 헤더핀(20핀) 제공하여 ADC 센서 4개, 외부 GPIO 6개 연결가능 마이크로 USB포트에 PC의 시리얼통신 터미널을 연결하여 AT 명령어로 동작 제어 아래 부터는 이 SmartMotor(V03) 모듈에 있는 각각의 부품별 기능을 설명한다. B06_SmartMotor(V03) 상단부 설명 아래 동영상은 커널연구회 SmartMotor에 대해서 기술적인 내용을 설명한 내용이다. SmartMotor 기술 세미나 동영상 헤더핀 연결 정보SmartMotor는 아두이노 헤더핀과 호환된다. 아래의 핀맵 정보를 확인하여 장치들과 연결할 수 있다. 헤더핀 회로도 보드에 인가되는 전압은 5V, 12V 모두 사용 가능하다. 아두이노 보드를 통하여 5V만 입력해도 되고, SmartMotor 보드에 12V을 인가해도 된다. 배터리(리툼이온 18650타입) 전원은 3.7V를 2개 직렬로 연결하여 7.4V를 12V핀에 인가한다. PE8(VIN_TRIG_GPIO4)핀은 SmartMotor 보드에 인가되는 전원을 차단하고자 할 때 사용한다. PE8에 Low 신호가 입력되면 SmartMotor 보드 전원이 차단된다. 아두이노 및 외부 장치간에 시리얼, I2C, SPI 데이터 통신 및 인터럽트 처리는 위의 핀번호를 참조하여 프로그래밍할 수 있다. 확장핀 연결 정보 연결핀 회로도 확장핀에 연결해서 사용하는 방법은 아래부터 설명된다. 윈도우 PC에 연결방법아래 사진처럼, SmartMotor 모듈에 있는 마이크로 USB 포트를 윈도우가 설치되어 있는 PC에 연결한다. USB연결선을 PC에 장착만 하면, USB로부터 5V 전원이 공급되므로 SmartMotor 모듈 하나는 충분히 동작된다. 마이크로 USB 포트를 윈도우PC에 연결 윈도우의 장치 관리자를 확인해 보면 아래와 같이 _SmartPower의 시리얼 장치가 자동 인식된다. 커널연구회는 SmartMotor 모듈에 USB 시리얼(UART) 장치로 Silicon Labs사의 CP2102 IC를 사용했다. 이 장치는 PC에 기본적으로 드라이버가 설치되어 있으므로 별도로 드라이버를 설치하지 않아도 자동으로 인식된다. PC의 장치관리자에서 USB 시리얼(UART) 통신 장치의 포트 번호를 확인한다. 위의 그림에서는 COM4 포트이다. (포트 번호는 PC마다 달라질 수 있다.) PC에서 시리얼 터미널 프로그램을 실행한다. 윈도우 시리얼 터미널이나 Putty, SecureCRT등 사용하기 편한 시리얼 터미널 프로그램을 실행하면 된다. 실행한 시리얼 터미널 프로그램의 시리얼 통신 설정(옵션) 메뉴에서 시리얼 옵션들을 다음과 같이 설정한다. 시리얼 통신 옵션 설정 시리얼 Baud rate는 115200, Data bits는 8, Parity는 None, Stop bits는 1로 설정하고, Flow control는 모두 체크하지 않는다. 위와 같이 시리얼통신 옵션들을 설정한후, SmartMotor 보드의 리셋 버턴을 한번 눌러주면 시리얼 터미널 화면에 아래와 같은 메시지들이 출력되면서 동작을 시작한다. 부팅 로그 메시지 user_uart_init(USART1): [OK]user_uart_init(USART2): [OK]user_timer6_init(): [OK]user_timer7_init(): [OK]user_pwm_init(): [OK]user_spi_init(SPI2): [OK]usr_adc_dma_init(): [OK](c)www.kernel.bz B06_SmartMotor_V03 Started 시리얼 터미널에 키보드로부터 AT? 라고 명령을 입력하면 다음과 같은 AT 명령어 사용법(도움말)이 출력된다. 이 명령어들의 자세한 사용법은 다음절부터 자세히 설명한다. AT 명령어 도움말 -------- Module Version -----------------------------------------B06_SmartMotor_V03(edu) (c)www.kernel.bz-------- DC Motor Control Command ----------------------------------AT+MOTR=n,s,c Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100) Count(c:Motor Running Time Counter)AT+MDIR=n,d Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL) Direction(d:0=CCW, 1=CW)AT+MDTR=n,s,d,c Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100) Direction(d:0=CCW, 1=CW) Count(c:Motor Running Time Counter)AT+MSTP=n STOP(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL)-------- STEP Motor Control Command ----------------------------------AT+STEP=c,d,s Stepping Motor(c:cw/ccw, d:degree, s:speed) CW/CCW(c:0=CW, 1:CCW) Degree(d:0=20,1=40,2=60,3=80,4=100,5=120,6=140,7=160,8=180,9=200) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100)-------- Servo Motor Control Command ----------------------------------AT+SRVO=n,d Servo Motor(n:1=Servo Motor1, 2=Servo Motor2) Center/Left/Right(d:0=Center, 1=Left, 2=Right)-------- Motor Total Loop Test ----------------------------------AT+TEST=n n:Test Loop Count OK 리눅스 PC에 연결방법아래 사진처럼, SmartMotor 모듈에 있는 마이크로 USB 포트를 리눅스가 설치되어 있는 PC에 연결한다. USB연결선을 PC에 장착만 하면, USB로부터 5V 전원이 공급되므로 SmartMotor 모듈 하나는 충분히 동작된다. 마이크로 USB 포트를 리눅스 PC에 연결 위와 같이 연결했다면, 리눅스 터미널에서 다음과 같은 리눅스 명령어를 입력하여 SmartMotor 모듈의 USB 시리얼통신 장치가 연결되었는지 확인한다. (별도로 설정하지 않아도 자동으로 연결된다) $ dmesg | grep tty [ 0.000000] console [tty0] enabled[ 247.957798] usb 2-2: cp210x converter now attached to ttyUSB0 아래 명령어로 SmartMotor 모듈의 USB 시리얼 장치가 /dev/ttyUSB0 노드에 연결되어 있음을 확인할 수 있다. $ ll /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Mar 31 18:44 /dev/ttyUSB0 이제, 리눅스 명령창에서 시리얼 터미널 프로그램을 실행한다. 리눅스에서는 minicom을 시리얼 터미널 프로그램으로 많이 사용한다. 이 프로그램이 설치되어 있지 않다면, 다음과 같이 설치한다. $ sudo apt-get install minicom 이제 minicom을 다음과 같이 실행한다. (루트 권한으로 실행) $ sudo minicom 실행 메시지가 다음과 같이 화면에 출력된다. Welcome to minicom 2.6.1 OPTIONS: I18nPort /dev/ttyUSB0 Press CTRL-A Z for help on special keys 시리얼통신 포트가 위와 같이 /dev/ttyUSB0로 설정되어 있지 않고, 통신 속도(baud rate)도 115200으로 설정되어 있지 않다면, 키보드에서 Ctrl-A를 누른후 O 키를 눌러서 다음과 같이 옵션 설정 메뉴로 진입한다. +-----[configuration]------+ | Filenames and paths | | File transfer protocols | | Serial port setup | | Modem and dialing | | Screen and keyboard | | Save setup as dfl | | Save setup as.. | | Exit | +--------------------------+ 화살표를 아래로 눌러서 세번째 메뉴인 Serial port setup을 선택한후 엔터하면 아래와 같이 설정 옵션 메뉴가 나타난다. +-----------------------------------------------------------------------+ | A - Serial Device : /dev/ttyUSB0 | | B - Lockfile Location : /var/lock | | C - Callin Program : | | D - Callout Program : | | E - Bps/Par/Bits : 115200 8N1 | | F - Hardware Flow Control : No | | G - Software Flow Control : No | | | | Change which setting? | +-----------------------------------------------------------------------+ 화면에 나타난 옵션들을 위와 같이 맞추어 준다. 그런다음 다시 상위 메뉴로 돌아가서 Save Setup as dfl 메뉴를 엔터하여 설정내용을 저장하고 Exit하여 빠져 나온다. +-----[configuration]------+ | Filenames and paths | | File transfer protocols | | Serial port setup | | Modem and dialing | | Screen and keyboard | | Save setup as dfl | | Save setup as.. | | Exit | +--------------------------+ 위와 같이 시리얼통신 옵션들을 설정한후, SmartMotor 보드의 리셋 버턴을 한번 눌러주면 minicom 시리얼 터미널 화면에 아래와 같은 메시지들이 출력되면서 동작을 시작한다. 부팅 로그 메시지 user_uart_init(USART1): [OK]user_uart_init(USART2): [OK]user_timer6_init(): [OK]user_timer7_init(): [OK]user_pwm_init(): [OK]user_spi_init(SPI2): [OK]usr_adc_dma_init(): [OK](c)www.kernel.bz B06_SmartMotor_V03 Started 시리얼 터미널에 키보드로부터 AT? 라고 명령을 입력하면 다음과 같은 AT 명령어 사용법(도움말)이 출력된다. 이 명령어들의 자세한 사용법은 다음절부터 자세히 설명한다. AT 명령어 도움말 -------- Module Version -----------------------------------------B06_SmartMotor_V03(edu) (c)www.kernel.bz-------- DC Motor Control Command ----------------------------------AT+MOTR=n,s,c Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100) Count(c:Motor Running Time Counter)AT+MDIR=n,d Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL) Direction(d:0=CCW, 1=CW)AT+MDTR=n,s,d,c Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100) Direction(d:0=CCW, 1=CW) Count(c:Motor Running Time Counter)AT+MSTP=n STOP(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL)-------- STEP Motor Control Command ----------------------------------AT+STEP=c,d,s Stepping Motor(c:cw/ccw, d:degree, s:speed) CW/CCW(c:0=CW, 1:CCW) Degree(d:0=20,1=40,2=60,3=80,4=100,5=120,6=140,7=160,8=180,9=200) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100)-------- Servo Motor Control Command ----------------------------------AT+SRVO=n,d Servo Motor(n:1=Servo Motor1, 2=Servo Motor2) Center/Left/Right(d:0=Center, 1=Left, 2=Right)-------- Motor Total Loop Test ----------------------------------AT+TEST=n n:Test Loop Count OK AT 명령어 사용법SmartMotor 모듈과 PC간에 USB 시리얼 라인이 연결되고 옵션들이 정상적으로 설정되었다면 AT 명령어들을 사용하여 SmartMotor 모듈에 프로그램되어 있는 펌웨어 기능들을 동작시킬 수 있다. (혹시 동작하지 않는다면 앞의 연결과정을 다시한번 점검해 주기 바란다) 참고로, AT 명령어들은 소문자/대문자 구분없이 입력하면 되고, SmartMotor 모듈 내부에서는 모두 대문자로 변환하여 동작된다. 도움말(사용법) 확인하기시리얼 터미널 창에서 키보드로부터 AT? 을 입력하고 엔터하면 다음과 같은 도움말이 화면에 출력된다. B06_SmartMotor_V03는 모듈의 모델명과 버전이다. 명령어들은 크게 5가지로 나누어져 있다. 첫째는 DC 모터들의 속도를 제어하는 명령들(AT+MOTR=)이고, 둘째는 모터의 방향을 제어하는 명령어들(AT+MDIR=)이고, 셋째는 모터 동작을 정지하는 명령어들(AT+MSTP=) 이고, 네째는 스테핑 모터를 제어하는 AT+STEP=이고, 다섯째는 Servo 모터를 제어하는 AT+SRVO=이다. 이것들에 대해서 아래부터 자세히 사용법을 설명한다. AT 명령어 도움말 -------- Module Version -----------------------------------------B06_SmartMotor_V03(edu) (c)www.kernel.bz-------- DC Motor Control Command ----------------------------------AT+MOTR=n,s,c Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100) Count(c:Motor Running Time Counter)AT+MDIR=n,d Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL) Direction(d:0=CCW, 1=CW)AT+MDTR=n,s,d,c Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100) Direction(d:0=CCW, 1=CW) Count(c:Motor Running Time Counter)AT+MSTP=n STOP(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL)-------- STEP Motor Control Command ----------------------------------AT+STEP=c,d,s Stepping Motor(c:cw/ccw, d:degree, s:speed) CW/CCW(c:0=CW, 1:CCW) Degree(d:0=20,1=40,2=60,3=80,4=100,5=120,6=140,7=160,8=180,9=200) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100)-------- Servo Motor Control Command ----------------------------------AT+SRVO=n,d Servo Motor(n:1=Servo Motor1, 2=Servo Motor2) Center/Left/Right(d:0=Center, 1=Left, 2=Right)-------- Motor Total Loop Test ----------------------------------AT+TEST=n n:Test Loop Count OK DC 모터들을 테스트하기 전에 아래와 같이 SmartMotor 보드에 DC 모터를 연결한다. DC모터는 시중에서 판매되는 5V 전압용 모터를 사용한다. DC모터 속도 제어하기DC 모터 속도 제어는 다음과 같이 AT+MOTR=n,s,c 명령어에 옵션들을 주면 된다. n옵션은 모터를 선택하는 번호이고, s옵션은 모터 속도를 결정하는 번호이다. c옵션은 모터가 회전되는 시간을 조정한다. 모터 속도는 s옵션의 번호 크기가 1 증가할때마다 비례하여 10%씩 빨리 회전한다. c옵션은 모터가 회전되는 시간을 10ms 단위로 조정한다. c옵션에 1을 입력하면 모터가 10ms 시간동안 회전하고 멈춘다. 10을 입력하면 100ms, 100을 입력하면 1000ms(1초)동안 회전하다. c옵션에는 최대 9999999까지 입력할 수 있다. c옵션에 값을 입력하지 않으면 모터는 제한시간 없이 계속 회전한다. AT+MDTR=n,s,d,c 명령어는 d옵션이 추가된 명령어이다. 이 명령은 AT+MOTR에 모터 회전 방향을 동시에 제어할 수 있도록 추가한 명령이다. d에 0을 전달하면 반시계방향으로 모터가 회전하고 d에 1을 전달하면 시계방향으로 회전한다. DC 모터 속도 제어 AT 명령어 AT+MOTR=n,s,c Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100) Count(c:Motor Running Time Counter) AT+MDTR=n,s,d,c Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100) Direction(d:0=CCW, 1=CW) Count(c:Motor Running Time Counter) 예를들면, DC 모터 1을 속도 30%로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MOTR=1,2 DC 모터 2을 속도 50%로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MOTR=2,4 DC 모터 3을 속도 80%로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MOTR=3,7 DC 모터 4을 속도 100%로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MOTR=4,9 DC 모터 4개 모두를 속도 50%로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MOTR=5,4 예를들면, DC 모터 1을 속도 50%로 1000ms(1초)동안 회전 시키려면 다음과 같이 명령을 입력한다.AT+MOTR=1,4,100 DC 모터 4개 모두를 속도 90%로 10초 동안 회전 시키려면 다음과 같이 명령을 입력한다.AT+MOTR=5,8,1000 예를들면, DC 모터 1을 속도 50%로 1000ms(1초)동안 반시계 방향으로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MDTR=1,4,0,100 DC 모터 4개 모두를 속도 90%로 10초 동안 시계방향으로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MDTR=5,8,1,1000 DC모터 방향 제어하기DC 모터 방향 제어는 다음과 같이 AT+MDIR=n,d 명령어에 옵션들을 주면 된다. n옵션은 모터를 선택하는 번호이고, d옵션은 모터 방향을 결정하는 번호이다. d옵션에 0을 주면 모터는 시계반대방향(CCW)으로 회전하고, 1을 주면 시계방향(CW)으로 회전한다. DC 모터 방향 제어 AT 명령어 AT+MDIR=n,d Motor(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL) Direction(d:0=CCW, 1=CW) 예를들면, DC 모터 1을 시계방향으로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MDIR=1,1 예를들면, DC 모터 2을 시계반대방향으로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MDIR=2,0 예를들면, DC 모터 3을 시계방향으로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MDIR=3,1 예를들면, DC 모터 4을 시계반대방향으로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MDIR=4,0 예를들면, DC 모터 4개 모두를 시계방향으로 회전 시키려면 다음과 같이 명령을 입력한다.AT+MDIR=5,1 DC모터 동작 정지하기DC 모터 동작 정지는 다음과 같이 AT+MSTP=n 명령어에 옵션들을 주면 된다. n옵션은 모터를 선택하는 번호이다. DC 모터 동작 정지 AT 명령어 AT+MSTP=n STOP(n:1=Motor1, 2=Motor2, 3=Motor3, 4=Motor4, 5=ALL) 예를들면, DC 모터 1을 정지 시키려면 다음과 같이 명령을 입력한다.AT+MSTP=1 예를들면, DC 모터 2을 정지 시키려면 다음과 같이 명령을 입력한다.AT+MSTP=2 예를들면, DC 모터 3을 정지 시키려면 다음과 같이 명령을 입력한다.AT+MSTP=3 예를들면, DC 모터 4을 정지 시키려면 다음과 같이 명령을 입력한다.AT+MSTP=4 예를들면, DC 모터 4개 모두를 정지 시키려면 다음과 같이 명령을 입력한다.AT+MSTP=5 스테핑 모터 제어하기5V에서 동작하는 Stepping 모터를 다음과 같이 연결한다. 연결선은 모두 5개이고, 왼쪽부터 적색선이 5V전압이고, 오렌지색이 4번 위상신호, 노랑색이 3번 위상신호, 분홍색이 2번 위상신호, 청색선은 1번 위상신호에 해당한다. Stepping 모터 연결 연결핀 회로도 회로도 연결핀 12번에 적색선 5V을 연결하고, 14번핀(GMC4)에 오렌지색 4번 위상신호, 16번핀(GMC3)에 노랑색 3번 위상신호, 18번핀(GMC2)에 분홍색 2번 위상신호, 20번핀(GMC1)에 청색선 1번 위상신호를 연결한다. 위와 같이 연결 했다면, 다음과 같은 AT-STEP 명령어를 사용하여 스테핑 모터를 제어할 수 있다. 스테핑 모터 제어 AT 명령어 AT+STEP=c,d,s Stepping Motor(c:cw/ccw, d:degree, s:speed) CW/CCW(c:0=CW, 1:CCW) Degree(d:0=20,1=40,2=60,3=80,4=100,5=120,6=140,7=160,8=180,9=200) Speed(s:0=10, 1=20, 2=30, 3=40, 4=50, 5=60, 6=70, 7=80, 8=90, 9=100) AT+STEP=c,d,s에 전달하는 옵션에서 c는 스테핑 모터의 방향을 결정하고 d는 회전 각도, s는 회전 속도를 결정한다. c옵션에 0을 입력하면 스테핑 모터가 시계방향(CW)으로 회전하고 1을 입력하면 반시계방향(CCW)으로 회전한다. d옵션은 0부터 9까지 입력할 수 있으며 하나씩 큰 숫자가 입력될때마다 스테핑 모터의 회전각도가 20도씩 증가한다. s옵션도 0부터 9까지 입력할 수 있고 하나씩 큰 숫자가 입력될때마다 스테핑 모터의 회전속도가 10%씩 증가한다. 예를들면, Stepping 모터를 시계방향(CW)으로 60% 속도로 80도 각도까지 회전 시키려면 다음과 같이 명령어를 입력한다.AT+STEP=0,3,5 Stepping 모터를 반시계방향(CCW)으로 100% 속도로 120도 각도까지 회전 시키려면 다음과 같이 명령어를 입력한다.AT+STEP=1,5,9 Servo 모터 제어하기Servo 모터는 다음과 같이 확장핀에 연결한다. Servo 모터 연결 위와 같이 연결 했다면, 다음과 같은 AT+SRVO 명령어를 사용하여 서보 모터를 제어할 수 있다. Servo 모터 제어 AT 명령어AT+SRVO=n,d Servo Motor(n:1=Servo Motor1, 2=Servo Motor2) Center/Left/Right(d:0=Center, 1=Left, 2=Right) AT+SRVO=n,d에 전달하는 옵션에서 n은 서보모터 번호를 선택한다. n=1이면 첫번째 서보모터, n=2이면 두번째 서보 모터가 선택된다. d에 전달하는 숫자는 서보모터 회전방향을 선택한다. d=0이면 서보모터가 중앙에 위치하고, d=1이면 왼쪽으로 90도 회전하고, d=2이면 오른쪽으로 90도 회전한다. 예를들면, SRVO 모터1를 왼쪽으로 90도 회전 시키려면 다음과 같이 명령어를 입력한다.AT+SRVO=1,1 예를들면, SRVO 모터2를 오른쪽으로 90도 회전 시키려면 다음과 같이 명령어를 입력한다.AT+SRVO=2,2 예를들면, SRVO 모터1를 중앙에 위치 시키려면 다음과 같이 명령어를 입력한다.AT+SRVO=1,0 제품은 아래 링크에서 구매 가능합니다.https://www.kernel.bz/product/SmartMotor 문서에 비흡한 점이 있다거나 질문사항은 아래에 댓글 남겨 주시면 답변 드리도록 하겠습니다.감사합니다.