micro:bit实践操作任务单(下)

Python算法之旅

共 3452字,需浏览 7分钟

 · 2024-04-11

说在前面

此任务单是“2.4 传感与控制”的新课内容,也是“室内环境实时监测系统”项目实践的前置内容。先花两节课时间,通过几个简单的实践任务让学生体验micro:bit硬件编程的过程,初步掌握使用计算机编写程序控制micro:bit等智能终端的基本方法,以便为后面的“室内环境实时监测系统”项目打下坚实基础。

任务单总共包括4个案例共8个子任务,教师可根据学生实际,提供不同程度的半成品代码,讲练结合,力争在项目实践中渗透学科核心素养,整合知识与技能的学习。

dbdf80ed606246de08e30ff1ba1f345c.webp

dad4a60fe199de703285f145ef003ed9.webp


实践与体验: 用计算机控制 micro:bit LED 阵列
实践内容: 1 、给 micro:bit 编写程序。 程序要求:当串口接收到“ H 时,显示 高兴 表情;接收到 S 时,显示 难过 表情。  实践步骤 a. 打开BXY编辑器,输入如下代码,检查语法后,烧录到 micro:bit 板。
      
        from microbit import *
      
      
        while True:    
      
      
            if uart.any():        
      
      
                incoming=str(uart.readall(),"UTF-8")        
      
      
                incoming=incoming.strip("\n")        
      
      
                if incoming=="H":           
      
      
                    display.show(Image.HAPPY)            
      
      
                    print("I am happy")        
      
      
                elif incoming=="S":            
      
      
                    display.show(Image.SAD)            
      
      
                    print("I am sad")        
      
      
                else:            
      
      
                    print("err")
      
    

b.通过串口调试micro:bit。单击“串口”按键,打开串口调试窗口进行调试,分别输入“H”和“S”,及其它任意字符,观察LED阵列和串口监视器的显示 结果。

97f0d29b86722f30eac8c1cdf7b22f8b.webp 2 、通过串口,用 Python 程序控制 micro:bit LED 阵列。 关闭 BXY 编辑器 ,打开 IDLE 编辑器,编写代码如下:
      
        import serial 
      
      
        ser=serial.Serial()
      
      
        ser.baudrate=115200
      
      
        ser.port="COM3" #串口号以实际值为准ser.open()
      
    

运行上述代码,在IDLE交互窗口中分别输入:

ser.write("H".encode()) ser.write("S".encode()) 观察 LED 阵列显示结果,同时观察 IDLE 交互窗口显示情况, 如下图所示: 8767d41256ef074b2bf5a58376899236.webp 3 、用 Python 编写程序,实现更多功能。 1 )实现 LED 阵列有规律地切换表情。 如:实现每隔一秒钟切换一次 micro:bit 的屏幕表情。 代码如下:
      
        import serial,time
      
      
        ser=serial.Serial()
      
      
        ser.baudrate=115200
      
      
        ser.port="COM3"
      
      
        ser.open()
      
      
        while True:    
      
      
            time.sleep(2)    
      
      
            ser.write("H".encode())    
      
      
            time.sleep(1)    
      
      
            ser.write("S".encode())
      
    
运行代码,观察 LED 阵列显示结果。 另:在循环体的最后加上两句代码:
      
            line=ser.readline()
      
      
            print(line.strip().decode())
      
    
再次运行代码,观察 LED 阵列显示结果,同时观察 IDLE 交互窗口显示情况。 5c23a35236742086c4844d9d4843c16d.webp 2 )实现在 IDLE 交互窗口中,输入字符和 micro:bit 交互,并实时显示反馈信息。 代码如下:
      
        import serial,time
      
      
        ser=serial.Serial()
      
      
        ser.baudrate=115200
      
      
        ser.port="COM3"
      
      
        ser.open()
      
      
        while True:    
      
      
            name=input()    
      
      
            ser.write(name.encode())    
      
      
            line=ser.readline()    
      
      
            print(line.strip().decode())
      
    
运行代码,在IDLE交互窗口,分别输入“H”和“S”,其它任意字符,观察LED阵列和IDLE交互窗口的显示结果。 01639cba8e0e1964c1450a00e8cd8f73.webp 总结:
除了必要的硬件设备,本项目实践还需要下载BXY_Python_Editor软件,并在Python中安装pyserial模块。为方便学生体验和节省上课时间,教师可预先安装好相关模块,并把源代码发送给学生,这样学生就可以直接运行程序了。
本任务单中四个案例由浅入深,难度逐次递增。教师可以先演示并介绍相关知识点,然后给予学生足够的时间去运行程序,体验硬件编程的完整过程,并根据自己的需要简单修改程序功能。

需要本文word文档、源代码和课后思考答案的,可以加入 “Python算法之旅”知识星球 参与讨论和下载文件, Python算法之旅”知识星球 汇集了数量众多的同好,更多有趣的话题在这里讨论,更多有用的资料在这里分享。

我们专注Python算法,感兴趣就一起来!

相关优秀文章:

阅读代码和写更好的代码

最有效的学习方式

Python算法之旅文章分类

浏览 6
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报