天天看點

wifi避障小車項目詳解

通過手機APP控制小車前進、後退,左轉、右轉,主要用到WemosD1上內建的ESP8266子產品。這主要用到了WemosD1,L9110s步進電機控制器,超音波子產品,軟體環境Arduino開發環境。

L9110s步進電機子產品

L9110步進電機有六個引腳,前兩個針腳控制前輪電機驅動,最後兩個引腳控制後輪轉向。中間兩個陣腳用來供電的,vcc接5v,gnd接gnd。步進電機代碼如下:

#define Dong1 D6
#define Dong2 D7
#define Zhuan1 D4
#define Zhuan2 D5

void initL9110s()
{
  pinMode(Dong1, OUTPUT) ;
  pinMode (Dong2, OUTPUT);
  pinMode(Zhuan1, OUTPUT);
  pinMode (Zhuan2, OUTPUT);
}
void hou()
{
  digitalWrite(Dong1, HIGH);
  digitalWrite(Dong2, LOW);
}
void qian()
{
  digitalWrite(Dong1, LOW);
  digitalWrite(Dong2, HIGH);
}
void you()
{
  digitalWrite(Zhuan1, LOW);
  digitalWrite(Zhuan2, HIGH);
}
void zuo()
{
  digitalWrite(Zhuan1, HIGH);
  digitalWrite(Zhuan2, LOW);
}
void setup() {
  // put your setup code here, to run once:
  initL9110s();
}
void loop(){
qian();
hou();
zuo();
you();
}
           

如何用手機控制小車前進、後退,轉向這時候就用到了ESP8266子產品。主要是将無線網卡設定成STA模式,連接配接上手機熱點。手機用TCP連接配接軟體,輸入Wemos的IP位址和端口号,進行連接配接。可以通過通信來控制小車前進後退、轉向功能。代碼如下:

#include <ESP8266WiFi.h>
char* ssid = "aaa";
char* passwd = "zwa18656211656";
int port = 8888; //端口号
WiFiServer server(port);//設定伺服器端口号
void initWifiSta()
{
  WiFi.mode(WIFI_STA);    //設定STA模式
  WiFi.begin(ssid, passwd); //連接配接網絡
  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(500);
  }  
}
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();
      switch (cmd) {
        case 'q':
          qian();
          break;
        case 'h':
          hou();
          break;
        case 'z':
          zuo();
          break;
        case 'y':
          you();
          break;
      }
    }
  }
   Serial.println(WiFi.localIP());  //通過序列槽列印Wemos的IP位址

           

通過手機APP需要改寫java代碼,IP位址、還有前後左右、轉向代碼。修改儲存,安裝軟體,可以實作對小車前後左右的控制。

繼續閱讀