George-Cristian MURARU (25595) - Simple Car

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul constă în realizarea unei mașinuțe controlate cu ajutorul unui telefon mobil. Conexiunea între mobil și plăcuță se va realiza prin bluetooth, iar mașinuța va putea fi controlată utilizând accelerometrul telefonului.

Idee inițială a fost realizarea unui lucru interesant care să nu fie nici prea ușor de realizat, însă nici imposibil. Idee de bază a fost să aleg să realizez un proiect mai challenging de pe urma căruia pot rămâne cu mai multe cunoștințe.

Cum am menționat, scopul proiectului este de învăța lucruri noi și de a pune în aplicare noțiunile deja învățate. De asemenea proiectul are ca scop crearea unei mașinuțe ce poate fi utilizată pentru amuzamentul propriu.

Descriere generală

Schema Bloc

Mașinuța va comunica cu telefonul mobil utilizând un modul de Bluetooth. Utilizatorul telefonului va putea controla mașina utilizând accelerometrul telefonului - se va modifica poziția telefonului relativ la o valoarea de echilibru. Controller-ul va fi notificat de aceste modificări și va răspunde în funcție de modul în care a fost înclinat telefonul.

Hardware Design

Pe lângă lista de componente principale, s-au mai cumpărat următoarele:

Produs Pret (lei)CantitateCumparat de la
Modul Bluetooth HC-05 30 1link
Servomotor TowerPro SG92R 25 1 link
Motor Driver L293D 7 1 link
Stabilizator tensiune LM7805 3 1 link
Masina telecomandata - proba 50 1 Carrefour Orhideea
Masina telecomandata (mai mare să încapă placa) 60 1 Carrefour Orhideea
Cabluri tată-mamă şi mamă-mamă 30 Mai multe
2 baterii de 9V 27 2 Carrefour Orhideea

Masina telecomandata vireaza stanga si dreapta, insa nu exista posibilitatea de a vira sub un anumit unghi pana la un viraj maxim. Acest lucru se va modifica folosind servo-ul, utilizatorul avand posibilitatea de a lua virajul sub diferite unghiuri, pana la un unghi maxim.

Schema veche s-a modificat fiind introdus acum în loc de servo un motor simplu care va vira la un unghi maxim stânga şi dreapta. Acest lucru s-a întâmplat deoarece servo-ul cumpărat de pe OLX (probabil şi cauza) avea un comportament ciudat, în sensul că dacă se testa prin utilizarea a 3 valori pentru 0 grade, 90 de grade şi 180 de grade (într-un while cu delay de o secundă între ele) servo-ul nici măcar nu aştepta acel delay pentru a se muta la o nouă poziţie.

Software Design

Partea de software design a aplicaţiei cuprinde 2 componente:

  • partea de Android - va fi plasată pe telefon
  • partea de cod ce va fi plasat pe plăcuţă

Partea de Android

Pentru dezvoltarea codului de Android s-a utilizat Android Studio. Acesta este prima aplicaţie dezvoltată pe bluetooth şi s-ar putea să mai existe bug-uri în software.

Sunt implementate 2 “activităţi” şi anume o parte în care se caută dispozitivul bluetooth şi o parte în care se controlează maşinuţa.

Activitatea de control a maşinuţii va plasa ecranul în modul Landscape, fiind mai uşor în acest mod de controlat maşinuţa.

Fişierul Manifest al aplicaţiei va avea nevoie doar de acces la bluetooth.

Funcţii implementate: Ecranul de afişare a dipozitivelor permite afişarea dispozitivelor bluetooth. Ecranul de control are următoarele butoane:

  • Forward - aplicaţia va transmite prin bluetooth, spre microcontroller, o codificare prin care o va anunţa că trebuie să meargă înainte.
  • Backwards - aplicaţia va transmite prin bluetooth, spre microcontroller, o codificare prin care o va anunţa că trebuie să meargă înapoi.
  • Left - aplicaţia va transmite prin bluetooth, spre microcontroller, o codificare prin care o va anunţa că trebuie să vireze stânga.
  • Right - aplicaţia va transmite prin bluetooth, spre microcontroller, o codificare prin care o va anunţa că trebuie să vireze dreapta.
  • Disconnect - deconectarea de la bluetooth
  • Un grup de 3 radio buttons - prin care se poate alege viteza cu care va merge maşinuţa (enable-ul motorului este conectat la un PWM)

De asemenea s-a implementat şi o modalitate de a vira folosind accelerometrul telefonului, astfel încât când apleci telefonul spre dreapta/stânga, maşinuţa să cotească în acea direcţie. Prima valoare măsurată de accelerometru ca cea de referintă.

Partea de Atmega

Pentru implementarea codului ce va fi pus pe plăcuţă s-a folosit IDE-ul Programmer's Notepad.

Partea de cod este pretty straight-forward:

  • Modul de bluetooth - s-a conectat doar RX-ul la plăcuţă, fiind necesară doar recepţia datelor, într-un mod serial.
  • Cele 2 motoraşe pentru viraj şi tracţiune - conectate cu ajutorul driver-ului LM293D.
    • motoraşul de tracţiune va fi activat folosind PWM deoarece dorim şi modificarea turaţiei cu care acesta merge.
    • motoraşul de viraj este activat tot timpul

Pentru alimentarea placuţei, cât şi a motoraşelor s-a folosit o baterie de 9V (pentru fiecare în parte).

De asemenea, pentru uşurinţa utilizării şi pentru a nu descărca prea rapid bateriile, s-a montat un switch pentru alimentarea plăcuţei.

Rezultate Obţinute

Rezultatele obţinute au fost cele aşteptate şi maşinuţa se poate controla prin bluetooth, folosind o aplicaţie specific creată pentru a trimite anumite caractere pentru a schimba starea în care se găseşte maşinuţa.

Mai jos sunt ataşate imagini cu maşinuţa “asamblată total” şi cum arata “pe interior”.

Simple Car - Demo video

simple_car_boxed.jpg simple_car_unboxed.jpg

Concluzii

Proiectul a fost perfect pentru mine deoarece nu am mai lucrat cu microcontrollere şi a fost un prim pas important şi destul de fain. Am învăţat multe prin acestă experinţă practică - de la cum ar trebui să conectez firele, la verificarea lor, la aprofundarea lucrului ca datasheetul pentru diferitele componente. De asemenea, am învăţat cum să improvizez dacă nu ies chestiile cum trebuie (aici mă refer la design-ul maşinuţei) + a fost o şansă de a vedea şi cum se poate dezvolta o aplicaţie pe Android :)

Download

Tot ce s-a lucrat la acest proiect se poate găsi la următorul link.

Sunt incluse

  • README
  • Sursele
  • Surse pentru testarea diferitelor componente ale proiectului
  • Schemele
  • Idee proiectului

Lucru proiect

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

pm/prj2016/mandrei/simple-car.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0