MicroPython 원격 제어: mpremote

mpremote 명령줄 도구는 시리얼 연결을 통해 MicroPython 장치와 원격으로 상호작용하고, 그 위의 파일시스템을 관리하며, 장치를 자동화할 수 있는 통합 유틸리티 모음을 제공합니다. 모든 OpenMV Cam과 USB 시리얼 연결을 통해 동작하며, 스크립팅 및 자동화 워크플로에서 OpenMV IDE를 대신할 수 있는 명령줄 대안입니다.

mpremote를 사용하려면 먼저 pip를 통해 설치하십시오:

$ pip install --user mpremote

또는 pipx를 통해 설치할 수 있습니다:

$ pipx install mpremote

이 도구를 사용하는 가장 간단한 방법은 인수 없이 그냥 실행하는 것입니다:

$ mpremote

이 명령은 사용 가능한 첫 번째 USB 시리얼 장치를 자동으로 감지하여 연결하고, REPL과 프로그램 출력에 접근할 수 있는 대화형 터미널을 제공합니다. 시리얼 포트는 배타적 모드로 열리므로, mpremote의 두 번째(또는 세 번째 등) 인스턴스를 실행하면 사용 가능한 경우 후속 시리얼 장치에 연결됩니다.

또한 pipx를 사용하면 먼저 설치하지 않고도 mpremote를 직접 실행할 수 있습니다:

$ pipx run mpremote ...args

명령

mpremote는 명령줄에서 일련의 명령을 지정하는 것을 지원하며, 이 명령들은 원격 MicroPython 장치에서 다양한 작업을 순차적으로 수행합니다. 이것이 어떻게 동작하는지에 대한 감을 잡고 일반적인 명령 조합 몇 가지를 보려면 아래의 예제 섹션을 참조하십시오.

각 명령은 <command name> [--options] [args...] 형식입니다. 여러 인수를 지원하는 명령(예: 파일 목록)의 경우 인수 목록을 +로 종료할 수 있습니다.

명령이 지정되지 않으면 기본 명령은 repl입니다. 또한 어떤 명령이든 장치에 접근해야 하는데 앞서 connect가 지정되지 않았다면 암묵적으로 connect auto가 추가됩니다.

(repl을 제외한) 모든 작업 명령에 대해 장치를 알려진 상태로 만들기 위해, 연결되면 mpremote는 첫 번째 명령을 실행하기 전에 실행 중인 프로그램을 중지하고 장치를 소프트 리셋합니다. 이 동작은 resumesoft-reset 명령을 사용하여 제어할 수 있습니다. 자세한 내용은 자동 연결 및 자동 소프트 리셋을 참조하십시오.

여러 명령을 지정할 수 있으며 이들은 순차적으로 실행됩니다.

지원되는 명령의 전체 목록은 다음과 같습니다:

connect

이름을 통해 지정한 장치에 연결합니다:

$ mpremote connect <device>

<device>는 다음 중 하나일 수 있습니다:

  • list: 사용 가능한 장치를 나열합니다

  • auto: 사용 가능한 첫 번째 USB 시리얼 포트에 연결합니다

  • id:<serial>: USB 시리얼 번호가 <serial>인 장치에 연결합니다(connect list 명령 출력의 두 번째 열)

  • port:<path>: 지정한 경로의 장치에 연결합니다(connect list 명령 출력의 첫 번째 열)

  • rfc2217://<host>:<port>: TCP를 통한 시리얼을 사용하여 장치에 연결합니다(예: RFC2217 기반의 네트워크 시리얼 포트)

  • 해당 장치에 연결하기 위한 유효한 장치 이름/경로

참고: connect 명령을 사용하는 대신, 일반적인 장치 경로에 대한 여러 사전 정의된 단축 명령을 사용할 수 있습니다. 예를 들어 a0 단축 명령은 connect /dev/ttyACM0(Linux)와 동일하며, c1COM1(Windows)에 해당합니다.

참고: auto 옵션은 USB 시리얼 포트, 즉 연관된 USB VID/PID를 가진 시리얼 포트(예: CDC/ACM 또는 FTDI 방식 장치)만 감지합니다. 다른 유형의 시리얼 포트는 자동 감지되지 않습니다.

disconnect

현재 장치의 연결을 해제합니다:

$ mpremote disconnect

연결 해제 후에는 자동 소프트 리셋이 활성화됩니다.

resume

후속 명령을 위해 기존 인터프리터 상태를 유지합니다:

