Авто с управлением по WIFI

Авто с управлением по WIFI
Авто с управлением по WIFI
В этой статье мастер-самодельщик расскажет нам, как сделать автомобиль с дистанционным управлением по WiFi. Таким авто можно управлять через смартфон. В качестве микроконтроллера в данной сборке используется модуль ESP8266. Этот модуль имеет порт MicroUSB, и работает от напряжения 7-12 В.Инструменты и материалы:-Печатная плата;-Модуль ESP8266-12E (NodeMCU);-Микросхема драйвера двигателя L293D – 2 шт.-Двигатель постоянного тока с редуктором – 4 шт;-Регулятор 7805;-Батарейный отсек;-Аккумуляторы;-Конденсатор 100 мкФ / 25 В – 4 шт;-Керамический конденсатор 100 нФ – 2 шт;-Штыревой разъем;-2-контактные винтовые разъемы – 5 шт;-Колеса – 4 шт;-Выключатель;-Акрил;-Паяльник;-Дрель;-Провода;Шаг первый: печатная платаДля данного устройства требуется печатная плата. Плату можно заказать перейдя по этой ссылке.Авто с управлением по WIFI
Шаг второй: монтаж платыПосле получения платы мастер производит ее монтаж.Авто с управлением по WIFI
Монтирует разъемы и конденсаторы. Устанавливает микросхему драйвера двигателя L293D. L293D – это популярная микросхема драйвера двигателя с 16 выводами. Одна микросхема L293D способна одновременно управлять двумя двигателями постоянного тока, направление этих двух двигателей можно контролировать независимо. Мастер использует две микросхемы для четырех двигателей.Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
Шаг третий: кодТеперь нужно загрузить код. Мастер подключает микроконтроллер NodeMCU к ПК. Открывает Arduino IDE.Затем нужно перейти в Инструменты> Плата> Платы ESP8266> NodeMCU 1.0 (модуль ESP-12E).Выбирает правильный порт. Затем загружает код.Код можно скачать ниже.Авто с управлением по WIFI
 Показать / Скрыть текст// NodeMCU Based WIFI Controlled Car//

#define ENA 14 // Enable/speed motors Right GPIO14(D5)
#define ENB 12 // Enable/speed motors Left GPIO12(D6)
#define IN_1 15 // L298N in1 motors Right GPIO15(D8)
#define IN_2 13 // L298N in2 motors Right GPIO13(D7)
#define IN_3 2 // L298N in3 motors Left GPIO2(D4)
#define IN_4 0 // L298N in4 motors Left GPIO0(D3)

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

String command; //String to store app command state.
int speedCar = 800; // 400 – 1023.
int speed_Coeff = 3;

const char* ssid = "NodeMCU Car";
ESP8266WebServer server(80);

void setup() {

pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN_1, OUTPUT);
pinMode(IN_2, OUTPUT);
pinMode(IN_3, OUTPUT);
pinMode(IN_4, OUTPUT);

Serial.begin(115200);

// Connecting WiFi

WiFi.mode(WIFI_AP);
WiFi.softAP(ssid);
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);

// Starting WEB-server
server.on ( "/", HTTP_handleRoot );
server.onNotFound ( HTTP_handleRoot );
server.begin();
}

void goAhead(){

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, HIGH);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, HIGH);
analogWrite(ENB, speedCar);
}

void goBack(){

digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);
analogWrite(ENB, speedCar);
}

void goRight(){

digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, HIGH);
analogWrite(ENB, speedCar);
}

void goLeft(){

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, HIGH);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);
analogWrite(ENB, speedCar);
}

void goAheadRight(){

digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
analogWrite(ENA, speedCar/speed_Coeff);

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, HIGH);
analogWrite(ENB, speedCar);
}

void goAheadLeft(){

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, HIGH);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);
analogWrite(ENB, speedCar/speed_Coeff);
}

void goBackRight(){

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, HIGH);
analogWrite(ENA, speedCar/speed_Coeff);

digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);
analogWrite(ENB, speedCar);
}

void goBackLeft(){

digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, HIGH);
analogWrite(ENB, speedCar/speed_Coeff);
}

void stopRobot(){

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, LOW);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, LOW);
analogWrite(ENB, speedCar);
}

void loop() {
server.handleClient();

command = server.arg("State");
if (command == "F") goAhead();
else if (command == "B") goBack();
else if (command == "L") goLeft();
else if (command == "R") goRight();
else if (command == "I") goAheadRight();
else if (command == "G") goAheadLeft();
else if (command == "J") goBackRight();
else if (command == "H") goBackLeft();
else if (command == "0") speedCar = 400;
else if (command == "1") speedCar = 470;
else if (command == "2") speedCar = 540;
else if (command == "3") speedCar = 610;
else if (command == "4") speedCar = 680;
else if (command == "5") speedCar = 750;
else if (command == "6") speedCar = 820;
else if (command == "7") speedCar = 890;
else if (command == "8") speedCar = 960;
else if (command == "9") speedCar = 1023;
else if (command == "S") stopRobot();
}

void HTTP_handleRoot(void) {

if( server.hasArg("State") ){
Serial.println(server.arg("State"));
}
server.send ( 200, "text/html", "" );
delay(1);
}Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
После загрузки кода устанавливает микроконтроллер на плату.Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
Шаг четвертый: сборкаТеперь можно собрать автомобиль. Шасси мастер сделал из акрилового листа. Отрезал лист по размерам. Просверлил все необходимые отверстия. Закрепил на шасси двигатели. Между двигателя крепиться аккумулятор. Установил выключатель.На оси моторедукторов устанавливаются колеса.Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
Закрепляет на шасси плату.Авто с управлением по WIFI
Авто с управлением по WIFI
Производит подключения. На печатной плате всего пять 2-штырьковых разъемов, один из них – вход (от аккумулятора), а остальные – выход на мотор-редуктор.Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
Шаг пятый: приложениеТеперь нужно установить приложение на смартфон. Включает питание на авто.Авто с управлением по WIFI
Дальше нужно скачать и установить на смартфон приложение ESP8266 WIFI ROBOT CAR.Включить на смартфоне Wi-Fi. Делает сопряжение с Nodemcu Car. Открывает приложение ESP8266 WIFI ROBOT CAR.Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
Теперь все готово. Управляется авто с помощью приложения загруженного ранее на смартфон.Авто с управлением по WIFI
Авто с управлением по WIFI
Авто с управлением по WIFI
На видео ниже можно посмотреть полную сборку данного авто, а также демонстрацию его работы.

(Source)

Источник: usamodelkina.ru