LED 灯带应该跟随人

问题描述 投票:0回答:1

我有一个与 RasPi3 连接的 LED 灯带。该条带应安装在自动导引车上作为人机界面。我想对条纹进行编程,使其上有“眼睛”(例如 3 个 LED 像素打开 -- 5 个 LED 像素关闭 -- 3 个 LED 像素打开),它会自动跟随站在它前面的人.

其实我有方法:

“set_eye_position(msg)”能够将LED像素设置为从-99(完全左)到+99(完全右)的间隔作为输入参数(msg)和

“set_eyes_to_coord(msg)” 获取两个输入参数:站在车辆旁边的人的 x 和 y 坐标。我的做法是在机器人中间设置一个坐标系(见图片

我的问题的原因是,是否有机会计算给定输入参数(x,y)下LED像素的准确位置?

我正在使用 Python 进行编写,而且我在编程方面是个新手,所以如果我能得到一些如何实现我的问题的想法,我将非常感激。

提前致谢


编辑:

假设 Bendl THIS 的方法是新设置,对吧?我真的不知道如何处理变量 boe_left、boe_right 和 boe_dist。但也许我太笨了,无法理解。

python ros robotics led
1个回答
0
投票

这里有一些可以帮助您开始的东西:

def pixels_on(x, y):
    assert y > 0                                # person must be in front of robot
    boe_left, boe_right = -10, 10               # x location of back of eye left, back of eye right
    boe_dist = - 3                              # distance to back of eye

    m_left =  (x - boe_left) / (y - boe_dist)   # slope from back of left eye to person
    m_right =  (x - boe_right) / (y - boe_dist) # slope from back of right eye to person

    c_left = boe_left - m_left * boe_dist       # center of front of left eye
    c_right = boe_right - m_right * boe_dist    # center of front of right eye

    return list(map(int, [c_left - 1, c_left, c_left + 1, c_right - 1, c_right, c_right + 1]))

其工作原理是在固定点(您可以将其视为机器人眼睛的假想后部)和人之间画一条线。这条线与 LED 灯带的交点就是眼睛应居中的点。该解决方案做出了(天真的)假设,即每单位距离有一个 LED,因此您必须进行一些更改,但我们无法为您做所有事情;)

© www.soinside.com 2019 - 2024. All rights reserved.