【DigiKey好物畅享】使用arduino arduino uno Q 进行服务器天气显示【1】

基于arduino uno q的强大性能,可以运行python脚本等多样的程序,arduino app lab上面提供了一种python+Arduino原生开发方法,他们的实现逻辑十分的巧妙,相信阅读了这篇文章你们可以无痛的上手这块开发板。

硬件实物介绍:

上手看这块开发板,板子的正面印着ARDUINO的官方Logo和图标,还有LED矩阵和高通MPU和外围电路,整体堆料很足,看来是下大成本制作了,板子的整体还是采用了之前ARDUINO板子的风格进行制作,这就确保了这块板子可以无缝接入之前的项目,板子上集成了高通® QRB2210微处理器和基于Arm® Cortex-M33®架构的STMicroelectronics® STM32U585 Microcontroller,这两个处理器可以帮助我们以更加高效的方式完成我们的项目,官方在设计上使用了MPU加速AI和联网部分,MCU处理传感器数据读取,LED矩阵可用来显示一些信息和具体的数据,显示一些简易的图标再合适不过了。

板子的正面是MPU和其外围电路构成,板子的背面就是STM32和存储芯片,还有两排外扩接口,整体的使用功能上还是很丰富的。

正面如下:

背面如下:

可见物件和元器件很丰富,使用起来稳定性也很高。

注意:使用这个开发板需要注意,这个板子的MCU是3.3V供电,MPU是使用1.8V进行供电的,所以需要进行电源隔离,防止烧毁MPU。

实战项目:

Arduino官方提供了一个Bridge的工具来进行两个板子之间的通信。可以灵活选择两个处理器作为主从处理器,通过Bridge灵活的选择两个处理器的作用,甚至可以两个处理器平等处理任务,这可以根据需求选择。

Bridge通过给ino和python直接暴露对应的函数名称,可以在python里面调用ino里面的程序,同样ino里面可以通过bridge调用python里面的程序,那么如果我想在python里面作为主循环,ino里面控制外设,只需要使用del loop函数即可让mpu作为主处理器,通过Bridge调用mcu里面的函数控制外设,通过这两个策略可以全面的使用MCU和MPU,实现分工的效果。

我们这里使用MCU作为主力,MPU作为从处理器进行演示,MCU通过调用MPU里面获取和风天气的API进行gzip解压缩以后获取对应的天气信息,解析以后根据不同的天气情况选择对应的天气图标显示在LED矩阵上,实现一个简易的天气时钟效果。一般直接使用MCU进行操作很复杂,需要处理https的协议互通,gzip的解析和json的提取,这在python只需要寥寥几句代码即可实现,体现了MPU的作用,通过MCU进行数据的可视化,方便我们高效的的开发。

整体的流程图如下:

这里我们使用LED矩阵进行显示天气的状态,由于led的驱动库的原理是一直按行取0和1,但是取模软件是如果一行不满一个字节,未满的部分填充0,这会导致显示错位,为此我们需要写一个函数进行修改,让其符合我们显示的效果,这里我们确定了四种天气状态,分别为晴,多云,雨,阴这四个。在这里我们首先通过取模软件绘制这四个天气对应的汉字,由于太小所以不咋好看,然后通过这个转换函数进行转换成我们对应显示的函数,然后在LED矩阵上进行显示。(代码见第二篇)