基于Wemos的WiFi避障小车
程序员文章站
2022-05-21 22:44:09
...
基于Wemos的WiFi避障小车
一 所用到的器件
Wemos开发板、一个电机、超声波模块、一个玩具车
(大致是这样,有点丑。)
功能和思路
功能:这小车能通过载入的安卓系统APP的前进后退左转右转,这个APP跟小车在同一个网段里。
思路:我们把玩具车改装成能够使用WIFI控制的话,那我们需要在Arduino上配置WiFi的设置还有初始化WiFi模块。
电机和Womos开发板的串口D4D5D6D7也要初始化。
介绍一下Arduino运行的模式
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
**setup函数:**在这个函数里,就是一开始运行时,只会运行一次。
**loop函数:**在这个函数里,他会一直循环,执行函数里的函数。
电机控制前进后腿左转和端口初始化的实现
我们先宏定义端口:
#define turn1 D6
#define turn2 D7
#define move1 D4
#define move2 D5
在初始化串口:
void initCom()
{
pinMode(move1, OUTPUT);
pinMode(move2, OUTPUT);
pinMode(turn1, OUTPUT);
pinMode(turn2, OUTPUT);
}
控制前进:
void goAhead()
{
digitalWrite(move1, HIGH);
digitalWrite(move2, LOW);
}
后退就相反;
控制左边:
void turnLeft()
{
digitalWrite(turn1, LOW);
digitalWrite(turn2, HIGH);
}
右边相反的高低电平;
WiFi模块的初始化
1 我们首先要加入一个WiFi的库
#include <ESP8266WiFi.h>
2 我们要初始化WiFi
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地址
delay(500);
}
我们可以通过这个函数,通过串口通信的方法,将这个Arduino的地址发送到电脑上,到时候要连接这个Arduino就知道了。
ps:还要宏定义帐号密码还要声明端口号,这些都放在前面
char* ssid = "GCC-Tech";
char* passwd = "1865071****";
int port = 8888; //端口号
WiFiServer server(port);
这边的账号密码,得改成所在网络的帐号密码,端口号的可以不一样。
setup函数所需要写的代码
void setup() {
// put your setup code here, to run once:
initCom();//这个函数是端口初始化
Serial.begin(115200);//这个是波特率,串口通信用的
initWifiSta();//这个是WiFi模块初始化,函数原型就是上面那个
server.begin();
}
loop函数所需要写的代码
void loop() {
// put your main code here, to run repeatedly:
char cmd;
WiFiClient client = server.available(); //服务初始化
while (client.connected()) { //等待客户端连接
while (client.available() > 0) { //有数据到来,类似串口的那个函数
cmd = client.read();//读取数据
Serial.println(cmd);//这边是打印cmd的值,测试cmd输出是否正确
switch (cmd) {//这个是控制小车行走,wsad分别是上下左右
case 'w':
goAhead();
break;
case 's':
goBack();
break;
case 'a':
turnLeft();
break;
case 'd':
turnRight();
break;
case 'q':
stop1();
break;
case 'z':
stop2();
break;
}
}
}
}
安卓手机控制
我们就需要一部安卓手机,或者下载安卓模拟器,我用的安卓模拟器,所用到的软件是eclipse还有adb。
**eclipse:**这个软件是用来创建一个APP,然后界面有上下左右。如图
这个我是基于别人的代码改的一点点的参数。
安卓模拟器和小车怎么连接起来的关键是adb软件,打开cmd,需要进到我们存储adb位置上,然后输入adb connect 127.0.0.1:5555(5555是雷神模拟器的端口号,模拟器不一样可能端口号也不一样)
我们就能把APP跑进去,然后就能控制小车了!