MicroPython Remote Shell
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MicroPython Remote Shell相关的知识,希望对你有一定的参考价值。
参考技术A rshell是专门针对MicroPython的远程shell,基于串口和网络。支持多种模式:目前必须使用Linux中的Python3。由于硬件映射问题,所以Windows10的Ubuntu子系统无法使用/dev/tty*,必须使用VBox中的Ubuntu虚拟机,或者Cygwin。
不知道是否是Flash原因,使用rshell经常会无法写入文件。重刷固件也不解决问题。看来MRAM/PSRAM/FeRAM在IoT时代还是很有意义的。
所以,现在我要访问MicroPython,如同盗梦空间一样:
Remote MicroPytyhon shell.
This is a simple shell which runs on the host and uses MicroPython's
raw-REPL to send python snippets to the pyboard in order to get
filesystem information, and to copy files to and from MicroPython's
filesystem.
It also has the ability to invoke the regular REPL, so rshell can be
used as a terminal emulator as well.
Note: With rshell you can disable USB Mass Storage and still copy files
into and out of your pyboard.
When using the commands, the /flash directory, and the /sdcard directory
(if an sdcard is inserted) are considered to be on the pyboard, and all
other directories are considered to be on the host. For an ESP based board you
can only reference its directory by using the board name e.g. /pyboard etc..
NOTE: rshell requires a fairly recent version of the MicroPython
firmware, specifically one which contains the ubinascii.unhexlify
command which was added May 19, 2015 (v1.4.3-28-ga3a14b9 or newer).
If your verion of the firmware isn't new enough, then you'll see an
error message something like this:
::
You can install rshell using the command:
::
If you use a virtualenv, then you don't need the sudo. rshell needs Python3.
All of my testing was done using version 3.4.0.
Debian/Ubuntu users can get pip3 using:
::
This shows a pyboard in its default state, copying a hello.py and then
entering the repl and importing it.
::
Displays a lit of the valid options. You should get something like the
following displayed:
::
Sets the baud rate to use when talking to the pyboard over a serial port. If
no baud is specified, then the baudrate from the RSHELL_BAUD enviroinment
variable is used. If the RSHELL_BAUD environment variable is not defined then
the default baudrate of 115200 is used.
Sets the buffer size used when transferring files betweem the host and the
pyboard. If no buffer size is specified, then the value from the
RSHELL_BUFFER_SIZE environment variable is used. If the RSHELL_BUFFER_SIZE
environment variable is not defined, then the default of 512 is used.
Turns on debugging. This allows you to see the script which is sent over
the raw REPL and the response received.
Specifies the editor to use with the edit command. If no editor is specified,
then the following environment variables will be searched: RSHELL_EDITOR,
VISUAL, and EDITOR. If none of those environment variables is set then vi will
be used.
Specifies a file of rshell commands to process. This allows you to
create a script which executes any valid rshell commands.
By default, rshell uses ANSI color escape codes when displaying the
prompt and ls output. This option allows colorized output to be
disabled.
On certain platforms the raw REPL mode is unreliable with particular sequences
of binary characters. Specifying --ascii enables the transfer of binary files
to such platforms. It does this by encoding the data as ASCII hex.
If a port is specified defines how long rshell will wait for the port to exist
and for a connection to be established. The default is 0 seconds specifying an
immediate return.
Specifies the serial port which should be used to talk to the
MicroPython board. You can set the RSHELL_PORT environment variable to
specify the default port to be used, if --port is not specified on the
command line.
This option causes the Connecting messages printed when rshell starts to be
suppressed. This is mostly useful for the test scripts.
If the timing option is specified then rshell will print the amount of time
that each command takes to execute.
Specifies the username to use when logging into a WiPy over telent. If no
username is specified, then the username from the RSHELL_USER environment
variable is used. If the RSHELL_USER environment variable doesn't exist
then the default username 'micro' is used.
Specified the password to use when logging into a WiPy over telnet. If no
password is specified, then the password from the RSHELL_PASSWORD environment
variable is used. If the RSHELL_PASSWORD environment variable doesn't exist
then the default password 'python' is used.
If a command is specified, then that command will be executed and rshell will
exit. Examples:
::
rshell can be connected to multiple pyboards simultaneously. If the
board module exists on the pyboard (i.e. a file named board.py somewhere
in the module search path) and it contains an attribute called name
(e.g. :code: name = "myboard" ) then the pyboard will use that name. If the board
module can't be imported then the board will be named, pyboard or wipy.
Names will have -1 (or some other number) to make the board name unique.
You can access the internal flash on the first board connected using
/flash and the sd card on the first board connected can be accessed
using /sd.
For all other connected pyboards, you can use /board-name/flash or
/board-name/sd (you can see the board names using the boards command).
The boards command will show all of the connected pyboards, along with all of
the directories which map onto that pyboard.
::
Debug function for verifying argument parsing. This function just prints
out each argument that it receives.
::
Lists all of the boards that rshell is currently connected to, their
names, and the connection.
You can give a custom name to a board with either copying over a :code: board.py
file or using the :code: echo command, e.g.
::
(Remember to exit rshell and re-enter to see the change).
::
Concatenates files and sends to stdout.
::
Changes the current directory. ~ expansion is supported, and cd - goes
to the previous directory.
::
Connects a pyboard to rshell. rshell can be connected to multiple
pyboards simultaneously.
::
Copies the SOURCE file to DEST. DEST may be a filename or a directory
name. If more than one source file is specified, then the destination
should be a directory.
Directories will only be copied if -r is specified.
A single pattern may be specified, in which case the destination
should be a directory. Pattern matching is performed according to a subset
of the Unix rules (see below).
Recursive copying uses rsync (see below): where a file exists on source
and destination, it will only be copied if the source is newer than the
destination.
::
Display a line of text.
::
If the file is on a pyboard, it copies the file to host, invokes an
editor and if any changes were made to the file, it copies it back to
the pyboard.
The editor which is used defaults to vi, but can be overridem using
either the --editor command line option when rshell.py is invoked, or by
using the RSHELL_EDITOR, VISUAL or EDITOR environment variables (they
are tried in the order listed).
::
Prints the size of the file, in bytes. This function is primarily
MicroPython ESP32 触摸传感器使用示例
【MicroPython ESP32】 触摸传感器使用示例
- 本示例基于
Thonny
平台开发
触摸传感器
ESP32可提供多达10个触摸GPIO。 这10个触摸GPIO为 0, 2, 4, 12, 13, 14, 15, 27, 32, 33
from machine import TouchPad
触摸功能函数属于
machine
模块内的TouchPad
类。
- 通过Shell调试窗口查询:
MicroPython v1.19.1 on 2022-06-18; ESP32 module with ESP32
Type "help()" for more information.
>>> from machine import TouchPad
>>> help(TouchPad)
object <class 'TouchPad'> is of type type
config -- <function>
read -- <function>
TouchPad.read()
:读取touchpad的电平。若touchpad接高电平则返回1,若接GND则返回0。TouchPad.config(value)
:设置触摸板的标识。
value:任意整数值
示例代码
'''ESP32可提供多达10个触摸GPIO。 这10个触摸GPIO为 0, 2, 4, 12, 13, 14, 15, 27, 32, 33
'''
from machine import TouchPad,Pin
from utime import sleep #延时
led = Pin(2,Pin.OUT)#用machine模块的pin功能设置引脚2为输出。
tp = TouchPad(Pin(12))
while True:
value=tp.read()
if value > 80:
led.value(0)
else:
led.value(1)
print(value)
sleep(1)
- Shell调试窗口输出信息
以上是关于MicroPython Remote Shell的主要内容,如果未能解决你的问题,请参考以下文章