Điều khiển từ xa MicroPython: mpremote¶
Công cụ dòng lệnh mpremote cung cấp một bộ tiện ích tích hợp để tương tác từ xa, quản lý hệ thống tệp và tự động hóa thiết bị MicroPython qua kết nối nối tiếp. Công cụ này hoạt động với tất cả OpenMV Cams qua kết nối USB nối tiếp, và là giải pháp thay thế dòng lệnh cho OpenMV IDE trong các quy trình viết tập lệnh và tự động hóa.
Để sử dụng mpremote, trước tiên hãy cài đặt nó qua pip:
$ pip install --user mpremote
Hoặc qua pipx:
$ pipx install mpremote
Cách đơn giản nhất để sử dụng công cụ này là gọi nó mà không có bất kỳ đối số nào:
$ mpremote
Lệnh này tự động phát hiện và kết nối với thiết bị USB nối tiếp đầu tiên có sẵn, đồng thời cung cấp một terminal tương tác mà bạn có thể dùng để truy cập REPL và đầu ra của chương trình. Các cổng nối tiếp được mở ở chế độ độc quyền, vì vậy việc chạy một phiên bản thứ hai (hoặc thứ ba, v.v.) của mpremote sẽ kết nối với các thiết bị nối tiếp tiếp theo, nếu có.
Ngoài ra, pipx cũng cho phép bạn chạy trực tiếp mpremote mà không cần cài đặt trước:
$ pipx run mpremote ...args
Các lệnh¶
mpremote hỗ trợ nhận một chuỗi lệnh từ dòng lệnh, các lệnh này sẽ thực hiện nhiều hành động theo thứ tự trên một thiết bị MicroPython từ xa. Xem phần ví dụ bên dưới để hiểu cách thức hoạt động và các tổ hợp lệnh thông dụng.
Mỗi lệnh có dạng <command name> [--options] [args...]. Đối với các lệnh hỗ trợ nhiều đối số (ví dụ: danh sách tệp), danh sách đối số có thể được kết thúc bằng +.
Nếu không có lệnh nào được chỉ định, lệnh mặc định là repl. Ngoài ra, nếu có lệnh nào cần truy cập thiết bị mà không có connect trước đó, thì một lệnh connect auto ngầm định sẽ được thêm vào.
Để đưa thiết bị vào trạng thái đã biết cho bất kỳ lệnh hành động nào (trừ repl), sau khi kết nối, mpremote sẽ dừng bất kỳ chương trình đang chạy và thực hiện soft-reset thiết bị trước khi chạy lệnh đầu tiên. Bạn có thể kiểm soát hành vi này bằng lệnh resume và soft-reset. Xem tự động kết nối và tự động soft-reset để biết thêm chi tiết.
Có thể chỉ định nhiều lệnh và chúng sẽ được chạy tuần tự.
Danh sách đầy đủ các lệnh được hỗ trợ là:
connect¶
Kết nối với thiết bị được chỉ định theo tên:
$ mpremote connect <device>
<device> có thể là một trong các giá trị sau:
list: liệt kê các thiết bị có sẵnauto: kết nối với cổng USB nối tiếp đầu tiên có sẵnid:<serial>: kết nối với thiết bị có số sê-ri USB<serial>(cột thứ hai từ đầu ra lệnhconnect list)port:<path>: kết nối với thiết bị theo đường dẫn đã cho (cột đầu tiên từ đầu ra lệnhconnect listrfc2217://<host>:<port>: kết nối với thiết bị sử dụng giao thức nối tiếp qua TCP (ví dụ: cổng nối tiếp qua mạng theo RFC2217)bất kỳ tên/đường dẫn thiết bị hợp lệ nào, để kết nối với thiết bị đó
Lưu ý: Thay vì sử dụng lệnh connect, có một số phím tắt được định nghĩa sẵn cho các đường dẫn thiết bị phổ biến. Ví dụ, lệnh phím tắt a0 tương đương với connect /dev/ttyACM0 (Linux), hoặc c1 cho COM1 (Windows).
Lưu ý: Tùy chọn auto chỉ phát hiện các cổng USB nối tiếp, tức là cổng nối tiếp có USB VID/PID liên kết (tức là thiết bị CDC/ACM hoặc FTDI). Các loại cổng nối tiếp khác sẽ không được tự động phát hiện.
disconnect¶
Ngắt kết nối thiết bị hiện tại:
$ mpremote disconnect
Sau khi ngắt kết nối, auto-soft-reset được kích hoạt.
resume¶
Duy trì trạng thái trình thông dịch hiện có cho các lệnh tiếp theo:
$ mpremote resume
Lệnh này vô hiệu hóa auto-soft-reset. Điều này hữu ích khi bạn muốn chạy lệnh tiếp theo trên bo mạch mà không cần soft-reset trước.
soft-reset¶
Thực hiện soft-reset thiết bị:
$ mpremote soft-reset
Thao tác này sẽ xóa Python heap và khởi động lại trình thông dịch. Nó cũng ngăn lệnh tiếp theo kích hoạt auto-soft-reset.
repl¶
Vào REPL trên thiết bị đã kết nối:
$ mpremote repl [--options]
Các tùy chọn là:
--escape-non-printable, để in các byte/ký tự không in được dưới dạng mã hex của chúng--capture <file>, để lưu đầu ra của phiên REPL vào tệp đã cho--inject-code <string>, để chỉ định các ký tự cần chèn vào REPL khi nhấnCtrl-J. Điều này cho phép bạn tự động hóa một lệnh thường dùng.--inject-file <file>, để chỉ định tệp cần chèn vào REPL khi nhấnCtrl-K. Điều này cho phép bạn chạy một tệp (ví dụ: chứa một số mã thiết lập hữu ích, hoặc thậm chí chương trình bạn đang làm việc).
Trong khi lệnh repl đang chạy, bạn có thể sử dụng Ctrl-] hoặc Ctrl-x để thoát.
Lưu ý: Tên "REPL" ở đây phản ánh cách sử dụng phổ biến của lệnh này để truy cập vòng lặp Read Eval Print đang chạy trên thiết bị MicroPython. Về mặt kỹ thuật, lệnh repl chỉ hoạt động như một terminal (hay "màn hình nối tiếp") để truy cập thiết bị. Vì lệnh này không kích hoạt hành vi auto-reset, điều này có nghĩa là nếu một chương trình đang chạy, bạn sẽ cần ngắt nó bằng Ctrl-C trước để vào REPL, rồi mới có thể truy cập trạng thái chương trình. Bạn cũng có thể dùng mpremote soft-reset repl để có REPL "sạch" với toàn bộ trạng thái chương trình được xóa.
eval¶
Đánh giá và in kết quả của một biểu thức Python:
$ mpremote eval <string>
exec¶
Thực thi mã Python đã cho:
$ mpremote exec <string>
Theo mặc định, mpremote exec sẽ hiển thị bất kỳ đầu ra nào từ biểu thức cho đến khi nó kết thúc. Cờ --no-follow có thể được chỉ định để trả về ngay lập tức và để thiết bị tiếp tục chạy biểu thức trong nền.
run¶
Chạy một tập lệnh từ hệ thống tệp cục bộ:
$ mpremote run <file.py>
Thao tác này sẽ thực thi tệp trực tiếp từ RAM trên thiết bị mà không cần sao chép nó vào hệ thống tệp. Đây là cách rất hữu ích để lặp lại quá trình phát triển một đoạn mã mà không cần lo lắng về việc triển khai nó lên hệ thống tệp.
Theo mặc định, mpremote run sẽ hiển thị bất kỳ đầu ra nào từ tập lệnh cho đến khi nó kết thúc. Cờ --no-follow có thể được chỉ định để trả về ngay lập tức và để thiết bị tiếp tục chạy tập lệnh trong nền.
fs¶
Thực thi các lệnh hệ thống tệp trên thiết bị:
$ mpremote fs <sub-command>
<sub-command> có thể là:
cat <file..>để hiển thị nội dung của một hoặc nhiều tệp trên thiết bịlsđể liệt kê thư mục hiện tạils <dirs...>để liệt kê các thư mục đã chocp [-rf] <src...> <dest>để sao chép tệprm [-r] <src...>để xóa tệp hoặc thư mục trên thiết bịmkdir <dirs...>để tạo thư mục trên thiết bịrmdir <dirs...>để xóa thư mục trên thiết bịtouch <file..>để tạo các tệp (nếu chúng chưa tồn tại)sha256sum <file..>để tính tổng SHA256 của các tệptree [-vsh] <dirs...>để in cây thư mục của các thư mục đã cho
Lệnh cp sử dụng quy ước trong đó dấu : ở đầu đại diện cho đường dẫn từ xa. Không có dấu : ở đầu nghĩa là đường dẫn cục bộ. Điều này dựa trên quy ước được sử dụng bởi ứng dụng Secure Copy Protocol (scp).
Ví dụ, mpremote fs cp main.py :main.py sao chép main.py từ thư mục cục bộ hiện tại lên hệ thống tệp từ xa, trong khi mpremote fs cp :main.py main.py sao chép main.py từ thiết bị về thư mục hiện tại.
Lệnh mpremote rm -r chấp nhận cả đường dẫn tương đối và tuyệt đối. Sử dụng : để tham chiếu đến thư mục làm việc từ xa hiện tại (cwd) nhằm cho phép xóa một cây thư mục khỏi đường dẫn mặc định của thiết bị (ví dụ: /flash, /). Sử dụng -v/--verbose để xem các tệp đang bị xóa.
Ví dụ:
mpremote rm -r :libssẽ xóa thư mụclibsvà tất cả các mục con của nó khỏi thiết bị.mpremote rm -rv :/sdsẽ xóa tất cả tệp từ SDCard được gắn kết và trả về cảnh báo không chặn. Điểm gắn kết sẽ được giữ lại.mpremote rm -rv :/sẽ xóa tất cả tệp trên thiết bị, bao gồm cả các tệp nằm trong vfs được gắn kết như/sdhoặc/flash. Sau khi xóa tất cả thư mục và tệp, thao tác này cũng sẽ trả về lỗi để mô phỏng hành virm -rf /của Unix.
Cảnh báo
Không có cách nào được hỗ trợ để khôi phục các tệp đã xóa bởi mpremote rm -r :. Vui lòng sử dụng cẩn thận.
Lệnh tree sẽ in cây thư mục của các thư mục đã cho. Sử dụng tùy chọn --size/-s sẽ in kích thước của từng tệp, hoặc dùng --human/-h để sử dụng định dạng dễ đọc hơn. Lưu ý: Kích thước thư mục chỉ được in khi hệ thống tệp của thiết bị báo cáo kích thước khác không. Tùy chọn -v có thể được dùng để bao gồm tên thiết bị nối tiếp trong đầu ra.
Tất cả các lệnh khác ngầm định giả định rằng đường dẫn là đường dẫn từ xa, nhưng dấu : có thể được sử dụng tùy chọn để rõ ràng hơn.
Tất cả các lệnh con hệ thống tệp đều nhận nhiều đối số đường dẫn, vì vậy nếu có lệnh khác trong chuỗi, bạn phải dùng + để kết thúc danh sách đối số, ví dụ:
$ mpremote fs cp main.py :main.py + repl
Thao tác này sẽ sao chép tệp lên thiết bị rồi vào REPL. Dấu + ngăn "repl" bị hiểu là một đường dẫn.
Lệnh cp hỗ trợ tùy chọn -r để sao chép đệ quy. Theo mặc định, cp sẽ bỏ qua việc sao chép tệp lên thiết bị từ xa nếu giá trị băm SHA256 của tệp nguồn và đích trùng khớp. Để buộc sao chép bất kể giá trị băm, hãy dùng tùy chọn -f.
Lưu ý: Để tiện lợi, tất cả các lệnh con hệ thống tệp cũng được đặt bí danh là các lệnh thông thường, tức là bạn có thể viết mpremote cp ... thay vì mpremote fs cp ....
df¶
Truy vấn không gian trống/đã dùng của thiết bị:
$ mpremote df
Lệnh df sẽ in thống kê kích thước/đã dùng/còn trống cho hệ thống tệp của thiết bị, tương tự lệnh df của Unix.
edit¶
Chỉnh sửa tệp trên thiết bị:
$ mpremote edit <files...>
Lệnh edit sẽ sao chép từng tệp từ thiết bị sang thư mục tạm cục bộ rồi khởi chạy trình soạn thảo của bạn cho từng tệp (được xác định bởi biến môi trường $EDITOR). Nếu trình soạn thảo thoát thành công, tệp đã cập nhật sẽ được sao chép trở lại thiết bị.
mip¶
Cài đặt các gói từ micropython-lib (hoặc GitHub) bằng công cụ mip:
$ mpremote mip install <packages...>
Xem Quản lý gói để biết thêm thông tin.
mount¶
Gắn kết thư mục cục bộ trên thiết bị từ xa:
$ mpremote mount [options] <local-dir>
Điều này cho phép thiết bị từ xa thấy thư mục máy chủ cục bộ như thể đó là hệ thống tệp của chính nó. Điều này hữu ích cho việc phát triển và tránh phải sao chép tệp lên thiết bị trong khi bạn đang làm việc với chúng.
Thiết bị cài đặt một trình điều khiển hệ thống tệp, sau đó được gắn kết trong VFS thiết bị là /remote, sử dụng kết nối nối tiếp đến mpremote như một kênh phụ để truy cập tệp. Thiết bị sẽ có thư mục làm việc hiện tại (thông qua os.chdir) được đặt thành /remote để các lần nhập và truy cập tệp xảy ra ở đó thay vì đường dẫn hệ thống tệp mặc định khi mount đang hoạt động.
Lưu ý: Nếu lệnh mount không được theo sau bởi một hành động khác trong chuỗi, một lệnh repl sẽ được ngầm định thêm vào cuối chuỗi.
Trong quá trình sử dụng, Ctrl-D sẽ kích hoạt soft-reset như thường lệ, nhưng mount sẽ tự động được kết nối lại. Tuy nhiên, nếu thiết bị có main.py chạy khi khởi động thì không thể remount. Trong trường hợp này, có thể dùng soft reboot ở chế độ raw: Ctrl-A Ctrl-D để reboot, sau đó Ctrl-B để trở lại repl thông thường, lúc đó mount sẽ sẵn sàng.
Các tùy chọn là:
-l,--unsafe-links: Theo mặc định, một lỗi sẽ được đưa ra nếu thiết bị truy cập tệp hoặc thư mục nằm bên ngoài (lên một hoặc nhiều cấp thư mục) thư mục cục bộ đã được gắn kết. Tùy chọn này vô hiệu hóa kiểm tra này đối với các liên kết tượng trưng, cho phép thiết bị đi theo các liên kết tượng trưng bên ngoài thư mục cục bộ.
unmount¶
Tháo gỡ thư mục cục bộ khỏi thiết bị từ xa:
$ mpremote umount
Thao tác này xảy ra tự động khi mpremote kết thúc, nhưng có thể được sử dụng trong một chuỗi để tháo gỡ một mount trước đó trước khi chạy các lệnh tiếp theo.
romfs¶
Quản lý các phân vùng ROMFS trên thiết bị:
$ mpremote romfs <sub-command>
<sub-command> có thể là:
romfs queryđể liệt kê tất cả các phân vùng ROMFS có sẵn và kích thước của chúngromfs [-o <output>] build <source>để tạo ảnh ROMFS từ thư mục nguồn đã cho; tệp đầu ra mặc định là nguồn được thêm.romfsromfs [-p <partition>] deploy <source>để triển khai ảnh ROMFS lên thiết bị; cũng sẽ tạo ảnh ROMFS tạm thời nếu nguồn là thư mục
Cả hai lệnh con build và deploy đều hỗ trợ tùy chọn -m/--mpy để tự động biên dịch các tệp .py thành .mpy khi tạo ảnh ROMFS. Tùy chọn này được bật theo mặc định, nhưng chỉ hoạt động nếu gói Python mpy_cross đã được cài đặt (ví dụ: qua pip install mpy_cross). Nếu gói chưa được cài đặt thì một cảnh báo sẽ được in ra và các tệp .py giữ nguyên. Việc biên dịch các tệp .py có thể bị vô hiệu hóa bằng tùy chọn --no-mpy.
rtc¶
Đặt/lấy đồng hồ thiết bị (RTC):
$ mpremote rtc
Lệnh này sẽ truy vấn RTC của thiết bị để lấy thời gian hiện tại và in nó dưới dạng bộ datetime.
$ mpremote rtc --set
Lệnh này sẽ đặt RTC của thiết bị theo thời gian hiện tại của máy tính chủ.
sleep¶
Chờ (trễ) trước khi thực thi lệnh tiếp theo:
$ mpremote sleep 0.5
Thao tác này sẽ tạm dừng thực thi chuỗi lệnh trong khoảng thời gian được chỉ định tính bằng giây, ví dụ để chờ thiết bị thực hiện điều gì đó.
reset¶
Hard reset thiết bị:
$ mpremote reset
Lưu ý: hard reset tương đương với machine.reset().
bootloader¶
Vào bootloader:
$ mpremote bootloader
Thao tác này sẽ khiến thiết bị vào bootloader. Bootloader phụ thuộc vào bo mạch — xem phần Recovery and debug pins trong quick reference của bo mạch bạn để biết chi tiết.
Tự động kết nối và soft-reset¶
Kết nối và ngắt kết nối sẽ được thực hiện tự động khi bắt đầu và kết thúc thực thi công cụ, nếu các lệnh đó không được đưa ra rõ ràng. Kết nối tự động sẽ tìm kiếm thiết bị USB nối tiếp đầu tiên có sẵn.
Sau khi kết nối với thiết bị, mpremote sẽ tự động soft-reset thiết bị nếu cần. Thao tác này xóa Python heap và khởi động lại trình thông dịch, đảm bảo rằng mã Python tiếp theo được thực thi trong môi trường mới. Auto soft-reset được thực hiện lần đầu tiên khi một trong các lệnh sau được thực thi: mount, eval, exec, run, fs. Sau khi thực hiện soft-reset lần đầu tiên, nó sẽ không được thực hiện lại tự động cho đến khi lệnh disconnect được phát ra.
Hành vi auto-soft-reset có thể được kiểm soát bằng lệnh resume. Điều này có thể hữu ích khi sử dụng lệnh eval để kiểm tra trạng thái thiết bị. Lệnh soft-reset có thể được dùng để thực hiện soft reset rõ ràng ở giữa một chuỗi lệnh.
Phím tắt¶
Phím tắt có thể được định nghĩa bằng hệ thống macro. Các phím tắt tích hợp sẵn là:
devs: Bí danh choconnect lista0,a1,a2,a3: Bí danh choconnect /dev/ttyACMnu0,u1,u2,u3: Bí danh choconnect /dev/ttyUSBnc0,c1,c2,c3: Bí danh choconnect COMncat,edit,ls,cp,rm,mkdir,rmdir,touch: Bí danh chofs <sub-command>
Có thể định nghĩa thêm phím tắt trong tệp cấu hình người dùng mpremote/config.py, nằm trong Thư mục Cấu hình Người dùng. Vị trí chính xác cho từng hệ điều hành được xác định bằng module platformdirs.
Thông thường là: - $XDG_CONFIG_HOME/mpremote/config.py - $HOME/.config/mpremote/config.py - $env:LOCALAPPDATA/mpremote/config.py
Tệp config.py nên định nghĩa một từ điển có tên commands. Các khóa của từ điển này là các phím tắt và các giá trị là chuỗi hoặc danh sách chuỗi:
"c33": "connect id:334D335C3138",
Lệnh c33 được thay thế bằng connect id:334D335C3138.
"test": ["mount", ".", "exec", "import test"],
Lệnh test được thay thế bằng mount . exec "import test".
Phím tắt cũng có thể nhận đối số. Ví dụ:
"multiply x=4 y=7": "eval x*y",
Chạy mpremote multiply 3 7 sẽ đặt x và y là các biến trên thiết bị, sau đó đánh giá biểu thức x*y.
Một ví dụ về config.py có thể trông như sau:
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.
}
Ví dụ¶
mpremote
Kết nối với thiết bị đầu tiên có sẵn và ngầm định chạy lệnh repl.
mpremote a1
Kết nối với thiết bị tại /dev/ttyACM1 (Linux) và ngầm định chạy lệnh repl. Xem phím tắt ở trên.
mpremote c1
Kết nối với thiết bị tại COM1 (Windows) và ngầm định chạy lệnh repl. Xem phím tắt ở trên.
mpremote connect /dev/ttyUSB0
Chỉ định rõ ràng thiết bị cần kết nối, và như trên, ngầm định chạy lệnh repl.
mpremote a1 ls
Kết nối với thiết bị tại /dev/ttyACM1 rồi chạy lệnh ls.
Tương đương với mpremote connect /dev/ttyACM1 fs ls.
mpremote exec "import micropython; micropython.mem_info()"
Chạy lệnh Python đã chỉ định và hiển thị bất kỳ đầu ra nào. Tương đương với việc gõ lệnh tại dấu nhắc REPL.
mpremote eval 1/2 eval 3/4
Đánh giá từng biểu thức lần lượt và in kết quả.
mpremote a0 eval 1/2 a1 eval 3/4
Đánh giá 1/2 trên thiết bị tại /dev/ttyACM0, sau đó 3/4 trên thiết bị tại /dev/ttyACM1, in từng kết quả.
mpremote resume exec "print_state_info()" soft-reset
Kết nối với thiết bị mà không kích hoạt soft reset và thực thi hàm print_state_info() (ví dụ: để tìm hiểu thông tin về trạng thái chương trình hiện tại), sau đó kích hoạt soft reset.
mpremote reset sleep 0.5 bootloader
Hard-reset thiết bị, chờ 500ms để thiết bị sẵn sàng, sau đó vào bootloader.
mpremote cp utils/driver.py :utils/driver.py + run test.py
Cập nhật bản sao của utils/driver.py trên thiết bị, rồi thực thi tập lệnh test.py cục bộ trên thiết bị. test.py không bao giờ được sao chép lên hệ thống tệp thiết bị, mà được chạy từ RAM.
mpremote cp utils/driver.py :utils/driver.py + exec "import app"
Cập nhật bản sao của utils/driver.py trên thiết bị, rồi thực thi app.py trên thiết bị.
Đây là quy trình phát triển phổ biến để cập nhật một tệp duy nhất rồi khởi động lại chương trình. Trong kịch bản này, main.py trên thiết bị cũng sẽ thực hiện import app.
mpremote cp utils/driver.py :utils/driver.py + soft-reset repl
Cập nhật bản sao của utils/driver.py trên thiết bị, sau đó kích hoạt soft-reset để khởi động lại chương trình, rồi theo dõi đầu ra qua lệnh repl.
mpremote cp -r utils/ :utils/ + soft-reset repl
Tương tự như trên, nhưng cập nhật toàn bộ thư mục utils trước.
mpremote mount .
Gắn kết thư mục cục bộ hiện tại tại /remote trên thiết bị và bắt đầu phiên repl sẽ dùng /remote làm thư mục làm việc.
mpremote mount . exec "import demo"
Sau khi gắn kết thư mục cục bộ hiện tại, thực thi demo.py từ thư mục được gắn kết.
mpremote mount app run test.py
Sau khi gắn kết thư mục cục bộ app là /remote trên thiết bị, thực thi test.py cục bộ từ thư mục hiện tại của máy chủ mà không sao chép lên hệ thống tệp.
mpremote mount . repl --inject-code "import demo"
Sau khi gắn kết thư mục cục bộ hiện tại, thực thi demo.py từ thư mục được gắn kết mỗi lần nhấn Ctrl-J.
Bạn sẽ cần nhấn Ctrl-D trước để reset trạng thái trình thông dịch (mount sẽ được giữ lại) trước khi nhấn Ctrl-J để re-import demo.py.
mpremote mount app repl --inject-file demo.py
Tương tự như trên, nhưng thực thi nội dung của tệp cục bộ demo.py tại REPL mỗi lần nhấn Ctrl-K. Như trên, hãy dùng Ctrl-D để reset trạng thái trình thông dịch trước.
mpremote cat boot.py
Hiển thị nội dung của boot.py trên thiết bị.
mpremote edit utils/driver.py
Chỉnh sửa utils/driver.py trên thiết bị bằng $EDITOR cục bộ của bạn.
mpremote cp :main.py .
Sao chép main.py từ thiết bị về thư mục cục bộ.
mpremote cp main.py :
Sao chép main.py từ thư mục cục bộ lên thiết bị.
mpremote cp :a.py :b.py
Sao chép a.py trên thiết bị thành b.py trên thiết bị.
mpremote cp -r dir/ :
Sao chép đệ quy thư mục cục bộ dir lên thiết bị từ xa.
mpremote cp a.py b.py : + repl
Sao chép a.py và b.py từ thư mục cục bộ lên thiết bị, sau đó chạy lệnh repl.
mpremote mip install aioble
Cài đặt gói aioble từ micropython-lib lên thiết bị. Xem Quản lý gói.
mpremote mip install github:org/repo@branch
Cài đặt gói từ nhánh được chỉ định tại org/repo trên GitHub lên thiết bị. Xem Quản lý gói.
mpremote mip install gitlab:org/repo@branch
Cài đặt gói từ nhánh được chỉ định tại org/repo trên GitLab lên thiết bị. Xem Quản lý gói.
mpremote mip install --target /flash/third-party functools
Cài đặt gói functools từ micropython-lib vào thư mục /flash/third-party trên thiết bị. Xem Quản lý gói.