Pixy CMUCAM5 开源示例代码模运算

Pixy CMUCAM5 Open Source Example Code Modulo Operation

我一直忙于 PIXYCAM 和 Arduino Uno,我已经从他们的网站下载了下面的代码。现在有一个 (i%50) 操作,我不知道它做了什么?有人可以为我解释这部分代码吗?

    #include <SPI.h>
    #include <Pixy.h>
    Pixy pixy;
    void setup()
    {
       Serial.begin(9600);
       Serial.print(“Starting...\n”);
       pixy.init();
    }
    void loop()
    {
       static int i = 0;
       int j;
       uint16_t blocks;
       char buf[32];
       blocks = pixy.getBlocks();
       if (blocks)
       {
          i++;
          if (i%50==0)
          {
             sprintf(buf, “Detected %d:\n”, blocks);
             Serial.print(buf);
             for (j=0; j<blocks; j++)
             {
                sprintf(buf, “ block %d: “, j);
                Serial.print(buf);
                pixy.blocks[j].print();
             }
          }
       }
    }

当 i 是 50 的整数倍时执行 if 子句的内容,所以当 i = 50, 100, 150, ...时表达式为真

我对PIXYCAM一无所知,但代码似乎每隔一段时间打印一组块...

 i++;
 if (i%50==0)  

每 50 帧执行一次(打印),因为打印每一帧会使 Arduino 陷入困境。

%符号是i/50的余数,换句话说,i mod50。这意味着代码只在第50帧执行一次。