285|1

59

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【Follow me第二季第1期】进阶 不倒翁 [复制链接]

  本帖最后由 crimsonsnow 于 2024-9-27 09:48 编辑

这个任务可以通过检测倾角的变化来进行制作,十个彩灯有固定的一轮颜色,当板子向哪里倾斜的时候,那个角度上的彩灯会变成绿色

import math
import time
from adafruit_circuitplayground import cp

# 定义颜色轮函数
def color_wheel(position):
    if position < 0 or position > 255:
        return (0, 0, 0)
    if position < 85:
        return (int(position * 3), int(255 - position * 3), 0)
    if position < 170:
        position -= 85
        return (int(255 - position * 3), 0, int(position * 3))
    position -= 170
    return (0, int(position * 3), int(255 - position * 3))

while True:
    accel_x, accel_y, accel_z = cp.acceleration
    inclination = math.atan2(accel_x, accel_y)  # 获取倾角
    inclination_deg = inclination * (180 / math.pi)  # 将倾角转换为度
    # 限制倾角在-90到90度之间
    inclination_deg = max(min(inclination_deg, 90), -90)
    # 映射倾角到LED索引
    led_index = int((inclination_deg + 90) / 18)

    # 确保led_index在0到9之间
    led_index = max(min(led_index, 9), 0)

    # 更新LED灯颜色
    for i in range(10):
        if i == led_index:
            # 当前倾角对应的LED显示绿色
            cp.pixels[i] = (0, 255, 0)
        else:
            # 根据LED位置计算颜色
            color = color_wheel(255 * i // 10)
            cp.pixels[i] = color

    # 稍微延迟后再次检测
    time.sleep(0.1)

我本想固定基底色然后变化颜色但现在好像有点刺眼

以及如果倾角过大,它会发生反判定,跑到对面的led上去

     

最新回复

如果倾角过大,它会发生反判定,跑到对面的led上去,怎么解决这种情况   详情 回复 发表于 2024-9-28 07:54
点赞 关注
 
 

回复
举报

6822

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

如果倾角过大,它会发生反判定,跑到对面的led上去,怎么解决这种情况

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
触摸屏种类与工作原理

触摸屏的基本原理是,用手指或其他物体触摸安装在显示器前端的触控屏时,所触摸的位置(以坐标形式)由触摸屏控制器检测,并通过接 ...

时序约束资料(有内容说明,资料很多,打包下载)

这是一些我自己在学习时序的时候收集的资料,里面有些可能大家也都看过,包括一些基本的文本资料,还有就是一些网上大侠的个人博 ...

【LPC54100】顺利解决keil编译问题

nxp的芯片我一直都是直接操作寄存器的,带库的是第一次用。还是蛮有新鲜感的。 首先来展示下例程资源 190494 这是最 ...

【sensorTile 器件详解】LSM6DSM 加速度Acc+陀螺仪Gyro (第一篇)

本帖最后由 uniquey 于 2016-12-12 15:49 编辑 文章开篇,我们先从基本信息上了解一下LSM6DSM。虽然有些参数较深入(如Noise ...

TI AWR1642BOOST-ODS EVM开发板入门

最近做一个小测试要用到TI AWR1642BOOST-ODS EVM开发板,查询相关资料后,现在初步可以跑起来官方demo, 简单备忘一下。 ...

又是疲惫的一天

又是疲惫的一天

到了点外卖时间~

那些说下雨不要点外卖的是圣母吧,(下雨还是不要点外卖·了,外卖小哥哥很辛苦的),我无语了

物料开箱-ESP32-S2-KALUGA-1

本帖最后由 Tas_Lan 于 2022-7-16 14:33 编辑 已收到比赛相关物料如图: 622637 ESP32-S2-KALUGA-1主板及蜂鸣器 622 ...

关于共地干扰问题

下图是:一个高压脉冲放电系统,绿色的部分与黄色的部分(外控)是共地的,绿色部分(放电)的作用是产生一个-400V的和输入PWM脉宽相 ...

【超小型 Linux 开发套件Quantum Tiny Linux】加装散热器解决过热问题

加装散热器 这个板子不加散热器非常热,所以花了40从seeed店铺买了个散热器加装 823667 823673 823669 ...

关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表