当前位置:文档之家› 程序调试文档

程序调试文档

目录1.1参数调整 (2)1.2电机调试 (2)1.2.1例程 (2)1.2.2说明 (3)1.3颜色传感器调试 (3)1.3.1例程 (3)1.3.2说明 (4)1.4巡线传感器调试 (4)1.4.1例程 (4)1.4.2说明 (6)1.5舵机调试 (6)1.5.1例程 (6)1.5.2说明 (10)1.6关于机器人的使用 (10)1.1参数调整参数直接写在setup函数的开头,如:SPEED1=150;。

SPEED1:左轮速度(0-255);SPEED2:右轮速度(0-255);以上两个参数用于控制机器人巡线行进时的速度。

左右电机由于质量上的差异,同一PWM值下速度可能有些许不同,故需要分别设置。

TURN:转弯速度(0-255);BACK:刹车延时(>=0毫秒);DELAY:转弯延时(>=0毫秒)。

1.2电机调试1.2.1例程#include "Car.h"Car mycar(8,9,10,11,5,6);void setup(){mycar.Mode();mycar.Infer(1,1);}void loop(){mycar.Move(140,140,8,1000);}1.2.2说明电机调试主要是检测当机器人前进时电机的转向是否正确。

使用Car类的Infer成员函数进行检测,其中两个参数分别对应左右轮,参数值只取0和1。

通过改变参数,可改变电机转向。

例如:使用上述例程进行调试时,若左轮后退,则应将参数改为:mycar.Infer(0,1);。

1.3颜色传感器调试1.3.1例程#include "Function.h" //包含变量的定义和函数的实现#include "ColSensor.h" //颜色传感器类#include "Track.h" //巡线传感器类#include "Car.h" //小车类#include "ColQueue.h" //队列类#include "Servo.h"void setup(){mysensor.Mode();Ready();}void loop(){if (Color()){digitalWrite(13, HIGH); delay(500);digitalWrite(13, LOW); delay(500);}}1.3.2说明颜色传感器调试主要是测试颜色传感器对于颜色的检测是否正常。

例如:利用上述例程,用方块测试,若蜂鸣器鸣叫,说明已检测到方块。

注意:在使用例程时,启动前应让颜色传感器对准远处,启动后应在蜂鸣器停止鸣叫后才可测试(自动调节白平衡)。

1.4巡线传感器调试1.4.1例程#include "Function.h" //包含变量的定义和函数的实现#include "ColSensor.h" //颜色传感器类#include "Track.h" //巡线传感器类#include "Car.h" //小车类#include "ColQueue.h" //队列类#include "Servo.h"void setup(){mycar.Mode();mycar.Infer(1, 1);mytrack.Mode();Modify();}void loop(){while (num != N){Tracking(SPEED1, SPEED2); num++;In(); Out();}num = 0;Tracking(SPEED1, SPEED2);TurnR();while (num != 3){Tracking(SPEED1, SPEED2);num++;}num = 0;Tracking(SPEED1, SPEED2);TurnR();}1.4.2说明巡线传感器调试主要测试巡线是否正常。

使用上述例程前,应先做电机调试,调整电机转向,即修改mycar.Infer(1, 1);。

操作如下:打开开关,蜂鸣器声音响起,提示将寻线传感器的红外全部对准黑线;蜂鸣器声音变化时,提示将红外全部对准白色区域;蜂鸣器声音再度变化时,表示完成调节。

