[原创] MicroPython动手做(12)——掌控板之Hello World

eagler8   2020-4-16 17:08 楼主

1、连接掌控板(显示最新固件日期)

 

0.jpg

此内容由EEWORLD论坛网友eagler8原创,如需转载或用于商业用途需征得作者同意并注明出处

回复评论 (21)

2、打开IDE(mPython X),确认已经烧录固件,开发板项选择掌控板,选择端口(这里是COM10),打勾“自动连接”

核对五个红点处

 

01 (1).jpg

点赞  2020-4-16 17:14

3、代码编程(使用中文、韩文、英文、日文和法文,串口输出世界你好)

 

print("世界你好")
print("안녕하세요")
print("Hello World")
print("こんにちは、世界")
print("Bonjour au monde")

 

点赞  2020-4-16 17:51

4、图形编程(打印字符串)

02.jpg

点赞  2020-4-16 17:53

03.jpg

点赞  2020-4-16 17:57

5、Python print() 函数

print() 方法用于打印输出,最常见的一个函数。

语法

以下是 print() 方法的语法:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

参数

objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。

sep -- 用来间隔多个对象,默认值是一个空格。

end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。

file -- 要写入的文件对象。

flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

返回值

无。

 

打印字符串

print('Hello, world!')

示例结果:

Hello, world!

打印数字

print('1024')

示例结果:

1024

打印列表

L = [1, 2, 3, 4]print(L)

示例结果:

[1, 2, 3, 4]

打印元组

L = (1, 2, 3, 4)print(L)

示例结果:

(1, 2, 3, 4)

打印字典

D = {'one' : 1,'two': 2}print(D)

示例结果:

{'two': 2, 'one': 1}

打印格式化字符串

print('Hello, {}!'.format('world'))

示例结果:

Hello, world!

打印格式化浮点数

print('%10.3f' % 3.1415926)

示例结果:

3.142

 

三个关键字参数

sep

为在每个对象文本之间插入的字符串,默认为一个空格。 若传如空字符即无分隔符

end

为添加在打印文本末尾的字符串,默认为换行符'\n'

file

指定了文本将要发送到的文件,一般传入一个类似文件的

write(string)

即可,但如果使用了file,待打印文本就会输出到指定文件,而不是打印到屏幕上。

点赞  2020-4-16 19:03

6、REPL(read-evaluate-print loop)
使用MicroPython的一个主要的优点是交互式的REPL,其代表读取﹣求值﹣输出循环。REPL对于学习一门新的编程语言具有很大的帮助,因为它能对初学者写的程序立刻做出回应,这意味着你执行代码,并能马上查看结果,而无需经过先编译再上传的繁琐步骤。通过串行端口建立连接后,您可以通过按几次Enter键来测试它是否正常工作,如果正常工作,您能看到Python REPL提示符,表示为 >>> 。按Enter键后,可在提示符处键入任何内容。 MicroPython将运行您输入的代码并打印结果(如果有的话);如果输入的文本出错,则会打印出错误消息。尝试在提示符下输入以下内容:

 

>>> print("Hello World")
Hello World


04.jpg

点赞  2020-4-16 20:19

7、可以尝试下载mPython的OLED显示屏上显示字符:

 

>>> from mpython import *
>>> oled.DispChar('hello,world!',0,0)
>>> oled.show()
>>>

注解

oled.DispChar(str,x,y) str 为要显示的字符串, x 、y 为显示起点的x、y坐标。 然后用 oled.show() 刷新屏幕后,字符串即可显示在OLED显示屏上。可以尝试在其他位置显示任意字符串。

 

05.jpg

本帖最后由 eagler8 于 2020-4-16 20:54 编辑
点赞  2020-4-16 20:37

06.jpg

点赞  2020-4-16 20:43

8、行编辑与输入历史记录
可以使用向左和向右箭头键移动光标来编辑当前输入的行;按Home键或ctrl-A将光标移动到行的开头,按End或ctrl-E移动到行的末尾;Delete键或退格键用来删除。

 

