4512| 16
|
[MP动手做] MicroPython动手做(12)——掌控板之Hello World |
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,待打印文本就会输出到指定文件,而不是打印到屏幕上。 |
6、REPL(read-evaluate-print loop) 使用MicroPython的一个主要的优点是交互式的REPL,其代表读取﹣求值﹣输出循环。REPL对于学习一门新的编程语言具有很大的帮助,因为它能对初学者写的程序立刻做出回应,这意味着你执行代码,并能马上查看结果,而无需经过先编译再上传的繁琐步骤。通过串行端口建立连接后,您可以通过按几次Enter键来测试它是否正常工作,如果正常工作,您能看到Python REPL提示符,表示为 >>> 。按Enter键后,可在提示符处键入任何内容。 MicroPython将运行您输入的代码并打印结果(如果有的话);如果输入的文本出错,则会打印出错误消息。尝试在提示符下输入以下内容: [mw_shl_code=python,false]>>> print("Hello World") Hello World[/mw_shl_code] ![]() |
7、可以尝试下载mPython的OLED显示屏上显示字符: [mw_shl_code=applescript,false]>>> from mpython import * >>> oled.DispChar('hello,world!',0,0) >>> oled.show() >>>[/mw_shl_code] 注解 oled.DispChar(str,x,y) str 为要显示的字符串, x 、y 为显示起点的x、y坐标。 然后用 oled.show() 刷新屏幕后,字符串即可显示在OLED显示屏上。可以尝试在其他位置显示任意字符串。 ![]() |
8、行编辑与输入历史记录 可以使用向左和向右箭头键移动光标来编辑当前输入的行;按Home键或ctrl-A将光标移动到行的开头,按End或ctrl-E移动到行的末尾;Delete键或退格键用来删除。 REPL会记住您输入的一定数量的前几行文本(ESP32上最多8行)。 要调用上一行,请使用向上和向下箭头键。 Tab键 Tab键可以查看模块中所有成员列表。这对于找出模块或对象具有的函数和方法非常有用。 假设您在上面的例子中导入了machine然后键入 . 再按Tab键以查看machine模块所有成员列表: [mw_shl_code=applescript,false]>>> 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.[/mw_shl_code] |
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 将执行软重启。 ![]() |
10、OLED屏幕显示Hello World 用4种语言并且居中。 掌控板板载1.3英寸OLED显示屏,分辨率128x64。采用Google Noto Sans CJK 16x16字体,字体高度16像素点,支持简体中文,繁体中文,日文和韩文语言。实验代码如下: [mw_shl_code=applescript,false]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()[/mw_shl_code] 注解 DispChar(str,x,y)函数可以将左上角为坐标的文本将写入FrameBuffer。str 为显示文本内容,支持简体中文,繁体中文,英文,日文和韩文语言。x y 为oled显示 起始xy坐标。oled.show() 为将FrameBuffer送至oled刷新并显示屏幕。 采用Noto Sans CJK 16像素等高,不等宽字体。不同字符,宽度会有所不一样。 |
12、了解OLED屏幕 掌控板自带1.3英寸OLED显示屏。OLED(Organic Light-Emitting Diode),又称为有机电激光显示,由美籍华裔教授邓青云于1979年在实验室中发现。它是一种非常薄的有机材料涂层,具有自发光特性,换句话说,当有电流通过时,这些有机材料就会发光。OLED相比于传统显示屏幕,在技术优势上可以说是划时代的。OLED是广视角,具有几乎无穷高的对比度、较低的功耗、非常高的反应速度,全彩化并且制程简单等优点。OLED材料可以自发光,不需要增加背光源,可以大大简化工艺,缩减体积。基于以上种种优异特性,OLED被认为是下一代的平面显示器新兴应用技术。 掌控板OLED显示屏的分辨率128x64。分辨率指屏幕显示的像素个数。那什么是像素呢?掌控板OLED显示屏的分辨率128x64。分辨率指屏幕显示的像素个数。那什么是像素呢?你在屏幕上可以看到一张图片,但实际上,贴在屏幕边上看就会发现你的屏幕实际上是由无数个小点点组成的,因为每个点比较小,所以你的眼睛会误以为这是一张完整的图片。 一个像素就可以理解为屏幕上的一个点。屏幕正是由多个像素点组成。分辨率128x64的意思是水平方向含有128个像素,垂直方向含有64个像素。屏幕上一共有128x64个像素点。 通过“画点”指令,我们可以看到屏幕中的任意一个像素点。示例程序和运行结果如下图。在屏幕上可以看到一张图片,但实际上,你贴在屏幕边上看就会发现你的屏幕实际上是由无数个小点点组成的,因为每个点比较小,所以你的眼睛会误以为这是一张完整的图片。 一个像素就可以理解为屏幕上的一个点。屏幕正是由多个像素点组成。分辨率128x64的意思是水平方向含有128个像素,垂直方向含有64个像素。屏幕上一共有128x64个像素点。通过“画点”指令,我们可以看到屏幕中的任意一个像素点。 ![]() |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed