我有一个与RasPi3相连的LED条纹。条纹应安装在自动引导车辆上作为人体机器接口。我想对条纹进行编程,使其上有“眼睛”(例如, 3个LED像素开 - 5个LED像素关闭 - 上的3个LED像素),它自动跟随一个人站在它前面。
其实我有方法:
“set_eye_position(msg)”能够以-99(完全左侧)到+99(完全右侧)的间隔设置LED像素作为输入参数(msg)和
“set_eyes_to_coord(msg)”获取两个输入参数:站在车辆旁边的人的x和y坐标。我的方法是在机器人中间设置一个坐标系(见Picture)
我的问题是,如果有机会在给定的输入参数(x,y)下计算LED像素的确切位置?
我正在使用Python编写,我在编程方面相当新颖,所以如果我能够了解如何实现我的问题,我将非常感激。
提前致谢
编辑:
假设来自bendl THIS的方法是新设置,对吧?我真的不知道如何处理变量boe_left,boe_right和boe_dist。但也许我太愚蠢了解它。
答案 0 :(得分: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,因此您必须进行一些更改,但我们无法为您做任何事情;)