$ mpremote resume

이것은 자동 소프트 리셋을 비활성화합니다. 보드를 먼저 소프트 리셋하지 않고 후속 명령을 실행하려는 경우에 유용합니다.

soft-reset

장치의 소프트 리셋을 수행합니다:

$ mpremote soft-reset

이것은 Python 힙을 비우고 인터프리터를 다시 시작합니다. 또한 후속 명령이 자동 소프트 리셋을 트리거하는 것을 방지합니다.

repl

연결된 장치에서 REPL에 진입합니다:

$ mpremote repl [--options]

옵션은 다음과 같습니다:

  • --escape-non-printable: 출력 불가능한 바이트/문자를 16진수 코드로 표시합니다

  • --capture <file>: REPL 세션의 출력을 지정한 파일에 캡처합니다

  • --inject-code <string>: Ctrl-J를 누를 때 REPL에 주입할 문자를 지정합니다. 이를 통해 자주 쓰는 명령을 자동화할 수 있습니다.

  • --inject-file <file>: Ctrl-K를 누를 때 REPL에 주입할 파일을 지정합니다. 이를 통해 파일(예: 유용한 설정 코드가 담긴 파일이나 현재 작업 중인 프로그램)을 실행할 수 있습니다.

repl 명령이 실행 중인 동안 Ctrl-] 또는 Ctrl-x를 사용하여 종료할 수 있습니다.

참고: 여기서 “REPL”이라는 이름은 MicroPython 장치에서 실행 중인 Read Eval Print Loop에 접근하는 이 명령의 일반적인 용도를 반영합니다. 엄밀히 말하면 repl 명령은 장치에 접근하기 위한 터미널(또는 “시리얼 모니터”) 역할만 합니다. 이 명령은 자동 리셋 동작을 트리거하지 않으므로, 현재 프로그램이 실행 중이라면 REPL에 도달하기 위해 먼저 Ctrl-C로 프로그램을 중단해야 하며, 그러면 프로그램 상태에 접근할 수 있습니다. 또한 mpremote soft-reset repl을 사용하면 모든 프로그램 상태가 지워진 “깨끗한” REPL을 얻을 수 있습니다.

eval

Python 표현식을 평가하고 그 결과를 출력합니다:

$ mpremote eval <string>

exec

주어진 Python 코드를 실행합니다:

$ mpremote exec <string>

기본적으로 mpremote exec는 표현식이 종료될 때까지 표현식의 모든 출력을 표시합니다. --no-follow 플래그를 지정하면 즉시 반환되며 장치가 백그라운드에서 표현식을 계속 실행하도록 둡니다.

run

로컬 파일시스템에서 스크립트를 실행합니다:

$ mpremote run <file.py>

이것은 파일을 파일시스템에 복사하지 않고 장치의 RAM에서 직접 실행합니다. 단일 코드 조각을 파일시스템에 배포하는 것에 신경 쓰지 않고 반복적으로 개발할 때 매우 유용한 방법입니다.

기본적으로 mpremote run은 스크립트가 종료될 때까지 스크립트의 모든 출력을 표시합니다. --no-follow 플래그를 지정하면 즉시 반환되며 장치가 백그라운드에서 스크립트를 계속 실행하도록 둡니다.

fs

장치에서 파일시스템 명령을 실행합니다:

$ mpremote fs <sub-command>

<sub-command>는 다음일 수 있습니다:

  • cat <file..>: 장치에 있는 파일 또는 여러 파일의 내용을 표시합니다

  • ls: 현재 디렉터리를 나열합니다

  • ls <dirs...>: 주어진 디렉터리들을 나열합니다

  • cp [-rf] <src...> <dest>: 파일을 복사합니다

  • rm [-r] <src...>: 장치의 파일 또는 폴더를 제거합니다

  • mkdir <dirs...>: 장치에 디렉터리를 생성합니다

  • rmdir <dirs...>: 장치의 디렉터리를 제거합니다

  • touch <file..>: 파일을 생성합니다(아직 존재하지 않는 경우)

  • sha256sum <file..>: 파일의 SHA256 합을 계산합니다

  • tree [-vsh] <dirs...>: 주어진 디렉터리들의 트리를 출력합니다

cp 명령은 앞에 붙은 :가 원격 경로를 나타내는 규약을 사용합니다. 앞에 :가 없으면 로컬 경로를 의미합니다. 이는 Secure Copy Protocol(scp) 클라이언트에서 사용하는 규약을 기반으로 합니다.

