按照上面的图完成机器人的硬件。
你可以简单的测试,看看你的代码是可以的。
这是很好的简化试验,引进“开始你的机器人按钮”。我们将它安装在NodeMCU港做如图所示在图。
你可以使用下面的测试你的机器人运动程序:
// Set Motor Control Pins
int rightMotor2 = 13; // D7 - right Motor -
int rightMotor1 = 15; // D8 - right Motor +
int leftMotor2 = 0; // D3 - left Motor -
int leftMotor1 = 2; // D4 - left Motor +
int eneLeftMotor = 12; // D6 - enable Mortor Left
int eneRightMotor = 14; // D5 - enable Mortor Right
int buttonPin = 16; // D0
void setup()
{
Serial.begin(115200);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(eneLeftMotor, OUTPUT);
pinMode(eneRightMotor, OUTPUT);
pinMode(leftMotor1, OUTPUT);
pinMode(leftMotor2, OUTPUT);
pinMode(rightMotor1, OUTPUT);
pinMode(rightMotor2, OUTPUT);
digitalWrite(eneLeftMotor,LOW);
digitalWrite(eneRightMotor,LOW);
digitalWrite(leftMotor1,LOW);
digitalWrite(leftMotor2,LOW);
digitalWrite(rightMotor1,LOW);
digitalWrite(rightMotor2,LOW);
while (digitalRead(buttonPin)) // Wait for button to be pressed to move on
{
}
}
void loop()
{
forwardMotor();
delay (5000);
stopMotor();
delay (200);
leftMotor();
delay (3000);
stopMotor();
delay (200);
forwardMotor();
delay (5000);
stopMotor();
delay (200);
rightMotor();
delay (3000);
stopMotor();
delay (200);
reverseMotor();
delay (5000);
stopMotor();
delay (200);
}
/* command motor forward */
void forwardMotor(void)
{
digitalWrite(eneLeftMotor,HIGH);
digitalWrite(eneRightMotor,HIGH);
digitalWrite(leftMotor1,HIGH);
digitalWrite(leftMotor2,LOW);
digitalWrite(rightMotor1,HIGH);
digitalWrite(rightMotor2,LOW);
}
/* command motor backward */
void reverseMotor(void)
{
digitalWrite(eneLeftMotor,HIGH);
digitalWrite(eneRightMotor,HIGH);
digitalWrite(leftMotor1,LOW);
digitalWrite(leftMotor2,HIGH);
digitalWrite(rightMotor1,LOW);
digitalWrite(rightMotor2,HIGH);
}
/* command motor turn left */
void leftMotor(void)
{
digitalWrite(eneLeftMotor,HIGH);
digitalWrite(eneRightMotor,HIGH);
digitalWrite(leftMotor1,LOW);
digitalWrite(leftMotor2,HIGH);
digitalWrite(rightMotor1,HIGH);
digitalWrite(rightMotor2,LOW);
}
/ * * /命令电机转向正确
虚空(void)rightmotor
{
digitalwrite(eneleftmotor,高);
digitalwrite(enerightmotor,高);
digitalwrite(leftmotor1,高);
digitalwrite(leftmotor2,低);
digitalwrite(rightmotor1,低);
digitalwrite(rightmotor2,高);
}
/ * * /
命令电机停止无效stopmotor(void)
{
digitalwrite(eneleftmotor,低);
digitalwrite(enerightmotor,低);
digitalwrite(leftmotor1,低);
digitalwrite(leftmotor2,
低);
当你按下按钮,机器人就会开始做定义loop()动作。它将持续直到你按下“复位”nodemcu。按下按钮,循环重复。
该代码可以从我的github下载:
wifi_robot_nodemcu_android_voice_motor_tests