机器人william hill官网
直播中

沈媛

10年用户 43经验值
擅长:测量仪表 嵌入式技术 接口/总线/驱动 控制/MCU
私信 关注
[经验]

卡酷机器人试用(四):小车壁障

通过前边对于电机驱动部分以及超声波测距部分的调试,今天做了一个避障的测试,效果还不错哦。
代码如下:
  1. [code]
  2. //************* Sensor Test **********************//
  3. // Variables defination
  4. int SenTrig = 2;
  5. int SenEcho = 3;
  6. float Distance = 0;

  7. // PWM pin 4&5 to drive motor 1
  8. // PWM pin 6&7 to drive motor 2

  9. int Dir1 = 4;
  10. int Spd1 = 5;
  11. int Dir2 = 7;
  12. int Spd2 = 6;

  13. // System initialize
  14. void setup()
  15. {
  16. // Configure I/O port
  17.   pinMode(SenTrig, OUTPUT);
  18.   pinMode(SenEcho, INPUT);
  19.   
  20. // Initialize I/O port
  21.   digitalWrite(SenTrig, LOW);
  22.    
  23. // Congfigure Motor1
  24.   pinMode(Dir1, OUTPUT);
  25.   pinMode(Spd1, OUTPUT);
  26.   
  27. // Congfigure Motor2
  28.   pinMode(Dir2, OUTPUT);
  29.   pinMode(Spd2, OUTPUT);
  30. }

  31. void loop()
  32. {
  33. // Triger the sensor
  34.   delayMicroseconds(3);
  35.   digitalWrite(SenTrig, HIGH);
  36.   delayMicroseconds(12);
  37.   digitalWrite(SenTrig, LOW);

  38. // Read the echo
  39.   Distance = pulseIn(SenEcho, HIGH);
  40.   Distance = Distance/5.8;         // 5.8 is the convert ratio to mm

  41. // Run forward
  42. if(Distance >= 60)  
  43. {
  44.   digitalWrite(Dir1, LOW);
  45.   analogWrite(Spd1, 980);
  46.   digitalWrite(Dir2, LOW);
  47.   analogWrite(Spd2, 1023);
  48. }
  49. else   
  50. {
  51.   analogWrite(Spd1, 0);
  52.   analogWrite(Spd2, 0);
  53.   delay(1000);             // Stop 1000mS
  54.   
  55.   digitalWrite(Dir1, HIGH);
  56.   analogWrite(Spd1, 980);
  57.   digitalWrite(Dir2, HIGH);
  58.   analogWrite(Spd2, 1023);
  59.   delay(600);
  60.   
  61.   
  62.   digitalWrite(Dir1,HIGH);
  63.   analogWrite(Spd1,980);
  64.   digitalWrite(Dir2,LOW);
  65.   analogWrite(Spd2, 1023);
  66.   delay(500);             // Turn right 500mS
  67.   }
  68. }
  69. //**************** End of file ******************//

[/code]试验中遇到的问题总结如下:
1.两个电机的一致性不是很好,所以要通过调节调速参数来使小车可以直着行驶
2.电机的驱动电压即PWM的占空比不能低于40%,否则电机会堵转。


更多回帖

发帖
×
20
完善资料,
赚取积分