예를 들어 mpremote fs cp main.py :main.py는 현재 로컬 디렉터리의 main.py를 원격 파일시스템으로 복사하는 반면, mpremote fs cp :main.py main.py는 장치의 main.py를 현재 디렉터리로 다시 복사합니다.

mpremote rm -r 명령은 상대 경로와 절대 경로를 모두 허용합니다. 현재 원격 작업 디렉터리(cwd)를 참조하려면 :를 사용하여 장치의 기본 경로(예: /flash, /)에서 디렉터리 트리를 제거할 수 있습니다. 제거되는 파일을 보려면 -v/--verbose를 사용하십시오.

예를 들면:

  • mpremote rm -r :libslibs 디렉터리와 그 모든 하위 항목을 장치에서 제거합니다.

  • mpremote rm -rv :/sd는 마운트된 SD 카드의 모든 파일을 제거하고 차단되지 않는 경고를 발생시킵니다. 마운트는 유지됩니다.

  • mpremote rm -rv ://sd 또는 /flash와 같은 마운트된 vfs에 있는 것을 포함하여 장치의 모든 파일을 제거합니다. 모든 폴더와 파일을 제거한 후에는 unix의 rm -rf / 동작을 모방하기 위해 오류도 반환합니다.

경고

mpremote rm -r :로 제거된 파일을 복구하는 지원되는 방법은 없습니다. 주의하여 사용하십시오.

tree 명령은 주어진 디렉터리들의 트리를 출력합니다. --size/-s 옵션을 사용하면 각 파일의 크기를 출력하고, --human/-h를 사용하면 더 사람이 읽기 쉬운 형식을 사용합니다. 참고: 디렉터리 크기는 장치의 파일시스템이 0이 아닌 크기를 보고할 때만 출력됩니다. -v 옵션을 사용하면 출력에 시리얼 장치의 이름을 포함할 수 있습니다.

다른 모든 명령은 암묵적으로 경로가 원격 경로라고 가정하지만, 명확성을 위해 선택적으로 :를 사용할 수 있습니다.

모든 파일시스템 하위 명령은 여러 경로 인수를 받으므로, 시퀀스에 다른 명령이 있다면 +를 사용하여 인수를 종료해야 합니다. 예:

$ mpremote fs cp main.py :main.py + repl

이것은 파일을 장치에 복사한 다음 REPL에 진입합니다. +"repl"이 경로로 해석되는 것을 방지합니다.

cp 명령은 재귀 복사를 위해 -r 옵션을 지원합니다. 기본적으로 cp는 소스와 대상 파일의 SHA256 해시가 일치하면 원격 장치로의 파일 복사를 건너뜁니다. 해시와 관계없이 강제로 복사하려면 -f 옵션을 사용하십시오.

참고: 편의를 위해 모든 파일시스템 하위 명령은 일반 명령으로도 별칭이 지정되어 있습니다. 즉, mpremote fs cp ... 대신 mpremote cp ...로 작성할 수 있습니다.

df

장치의 여유/사용 공간을 조회합니다:

$ mpremote df

df 명령은 Unix의 df 명령과 유사하게 장치 파일시스템의 크기/사용/여유 통계를 출력합니다.

edit

장치의 파일을 편집합니다:

$ mpremote edit <files...>

edit 명령은 각 파일을 장치에서 로컬 임시 디렉터리로 복사한 다음 각 파일에 대해 편집기(환경 변수 $EDITOR로 정의됨)를 실행합니다. 편집기가 정상적으로 종료되면 업데이트된 파일이 다시 장치로 복사됩니다.

mip

micropython-lib(또는 GitHub)에서 mip 도구를 사용하여 패키지를 설치합니다:

$ mpremote mip install <packages...>

자세한 내용은 패키지 관리를 참조하십시오.

mount

로컬 디렉터리를 원격 장치에 마운트합니다:

$ mpremote mount [options] <local-dir>

이것은 원격 장치가 로컬 호스트 디렉터리를 마치 자체 파일시스템인 것처럼 볼 수 있게 합니다. 개발에 유용하며, 작업 중인 파일을 장치에 복사할 필요를 없애 줍니다.

장치는 파일시스템 드라이버를 설치하고, 이 드라이버는 장치 VFS/remote로 마운트되며, mpremote와의 시리얼 연결을 파일 접근용 사이드 채널로 사용합니다. 장치는 현재 작업 디렉터리(os.chdir를 통해)가 /remote로 설정되어, 마운트가 활성화된 동안 기본 파일시스템 경로 대신 그곳에서 임포트와 파일 접근이 이루어집니다.

