Informatii generale
- Categorie: Roboti
- Judetul: Galați
- Surse: GitHub - robert-saramet/alset: An ESP32/Arduino + Raspberry Pi RC car featuring GPS, machine vision, pathfinding and Bluetooth control.
Descriere
Alset este o masina electrica la scara mica care poate naviga in mod autonom pe un traseu, reactionand la semnele de circulatie si evitand potentialele obstacole. Scopul acestui proiect este de a reduce accidentele in trafic. Acestea sunt responsabile pentru decesul a 1,35 de milioane de oameni in fiecare an. Prin Alset, speram sa crestem siguranta strazilor pentru toata lumea. La momentul de fata, Alset poate recunoaste semne de stop, alte semne de circulatie putand fi implementate cu usurinta. De asemenea, Alset dispune de un sistem de detectie a obstacolelor redundant, minimizand posibilitatea accidentelor. In plus, Alset poate fi controlat de la distanta (~400m max) cu ajutorul unui controller custom-made. Exista si un site web gazduit de Alset cu ajutorul caruia utilizatorul poate alege destinatia masinii, aceasta deplasandu-se in mod complet autonom. Observatie: o revizie completa asupra hardware-ului este in lucru.
Tehnologii
Alset se bazeaza pe doua dispozitive: un microcomputer (Raspberry Pi 3 B) si un microcontroller (Arduino Mega 2560). Pe Raspberry Pi este executat codul de machine vision (datorita vitezei sporite), microcomputer-ul gazduind si severul web. Arduino este utilizat pentru sarcinile hardware precum controlul motoarelor si citirea senzorilor. La nevoie, unele date sunt transmise intre dispozitive prin intermediul unui protocol propriu usor extensibil. Pentru evitarea obstacolelor am dezvoltat un sistem care consta in doi senzori ultrasonici si un senzor de impact, acestia montati in partea frontala a masinii (avem in vedere adaugarea unui senzor ultrasonic si pe partea posterioara a masinii in viitor). Pentru recunoasterea semnelor de circulatie utilizam biblioteca openCV cu un model de tip cascada Haar. Cand un semn este recunoscut, informatia este procesata si trimisa mai departe catre Arduino, care ajusteaza motoarele corespunzator. Pentru urmarirea traseului, Alset citeste in mod analog pozitia de la o matrice cu senzori de reflectivitate, integrand-o intr-un sistem de control proportional-derivat, asigurand viraje line si eficiente. In mod optional, este posibil controlul de la distanta al lui Alset; este necesara adaugarea unui microcontroller ESP8266 la Alset, acest comunicand cu Arduino ca gateway. Controllerul consta intr-un microcontroller ESP32, doua joystick-uri, doua butoane si un powerbank. Comunicatiile intre ESP8266 si ESP32 sunt realizate prin protocolul ESP-NOW dezvoltat de Espressif. Pentru navigarea autonoma, un site web este gazduit de un server NodeJS pe Raspberry Pi. Utilizatorul se poate conecta la dispozitiv cu ajutorul unui ID unic. Ulterior, el poate alege o destinatie de pe o matrice cu pozitii. Datele sunt procesate in Python si un sir de comenzi este generat pentru Arduino. Documentatie mai cuprinzatoare disponibila pe Github (GitHub - robert-saramet/alset: An ESP32/Arduino + Raspberry Pi RC car featuring GPS, machine vision, pathfinding and Bluetooth control.).
Cerinte sistem
Hardware
- Raspberry Pi 3 sau mai nou
- Arduino Mega 2560 sau alt microcontroller compatibil
- Matrice senzori de reflectivitate Cytron Maker Line
- 2x senzori ultrasonici HC-SR04
- Driver motoare L298N
- Webcam generic
- 2x acumulatori litiu 18650
Software
- Python 3
- OpenCV pentru Python
- GPIOZero pentru Python
- Sockets pentru Python
- NodeJS
- Express pentru NodeJS
- Sockets pentru NodeJS
- L298N pentru Arduino
Realizatori
Robert Saramet
- Scoala: Liceul Teoretic Dunarea
- Clasa: 9
- Judet: Galați
- Oras: Galati
Bogdan Maciuca
- Scoala: C.N.M.K
- Clasa: 9
- Judet: Galați
- Oras: Galati