基于Wemos的wifi控制的避障小车总结

基于Wemos的wifi控制的避障小车总结

一.使用的基本元器件

  1.L9110电机
  2.超声波模块
 3.Wemos集成电路板
 4.可以传输数据的type-A接口
 5.和一个带有DC头和装有开关电池盒(4节5号电池)
 6.电烙铁
 7.热熔枪

二.开发环境

1.基于ArduiNo开发环境

三.开发小车时候需要的其他的开发软件

1.夜神模拟器
2.串口调试助手
3.USB下载驱动程序
4.eclipse软件
5.TCP连接

四.中间改造是遇到的问题以及注意事项

1.每次烧录程序是先观察串口,波特率以及对应的板子名称是否选择正确。

在工具栏里面找到对应信息
2.上传成功后显示的画面
在这里插入图片描述
3.烧写代码需要调整代码字体,在平台文件选择栏中找到首选项就可以看见,编辑器字体大小就可以调整字体。
在这里插入图片描述
4 .如果遇到图片中的错误,是在烧写代码的过程中没有关闭串口引起的。
在这里插入图片描述
5.在小车的接线口完全有自己定义(但建议尽量选择D2-D8接口这个范围内)。
6.如果烧写过程中无法烧写成功的话,把其他元器件的接线都拔掉先烧写程序,后面在接线其他模块上。
7.在设置wifi的IP的时候可以把家中的路由器的动态地址改为静态地址。
8.组装元器件的时候一定要注意静电防护,在插线的时候切勿用力过大导致的接触不良等问题。
9.ipconfig和arp-a去检查自己的网络连接及IP地址。
10.程序上传成功后,可以通过串口的方式来检查你发送的指令是否正确。
11.程序上传成功后,打开串口没有任何信息出来的话,可以先初始化串口,在初始化其他模块。
12.打开串口后记得先给wemos上电。
13.搞清楚超声波模块测距为什么要除以58.
14.打开串口助手只需要修改端口和波特率
在这里插入图片描述
16.波特率一般选择为9600,115200等。
17.在给电机接线的时候切勿不能装反,还有超声波模块GND和VCC这两根线不接错位置不然会造成模块烧坏。
18.TCP连接也可以发送消息给串口(都是需要知道路由IP地址的前提下)。


五. arduino 上传代码不通过的解决办法

1.安装路径不能有中文
2.安装路径不能有空格
3.不能放在桌面
4.放到根目录(双击C盘或者D盘或者其他盘进去的第一个地方,就叫做根目录)
5.特别注意了arduino的安装路径,一次检查

在这里插入图片描述


六.主要程序代码

#include <ESP8266WiFi.h>

#define  Dong1 D6
#define  Dong2 D7
#define  Zhuan1 D4
#define  Zhuan2 D5
#define  Echo  D2   // 引脚接到D2引脚上
#define  Trig  D8    //引脚接到D8引脚上

char* ssid = "FAST_669A";      //wifi的热点名称
char* passwd = "a12345678";  //wifi的热点密码

int port = 8888;// 编口号
WiFiServer server(port);// 设置服务器端口号

long getTime()
{
  digitalWrite(Trig, HIGH);       //发送一个10微秒脉冲
  delayMicroseconds(10);       
  digitalWrite(Trig, LOW);      //low就是输入一个低电平

  return pulseIn(Echo, HIGH);  //波传输过程echo高电平,计算高电平时间就获取波传输的时间,单位是(微秒)
}

void initChaoShengBo()     
{
  pinMode(Echo, INPUT);
  pinMode(Trig, OUTPUT);
}

void initWiFiSta()
{
  WiFi.mode(WIFI_STA); //设置STA模式
  WiFi.begin(ssid, passwd); //连接网络
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println(WiFi.localIP());  //通过串口打印wemos的IP地址
}

void initL9110s()
{
  pinMode(Dong1, OUTPUT);
  pinMode(Dong2, OUTPUT);
  pinMode(Zhuan1, OUTPUT);
  pinMode(Zhuan2, OUTPUT);
}

void qian()
{
  digitalWrite(Dong1, HIGH);
  digitalWrite(Dong2, LOW);
}
void hou()
{
  digitalWrite(Dong1, LOW);
  digitalWrite(Dong2, HIGH);
}

void ting()
{
  digitalWrite(Dong1, LOW);
  digitalWrite(Dong2, LOW);
}

void zuo()

{
  digitalWrite(Zhuan1, LOW);
  digitalWrite(Zhuan2, HIGH);
}

void zheng()
{
  digitalWrite(Zhuan1, LOW);
  digitalWrite(Zhuan2, LOW);
}

void you()
{
  digitalWrite(Zhuan1, HIGH);
  digitalWrite(Zhuan2, LOW);
}

void setup()
{

  // put your setup code here, to run once:
  initL9110s();
  initWiFiSta();
  initChaoShengBo();
  Serial.begin(115200);
  server.begin();    //启动服务器的API
}

void loop() {

  char cmd;
  int mark = 0;   //定义一个mark标记位
  long dis;
  
  WiFiClient client = server.available();  //服务器初始化
  while (client.connected()) {
    while (client.available() > 0) {    //有数据来了,类似串口的那个函数
      cmd = client.read();     //读取数据
      Serial.println(cmd);   //通过串口调试的方法去观察接收的指令
      dis = getTime() / 58;   //计算避障的时间
      if (dis < 10) {
        hou();
        delay(200);    //延时200毫秒
        ting();
        mark = 1;   //设置一个标记位置
      } else {
        mark = 0;
      }
      switch (cmd) {
        case 'q':
          qian();
          break;
        case 'h':
          hou();
          break;
        case 'z':
          zuo();
          break;
        case 'y':
          break;
        case 's':
          ting();
          break;
        case 'd':
          zheng();
          break;
      }
    }
  }
}

师承上官可编程 陈立臣老师

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值