참고: mount 명령 뒤에 시퀀스의 다른 작업이 따라오지 않으면 시퀀스 끝에 repl 명령이 암묵적으로 추가됩니다.

사용 중 Ctrl-D는 평소처럼 소프트 리셋을 트리거하지만, 마운트는 자동으로 다시 연결됩니다. 그러나 장치가 시작 시 실행되는 main.py를 가지고 있다면 다시 마운트가 일어날 수 없습니다. 이 경우 raw 모드 소프트 재부팅을 사용할 수 있습니다: Ctrl-A Ctrl-D로 재부팅한 다음, Ctrl-B로 일반 repl로 돌아가면 그 시점에 마운트가 준비됩니다.

옵션은 다음과 같습니다:

  • -l, --unsafe-links: 기본적으로 장치가 마운트된 로컬 디렉터리 바깥(한 단계 이상 상위 디렉터리)에 있는 파일이나 디렉터리에 접근하면 오류가 발생합니다. 이 옵션은 심볼릭 링크에 대해 이 검사를 비활성화하여, 장치가 로컬 디렉터리 바깥의 심볼릭 링크를 따라가도록 허용합니다.

unmount

원격 장치에서 로컬 디렉터리를 마운트 해제합니다:

$ mpremote umount

이것은 mpremote가 종료될 때 자동으로 일어나지만, 후속 명령이 실행되기 전에 앞서 마운트한 것을 마운트 해제하기 위해 시퀀스에서 사용할 수 있습니다.

romfs

장치의 ROMFS 파티션을 관리합니다:

$ mpremote romfs <sub-command>

<sub-command>는 다음일 수 있습니다:

  • romfs query: 사용 가능한 모든 ROMFS 파티션과 그 크기를 나열합니다

  • romfs [-o <output>] build <source>: 주어진 소스 디렉터리에서 ROMFS 이미지를 생성합니다. 기본 출력 파일은 소스 뒤에 .romfs가 붙은 것입니다

  • romfs [-p <partition>] deploy <source>: ROMFS 이미지를 장치에 배포합니다. 소스가 디렉터리이면 임시 ROMFS 이미지도 생성합니다

builddeploy 하위 명령은 모두 -m/--mpy 옵션을 지원하여 ROMFS 이미지를 생성할 때 .py 파일을 자동으로 .mpy로 컴파일합니다. 이 옵션은 기본적으로 활성화되어 있지만, mpy_cross Python 패키지가 설치되어 있어야만(예: pip install mpy_cross를 통해) 동작합니다. 패키지가 설치되어 있지 않으면 경고가 출력되고 .py 파일은 그대로 유지됩니다. .py 파일의 컴파일은 --no-mpy 옵션으로 비활성화할 수 있습니다.

rtc

장치 시계(RTC)를 설정/조회합니다:

$ mpremote rtc

이것은 장치 RTC에서 현재 시간을 조회하여 datetime 튜플로 출력합니다.

$ mpremote rtc --set

이것은 장치 RTC를 호스트 PC의 현재 시간으로 설정합니다.

sleep

다음 명령을 실행하기 전에 잠시 멈춥니다(지연):

$ mpremote sleep 0.5

이것은 지정한 시간(초) 동안 명령 시퀀스의 실행을 일시 중지합니다. 예를 들어 장치가 무언가를 하도록 기다리는 데 사용합니다.

reset

장치를 하드 리셋합니다:

$ mpremote reset

참고: 하드 리셋은 machine.reset()과 동등합니다.

bootloader

부트로더에 진입합니다:

$ mpremote bootloader

이것은 장치가 부트로더에 진입하게 합니다. 부트로더는 보드별로 다릅니다 — 자세한 내용은 보드의 빠른 참조에서 Recovery and debug pins 섹션을 참조하십시오.

자동 연결 및 소프트 리셋

연결 및 연결 해제 명령이 명시적으로 주어지지 않으면, 도구 실행의 시작과 끝에서 자동으로 수행됩니다. 자동 연결은 사용 가능한 첫 번째 USB 시리얼 장치를 검색합니다.

