我有一个与 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。但也许我太笨了,无法理解。
这里有一些可以帮助您开始的东西:
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,因此您必须进行一些更改,但我们无法为您做所有事情;)