Table of Contents

Tesla 2

Trandafir Matei-Paul, 336CB

Introducere

Proiectul reprezinta o varianta foarte simplificata, in miniatura, a unei masini, cu functionalite de evitare a accidentelor, fie prin franare, fie prin viraj. Masina este controlata prin Bluetooth, folosind o aplicatie mobila, insa are si optiunea de “autopilot”. In acest mod, masinii i se stabileste o directie/ruta de urmat, pe care va incerca apoi sa o urmeze, ocolind toate obstacolele pe care le intalneste. Masina va avea, de asemenea, un LCD si un buzzer, pentru a putea afisa informatii despre ruta si obstacole.

Descriere generală

Masina este formata din sasiu plus 2 motoare electrice, atasate la rotile fata stanga, respectiv fata dreapta. Pe partea electronica, masina contine un Arduino UNO, cutie baterii pentru alimentare, modul Bluetooth, un senzor cu ultrasunete montat pe un servo, pentru vedere la un unghi de aproximativ 40-50 grade, LCD si buzzer si un driver dual de motoare.

Initial, Arduino face pairing-ul intre modulul Bluetooth si un telefon cu aplicatia de controlare instalata. Dupa ce conexiunea e realizata, poate incepe sa primeasca comenzi de la modul: accelerare sau franare si viraj. De asemenea, foloseste senzorul cu ultrasunete pentru a detecta obstacole. Cu cat un obstacol este mai aproape, cu atat viteza maxima permisa a masinii scade, pana cand devine 0 atunci cand obstacolul este foarte aproape.

Atunci cand se activeaza functia de autopilot, masina va incerca sa pastreze directia initiala, insa ocolind obstacolele: acum, in loc sa franeze, va vira in directia in care nu este niciun obstacol. Folosind servo-ul pe care este montat senzorul de distanta, va “privi” in stanga si dreapta pentru a decide in ce directie nu se afla obstacole, pentru a vira.

In acest timp, pe LCD se vor afisa informatii utile, cum ar fi: daca autopilotul este activat si ce obstacole sunt detectate. Buzzer-ul va fi folosit pentru a emite niste beep-uri scurte, de exemplu atunci cand pairing-ul se termina cu succes, sau cand semnalul se pierde (se taie conexiunea Bluetooth). De asemenea, pe modul autopilot, masina va semnala prin multe beep-uri atunci cand se blocheaza (de exemplu, atunci cand ajunge intr-un colt si in orice directie ar vira tot s-ar lovi de zid).

Hardware Design

Lista de piese:

Schema de conectare este urmatoarea:

Proiectul asamblat arata asa:

Din motive de spatiu si pozitionare a pieselor, pinii folositi nu sunt aceeasi cu cei din schema de mai sus. De asemenea, pinii HC-05 functioneaza la 3.3V, nu 5V, asa ca legatura HC-05 ↔ Arduino este facuta cu un divizor de tensiune (un pin HC-05 este conectat la Arduino prin rezistor 1K si la GND prin rezistor 2K). Acest lucru nu este necesar la pinii de iesire ai modulului, deoarece Arduino inregistreaza 3.3V pe un pin digital ca 1 logic fara probleme.

Diferentele dintre schema de mai sus si hardware sunt urmatoarele:

Pentru a extrage VCC (din moment ce scutul cu motor driver acopera acest pin), am lipit un fir de VCC-ul scutului, care apoi alimenteaza celelalte componente. Arduino este alimentat direct de la scut, de la bateria de 9V, deoarece scutul are optiunea de a scurta intre VIN (input baterie) si VOUT (output catre Arduino VIN). Acest scurt este activat printr-un jumper, care trebuie scos atunci cand Arduino este conectat la USB (pentru a nu fi dublu alimentat).

Software Design

Software-ul se imparte in 2 categorii:

  1. Aplicatia mobila - dezvoltat in Android Studio
  2. Codul pentru microcontroller-ul Arduino - dezvoltat in Arduino IDE

Rezultate Obţinute

In repository, puteti gasi cateva videoclipuri care demonstreaza functionalitatea proiectului. Functionalitatile, in detaliu, sunt:

Concluzii

In acest proiect, am invatat cum functioneaza comunicarea Bluetooth seriala, cum se pot comunica astfel date intre un microcontroller si un telefon, dar si multe altele despre motoare, timere, PWM si lipirea firelor/pieselor.

Unui din lucrurile pe care le-am invatat din acest proiect este cat de multe probleme neasteptate pot aparea in cadrul unor task-uri, chiar si simple:

Download

Intreg proiectul se gaseste pe github. De asemenea, aici sunt si arhive ale codului:

Codul sursa Arduino: tesla2-arduino.zip

Codul sursa Android: tesla2-android.zip

Bibliografie/Resurse

Librarii folosite pentru Arduino:

Pagina in format PDF:
tesla_2.pdf