【开发者案例】使用HaaS EDU K1实现一个数字量角器

简介: 2021年3月,阿里发布了HaaS EDU K1物联网教育开发板。它是一款云端一体全链路解决方案的积木平台。
来源 | HaaS技术社区

2021年3月,阿里发布了HaaS EDU K1物联网教育开发板。它是一款云端一体全链路解决方案的积木平台。

点击这里查看HaaS EDU K1硬件介绍
点击这里查看HaaS EDU场景式应用整体介绍

image.png

2021年7月,阿里又发布了一站式的集成开发环境HaaS Studio,大大降低了alios things开发环境搭建的门槛。HaaS Studio 集 C / JS / Python 三种语言开发于一体,实现了VSCode一个插件完成三种应用开发的功能。

HaaS EDU K1板载了一块MPU6050芯片,官方例程实现了一个水平仪。Simon Liu在此基础上基于HaaS EDU K1的Python轻应用实现了一个电子量角器,效果如下图:

7c341440706640d58515351d01c1625a.gif

主要流程:

  1. 官方Python轻应用的gyroscope例程提供了获取MPU6050原始数据的api:read_MPU6050()
  2. 对获取到的数据通过滤波算法进行融合(main分支使用了一阶互补滤波,kalman分支使用了卡尔曼滤波)。
  3. 将解算后得到的c_angle_y四舍五入保留一位小数显示到OLED屏幕上。

主要代码如下:

def main():
    ac = []
    gy = []
    ystr = ""
    while (True):
        
        t_now = utime.ticks_ms()
        dt = (t_now - last_read_time)/1000.0
        acc_x, acc_y, acc_z, gyro_x, gyro_y, gyro_z = read_MPU6050()
 
        #Full scale range +/- 250 degree/C as per sensitivity scale factor. The is linear acceleration in each of the 3 directions ins g's
        Ax = acc_x/16384.0
        Ay = acc_y/16384.0
        Az = acc_z/16384.0
        
        # This is angular velocity in each of the 3 directions 
        Gx = (gyro_x - calib_x_gyro)/131.0
        Gy = (gyro_y - calib_y_gyro)/131.0
        Gz = (gyro_z - calib_z_gyro)/131.0
 
        acc_angles = acc_angle(Ax, Ay, Az) # Calculate angle of inclination or tilt for the x and y axes with acquired acceleration vectors
        gyr_angles = gyr_angle(Gx, Gy, Gz, dt) # Calculate angle of inclination or tilt for x,y and z axes with angular rates and dt 
        (c_angle_x, c_angle_y) = c_filtered_angle(acc_angles[0], acc_angles[1], gyr_angles[0], gyr_angles[1]) # filtered tilt angle i.e. what we're after
        (k_angle_x, k_angle_y) = k_filtered_angle(acc_angles[0], acc_angles[1], Gx, Gy, dt)
 
        set_last_read_angles(t_now, c_angle_x, c_angle_y)
        c_angle_y += offset
        ystr = ("{:.1f}".format(c_angle_y))
        display.fill(0)
        display.text(ystr, 55, 30, 1)
        display.show()
        utime.sleep_ms(10)

注:

  • 整个项目只有两个py文件,加起来代码不超过300行。
  • 默认的底层固件应该是使用了Micropython的1306驱动,仅支持一个字号和字体。
  • 分支bigfonts尝试在不修改底层固件的情况下实现更大字体(主要是数字)的显示,并且使用了自带的驱动,但是显示有严重滞后,欢迎各位大佬进行优化。

使用Python轻应用开发初步体验感受的优缺点如下:

优点
开发快速,提供大量封装好的api,可以操纵开发板的硬件以及与传感器通讯。
可以通过远程和本地进行热更新。

缺点
开发受到底层固件的限制,比如你想显示更多字体,要么需要固件支持,或者重写SSD1306的驱动和字库,或者按照我的方法在python源码中建立字库并优化显示速度。又或者你希望使用按键中断,也需要更新固件来进行支持。(截止到2021年8月3日的固件尚未支持EDU K1的按键中断)

