Apostol Rares
331CA
Proiectul meu consta in construirea unei masini cu telecomanda controlata de la distanta prin intermediul unei aplicatii Android, folosind Wi-Fi.
Masina va putea fi controlata în timp real din aplicatie, permitand deplasarea inainte și inapoi, precum și virarea stanga-dreapta printr-un volan implementat in aplicatie. Desi ar fi fost mai usor ca masina sa vireze doar din niste sageti, am dorit un control precis, bazat pe volan.
Un alt aspect important al proiectului este integrarea unei camere video montate pe masina. Aceasta va transmite video către aplicatia Android. Utilizatorul va putea astfel controla masina chiar si in afara campului vizual. Am folosit un ESP32 CAM pentru camera.
Comunicarea dintre aplicatie si masina se va face printr-o retea Wi-Fi locala. Pentru asta, un ESP8266 va fi pornit in mod access-point, iar celelalte dispozitive se vor conecta la aceasta retea.
Un ESP8266 va fi pornit in mod AP cu o adresa IP statica, iar dispozitivul Android si ESP32-CAM(cel din urma tot cu o adresa IP statica, pentru usurinta) se vor conecta la aceasta retea. Telefonul va trimite date de control catre ESP8266, care va actiona asupra motoarelor. De asemenea, telefonul va accesa si pagina web pe care transmite ESP32-ul, si o va afisa in aplicatie, printr-un WebView.
Piese:
Schema electrica:
Utilizare PINI :
Flow program:
Program ESP8266:
Program ESP32:
Program Android:
Implementarea Software in detaliu:
1. Aplicatia Android
2. Cod ESP8266
3. Cod ESP32 CAM
Am modificat cateva lucruri: esp32 va primi o adresa statica, va folosi grayscale(jpeg nu e suportat de camera). De asemenea, rezolutia este foarte mica(QQVGA), camera merge destul de prost si am incercat sa fie totusi functionala, chiar daca calitatea video nu este excelenta
Mi s-a parut mult de munca, mai ales la partea de hardware, unde am avut probleme cu unele piese. Sistemul de servo a luat destul de mult timp, am incercat sa il fac cat mai precis. Am incercat sa scriu singur codul pentru camera, dar nu am gasit niciun fel de documentatie pentru rhyx-m21-45, si am folosit un exemplu din arduino.
Cu toate astea, proiectul mi-a placut, mai ales cand la final am vazut ca masina chiar merge, si o pot controla din telefon, cum mi-am dorit.
Hardware-ul este aproape gata: mai trebuie conectate firele de la driver la motoare, dar vreau sa le lipesc. Am testat sistemul de servo directie. Pentru ca esp-ul nu are usb, a trebuit sa folosesc un convertor, si a durat ceva pana sa ma prind cum sa programez microcontrollerul. Din cauza asta, o sa astept pana cand codul este gata ca sa lipesc firele si sa fac designul final.
Camera trebuia sa fie OV2640 dar a venit altceva Camera primita e rhyx-m21-45, care merge foarte prost.
Video servodirectie aici
Update 1: cumva am stricat ESP32-ul, nu mai merge:). Aveam acasa un esp8266, o sa continui proiectul cu el, dar nu are camera. Am mai adaugat in plus in software: volan(se poate controla precis servomotorul), pedale de acceleratie si frana, si un slider de unde se alege viteza. Nu am pus inca rotile, dar toate piesele functioneaza.
Update 2: am reusit sa pornesc ESP32-ul. Pentru ca am scris deja codul pentru controlul motoarelor pe esp8266, o sa continui cu ambele: esp32 pentru camera, esp8266 pentru motoare.
Proiect complet :
1. Masina gata
2. Aplicatia