再会,
我正在尝试创建一个程序,该程序从传感器获取方向数据,然后在 PID 控制算法中使用该数据来创建相应的 PWM 信号。我希望能够通过按 Enter 来停止程序。我尝试使用 opencv 的 waitKey(); 但是它不接受我的键盘输入。我也试过 cin.get(); 但它暂停了我的循环,这会产生问题。一旦四轴飞行器改变方向,我的 pwm 就不会刷新。我尝试研究其他方法,但我无法让它们起作用。这是我使用上述两种方法的代码示例。
使用 cin.get():
using namespace std;
int main(void){
while(1){
/* get orientation data */
/* output corresponding pwm */
//Press enter to stop loop
if(cin.get() == '\n'){
/* Stop Pwm */
break;
}
}
return 0;
}
使用 waitKey();
using namespace std;
using namespace cv;
int main(void){
while(1){
/* get orientation data */
/* output corresponding pwm */
//Press ESC to stop loop
int key = waitKey(33){
if(key == 27){
/* Stop Pwm */
break;
}
}
return 0;
}