最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

与nodemcu WiFi语音控制机器人

时间:2017-05-22 21:40来源:未知 作者:admin 点击:
下面是竞争的比赛: 机器人 如果你喜欢它,请点击上面的横幅投票。 谢谢! ;-) 在我的上一个教程, 安卓和NodeMCU语音激活控制 我们探讨了如何开发自己的应用程序在Android智能手机来控制局部(使用按钮或语音)的智能家居设备。 但如何从那里开始,而家庭
与nodemcu WiFi语音控制机器人
下面是竞争的比赛:“机器人”如果你喜欢它,请点击上面的横幅投票。谢谢!;-)

在我的上一个教程,安卓和NodeMCU语音激活控制我们探讨了如何开发自己的应用程序在Android智能手机来控制局部(使用按钮或语音)的智能家居设备。但如何从那里开始,而家庭设备控制汽车?还有更好的,如何让这些电机驱动差动机器人?这正是我们将在这里发展,WiFi语音控制机器人的使用作为一个控制器,我们的老芽nodemcu!

上面的图显示什么将做的一般及以下的电影展示了最终的项目工作:

请考虑我的一个很小的力矩电机。但结果似乎有点罕见,机器人正常工作。我会尽快改变电机的我会更新视频。抱歉和感谢。

步骤1:物料清单(BOM)

所有的值在参考美元
  1. nodemcu esp8266-12e(8.79美元)
  2. 400点试验Breadboard Breadboard(4.97美元)
  3. H桥L293D(2.17美元)
  4. 电机机器人汽车底盘套件(13美元)
  5. 男性与女性的杜邦电缆(1美元)
  6. 便携式充电器5vdc 3000mah电力银行(10美元)
  7. 外部9VDC电池

.....当然,任何Android智能手机或平板电脑!

步骤2:H桥L293D

与nodemcu WiFi语音控制机器人

为了驱动电机,我们将用L293D驱动四单臂半H桥。

根据其数据表,L293与L293D器件的大电流驱动四单臂半H。目的是提供双向的L293驱动电流可达1 A电压从4.5 V至36 V单的设计是为了提供高达600毫安的双向驱动电流电压从4.5 V到36 V设备电磁阀,DC和双极性步进电机,以及供应中的应用。

我们将使用集成电路直接与nodemcu,不使用盾牌,这也是常见的。

我们的机器人有两个轮子,是由2个直流电机驱动:

  • 左电机
  • 正确的运动

我们将把我们的H桥电机如图。的nodemcu将有6个命令,将电机。

国际rightmotor2 = 13;// D7对电机
 int rightmotor1 = 15;// D8右电机+ 
 int leftmotor2 = 0;// D3左电机
 int leftmotor1 = 2;// D4左电机+ 
 int eneleftmotor = 12;// D6 -使电机左
 int enerightmotor = 14;// D5使电机正确

例如,驱动左发动机前你必须把:

  • 高销D4(左电机+)和
  • 低引脚D3(左电机)

为正确的电机必须做相反的:

  • 高销D8(右电机+)和
  • 低引脚D7(左电机)

由于我的方式,电机装配机器人的动作,上述组合将驱动电动机推动机器人前进方向相同。

看上面的图,定义机器人如何移动。这对你的变量正确的定义是很重要的。

控制H桥是正确的,你还必须与使能引脚工作。以上的组合,将推动机器人前进只会工作,如果使能引脚(eneleftmotor和enerightmotor)都高。你可以通过L293D引脚(1、9)直接+ VCC和忘记他们。我不喜欢它,因为一个句号,那些销更是低。同时,将使销到nodemcu PWM数字输出允许您控制电机转速(使用数字值高与低,将速度分别为最大和零,)。

因此,创建一个函数来驱动我们的机器人前进,我们应该铺一起这样的代码:

forwardmotor虚空(void)
 { 
 digitalwrite(eneleftmotor,高);
 digitalwrite(enerightmotor,高);
 
 digitalwrite(leftmotor1,高);
 digitalwrite(leftmotor2,低);
 digitalwrite(rightmotor1,高);
 digitalwrite

步骤3:移动机器人

与nodemcu WiFi语音控制机器人

在上一步中我们学会了如何移动机器人前进,让我们觉得现在如何移动它。

我们将定义5个可能的命令:

  1. 停止
  2. 左拐
  3. 向右拐
  4. 反向
  5. 向前地

第一个命令“停”的简单实现。所有的H桥的投入要低,这样的汽车将不会移动:

stopmotor虚空(void)
 { 
 digitalwrite(eneleftmotor,低);
 digitalwrite(enerightmotor,低);
 
 digitalwrite(leftmotor1,低);
 digitalwrite(leftmotor2,低);
 digitalwrite(rightmotor1,低);
 digitalwrite

同样的方式让我们想让机器人到一个方向,比如说左。考虑到机器人的前进,如果我们要左拐,我们可以有两种情况:

  1. 停止左电机和保持正确的去FW
  2. 反左运动和保持正确的去FW

在第一种情况下,机器人会做一个圆弧轨迹向左。第二,机器人会把它交给左。我们将实施第二。

leftmotor虚空(void)
 { 
 digitalwrite(eneleftmotor,高);
 digitalwrite(enerightmotor,高);
 
 digitalwrite(leftmotor1,低);
 digitalwrite(leftmotor2,高);
 digitalwrite(rightmotor1,高);
 digitalwrite

剩下的命令,遵循相同的逻辑。上面的表格简历的5个命令。

步骤4:完成硬件

与nodemcu WiFi语音控制机器人

按照上面的图完成机器人的硬件。

你可以简单的测试,看看你的代码是可以的。

这是很好的简化试验,引进“开始你的机器人按钮”。我们将它安装在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

步骤5:装配机器人的身体

与nodemcu WiFi语音控制机器人 (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片