基于Adafruit Circuit Playground Express的开发过程————接近检测与不倒翁运动过程中的不同灯光效果
假期闲来无事买了一块Adafruit Circuit Playground Express跟大家一起分享下开发过程
标签
嵌入式系统
pildio
更新2024-09-23
18

这里我们使用到了板载的两颗红外LED 一个发射一个接受去判断设定阈值需要注意的是红外发光管应采用闪烁方式发光,避免过热烧毁

代码如下





我们需要利用加速度传感器读取到xyz三方面的加速度 然后给出对应的灯光效果。我实现的是根据板子的倾斜方向亮起对应的灯

如下


import math
from adafruit_circuitplayground import cp

# 如果需要改变颜色,请在这个字典中修改颜色值
colors = {
"black": (0, 0, 0)
}

# 定义一个颜色轮函数
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 = (2 - (math.atan2(accel_x, accel_y) / math.pi + 1)) * 180
force = math.sqrt((accel_x * accel_x) + (accel_y * accel_y))
print(
"Accelerometer: (%0.1f, %0.1f, %0.1f) m/s^2; Angle: %0.1f, Magnitude: %0.1f"
% (accel_x, accel_y, accel_z, inclination, force)
)
if force > 2:
force = min(force, 9.8)
for pos in range(10):
if pos == (inclination * 10 // 360):
cp.pixels[pos] = tuple(
int(comp * ((10 - pos % 10)) / 10.0) for comp in color_wheel(25 * (pos % 10))
)
else:
cp.pixels[pos] = colors["black"]

image.png

团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号