장치에 연결되면 mpremote는 필요한 경우 장치를 자동으로 소프트 리셋합니다. 이것은 Python 힙을 비우고 인터프리터를 다시 시작하여 후속 Python 코드가 새로운 환경에서 실행되도록 합니다. 자동 소프트 리셋은 다음 명령 중 하나가 처음 실행될 때 수행됩니다: mount, eval, exec, run, fs. 처음 소프트 리셋을 수행한 후에는 disconnect 명령이 발행될 때까지 자동으로 다시 수행되지 않습니다.

자동 소프트 리셋 동작은 resume 명령으로 제어할 수 있습니다. 이것은 eval 명령을 사용하여 장치의 상태를 점검할 때 유용할 수 있습니다. soft-reset 명령은 명령 시퀀스 중간에 명시적인 소프트 리셋을 수행하는 데 사용할 수 있습니다.

단축 명령

단축 명령은 매크로 시스템을 사용하여 정의할 수 있습니다. 내장 단축 명령은 다음과 같습니다:

  • devs: connect list의 별칭

  • a0, a1, a2, a3: connect /dev/ttyACMn의 별칭

  • u0, u1, u2, u3: connect /dev/ttyUSBn의 별칭

  • c0, c1, c2, c3: connect COMn의 별칭

  • cat, edit, ls, cp, rm, mkdir, rmdir, touch: fs <sub-command>의 별칭

추가 단축 명령은 User Configuration Directory에 있는 사용자 구성 파일 mpremote/config.py에서 정의할 수 있습니다. 각 OS에 맞는 올바른 위치는 platformdirs 모듈을 사용하여 결정됩니다.

이는 일반적으로 다음과 같습니다: - $XDG_CONFIG_HOME/mpremote/config.py - $HOME/.config/mpremote/config.py - $env:LOCALAPPDATA/mpremote/config.py

config.py 파일은 commands라는 이름의 딕셔너리를 정의해야 합니다. 이 딕셔너리의 키는 단축 명령이고 값은 문자열 또는 문자열 리스트입니다:

"c33": "connect id:334D335C3138",

c33 명령은 connect id:334D335C3138로 대체됩니다.

"test": ["mount", ".", "exec", "import test"],

test 명령은 mount . exec "import test"로 대체됩니다.

단축 명령은 인수도 받을 수 있습니다. 예를 들어:

"multiply x=4 y=7": "eval x*y",

mpremote multiply 3 7을 실행하면 xy를 장치의 변수로 설정한 다음 x*y 표현식을 평가합니다.

config.py의 예시는 다음과 같을 수 있습니다:

commands = {
    "c33": "connect id:334D335C3138", # Connect to a specific device by ID.
    "bl": "bootloader", # Shorter alias for bootloader.
    "double x=4": "eval x*2",  # x is an argument, with default 4
    "wl_scan": ["exec", """
import network
wl = network.WLAN()
wl.active(1)
for ap in wl.scan():
    print(ap)
""",], # Print out nearby WiFi networks.
    "wl_ipconfig": [
"exec",
"import network; sta_if = network.WLAN(network.WLAN.IF_STA); print(sta_if.ipconfig('addr4'))",
], # Print ip address of station interface.
    "test": ["mount", ".", "exec", "import test"], # Mount current directory and run test.py.
    "demo": ["run", "path/to/demo.py"], # Execute demo.py on the device.
}

예제

mpremote

사용 가능한 첫 번째 장치에 연결하고 암묵적으로 repl 명령을 실행합니다.

mpremote a1

/dev/ttyACM1(Linux)의 장치에 연결하고 암묵적으로 repl 명령을 실행합니다. 위의 단축 명령을 참조하십시오.

mpremote c1

COM1(Windows)의 장치에 연결하고 암묵적으로 repl 명령을 실행합니다. 위의 단축 명령을 참조하십시오.

mpremote connect /dev/ttyUSB0

연결할 장치를 명시적으로 지정하고, 위와 같이 암묵적으로 repl 명령을 실행합니다.

mpremote a1 ls

/dev/ttyACM1의 장치에 연결한 다음 ls 명령을 실행합니다.

이것은 mpremote connect /dev/ttyACM1 fs ls와 동등합니다.

mpremote exec "import micropython; micropython.mem_info()"

지정한 Python 명령을 실행하고 모든 출력을 표시합니다. 이것은 REPL 프롬프트에 명령을 입력하는 것과 동등합니다.

mpremote eval 1/2 eval 3/4

각 표현식을 차례로 평가하고 결과를 출력합니다.

mpremote a0 eval 1/2 a1 eval 3/4

