对于深入研究实时嵌入式应用程序之前,对micropython感兴趣的开发人员必须先选择支持开发套件或微处理器。开发人员寻找支持的开发工具包的最佳位置是签出micropython github board summary页面。想要快速启动并运行的开发人员应该考虑已经安装了micropython的pyboard。想要使用适合使用arduino屏蔽的开发工具包并且不介意将micropython放在开发工具包上的额外步骤(要了解如何编译和安装micropython,请参阅jacob的视频)的开发人员应该考虑使用netduino plus 2。
图1 - pyboard(左)和netduino plus 2(右)
一旦开发人员运行硬件micropython,开始使用micropython进行编程相对简单。开发人员只需将他们的设备通过usb插入pc,这样他们就可以访问repl(read evaluate print loop)终端。 repl允许开发人员只需键入即可使用micropython测试命令和脚本。
例如,首先要尝试的是学会控制板载led。使用 pyb 库完成对micropython中任何微控制器外设的控制。第一步是在repl中键入“ import pyb ”并按enter键。然后,开发人员可以通过 pyb 库访问任何微控制器外设。例如,可以通过键入 pyb.led(led#)。on()打开led,或者通过键入 pyb.led(led#)关闭()关闭led。 i>。可以在图2中看到如何使用micropython打开四个不同led的简单示例。
图2 - 带led指示灯的repl终端
python的一个优点是它不仅仅是一种脚本语言; python是一种面向对象的编程语言。例如,开发人员可以创建一个led对象来控制开发板上的所有led。 pyboard有四种不同的led;红色,绿色,黄色和蓝色。每个led都分配一个数字,以红色为一,红色为四。可以编写一个简单的脚本,通过将名为led的对象分配给 pyb.led(2),每1000毫秒切换一次绿色led。 led切换脚本的外观示例可以在图3中找到。
图3 - 绿色led切换脚本
pyb 库包含许多用于控制微控制器外设的预定义类。一些例子包括pwm,can和定时器。图4包含其他示例类,micropython文档包含所有受支持的类。
图4 - pyb库类
不一定需要通过python脚本的主循环执行定期任务,例如切换led,如示例所示。开发人员可以选择使用微控制器的定时器外设,并使用中断来改变led的状态。设置计时器相对简单。首先,开发人员需要选择应该使用哪个计时器(timer1,timer2等)并使用类似于以下代码创建计时器对象:
timergreenledtoggle = pyb.timer(2)
其中数字2是应与 timergreenledtoggle 对象一起使用的计时器编号。
分配计时器对象是一个很好的第一个开始但开发人员还需要为计时器分配一个频率。可以使用以下代码初始化定时器以5 hz的频率触发中断:
timergreenledtoggle.init(freq = 5)
然而,在repl中执行上述语句的开发人员会发现没有什么真正有趣的事情发生。没有任何反应的原因是计时器需要已经分配了一个回调函数,以便在每次中断触发时执行。 micropython非常容易地分配这样的回调函数。例如,一个名为 greenledtoggle 的函数只需调用 led.toggle()。开发人员可以使用以下代码将 greenledtoggle 分配给 timergreenledtoggle 回调:
timergreenledtoggle.callback(greenledtoggle)
您可以看到创建一个简单的切换led是多么简单!即使是定时器设置也只需要几行python代码。上面的定时器代码可以在几分钟内完成。使用传统c代码的开发人员通常不会轻易逃脱。需要花费大量的时间和精力才能进入c代码才能达到micropython的起点。
MOD计数器和时序图
华为“1+2+1”物联网战略 共建全联接的智能社会
创企推Chiplet结构大算力芯片,称性能大幅领先英伟达H100
汽车智能防盗防撞报警系统的设计
设计软件大盘点!从UI设计到插画都在这了!
如何学习MicroPython MicroPython入门知识
兆芯国产自主可控x86解决方案巡展走进西北
贸泽电子i.MX 8M Plus评估套件开售
使用人工智能构建了垃圾收集机器人的第一个演示
如何选择水晶头
庆科信息技术EMW3060简介
宜家智能灯具推出据用拥有类灯丝设计的特鲁菲E26 LED灯泡
MAX2597 Femto基站比特至RF无线发送器
分布式光伏的优点与发展趋势
光纤收发器怎么选型,光纤收发器选型需要的参数
新思科技成功收购PikeTec,持续扩大自动驾驶全球领导地位
烟气在线监测物联网云系统管理平台
未来要求高精度和专业性的工作也面临被人工智能取代的风险?
买显示器时应该注意哪些参数
电阻、欧姆定律和阻抗是什么意思