首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >芬奇光传感器作为避障的预测试条件

芬奇光传感器作为避障的预测试条件
EN

Stack Overflow用户
提问于 2015-07-07 00:28:58
回答 1查看 417关注 0票数 2

我试图创造一个基本的避障行为,但我希望它只有在光感应器超过一定值时才能发挥作用。

代码语言:javascript
复制
while (!myFinch.isBeakDown())
{
    myFinch.getLeftLightSensor();
    light = myFinch.getLeftLightSensor();   

    if (light >= 20)
    {
        if (myFinch.isObstacleLeftSide())
        {
            myFinch.setWheelVelocities(-255,-255,750);
            myFinch.setWheelVelocities(100,-255, 500);
        }   
        else if (myFinch.isObstacleRightSide())
        {
            myFinch.setWheelVelocities(-255,-255,750);
            myFinch.setWheelVelocities(-255, 100, 500);
        }  
        else
        {
            myFinch.setWheelVelocities(255,255);
        }    
    }
}

编辑无光预测试的工作避障代码。避障不需要光预测试,我也在netbeans传感器测试中测试了红外传感器。

代码语言:javascript
复制
 // Run so long as the Finch is not pointed beak down
  while(!myFinch.isBeakDown()) 
{


    if(myFinch.isObstacleLeftSide()) 
    {

        myFinch.setWheelVelocities(-255,-255,750);
        myFinch.setWheelVelocities(100,-255, 500);

    }
    // If there's an obstacle on the right, set LED blue, back up for 750 ms
    // and turn for 500 ms
    else if(myFinch.isObstacleRightSide()) 
    {

        myFinch.setWheelVelocities(-255,-255,750);
        myFinch.setWheelVelocities(-255, 100, 500);


    }
    // Else, robot goes straight
    else
    {
        myFinch.setWheelVelocities(255,255);

    }
   }
EN

回答 1

Stack Overflow用户

发布于 2015-07-07 00:40:46

light的值从未更新,请使用

代码语言:javascript
复制
while (!myFinch.isBeakDown())
{
    light = myFinch.getLeftLightSensor();
    myFinch.sleep(1);

    if (light >= 20)
    {
        if (myFinch.isObstacleLeftSide())
        {
            myFinch.setWheelVelocities(-255,-255,750);
            myFinch.setWheelVelocities(100,-255, 500);
        }   
        else if (myFinch.isObstacleRightSide())
        {
            myFinch.setWheelVelocities(-255,-255,750);
            myFinch.setWheelVelocities(-255, 100, 500);
        }  
        else
        {
            myFinch.setWheelVelocities(255,255);
        }    
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31257889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档