/dev/ttyACM0의 장치에서 1/2를 평가한 다음, /dev/ttyACM1의 장치에서 3/4를 평가하고 각 결과를 출력합니다.

mpremote resume exec "print_state_info()" soft-reset

소프트 리셋을 트리거하지 않고 장치에 연결하여 print_state_info() 함수를 실행한(예: 현재 프로그램 상태에 대한 정보를 알아보기 위해) 다음, 소프트 리셋을 트리거합니다.

mpremote reset sleep 0.5 bootloader

장치를 하드 리셋하고, 사용 가능해질 때까지 500ms를 기다린 다음, 부트로더에 진입합니다.

mpremote cp utils/driver.py :utils/driver.py + run test.py

장치의 utils/driver.py 사본을 업데이트한 다음, 로컬 test.py 스크립트를 장치에서 실행합니다. test.py는 장치 파일시스템에 복사되지 않고 RAM에서 실행됩니다.

mpremote cp utils/driver.py :utils/driver.py + exec "import app"

장치의 utils/driver.py 사본을 업데이트한 다음, app.py를 장치에서 실행합니다.

이것은 단일 파일을 업데이트한 다음 프로그램을 다시 시작하는 일반적인 개발 워크플로입니다. 이 시나리오에서는 장치의 main.pyimport app을 수행하게 됩니다.

mpremote cp utils/driver.py :utils/driver.py + soft-reset repl

장치의 utils/driver.py 사본을 업데이트한 다음, 소프트 리셋을 트리거하여 프로그램을 다시 시작하고, repl 명령을 통해 출력을 모니터링합니다.

mpremote cp -r utils/ :utils/ + soft-reset repl

위와 같지만, 먼저 전체 utils 디렉터리를 업데이트합니다.

mpremote mount .

현재 로컬 디렉터리를 장치의 /remote에 마운트하고, /remote를 작업 디렉터리로 사용하는 repl 세션을 시작합니다.

mpremote mount . exec "import demo"

현재 로컬 디렉터리를 마운트한 후, 마운트된 디렉터리에서 demo.py를 실행합니다.

mpremote mount app run test.py

로컬 디렉터리 app을 장치의 /remote로 마운트한 후, 호스트의 현재 디렉터리에 있는 로컬 test.py를 파일시스템에 복사하지 않고 실행합니다.

mpremote mount . repl --inject-code "import demo"

현재 로컬 디렉터리를 마운트한 후, Ctrl-J를 누를 때마다 마운트된 디렉터리에서 demo.py를 실행합니다.

demo.py를 다시 임포트하기 위해 Ctrl-J를 누르기 전에, 먼저 Ctrl-D를 눌러 인터프리터 상태를 리셋해야 합니다(이것은 마운트를 보존합니다).

mpremote mount app repl --inject-file demo.py

위와 같지만, Ctrl-K를 누를 때마다 로컬 파일 demo.py의 내용을 REPL에서 실행합니다. 위와 같이 먼저 Ctrl-D를 사용하여 인터프리터 상태를 리셋하십시오.

mpremote cat boot.py

장치의 boot.py 내용을 표시합니다.

mpremote edit utils/driver.py

로컬 $EDITOR를 사용하여 장치의 utils/driver.py를 편집합니다.

mpremote cp :main.py .

장치의 main.py를 로컬 디렉터리로 복사합니다.

mpremote cp main.py :

로컬 디렉터리의 main.py를 장치로 복사합니다.

mpremote cp :a.py :b.py

장치의 a.py를 장치의 b.py로 복사합니다.

mpremote cp -r dir/ :

로컬 디렉터리 dir을 원격 장치로 재귀적으로 복사합니다.

mpremote cp a.py b.py : + repl

로컬 디렉터리의 a.pyb.py를 장치로 복사한 다음, repl 명령을 실행합니다.

mpremote mip install aioble

micropython-libaioble 패키지를 장치에 설치합니다. 패키지 관리를 참조하십시오.

mpremote mip install github:org/repo@branch

GitHub의 org/repo에서 지정한 브랜치의 패키지를 장치에 설치합니다. 패키지 관리를 참조하십시오.

mpremote mip install gitlab:org/repo@branch

GitLab의 org/repo에서 지정한 브랜치의 패키지를 장치에 설치합니다. 패키지 관리를 참조하십시오.

mpremote mip install --target /flash/third-party functools

micropython-libfunctools 패키지를 장치의 /flash/third-party 디렉터리에 설치합니다. 패키지 관리를 참조하십시오.