最后是开源的代码,欢迎Star,欢迎优化:
Gitee:haas_eduk1_digital_protractor
Github:haas_eduk1_digital_protractor

相关文章
|
供应链 小程序 物联网
B2B2C、C2F、S2B2b2C、O2O、S2B2C和各种的模式缩写解释说明
B2B2C、C2F、S2B2b2C、O2O、S2B2C和各种的模式缩写解释说明
4225 0
B2B2C、C2F、S2B2b2C、O2O、S2B2C和各种的模式缩写解释说明
|
SQL 分布式计算 监控
全链路数据治理
本场景主要介绍以常见的真实的海量日志数据分析任务为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
|
9月前
|
SQL 关系型数据库 MySQL
【YashanDB知识库】MySQL field 函数的改写方法
【YashanDB知识库】MySQL field 函数的改写方法
|
存储 人工智能 缓存
官宣开源|阿里云与清华大学共建AI大模型推理项目Mooncake
2024年6月,国内优质大模型应用月之暗面Kimi与清华大学MADSys实验室(Machine Learning, AI, Big Data Systems Lab)联合发布了以 KVCache 为中心的大模型推理架构 Mooncake。
|
11月前
|
JSON 数据挖掘 API
唯品会按关键字搜索 VIP 商品 API 接口的开发应用与收益
在电商蓬勃发展的今天,精准的商品搜索功能至关重要。唯品会的按关键字搜索VIP商品API接口通过高效、精准的检索,提升了用户购物体验和商家销售业绩。该接口基于RESTful架构,采用JSON格式交互,支持唯品会APP内搜索、第三方平台合作及数据分析等场景,显著提升用户活跃度与忠诚度,拓展销售渠道,增加收入,并挖掘数据驱动的商业价值,助力唯品会持续发展。
250 4
|
机器学习/深度学习 人工智能 量子技术
【量子计算从入门到精通】--量子计算的介绍
【量子计算从入门到精通】--量子计算的介绍
292 1
|
机器学习/深度学习 人工智能 算法
在 AI Native 环境中实现自动超参数优化的微调方法
【8月更文第1天】随着人工智能技术的不断发展,深度学习模型的训练变得越来越复杂。为了达到最佳性能,需要对模型进行微调,特别是对超参数的选择。本文将探讨如何在 AI Native 环境下使用自动化工具和技术来优化模型的微调过程。
580 5
|
存储 边缘计算 安全
边缘计算设备的设计与部署技术探索
【8月更文挑战第1天】边缘计算设备的设计与部署是一个复杂而系统的工程,需要综合考虑多个方面的因素。通过制定全面的战略规划、选择合适的技术和设备、设计合理的网络架构、实施有效的安全策略以及定期管理维护等措施,可以确保边缘计算设备的稳定运行和高效应用。随着物联网和云计算技术的不断发展,边缘计算将在更多领域展现出其独特的优势和潜力。
432 10
|
弹性计算 DataWorks 关系型数据库
DataWorks操作报错合集之DataX在执行过程中接收到了意外的信号15,导致进程被终止,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
人工智能 数据处理 Python
🔍数据侦探的AI助手:Prompt技巧大公开,洞察商业先机不手软
【8月更文挑战第1天】在数据驱动时代,AI助手作为数据侦探的强大伙伴,通过精心设计的AI Prompt技巧帮助解析复杂市场。案例中,一电商平台欲进入新兴市场,面临数据挑战。初始Prompt聚焦消费者偏好及影响因素分析。为进一步深化洞察,Prompt加入节假日购物模式、商品类别偏好及社交媒体影响等细节。结合领域知识,优化Prompt关注价格敏感度与定制化营销策略。最终,AI助手生成的报告揭示了消费者行为模式,并提出市场策略建议,助力电商成功布局新兴市场。此过程展示了AI Prompt在商业洞察中的关键作用,预示着其在未来洞察之旅中的广阔前景。
450 2

热门文章

最新文章