REPL会记住您输入的一定数量的前几行文本(ESP32上最多8行)。 要调用上一行,请使用向上和向下箭头键。

 

Tab键
Tab键可以查看模块中所有成员列表。这对于找出模块或对象具有的函数和方法非常有用。 假设您在上面的例子中导入了machine然后键入 . 再按Tab键以查看machine模块所有成员列表:
 

>>> machine.
__class__       __name__        ADC             DAC
DEEPSLEEP       DEEPSLEEP_RESET                 EXT0_WAKE
EXT1_WAKE       HARD_RESET      I2C             PIN_WAKE
PWM             PWRON_RESET     Pin             RTC
SLEEP           SOFT_RESET      SPI             Signal
TIMER_WAKE      TOUCHPAD_WAKE   Timer           TouchPad
UART            ULP_WAKE        WDT             WDT_RESET
deepsleep       disable_irq     enable_irq      freq
idle            mem16           mem32           mem8
reset           reset_cause     sleep           time_pulse_us
unique_id       wake_reason
>>> machine.

 

点赞  2020-4-16 21:03

9、REPL的粘贴模式与其他控制命令

按 ctrl-E 将进入特殊粘贴模式,您可将一大块文本复制并粘贴到REPL中。如果按ctrl-E,您将看到粘贴模式提示:

 

paste mode; Ctrl-C to cancel, Ctrl-D to finish
===

 

然后,您可以粘贴(或键入)您的文本。请注意,没有任何特殊键或命令在粘贴模式下工作(例如Tab或退格) ,它们只是按原样接受。按 ctrl-D 完成输入文本并执行。

 

还有其他四个控制命令:

空白行上的Ctrl-A将进入原始REPL模式。这类似于永久粘贴模式,除了不回显字符。
空白处的Ctrl-B转到正常的REPL模式。
Ctrl-C 取消任何输入,或中断当前运行的代码。
空白行上的 Ctrl-D 将执行软重启。

 

07.jpg

点赞  2020-4-16 21:09

看上去不错呀

点赞  2020-4-17 00:54

谢谢老师鼓励

点赞  2020-4-17 05:19

普通的ESP32可以烧你们的固件后直接晒用IDE么

点赞  2020-4-17 09:10
引用: shower.xu 发表于 2020-4-17 09:10 普通的ESP32可以烧你们的固件后直接晒用IDE么

这个没有试过,主控一样也许可以

点赞  2020-4-17 09:20

10、OLED屏幕显示Hello World

用4种语言并且居中。

 

掌控板板载1.3英寸OLED显示屏,分辨率128x64。采用Google Noto Sans CJK 16x16字体,字体高度16像素点,支持简体中文,繁体中文,日文和韩文语言。实验代码如下:

 

from mpython import *

oled.fill(0)
oled.DispChar("世界你好", 40, 0, 1)
oled.DispChar("안녕하세요", 37, 16, 2)
oled.DispChar("Hello, world!", 26, 32, 3)
oled.DispChar("こんにちは世界", 22, 48, 4)
oled.show()

注解

DispChar(str,x,y)函数可以将左上角为坐标的文本将写入FrameBuffer。str 为显示文本内容,支持简体中文,繁体中文,英文,日文和韩文语言。x y 为oled显示 起始xy坐标。oled.show() 为将FrameBuffer送至oled刷新并显示屏幕。

 

采用Noto Sans CJK 16像素等高,不等宽字体。不同字符,宽度会有所不一样。

本帖最后由 eagler8 于 2020-4-17 10:13 编辑
点赞  2020-4-17 09:28

mPython X 图形编程(四种模式)

 

调整 x 数值,使显示的字符串“Hello World”能够居中。

 

08 (1).jpg

点赞  2020-4-17 09:44

09.jpg

点赞  2020-4-17 10:03

11、mPython仿真功能显示Hello World
——没有掌控板也能测试运行程序

 

10.jpg

点赞  2020-4-17 10:32

电脑上的显示效果如图

 

11 (1).jpg

点赞  2020-4-17 10:36
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复