1.5舵机调试1.5.1例程#include "Function.h" //包含变量的定义和函数的实现#include "ColSensor.h" //颜色传感器类#include "Track.h" //巡线传感器类#include "Car.h" //小车类#include "ColQueue.h" //队列类#include "Servo.h"//夹取方块并放到小车相应垃圾桶上void Catch(int n){int a;int s11, s12, s13, s21, s22, s23, s31, s32;//此处参数需修改s11 = 70; s12 = 90; s13 = 60;s21 = 90; s22 = 110; s23 = 60;s31 = 160; s32 = 0;//1-3分别表示红蓝绿3个垃圾桶的位置switch (n){case 1:a = 180; break;case 2:a = 160; break;case 3:a = 140; break;default:return; break;}myservo1.attach(7, 544, SERVOS_MAX);myservo2.attach(12, 544, SERVOS_MAX);myservo3.attach(A0, 544, SERVOS_MAX);myservo2.write(s21); myservo1.write(s11); myservo3.write(s31);delay(300);ServoMove(s21, s22, 2); ServoMove(s31, s32, 3); ServoMove(s11, s12, 1);ServoMove(s22, s23, 2); ServoMove(s12, s13, 1); ServoMove(s23, s22, 2);ServoMove(s32, a, 3); ServoMove(s22, s21, 2); ServoMove(s13, s11, 1);ServoMove(s21, s22, 2); ServoMove(a, s31, 3); ServoMove(s22, s21, 2);myservo1.detach(); myservo2.detach(); myservo3.detach();Plus();}//夹取小车上的垃圾并放到相应的垃圾场void Down(int n){int a = 0;int s11, s12, s13, s21, s22, s23, s31, s32;//此处参数需修改s11 = 70; s12 = s11; s13 = 60;s21 = 90; s22 = 110; s23 = s22;s31 = 180; s32 = s31 - 90;//1-3分别表示红蓝绿3个垃圾桶的位置switch (n){case 1:a = 180; break;case 2:a = 160; break;case 3:a = 140; break;default:return; break;}myservo1.attach(7, 544, SERVOS_MAX);myservo2.attach(12, 544, SERVOS_MAX);myservo3.attach(A0, 544, SERVOS_MAX);myservo2.write(s21); myservo1.write(s11); myservo3.write(s31);delay(300);ServoMove(s21, s22, 2); ServoMove(s31, a, 3); ServoMove(s22, s21, 2);ServoMove(s11, s13, 1); ServoMove(s21, s22, 2); ServoMove(a, s32, 3);ServoMove(s22, s23, 2); ServoMove(s13, s11, 1); ServoMove(s23, s22, 2);ServoMove(s32, s31, 3); ServoMove(s22, s21, 2);myservo1.detach(); myservo2.detach(); myservo3.detach();}void setup(){myservo1.attach(7, 544, SERVOS_MAX);myservo2.attach(12, 544, SERVOS_MAX);myservo3.attach(A0, 544, SERVOS_MAX);}void loop(){//myservo1.write(0);//myservo2.write(90);//myservo3.write(135);//依次调试各个舵机Catch(1);}1.5.2说明舵机调试主要是调整舵机夹取方块和卸下方块时各个关键位置的角度。

上述例程将J1~J3的输出角度分别设为0°,90°,135°。

使用如下:将1号舵机分别接板上的J1,J2,J3,观察各个角度的位置,再估算s11~s13的值(参数含义具体见库函数介绍.doc),并在Catch 函数中修改。

以此类推,再估算2号和3号舵机的角度值(包括3个垃圾桶的位置)。

3个舵机的角度估算完成之后,可注释掉loop函数的3个write函数,并在loop函数中调用Catch 函数以查看结果,根据结果再调整角度。

调好Catch函数后,再把Catch函数中的s11,s13,s21,s22,s31以及3个垃圾桶位置的值复制到Down函数的相应位置。

这样就完成了对舵机的调试。

若舵机无法转到相应角度,应卸下重装。

建议在组装机械臂前先用程序将舵机调到合适角度,再进行组装。

1.6关于机器人的使用使用我们提供的程序运行机器人时,请确保程序已经过调试(主要为电机调试和舵机调试)。

使用步骤如下:打开开关,先测黑线,再测白线,最后测白平衡。

测黑线时注意让红外全部对准黑线,不要偏到白色区。

测白平衡时让颜色传感器对准远处即可。

这三步骤可根据蜂鸣器的声音提示进行。

相关主题